250 likes | 266 Views
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( );
E N D
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.