25
Interactions

Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

Embed Size (px)

Citation preview

Page 1: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

Interactions

Page 2: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

2

• 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.

Introduction

Page 3: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

3

• 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.

Introduction

Page 4: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

4

Introduction

Page 5: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

5

• 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.

Terms and Concepts

Page 6: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

6

Links and Associations

Page 7: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

7

• 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.

Terms and Concepts

Page 8: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

8

Sequence Diagram

Page 9: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

9

• 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.

Terms and Concepts

Page 10: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

10

• 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.

Terms and Concepts

Page 11: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

11

• 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.

Terms and Concepts

Page 12: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

12

• 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.

Common Modeling Techniques

Page 13: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

13

Sequence / Collaboration Diagram Comparison

Page 14: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

14

Sequence / Collaboration Diagram Comparison

Page 15: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

Interaction Diagrams

Page 16: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

16

• 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.

Introduction

Page 17: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

17

• 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.

Introduction

Page 18: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

18

• 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.

Sequence Diagrams

Page 19: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

19

Sequence Diagrams

Page 20: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

20

• 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.

Collaboration Diagrams

Page 21: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

21

Collaboration Diagrams

Page 22: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

22

• 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.

Modeling Control Flow by Time

Page 23: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

23

Modeling Control Flow by Time

Page 24: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

24

• 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.

Modeling Control Flow by Organization

Page 25: Interactions. 2 Objects communicate with each other by sending messages. Sending a message is another name for a member function call. –Some C++ examples

25

Modeling Control Flow by Organization