Term
what are 6 typical design trade-offs? |
|
Definition
1. functionality vs usability 2. cost vs robustness 3. efficiency vs portability 4. rapid development vs functionality 5. cost vs re-usability 6. backward compatibility vs readability |
|
|
Term
what's the point of system design? |
|
Definition
to transform analysis model to system design model |
|
|
Term
what are 3 steps for system design? |
|
Definition
1. identify design goals 2. model the new system design as a set of subsystems using decomposition 3. address major design goals |
|
|
Term
what's coupling and coherence? |
|
Definition
1. coupling measures dependency among subsystems 2. coherence measures dependency among classes |
|
|
Term
typically to do we want high or low coupling and coherence? |
|
Definition
we want low coupling but we want high coherence |
|
|
Term
what's the difference between architectural style and software architecture? |
|
Definition
architectural style is a pattern for a subsystem decomposition and software architecture is a instance of architectural style |
|
|
Term
list 7 architectural styles. describe each. what are advantages and disadvantages? |
|
Definition
layered, client/server, 3-tier, p2p, repository, model view controller, pipe and filters |
|
|
Term
what are two types of hierarchical relationships between subsystems? what are their UML notations? |
|
Definition
1. layer A "depends on" layer B 2. layer A "calls" layer B
runtime relationship is dashed lines compile time relationship is solid lines |
|
|
Term
what's opaque layering and transparent layering? |
|
Definition
opaque layering: each layer can only call operations from layer below |
|
|
Term
what's design goal for opaque layering? |
|
Definition
maintainability and flexibility |
|
|
Term
what's design goal for transparent layering? |
|
Definition
|
|
Term
|
Definition
|
|
Term
what's difference between 3-layer and 3-tier architecture? |
|
Definition
3-layer is a style 3-tire is an architecture |
|
|