Professional Documents
Culture Documents
or
Architect
Architectural
Analysis
Architectural Describe
Design Concurrency
Describe
Distribution
Glossary
Supplementary
Specifications
Use-Case
Analysis
Subsystem
Design
Designer
Use-Case
Design
Review the
Design
Architecture Document
Design
Guidelines
Design
Guidelines
Architectural
Design
Design
Reviewer
Class
Design
Analysis Classes
Database
Design
Database
Designer
Design Model
Key Concepts
Design and Implementation Mechanisms
Design Classes and Subsystems
Reuse Opportunities
Refined Architectural Layers and Partitions
Architectural Design Checkpoints
Design Model
4
Key Concepts
Design and Implementation Mechanisms
Design Classes and Subsystems
Reuse Opportunities
Refined Architectural Layers and Partitions
Architectural Design Checkpoints
Page 1
1
Logical View
Analysts/Designers
Structure
Implementation View
End-user
Functionality
Class Name
Programmers
Software management
What is a package?
Use-Case View
Process View
Deployment View
System engineering
System topology
Delivery, installation
communication
System integrators
Performance
Scalability
Throughput
Package Name
Global Packages
Package Visibility
PackageA
Class A1
Class A2
Foundation
Class A3
PackageB
Classes
Class B1
Class B2
global
Public visibility
Private visibility
Key Concepts
Design and Implementation Mechanisms
Design Classes and Subsystems
Reuse Opportunities
Refined Architectural Layers and Partitions
Architectural Design Checkpoints
Client
Analysis
Design
Implementation
Class
Mechanism
Mechanism
Mechanism
(Conceptual)
(Concrete)
(Actual)
Legacy Data
Course
11
Persistency
RDBMS
Persistency
OODBMS
JDBC to Ingres
New Data
Student
RegistrationController
10
Distribution
Analysis
Remote Method
Invocation (RMI)
Design
12
ObjectStore
Page 2
2
Jav
a
IDL
IDL
Ada
Cobol
C++
Jav
a
IDL
Client
IDL
IDL
IDL
IDL
Ada
Cobol
IDL
Server
IDL
IDL
Naming
Lookup(serverURL)
Remote
client
ORB
InvokeOp()
InvokeOp()
RemoteObject
RemoteStub
ClassA
ProxyClientB
ProxyServerB
RemoteSkeleton
ClassB
RMI Transport
13
Key Concepts
Design and Implementation Mechanisms
Design Classes and Subsystems
Reuse Opportunities
Refined Architectural Layers and Partitions
Architectural Design Checkpoints
DesignClass
DesignClass
DesignClass
DesignClass
<<subsystem>>
Subsystem
<<boundary>>
MaintainScheduleForm
16
<<boundary>>
MainForm
0..1
<<boundary>>
0..1
0..1
MainProfessorForm
<<boundary>>
<<boundary>>
(from Professor Interface)
MaintainScheduleForm
ReportCardForm
(from Student Interface)
(from Student Interface)
1
1
0..1
<<boundary>>
CloseRegistrationForm
<<boundary>>
MainStudentForm
(from Student Interface)
0..1 <<boundary>>
LogonForm
1
1 1 1
<<subsystem>>
Subsystem
<<subsystem>>
Subsystem
15
14
<<boundary>>
SubmitGradesForm
0..1
<<boundary>>
SelectCoursesForm
0..1
0..1
<<boundary>>
<<boundary>>
SelectCoursesForm
SubmitGradesForm
(from Professor Interface)(from Professor Interface)
<<boundary>>
MaintainProfessorForm
0..1
0..*
<<boundary>>
MaintainStudentForm
<<boundary>>
ReportCardForm
0..*
0..1
<<boundary>>
<<boundary>>
<<boundary>>
MaintainStudentForm
MaintainProfessorForm
CloseRegistrationForm
(from Registrar Interface) (from Registrar Interface) (from Registrar Interface)
0..1
0..1
<<boundary>>
MainRegistrarForm
(from Registrar Interface)
0..1
18
Page 3
3
Subsystem Usage
Subsystems can be used to partition the system into parts
which can be independently:
InterfaceI1
<<subsystem>>
Subsystem A
MyPackage
W()
X()
Class A1
Class A2
W()
X()
<<Interface>>
InterfaceI2
<<subsystem>>
Subsystem B
AnotherPackage
Y()
Z()
Class B1
Class B2
Class B3
W()
Y()
X()
Z()
19
Client Class
PackageB
Class B1
<<subsystem>>
A
Class B2
Subsystem Guidelines
22
Identifying Interfaces
Goals
Purpose
Loose coupling
Portability, plug-and-play compatibility
Insulation from change
Independent evolution
<<subsystem>>
A
Steps
Identify a set of candidate interfaces for all subsystems
Look for similarities between interfaces
Define the operations
Map the interfaces to subsystems
<<subsystem>>
B
Strong Suggestions
Dont expose details
Only depend on other interfaces
Key is encapsulation, abstraction and
simplification
Make the design easier to understand!
OOAD Using the UML - Architectural Design, v 4.0
Copyright 1994-1998 Rational Software, all rights reserved
20
23
<<subsystem>>
C
24
Page 4
4
Interface Guidelines
Naming interfaces
Describing interfaces
Convey responsibilities
Tube
Defining operations
<<interface>>
Shape
Pyramid
Draw
Move
Scale
Rotate
Documenting interfaces
Package supporting info: sequence and state diagrams, test
plans, etc.
OOAD Using the UML - Architectural Design, v 4.0
Copyright 1994-1998 Rational Software, all rights reserved
25
ICourseCatalog
<<subsystem>>
CourseCatalog
<<subsystem>>
CourseCatalog
27
29
28
Key Concepts
Design and Implementation Mechanisms
Design Classes and Subsystems
Reuse Opportunities
Refined Architectural Layers and Partitions
Architectural Design Checkpoints
<<subsystem>>
CourseCatalog
(from CourseCatalog)
<<subsystem>>
CourseCatalog
(from CourseCatalog)
(from FinanceSystem)
ICourseCatalog
26
<<subsystem>>
FinanceSystem
IFinance
System
Cube
30
Page 5
5
Partitioning Considerations
Key Concepts
Design and Implementation Mechanisms
Design Classes and Subsystems
Reuse Opportunities
Refined Architectural Layers and Partitions
Architectural Design Checkpoints
31
Example: Partitioning
32
Specific
functionality
Package A
Package B
General
functionality
OOAD Using the UML - Architectural Design, v 4.0
Copyright 1994-1998 Rational Software, all rights reserved
33
Layering Guidelines
34
Visibility
<<layer>>
User Interface
Volatility
<<layer>>
Business Services
<<layer>>
Business Objects
Generality
More abstract model elements in lower layers
<<layer>>
Middleware
Number of layers
Small system: 3 layers
Complex system: 5-7 layers
Goal is to reduce coupling and to ease maintenance effort
OOAD Using the UML - Architectural Design, v 4.0
Copyright 1994-1998 Rational Software, all rights reserved
35
<<layer>>
System
Base Reuse
36
global
java
global
Page 6
6
View
Student
Interface
Registrar
Interface
Professor
Interface
0..* + open()
0..*+ refresh()
+ close()
+ update()
1
GUI Framework
MainApplicationForm
( from GUI Framework )
LogonForm
+ start( )
+ open( )
0..1
<<interface>>
SecureUser
( from Secure Interfaces )
Secure
Interfaces
(from Security)
OOAD Using the UML - Architectural Design, v 4.0
Copyright 1994-1998 Rational Software, all rights reserved
+ getUserId( ) : UniqueId
+ getAccess( SecureData ) : SecurityAccess
+ setAccess( SecureData, SecurityAccess)
37
38
LogonForm
(from GUI Framework)
0..1
Relational
DBMS
OODBMS
<<boundary>>
MainStudentForm
(from Student Interface)
1
<<Interface>>
IPersistent
(from OODBMS)
0..1
0..1
<<boundary>>
<<boundary>>
MaintainScheduleForm
ReportCardForm
<<boundary>>
(from Student Interface)
(from Student Interface)
MainProfessorForm
(from Professor Interface)
<<boundary>>
MainRegistrarForm
(from Registrar Interface)
1
0..1
0..*
<<boundary>>
<<boundary>>
<<boundary>>
MaintainStudentForm
MaintainProfessorForm
CloseRegistrationForm
(from Registrar Interface) (from Registrar Interface)
(from Registrar Interface)
OOAD Using the UML - Architectural Design, v 4.0
Copyright 1994-1998 Rational Software, all rights reserved
OODBMSTransaction
(from OODBMS)
0..1
0..1
<<boundary>>
<<boundary>>
SelectCoursesForm
SubmitGradesForm
(from Professor Interface) (from Professor Interface)
0..*
Database
(from OODBMS)
39
RDBMSTransaction
(from RelationalDBMS)
<<utility>>
sql
(from RelationalDBMS)
Objectstore
(from OODBMS)
40
Security
2 packages
<<subsystem>>
Security
Manager
Secure
Interfaces
UserSecurityContext
(from Security Manager)
SecureUser
(from Secure Interfaces)
SecureData
(from Secure Interfaces)
UniqueId
SecurityAccess
41
Page 7
7