Week 2 Design Examples and Designing for Change Alex Baker.

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Test-Driven Development and Refactoring CPSC 315 – Programming Studio.
Informatics 122 Software Design II 1 Portions of the slides in this lecture are adapted from a/classes/5448/f12/lectures/
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
GRASP The other four What are the first five? What is the goal/purpose of using patterns?
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 5 Architecture-Driven Component Development.
Software Engineering and Design Principles Chapter 1.
Informatics 122 Software Design II Lecture 5 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
© 2009 University of California, Irvine – André van der Hoek1June 10, 2015 – 18:31:15 Informatics 122 Software Design II Lecture 2 André van der Hoek &
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
Week 2 Design Examples and Designing for Change Alex Baker.
© 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &
Week 8 Implementation Design Alex Baker. Implementation Design System Design – Describes what the system should do Implementation Design – Describes what.
© 2010 University of California, Irvine – André van der Hoek1June 26, 2015 – 00:06:40 Informatics 122 Software Design II Lecture 6 André van der Hoek &
Criteria for good design. aim to appreciate the proper and improper uses of inheritance and appreciate the concepts of coupling and cohesion.
CSE1301 Computer Programming: Lecture 29 Group Project: “Quabble”
© The McGraw-Hill Companies, 2006 Chapter 7 Implementing classes.
Algorithm Programming Coding Advices Bar-Ilan University תשס " ו by Moshe Fresko.
PRJ566: PROJECT PLANNING AND MANAGEMENT Class Diagrams.
UML and Object Oriented Concepts
Chapter 3 Object-Oriented Analysis of Library Management System(LMS)
Object Oriented Software Development
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
Object Oriented Analysis & Design & UML (Unified Modeling Language)1 Part V: Design The Design Workflow Design Classes Refining Analysis Relationships.
Introduction To System Analysis and Design
Chapter 17. Initial Object Design Inputs: requirements meetings various Use Cases – 10% complete Key risks addressed with preliminary programming System.
Ivan Marsic Rutgers University LECTURE 2: The Object Model.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
+ Informatics 122 Software Design II Lecture 6 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
+ Informatics 122 Software Design II Lecture 2 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
SE: CHAPTER 7 Writing The Program
1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
THE DESIGN WORKFLOW  Object-oriented design  The design workflow  The test workflow: Design  CASE tools for design  Challenges of the design workflow.
GRASP: Designing Objects with Responsibilities
CPS 100, Fall GridGame APT How would you solve this problem using recursion?
COP Structures Instructor: Diego Rivera-Gutierrez I’m back baby!
Incremental Design Why incremental design? Goal of incremental design Tools for incremental design  UML diagrams  Design principles  Design patterns.
Introduction to Design. What is Design? 2 minutes Pairs.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
Object-Oriented Principles Applications to Programming.
Oracle11g: PL/SQL Programming Chapter 3 Handling Data in PL/SQL Blocks.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
March 1, 2004CS WPI1 CS 509 Design of Software Systems Lecture #6 Monday, March 1, 2004.
Fall 2015, Kevin Quinn CSE373: Data Structures & Algorithms Lecture 25: Problem Solving CSE373: Data Structures and algorithms1.
Refactoring Agile Development Project. Lecture roadmap Refactoring Some issues to address when coding.
Week 5, Day 2: Decorator Decorators Muddiest Point Tomorrow: Quiz on lab reading: web.msoe.edu/hasker/se2811/labs/5/ SE-2811 Slide design:
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Oct. 16, 2003CS WPI1 CS 509 Design of Software Systems Lecture #7 Thursday, Oct. 16, 2003.
What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.
+ Informatics 122 Software Design II Lecture 3 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Senior DesignSeattle Pacific UniversitySenior Design Design-1 Seattle Pacific University Stages of Engineering Design 1. Identify project and goals 2.
Computer Science Victoria University of Wellington Copyright: david streader, Victoria University of Wellington Simple Design COMP
Lecture 1 Gunjeet kaur Dronacharya group of institutions.
Chapter 12: Collaboration Diagram - PART2
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 122 Software Design II
LECTURE 2: The Object Model
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 122 Software Design II
Presentation transcript:

Week 2 Design Examples and Designing for Change Alex Baker

Implementation Design An implementation design is a road map – understandable, unambiguous, consistent, helpful, … An implementation design describes a path from system design to the outcome – correct, complete, concise, verifiable, effective, … An implementation design describes what the implementers should do – elegant, partitionable, recomposable, resilient, … An implementation design is a guide towards future change – evolvable, …

Emphasis on Changability Change abounds… – During design – During coding – Upon delivery – After use Reuse for later projects

Emphasis: Changability Subtle Requires foresight and careful balancing An implementation design describes what the implementers should do – elegant, partitionable, recomposable, resilient, … An implementation design is a guide towards future change – evolvable, …

Changability: Basic Principles Low Coupling: Reducing interdependency – Changes don’t propagate – Reuse is facilitated High Cohesion: Grouping functionality – Easier to find things – Metaphor guides decisions Information Hiding

The Ideal Program … vs.

A Very Simple Example A sorted list class with: 1) getArray() : Array 2) getElementAt(int i) : Element

A Very Simple Example A List class with: 1) getArray() : Array 2) getElementAt(int i) : Element Its too slow, so we switch to a hash table 1) Everywhere you call getArray needs changing 2) Only List is changed Little things like this add up

UML Review: Class Diagrams Class Name Attribute : Type Operation (parameter) : Return Type Attribute : Type Operation (parameter) : Return Type

UML Review: Class Diagrams Association Aggregation Generalization Composition

A Class Diagram

Example 1: Theseus and the Minotaur

Original Theseus Design

What if we want to add “Water” ?

Original Theseus Design What if we want to add “Water” ? ?

Original Theseus Design What if we want to add “Water” ? How do we fix this? ?

TntM: Changes Changing the board size Adding terrain types Adding more monsters Adding a second player “Intelligent elements”

TntM 2

TntM 2: Object Interfaces & Inheritance

TntM: Changes Changing the board size Adding terrain types Adding more monsters Adding a second player “Intelligent elements”

How far is too far? Changing board size? Pushable blocks? Intelligent elements? Real time gameplay? Physics challenges?

Bonus! StompOn( stompee ) Or StompedOn( stomper )

Example #2 Klax Blocks fall from above, use a paddle to catch Deposit blocks in one of 5 columns Try to make lines of 3 in a row or more klax_eng.php

A Good Klax Design?

Chiron 2 Architectural Style

C2 Klax

Spelling Klax?

Scrabble? How did you design for change?

Scrabble? How did you design for change? Could you redesign / refactor for – Changes to letter values?

Scrabble? How did you design for change? Could you redesign / refactor for – Changes to letter values? – Changes to bonus squares?

Scrabble? How did you design for change? Could you redesign / refactor for – Changes to letter values? – Changes to bonus squares? – AI opponents?

Scrabble? How did you design for change? Could you redesign / refactor for – Changes to letter values? – Changes to bonus squares? – AI opponents? – Different dictionaries?

Summary Designing for change is a matter of: – Controlling dependency – Proper encapsulation – Generalizing where you can More broadly, you are asking: – What are the biggest change risks? – What kind of program is this, essentially? – Where is “the line”?

Assignment #1 Continued We’ll exchange designs now Review forms will be online tonight Send completed forms to Andre and I – – – Due 6:00 pm, Sunday