Layering Considerations ◆Visibility Dependencies only within current layer and below ◆Volatility Upper layers affected by requirements changes ■ Lower layers affected by environment changes ◆Generality More abstract model elements in lower layers ◆Number of layers Small system:3-4 layers Complex system:5-7 layers Goal is to reduce coupling and to ease maintenance effort. Object Oriented Analysis and Design 16
Object Oriented Analysis and Design 16 Goal is to reduce coupling and to ease maintenance effort. Layering Considerations Visibility ▪ Dependencies only within current layer and below Volatility ▪ Upper layers affected by requirements changes ▪ Lower layers affected by environment changes Generality ▪ More abstract model elements in lower layers Number of layers ▪ Small system: 3-4 layers ▪ Complex system: 5-7 layers
Design Elements and the Architecture Layer1○ Layer 2 Layer 3 Q Object Oriented Analysis and Design 17
Object Oriented Analysis and Design 17 Layer 1 Layer 2 Layer 3 Design Elements and the Architecture
Example:Architectural Layers <<layer>> Application Necessary because the Application Layer must have access to the core distribution mechanisms <<layer>> provided with Java RMI. Business Services <<layer>> Middleware Base Reuse global Object Oriented Analysis and Design 18
Object Oriented Analysis and Design 18 Example: Architectural Layers Middleware <<layer>> Base Reuse global Application <<layer>> Business Services <<layer>> Necessary because the Application Layer must have access to the core distribution mechanisms provided with Java RMI
Partitioning Considerations Coupling and cohesion ◆User organization ◆0 Competency and/or skill areas ◆System distribution ◆ Secrecy ◆Variability Try to avoid cyclic dependencies. Object Oriented Analysis and Design 19
Object Oriented Analysis and Design 19 Partitioning Considerations Coupling and cohesion User organization Competency and/or skill areas System distribution Secrecy Variability Try to avoid cyclic dependencies
Example:Partitioning 3 2 5 Package A 6 8 14 9 12 15 10 13 Package B 18 16 17 19 Object Oriented Analysis and Design 20
Object Oriented Analysis and Design 20 B A Package A Package B Example: Partitioning 1 8 7 6 4 5 3 2 14 13 12 11 10 9 16 17 18 19 15