Download - 8. Collaboration Diagrams.pdf
Collaboration DiagramsCollaboration Diagrams
Dumitru RadoiuDumitru RadoiuSpring 2009
PETRU MAIOR UNIVERSITY
Object-Oriented World
time
OO Analysis OO Design OO Programming
Create the vocabulary
Give vocabulary
Program the model
RequirementsDeliverables
vocabulary ocabu a ybehavior (model the system)
ode
Activity UML Diagram
Understand System Usage Use Case Diagram
Identify Classes High Level Class DiagramIdentify Classes High Level Class Diagram
Define Workflows Activity Diagram
Use Case Model
diagnose car
Mechanicfix car
drive car Car owner
Use case
di
Mechanic
diagnose car
High Level Class Diagram
[talk]
Mechanic
Diagnosis Car
:Diagnosis0..1 1:Diagnosis
:Mechanic
1
0..1
uses> diagnosis>
:Car0..1
1fixes>
Start
Activity Diagram
Start
Name of StateTurn Off Diagnosis
Diagnosis equipment problem[error]
Name of StateDisplay Error
Car electronic
Name of StateTurn On Diagnosis
[valid]
[error]
Car electronic problem Name of StateTurn On Car
[error][valid]
Name of StateTurn Off Car
Name of StateDiagnoseName of StateFix Problem
Object-Oriented World
time
OO Analysis OO Design OO Programming
Create the vocabulary
Give vocabulary
Program the model
RequirementsDeliverables
vocabulary ocabu a ybehavior (model the system)
ode
A ti it UML DiActivity UML Diagram
Identify interactions among objects
Sequence and Collaboration Diagrams
l hAnalyze state changes Sate Diagrams
Refine class diagrams Class Diagrams
Sequence Diagram
[talk]
Mechanic
Diagnosis Car
[talk]
Mechanic
Mechanic
Diagnosis Car
Turn OnTurn On
Set to checkDiagnose
Fix the problem
Turn Off
Turn Off
Agenda
• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams
• Notation
• Different Types of Messages
• Model a Collaboration Diagram: Case Study
High Level Class Diagram
:Diagnosis0..1 1
uses>diagnosis>
:Car:Mechanic
1 0..1
:Mechanic 0..11 fixes>
Sequence Diagram
Mechanic
Diagnosis Car
Turn OnMechanic Turn On
Set to checkDiagnose
Fix the problem
Turn OffTurn Off
Turn Off
Collaboration Diagram
:Diagnosis
:Car:Mechanic
4: Diagnose()
:Mechanic
Agenda
• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams
• Notation
• Different Types of Messages
• Model a Collaboration Diagram: Case Study
Notation
Object
Object : Class
:Class
Notation: Associations can be carried from class diagrams as
Roleclass diagrams as association roles
ObjectA ObjectBParent Child
Association
ObjectA ObjectBParent Child
Message flow; communication must originate from the Parentfrom the Parent
…to depict relationships between objects
:InventoryApplocation:Location
<<local>><<parameter>>
con:DatabaseConnection
InventoryApp has a <<local>> variable which accepts a <<parameter>>, a location instance
Agenda
• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams
• Notation
• Different Types of Messages
• Model a Collaboration Diagram: Case Study
Message types
:Compiler :FileSystemLoad(File)
Synchronous
:Compiler :LinkerLink(ProgramName,Options)
(wait)
Asynchronousy(continue)
:DialogOne
Flat(unimportant)
:Mechanic
g
(unimportant)
:DialogTwo
Message Sequencing
:Compiler :FileSystem1:Message1
ge2
2:M
essa
g
Mes
sage
4
:Compiler :Linker3:Message3
4:M
:Compiler
Multiple Messages
:Teacher :Student2:AddStudent(Name)
(nam
e)
1.1:LoadStudents()
Load
Cla
ss(
1 2:LoadClassInfo()
:Class : FileSystem
1: 1.2:LoadClassInfo()1.3:LoadRoom()
:Class y
Guard Conditions
1:Compile(Project)
:FileSystem
1:Compile(Project)
3a:NotifyOfSuccess
[Project Loaded]
:Compiler:Editor
:ErrorDialog
Creating Instances
:ObjectA :ObjectB<<new>>Constructor
<<create>>
G di S : Student<<new>>1:CreateStudent (Name)
<<create>>
:GradingSystem : Student<<new>>
Iterations (repeating processes)
:ObjectA:ObjectB1.* Message
*
1.* Message
:Student:ObjectB
*
Iterations (repeating processes)
Loop through each grade
Calculate GPA
1.* [1..N]: GPA+=Grade[ ]
2: GPA=GPA/Count(Grades)
:Student:Grade
*
Agenda
• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams
• Notation
• Different Types of Messages
• Model a Collaboration Diagram: Case Study
Model a Collaboration Diagram: Case Study
1. Identify the elements that belong in your diagram2. Model the relationships between these elements3. Model the instance level diagram
distribute
Use Case Model
record grades <<include>>
electronically
save grades
upgrade grades
g
<<include>>pg gTeacher <<include>>
load grades<<include>>
logon
i d
<<include>>
Administrator
view grades
generate Studentgeneratereport cards
Student
Class Diagram
Teacher Grades ReportCardmaintains > < contains
Teacher Grades p
^ displays
WebSite
uses >^ grants access to
^ generates
Administrator
SecurityStudent < uses
grants access to
y
uses > uses
Identify the elements
Domain Classes Control Classes Interface Class
:Teacher :Security :WebSite
Domain Classes
:Grades
y
:Database
:Student
2. Model the Relationships Between these Elements
:Teacher
:Securityuses >
<<local>>
:Student :Database:WebSite
uses >
uses >
<<local>>
<<local>>:Student :Database:WebSite
uses ><<parameter>>
:Grades
3. Model an Instance-Level Diagram
1:Logon(UID PWD)1.1:Validate(UID,PWD)1 2 [ ] Di l M ()
:SecurityWebSite:Teacher
1:Logon(UID,PWD)
2:[menu displayed] LoadStudent(Name)
1.2a:[pass] DisplayMenu()1.2b:[fail] Logout()
:SecurityWebSite:Teacher
: Student<<new>> :Database2.2:LoadStudentInfo(Name)
: Student<<new>>
:Grade