8. Collaboration Diagrams.pdf

32
Collaboration Diagrams Collaboration Diagrams Dumitru Radoiu Dumitru Radoiu Spring 2009 PETRU MAIOR UNIVERSITY

Transcript of 8. Collaboration Diagrams.pdf

Page 1: 8. Collaboration Diagrams.pdf

Collaboration DiagramsCollaboration Diagrams

Dumitru RadoiuDumitru RadoiuSpring 2009

PETRU MAIOR UNIVERSITY

Page 2: 8. Collaboration Diagrams.pdf

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

Page 3: 8. Collaboration Diagrams.pdf

Use Case Model

diagnose car

Mechanicfix car

drive car Car owner

Page 4: 8. Collaboration Diagrams.pdf

Use case

di

Mechanic

diagnose car

Page 5: 8. Collaboration Diagrams.pdf

High Level Class Diagram

[talk]

Mechanic

Diagnosis Car

:Diagnosis0..1 1:Diagnosis

:Mechanic

1

0..1

uses> diagnosis>

:Car0..1

1fixes>

Page 6: 8. Collaboration Diagrams.pdf

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

Page 7: 8. Collaboration Diagrams.pdf

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

Page 8: 8. Collaboration Diagrams.pdf

Sequence Diagram

[talk]

Mechanic

Diagnosis Car

[talk]

Mechanic

Mechanic

Diagnosis Car

Turn OnTurn On

Set to checkDiagnose

Fix the problem

Turn Off

Turn Off

Page 9: 8. Collaboration Diagrams.pdf

Agenda 

• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams

• Notation

• Different Types of Messages

• Model a Collaboration Diagram: Case Study

Page 10: 8. Collaboration Diagrams.pdf

High Level Class Diagram

:Diagnosis0..1 1

uses>diagnosis>

:Car:Mechanic

1 0..1

:Mechanic 0..11 fixes>

Page 11: 8. Collaboration Diagrams.pdf

Sequence Diagram

Mechanic

Diagnosis Car

Turn OnMechanic Turn On

Set to checkDiagnose

Fix the problem

Turn OffTurn Off

Turn Off

Page 12: 8. Collaboration Diagrams.pdf

Collaboration Diagram

:Diagnosis

:Car:Mechanic

4: Diagnose()

:Mechanic

Page 13: 8. Collaboration Diagrams.pdf

Agenda 

• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams

• Notation

• Different Types of Messages

• Model a Collaboration Diagram: Case Study

Page 14: 8. Collaboration Diagrams.pdf

Notation

Object

Object : Class

:Class

Page 15: 8. Collaboration Diagrams.pdf

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

Page 16: 8. Collaboration Diagrams.pdf

…to depict relationships between objects

:InventoryApplocation:Location

<<local>><<parameter>>

con:DatabaseConnection

InventoryApp has a <<local>> variable which accepts a <<parameter>>, a location instance

Page 17: 8. Collaboration Diagrams.pdf

Agenda 

• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams

• Notation

• Different Types of Messages

• Model a Collaboration Diagram: Case Study

Page 18: 8. Collaboration Diagrams.pdf

Message types

:Compiler :FileSystemLoad(File)

Synchronous

:Compiler :LinkerLink(ProgramName,Options)

(wait)

Asynchronousy(continue)

:DialogOne

Flat(unimportant)

:Mechanic

g

(unimportant)

:DialogTwo

Page 19: 8. Collaboration Diagrams.pdf

Message Sequencing

:Compiler :FileSystem1:Message1

ge2

2:M

essa

g

Mes

sage

4

:Compiler :Linker3:Message3

4:M

:Compiler

Page 20: 8. Collaboration Diagrams.pdf

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

Page 21: 8. Collaboration Diagrams.pdf

Guard Conditions

1:Compile(Project)

:FileSystem

1:Compile(Project)

3a:NotifyOfSuccess

[Project Loaded]

:Compiler:Editor

:ErrorDialog

Page 22: 8. Collaboration Diagrams.pdf

Creating Instances

:ObjectA :ObjectB<<new>>Constructor

<<create>>

G di S : Student<<new>>1:CreateStudent (Name)

<<create>>

:GradingSystem : Student<<new>>

Page 23: 8. Collaboration Diagrams.pdf

Iterations (repeating processes)

:ObjectA:ObjectB1.* Message

*

1.* Message

:Student:ObjectB

*

Page 24: 8. Collaboration Diagrams.pdf

Iterations (repeating processes)

Loop through each grade

Calculate GPA

1.* [1..N]: GPA+=Grade[ ]

2: GPA=GPA/Count(Grades)

:Student:Grade

*

Page 25: 8. Collaboration Diagrams.pdf

Agenda 

• Why We Model Collaboration Diagrams• Why We Model Collaboration Diagrams

• Notation

• Different Types of Messages

• Model a Collaboration Diagram: Case Study

Page 26: 8. Collaboration Diagrams.pdf

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

Page 27: 8. Collaboration Diagrams.pdf

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

Page 28: 8. Collaboration Diagrams.pdf

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

Page 29: 8. Collaboration Diagrams.pdf

Identify the elements

Domain Classes Control Classes Interface Class

:Teacher :Security :WebSite

Domain Classes

:Grades

y

:Database

:Student

Page 30: 8. Collaboration Diagrams.pdf

2. Model the Relationships Between these Elements

:Teacher

:Securityuses >

<<local>>

:Student :Database:WebSite

uses >

uses >

<<local>>

<<local>>:Student :Database:WebSite

uses ><<parameter>>

:Grades

Page 31: 8. Collaboration Diagrams.pdf

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

Page 32: 8. Collaboration Diagrams.pdf