Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sequence Diagrams By Zvika Gutterman Adam Carmi. Sequence Diagrams2 Agenda Interaction Diagrams A First Look at Sequence Diagrams Objects Messages Control.

Similar presentations


Presentation on theme: "Sequence Diagrams By Zvika Gutterman Adam Carmi. Sequence Diagrams2 Agenda Interaction Diagrams A First Look at Sequence Diagrams Objects Messages Control."— Presentation transcript:

1 Sequence Diagrams By Zvika Gutterman Adam Carmi

2 Sequence Diagrams2 Agenda Interaction Diagrams A First Look at Sequence Diagrams Objects Messages Control Information Examples

3 Sequence Diagrams3 Interaction Diagrams A series of diagrams describing the dynamic behavior of an object-oriented system. –A set of messages exchanged among a set of objects within a context to accomplish a purpose. Often used to model the way a use case is realized through a sequence of messages between objects.

4 Sequence Diagrams4 Interaction Diagrams (Cont.) The purpose of Interaction diagrams is to: –Model interactions between objects –Assist in understanding how a system (a use case) actually works –Verify that a use case description can be supported by the existing classes –Identify responsibilities/operations and assign them to classes

5 Sequence Diagrams5 Interaction Diagrams (Cont.) UML –Collaboration Diagrams Emphasizes structural relations between objects –Sequence Diagram The subject of this tutorial

6 Sequence Diagrams6 A First Look at Sequence Diagrams Illustrates how objects interacts with each other. Emphasizes time ordering of messages. Can model simple sequential flow, branching, iteration, recursion and concurrency.

7 Sequence Diagrams7 A Sequence Diagram member: LibraryMember book:Book :Book Copy borrow(book) ok = mayBorrow() [ok] borrow(member) setTaken(member)

8 Sequence Diagrams8 A Sequence Diagram member: LibraryMember book:Book :Book Copy borrow(book) ok = mayBorrow() [ok] borrow(member) setTaken(member) X-Axis (objects) Y-Axis (time) Object Life Line message Activation box condition

9 Sequence Diagrams9 Object Object naming: –syntax: [instanceName][:className] –Name classes consistently with your class diagram (same classes). –Include instance names when objects are referred to in messages or when several objects of the same type exist in the diagram. The Life-Line represents the object’s life during the interaction myBirthdy :Date

10 Sequence Diagrams10 Messages An interaction between two objects is performed as a message sent from one object to another. –Most often implemented by a simple operation call. –Can be an actual message sent through some communication mechanism, either over the network or internally on a computer. Inter-process communication (Signaling, …) Remote Procedure Call (RMI, CORBA, …)

11 Sequence Diagrams11 Messages (Cont.) If object obj 1 sends a message to another object obj 2 some link must exist between those two objects: –Structural dependency –obj 2 is in the global scope of obj 1 –obj 2 is in the local scope of obj 1 (method argument) –obj 1 and obj 2 are the same object

12 Sequence Diagrams12 Messages (Cont.) A message is represented by an arrow between the life lines of two objects. –Self calls are also allowed –The time required by the receiver object to process the message is denoted by an activation-box. A message is labeled at minimum with the message name. –Arguments and control information (conditions, iteration) may be included. –Prefer using a brief textual description whenever an actor is the source or the target of a message.

13 Sequence Diagrams13 Message Types Synchronous Asynchronous Simple Create Destroy >

14 Sequence Diagrams14 Synchronous Messages Nested flow of control, typically implemented as an operation call. –The routine that handles the message is completed before the caller resumes execution. :A:B doYouUnderstand() Caller Blocked return (optional) yes

15 Sequence Diagrams15 Return Values Optionally indicated using a dashed arrow with a label indicating the return value. –Don’t model a return value when it is obvious what is being returned, e.g. getTotal() –Model a return value only when you need to refer to it elsewhere, e.g. as a parameter passed in another message. –Prefer modeling return values as part of a method invocation, e.g. ok = isValid()

16 Sequence Diagrams16 Object Creation An object may create another object via a > message. :A:B > Constructor :A > :B Preferred

17 Sequence Diagrams17 Object Destruction An object may destroy another object via a > message. –An object may destroy itself. –Avoid modeling object destruction unless memory management is critical. :A:B >

18 Sequence Diagrams18 Asynchronous Messages Used for modeling concurrent systems. Caller does not wait for the message to be handled before it continues to execute. –As if the call returns immediately Active objects own an execution thread and can initiate control activity. An asynchronous message can: –Create a new thread (a new activation record) –Create a new object –Communicate with a thread that is already running.

19 Sequence Diagrams19 Control information Condition –syntax: ‘[‘ expression ’]’ message-label –The message is sent only if the condition is true –example: Iteration –syntax: * [ ‘[‘ expression ‘]’ ] message-label –The message is sent many times to possibly multiple receiver objects. [ok] borrow(member)

20 Sequence Diagrams20 Control Information (Cont.) Iteration examples: : Driver *[until full] insert() :Bus The syntax of expressions is not a standard : CompoundShape : Shape *draw() draw()

21 Sequence Diagrams21 Control Information (Cont.) The control mechanisms of sequence diagrams suffice only for modeling simple alternatives. –Consider drawing several diagrams for modeling complex scenarios. –Don’t use sequence diagrams for detailed modeling of algorithms (this is better done using activity diagrams, pseudo-code or state- charts).

22 Sequence Diagrams22 getViolation(id) Example 1 Clerk :Violations Dialog :Violations Controller :Violations DBProxy lookup viewButton() id=getID() v:Traffic Violation display(v) > v Lookup Traffic Violation May be a pseudo- method DB is queried and the result is returned as an object

23 Sequence Diagrams23 print(doc,client) Example 2 Client :PrintServer:Queue :Printer Proxy enqueue(job) status Printing A Document job=dequeue() [job]print(job.doc) [job] done(status) Repeated forever with 1 min interludes Active object

24 Sequence Diagrams24 Example 3 Publishing protocol in the Observer pattern Observer Pattern Class Diagram - reminder

25 Sequence Diagrams25 Example 3 Sequence Diagram Publishing protocol in the Observer pattern


Download ppt "Sequence Diagrams By Zvika Gutterman Adam Carmi. Sequence Diagrams2 Agenda Interaction Diagrams A First Look at Sequence Diagrams Objects Messages Control."

Similar presentations


Ads by Google