Shanghai Jiao Tong University 上海交通大学 Object Oriented Analysis and Design Architecture Design 上海交通大学软件工程中心
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Architecture Design
Architecture Design in Context [Early Elaboration [Inception Iteration] Iteration (Optional)] Define a Candidate Perform Architecture Architectural L Synthesis 皮 Analyze Behavior Architecture (Optional) Design Architect Refine the Architecture Define Design the Components Database Object Oriented Analysis and Design 2
Object Oriented Analysis and Design 2 Architecture Design in Context [Early Elaboration Iteration] [Inception Iteration (Optional)] Define a Candidate Architecture Perform Architectural Synthesis Analyze Behavior Refine the Architecture Define Components Design the Database Architecture (Optional) Design Architect
Identify Design Elements Overview Software Project Specific Architecture Guidelines Document Supplementary Specifications Identify Design Elements Design Model Analysis Model Object Oriented Analysis and Design 3
Object Oriented Analysis and Design 3 Supplementary Specifications Identify Design Elements Software Architecture Document Design Model Identify Design Elements Overview Analysis Model Project Specific Guidelines
Outline Identify classes and subsystems Update the organization of the Design ◆ Model Describe Distribution Runtime Architecture Object Oriented Analysis and Design 4
Object Oriented Analysis and Design 4 Outline Identify classes and subsystems Update the organization of the Design Model Describe Distribution Runtime Architecture
Outline ★◆ldentify classes and subsystems ◆ Update the organization of the Design Model Describe Distribution Runtime Architecture Analysis Classes Object Oriented Analysis and Design 5
Object Oriented Analysis and Design 5 Outline Analysis Classes Identify classes and subsystems Update the organization of the Design Model Describe Distribution Runtime Architecture
From Analysis Classes to Design Elements Analysis Classes Design Elements > > > > 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 > > > > 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