From Analysis Classes to Design Elements Analysis Classes Design Elements <<boundary>> <<control>> <<entity>> <<boundary>> Many-to-Many Mapping Object Oriented Analysis and Design 6
Object Oriented Analysis and Design 6 From Analysis Classes to Design Elements Analysis Classes Design Elements <<boundary>> <<control>> <<entity>> <<boundary>> Many-to-Many Mapping
Identifying Design Classes An analysis class maps directly to a design class if: It is a simple class It represents a single logical abstraction More complex analysis classes may Split into multiple classes Become a package Become a subsystem (discussed later) Any combination Object Oriented Analysis and Design 7
Object Oriented Analysis and Design 7 Identifying Design Classes An analysis class maps directly to a design class if: ▪ It is a simple class ▪ It represents a single logical abstraction More complex analysis classes may ▪ Split into multiple classes ▪ Become a package ▪ Become a subsystem (discussed later) ▪ Any combination …
Group Design Classes in Packages You can base your packaging criteria on a number of different factors,including: Configuration units Allocation of resources among development teams Reflect the user types Represent the existing products Package C and services the system uses Package B Package A Object Oriented Analysis and Design 8
Object Oriented Analysis and Design 8 You can base your packaging criteria on a number of different factors, including: ▪ Configuration units ▪ Allocation of resources among development teams ▪ Reflect the user types ▪ Represent the existing products and services the system uses Package C Group Design Classes in Packages Package B Package A
Subsystem Usage ◆ Subsystems can be used to partition the system into parts that can be independently: -ordered,configured,or delivered developed,as long as the interfaces remain unchanged deployed across a set of distributed computational nodes changed without breaking other parts of the systems ◆ Subsystems can also be used to: partition the system into units which can provide restricted security over key resources represent existing products or external systems in the design (e.g.components) Subsystems raise the level of abstraction Object Oriented Analysis and Design 9
Object Oriented Analysis and Design 9 Subsystems raise the level of abstraction Subsystem Usage Subsystems can be used to partition the system into parts that can be independently: ▪ ordered, configured, or delivered ▪ developed, as long as the interfaces remain unchanged ▪ deployed across a set of distributed computational nodes ▪ changed without breaking other parts of the systems Subsystems can also be used to: ▪ partition the system into units which can provide restricted security over key resources ▪ represent existing products or external systems in the design (e.g. components)
Identifying Subsystems Hints Look at object collaborations. Look for optionality. ◆ Look to the user interface of the system. ◆Look to the actors ◆ Look for coupling and cohesion between classes. Look at substitution. Look at distribution. ◆Look at volatility Object Oriented Analysis and Design 10
Object Oriented Analysis and Design 10 Identifying Subsystems Hints Look at object collaborations. Look for optionality. Look to the user interface of the system. Look to the actors. Look for coupling and cohesion between classes. Look at substitution. Look at distribution. Look at volatility