Interaction Diagrams

Interactions
Introduction
• Objects communicate with each other by sending
messages. Sending a message is another name for
a member function call.
– Some C++ examples of member function calls ...
• objectName.messageName( );
• objectPointer->messageName( );
• (*objectPointer).messageName( );
• An interaction is a set of messages exchanged
among a set of objects in order to accomplish a
specific goal.
2
Introduction
• Interactions model the dynamic aspects of a
system by showing the message traffic between a
group of objects.
• Showing the time-ordering of the message traffic
is a central ingredient of interactions.
• Graphically, a message is represented as a directed
line that is labeled.
3
Introduction
4
Terms and Concepts
• Context
– Interactions appear whenever an object is linked to
another object.
• Links
– A link is an instance of an association.
– Links must exist for interactions to occur.
– The multiplicity on both ends of a link is 1, since it is
an instance of an association.
5
Links and Associations
6
Terms and Concepts
• Messages
– A message is the vehicle by which communication
between objects is achieved.
– A call is the most common type of message.
– The return of data as a result of a function call is also
considered a message.
– A message may result in a change of state for the
receiver of the message.
– The receipt of a message is considered an instance of an
event.
7
Sequence Diagram
8
Terms and Concepts
• Sequencing
– A sequence of messages is rooted in some process,
thread or hardware event.
– A sequence will continue as long as the process that
started it lives.
– Messages in sequence are ordered by time.
9
Terms and Concepts
• Creation, Modification, and Destruction
– There are three predefined stereotypes that can adorn an
interaction for purposes of showing the life span of a
link or, more commonly, the life span of an object
participating in the link.
• <<new>> -- interaction results in the creation of a new object.
• <<destroyed>> -- interaction results in the destruction of an
existing object.
• <<transient>> -- link will be destroyed before the completion
of the interaction.
10
Terms and Concepts
• Representation
– Interactions are be modeled using interaction diagrams.
– There are two types of interaction diagrams.
• Sequence diagrams emphasize the time ordering of the
interactions.
• Collaboration diagrams emphasize the structural organization
of the objects participating in interactions.
– Both types convey the same information, but with a
different emphasis.
– The type of diagram used is largely a matter of
personnel preference.
11
Common Modeling Techniques
• It is impossible to model all possible interactions
within a system.
• Only model those interactions that are interesting
or shed light on important aspects of the system.
• A system of even modest complexity may require
several interaction diagrams.
• It does not matter whether you use interaction or
collaboration diagrams to model interactions.
12
Sequence / Collaboration Diagram
Comparison
13
Sequence / Collaboration Diagram
Comparison
14
Interaction Diagrams
Introduction
• Interaction diagrams ...
– Are used to model the dynamic aspects of a system.
– Aid the developer visualize the system as it is running.
– Are storyboards of selected sequences of message
traffic between objects.
• After class diagrams, interaction diagrams are the
most widely used diagrams in UML.
• Interaction diagrams commonly contain objects,
links and messages.
16
Introduction
• There are two types of interaction diagrams …
– Sequence diagrams emphasize the time ordering of
message traffic between objects.
– Collaboration diagrams emphasize the structural
relationships between objects that send and receive
messages.
• Both types of diagrams are semantically
equivalent and can easily be converted from one
format to the other.
– See figure 18-1, page 245.
17
Sequence Diagrams
• Sequence diagrams are build around an X-Y axis.
– Objects are aligned (in most cases) at the top of the
diagram, parallel to the X axis.
– Messages travel (in most cases) parallel to the X axis.
– Time passes from top to bottom along the Y axis.
– Where a message arrow appears relative to the Y axis
and other message arrows, determines the relative time
the message is sent.
– Sequence diagrams most commonly show relative
timings, not absolute timings.
– Links between objects are implied by the existence of a
message.
18
Sequence Diagrams
19
Collaboration Diagrams
• A collaboration diagram is a graph where the
objects (vertices) are connected by links (arcs).
• Each link is adorned with the relevant message
traffic that can travel across the link.
• Each message is assigned a sequence number to
show the time order of the message.
– The sequence number may be prefixed with an
expression to show iteration.
20
Collaboration Diagrams
21
Modeling Control Flow by Time
• Determine what scenarios need to be modeled.
• Identify the objects that play a role in the scenario.
• Lay the objects out in a sequence diagram left to
right, with the most important objects to the left.
– Most important in this context means objects that are
the principle initiators of events.
• Draw in the message arrows, top to bottom.
– Adorn the message as needed with detailed timing
information.
22
Modeling Control Flow by Time
23
Modeling Control Flow by Organization
• Determine what scenarios need to be modeled,
then identify the objects that play a role in the
scenario.
• Place the most important objects in the center of
the diagram.
• Place links between the appropriate objects.
• Draw message arrows next to the appropriate
links.
• Number the message arrows to show time
ordering of messages.
24
Modeling Control Flow by Organization
25