220 likes | 235 Views
System Sequence Diagrams. Recap. When to create SSD? How to identify classes/instances? Use case descriptions UML notations for SSD. Contents. Interaction diagrams UML notation Examples. Interaction Diagrams. Show how objects interact with one another
E N D
Recap • When to create SSD? • How to identify classes/instances? • Use case descriptions • UML notations for SSD
Contents • Interaction diagrams • UML notation • Examples
Interaction Diagrams • Show how objects interact with one another • UML supports two types of interaction diagrams • Sequence diagrams • Collaboration diagrams
Sequence Diagrams • AKA Interaction Diagrams – Semantically equivalent to Collaboration Diagrams • Dynamic Model relating use cases and class diagrams • Illustrates how objects interacts with each other • Shows time ordering of interactions • Generally a set of messages between collaborating objects • Ordering of objects not significant
Sequence Diagrams • Show only one flow of control • Can model simple sequential flow, branching, iteration, recursion and concurrency • May need multiple diagrams • Primary • Variant • Exceptions
UML sequence diagrams • sequence diagram: an "interaction diagram" that models a single scenario executing in the system • perhaps 2nd most used UML diagram (behind class diagram) • relation of UML diagrams to other exercises: • CRC cards -> class diagram • use cases -> sequence diagrams
Key parts of a sequence diag. • participant: an object or entity that acts in the sequence diagram • sequence diagram starts with an unattached "found message" arrow • message: communication between participant objects • the axes in a sequence diagram: • horizontal: which object/participant is acting • vertical: time (down -> forward in time)
Lifeline Sequence Diagram (Basic) Object : Class or Actor name Focus of Control/ Activation message Object Destruction/ Termination X <<create>> <<destroy>>
:Scheduler Student Sequence Diagram (Basic) aClass: Class Register adjustRoom checkRooms
*[Iteration Condition] recursion Sequence Diagrams (Advanced) Seq# [Guard] *[Iteration] Return-List := Operation-Name (Argument-List) Conditional Lifeline {transient}
Sequence Diagram(make a phone call) Caller Phone Recipient Picks up Dial tone Dial Ring notification Ring Picks up Hello
A Create B X Return Deletion Lifeline Sequence Diagrams – Object Life Spans • Creation • Create message • Object life starts at that point • Activation • Symbolized by rectangular stripes • Place on the lifeline where object is activated. • Rectangle also denotes when object is deactivated. • Deletion • Placing an ‘X’ on lifeline • Object’s life ends at that point Activation bar
Lifetime of objects • creation: arrow with 'new' written above it • notice that an object created after the start of the scenario appears lower than the others • deletion: an X at bottom of object's lifeline • Java doesn't explicitly delete objects; they fall out of scope and are garbage-collected
Representing objects • squares with object type, optionally preceded by object name and colon • write object's name if it clarifies the diagram • object's "life line" represented by dashed vert. line
Messages between objects • message (method call) indicated by horizontal arrow to other object • write message name and arguments above arrow
Messages between objects • dashed arrow back indicates return • different arrowheads for normal / concurrent (asynchronous) methods
Summary • SSD revision • Loops • Conditions in SSD