CSE584: Software EngineeringLecture 2 (October 6, 1998)
Design
Outline
Very High-Level View
Complexity
Continuous & iterative
Multiple design choices
What criteria?
1. Managing complexity
Divide and conquer
Composition
Benefits of decomposition
Which decomposition?
Structure
So what happens?
Conceptual integrity
2. Accommodating change
Anticipating change
Rationalism vs. empiricism
Examples
Brooks’ view
Properties of design
Cohesion
Coupling
Unnecessary coupling hurts
It’s easy to...
Correctness
Correspondence
Functional decomposition
Question
Physical structure
Information hiding
Basics of information hiding
Anticipated changes
Claim
Other anticipated changes?
Central premise I
The A-7 Project
Central premise II
Central premise III
Central premise IV
Central premise V
Information hiding reprise
Information Hiding and OO
Layering [Parnas 79]
The uses relation
uses vs. invokes
Parnas’ observation
Criteria for uses(A,B)
Layering in THE
Modules and layers interact?
Language support
Implicit invocation
II mechanisms
Not just indirection
Mediators
Experience
PPT Slide
Example
ADT design
Hardwiring
Change: lazy equivalence
Hardwired design
Mediator: with lazy update
Another change: size of S1
Assessment
Design I wrap-up
Next week
Email: notkin@cs.washington.edu
Other information: CSE 584, Lecture 2
Download presentation source