Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Identify Design
Elements Architect
Software Architecture
Design Document
Supplementary Guidelines
Specifications
Identify
Design
Analysis Classes Elements
Design Model
Design Model
Object Oriented Analysis and Design Using the UML v2000
Copyright 2000 Rational Software, all rights reserved 4
Identify Design Elements Steps
Identify classes and subsystems
Identify subsystem interfaces
Update the organization of the design
model
Checkpoints
Analysis Classes
<<control>>
<<entity>>
<<boundary>>
Many-to-Many Mapping
Object Oriented Analysis and Design Using the UML v2000
Copyright 2000 Rational Software, all rights reserved 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
What is a package?
A general purpose mechanism for organizing
elements into groups
A model element which can contain other model
elements
Package
Name
Class A2
Class A3
- Class B2
Private visibility
OO Principle: Encapsulation
Object Oriented Analysis and Design Using the UML v2000
Copyright 2000 Rational Software, all rights reserved 14
Package Coupling: Tips
Packages should not A B
be cross-coupled X
A
In general,
dependencies should C
not skip layers
X = Coupling violation
Object Oriented Analysis and Design Using the UML v2000
Copyright 2000 Rational Software, all rights reserved 15
Example: Registration Package
MainStudentForm MainRegistrarForm
1 1
0..1 0..1
<<boundary>> <<boundary>>
RegisterForCoursesForm CloseRegistrationForm
1
1 1
<<control>> <<control>>
RegistrationController CloseRegistrationController
<<entity>>
PrimaryScheduleOfferingInfo
primaryCourses alternateCourses
0..2
0..4
0..*
<<entity>> instructor <<entity>> <<entity>>
Professor CourseOffering Course
0..*
0..1 0..* 0..* 1
preRequisites
0..*
1
CourseOfferingList
Object Oriented Analysis and Design Using the UML v2000
Copyright 2000 Rational Software, all rights reserved 17
Example: External System Interfaces Package
<<Interface>> <<Interface>>
IBillingSystem ICourseCatalogSystem
W() X()
<<Interface>>
InterfaceK
X() <<subsystem>>
W() SubsystemB
ClassB1 ClassB2 ClassB3
Object Oriented Analysis and Design Using the UML v2000 Encapsulation is the key!
21
Copyright 2000 Rational Software, all rights reserved
Subsystem Usage
Subsystems can be used to partition the system into parts
which 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 Using the UML v2000
Copyright 2000 Rational Software, all rights reserved 22
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
Y()
Z()
<<Interface>>
<<subsystem>>
Subsystem K
Y()
Z()
IBillingSystem
//submit bill()
submitBill(forTuition : Double, forStudent : Student)
<<boundary>> <<subsystem>>
Course Catalog
CourseCatalogSystem System
ICourseCatalogSystem
<<subsystem proxy>>
ICourseCatalogSystem
CourseCatalogSystem
Interface defined 1
+courseCatalog
<<Interface>>
CourseOfferingList
ICourseCatalogSystem
new()
getCourseOfferings(forSemester : Semester) : CourseOfferingList
add()
initialize()
<<subsystem proxy>>
CourseCatalogSystem
// is registration open?()
// close registration()
0..1
0..1
Biller
11
<<Interface>>
IBillingSystem <<entity>>
Student.
submitBill(forTuition : Double, forStudent : Student)
<<subsystem proxy>>
BillingSystem
00
$ 2 re
Softwa
$50
e 0
General
functionality
Layer 1
Layer 2
Layer 3
Object Oriented Analysis and Design Using the UML v2000
Copyright 2000 Rational Software, all rights reserved 41
Example: Architectural Layers
<<layer>>
Application
<<layer>>
Middleware
Base Reuse
global
A Package A
Package B
<<layer>>
Application
Registration
<<layer>>
<<layer>> Business
Business Services Services
External System
Interfaces
<<layer>>
Business Services
<<subsystem>> <<subsystem>>
BillingSystem CourseCatalogSystem
External System
Interfaces
Security
ObjectStore GUI <<subsystem>>
Support Framework Security
Manager
Secure
University
Interfaces
Artifacts
External System
Interfaces
<<layer>>
Security Business
ObjectStore Services
GUI <<subsystem>>
Support
Framework Security
Manager
University Secure
Artifacts
<<layer>>
Interfaces Middleware
<<layer>>
Middleware
com.odi java.sql
com.odi java.sql
(continued)