Professional Documents
Culture Documents
Slide 11 UCDesign
Slide 11 UCDesign
Analyze Behavior
(Optional)
Refine the
Architecture
Use-Case
Design Designer Define Design the
Components Database
Supplementary
Specifications
Use-Case
Design Use-Case Realization
(Refined)
Collaboration Diagrams
Sequence Diagrams
Use Case
Class Diagrams
<<control>>
<<entity>>
<<boundary>>
Many-to-Many Mapping
Object Oriented Analysis and Design 8
Use-Case Realization Refinement
Identify participating objects
Allocate responsibilities among objects
Model messages between objects
Describe processing resulting from
messages
Model associated class relationships
1: Message 1 1: Message 1
X
2: Message 2 2: Message 2
BillingSystem
IBillingSystem
//submit bill()
submitBill(forTuition : Double, forStudent : Student)
<<boundary>> <<subsystem>>
Course Catalog
CourseCatalogSystem System
// addStudent()
// removeStudent()
// new()
// setData()
- Done
Object Oriented Analysis and Design 18
Review: Incorporating RMI: Steps (cont.)
Have classes for data passed to distributed
objects realize the Serializable interface
Core data types are in Business Services layer
Dependency from Business Services layer to
Middleware layer is needed to get access to
java.rmi
Add the realization relationships
Run pre-processor – out of scope
- Done
Object Oriented Analysis and Design 19
Review: Incorporating RMI: Steps (cont.)
Have distributed class clients look up the
remote objects using the Naming service
Most Distributed Class Clients are forms
Forms are in Application layer
Dependency from Application layer to
Middleware layer is needed to get access to
java.rmi
Add relationship from Distributed Class Clients
to Naming Service
Create/update interaction diagrams with
distribution processing (optional)
- Done
Object Oriented Analysis and Design 20
Example: Incorporating RMI
Naming <<Interface>>
(from rmi) IRegistrationController
Distributed (from Registration)
+ lookup() Class Client
+ getCurrentSchedule(forStudent : Student, forSemester : Semester) : Schedule
+ deleteCurrentSchedule()
+ submitSchedule()
<<boundary>> 1 + saveSchedule()
RegisterForCoursesForm + getCourseOfferings() : CourseOfferingList
(from Registration) 1
Passed Class
<<Interface>> <<Entity>>
Remote Student
CourseOfferingList (from University Artifacts)
(from rmi)
(from University Artifacts) 0..1
registrant 1
0..1 0..n
Distributed <<Control>> <<Entity>> <<Interface>>
RegistrationController currentSchedule Schedule Serializable
Class (from Registration) (from University Artifacts) (from io)
0..1 0..1
UnicastRemoteObject
(from server)
<<layer>> <<layer>>
Business Services Application
Registration
Package
(from Application)
University Artifacts
(from Business Services)
<<layer>>
<<layer>> Business
Services
Middleware
java.rmi
Java.io Naming
(from java.rmi)
Server
<<interface>> <<layer>>
Serializable UnicastRemote Middleware
(from java.io) <<interface>> Object
(from Server)
remote
(from java.rmi)
Lookup remote
object by specifying
1: lookup(string) it's URL
2: doSomething
<<subsystem>>
MySubsystem
InterfaceA
op1()
op1()
Use-case realizations:
Are less cluttered
Can be created before the internal designs of
subsystems are created (parallel development)
Are more generic and easier to change
(Subsystems can be substituted.)
Analysis-Class-to-Architectural-Mechanism
Map from Use-Case Analysis
Analysis Class Analysis Mechanism(s)
Details in Appendix
(continued)