What is Collaboration? • In object-oriented systems:

What is Collaboration?
• In object-oriented systems:
– individual objects are responsible for only a bit of
overall functionality
– useful high-level behaviour (use cases) realized by
objects working together
– objects interact by sending messages to each other
• Collaboration is: “working together for the
purpose of providing some useful behaviour”
– documented by collaboration diagrams
BK - Spring 2006
ATM Case Study:
Withdrawal Use-Case Realization
Withdraw
Cash
ATMCustomer
Withdraw Cash:
The ATM customer selects the withdrawal menu, which is
displayed by the system. The card holder selects an
amount of cash. The system debits the user’s account,
returns the user’s card and issues the requested money.
BK - Spring 2006
ATM Case Study:
Identifying Collaborating Classes
The dashed line indicates
that this class participates in
the collaboration
Collaboration
icon
Withdraw
cash
ATMUI
CardHolder
BK - Spring 2006
Debit
Account
CashDispenser
UML Collaboration Diagrams
• Collaboration diagrams involve:
– Objects: instances of classes
– Links: instances of associations
– Actors: things/people interacting with the system
• A collaboration will also usually show:
– Interactions: the sequence of messages passing between objects
BK - Spring 2006
UML Notation for Objects
An object
named
user391
An anonymous
object of class
CardHolder
user391
:CardHolder
user391:CardHolder
An object named
user391 of class
CardHolder
BK - Spring 2006
Objects are notated
rather like classes,
but attributes and
operations are
omitted
UML Notation for Links
Links drawn as for
associations.
Links may have
multiplicities
:Account
1
0..*
:Debit
user391
Links are instances of
associations in the class
model
Links represent message
passing between
collaborating objects
BK - Spring 2006
ATM Case Study:
Classes Involved in the Use Case
ATMUI
CashDispenser
CardHolder
Account
Debit
BK - Spring 2006
Portion of the class
model involved in
realizing the
Withdraw Cash use
case.
ATM Case Study:
Withdrawal Collaboration Diagram
:ATMUI
:CardHolder
:ATMCustomer
Tentative collaboration
diagram for Withdraw Cash
use.
Note the structural similarity
to the class model shown
previously.
BK - Spring 2006
:CashDispenser
:Account
:Debit
Collaboration and Interaction
• Individual objects have local responsibilities:
– For data
– For behaviour
• Objects interact to achieve global behaviours:
– Use case realization
• Collaboration diagrams show interaction through:
– Structural relationship: objects and links
– Interaction: messages flowing along links
BK - Spring 2006
UML Notation for Interactions
Message number
Message name
7: get balance()
:CardHolder
Messages are sent between
objects along the links.
BK - Spring 2006
:Account
Message flow has
direction of arrow
ATM Case Study:
Collaboration with Interaction
1:select withdrawal menu
2:select amount
3:withdraw sum
:ATMUI
:ATMCustomer
Collaboration diagram
with interactions
realizing the Withdraw
Cash use case
:CardHolder
6:dispense sum
:CashDispenser
4:debit
account
:Account
5:add
debit
:Debit
BK - Spring 2006
Summary
• Individual objects are responsible for small pieces of
behaviour
• High-level functionality is achieved through object
collaboration
• UML Collaboration Diagrams show:
– Participating objects and links between objects
– Interactions (messages sent between objects).
• Stereotypes provide a mechanism for distinguishing
between different sorts of object.
BK - Spring 2006