1 / 14

Sequence diagram

Sequence diagram. M Taimoor Khan taimoorkhan@ciit-attock.edu.pk. Sequence Diagrams. Illustrates how objects interacts with each other. Emphasizes time ordering of messages. Can model simple sequential flow, branching, iteration, recursion and concurrency. book:Book. :Book Copy.

hateya
Télécharger la présentation

Sequence diagram

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sequence diagram M Taimoor Khan taimoorkhan@ciit-attock.edu.pk

  2. Sequence Diagrams • Illustrates how objects interacts with each other. • Emphasizes time ordering of messages. • Can model simple sequential flow, branching, iteration, recursion and concurrency. Sequence Diagrams

  3. book:Book :BookCopy borrow(book) ok = mayBorrow() setTaken(member) A Sequence Diagram member:LibraryMember [ok] borrow(member) Sequence Diagrams

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

  5. myBirthdy:Date Object • Object naming: • syntax: [instanceName][:className] • Name classes consistently with your class diagram • Include instance names when objects are referred to in messages • The Life-Line represents the object’s life during the interaction Sequence Diagrams

  6. Messages • An interaction between two objects is performed as a message sent from one object to another • If object obj1 sends a message to another object obj2 some link must exist between those two objects Sequence Diagrams

  7. 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. Sequence Diagrams

  8. 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() Sequence Diagrams

  9. 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() return (optional) Caller Blocked yes Sequence Diagrams

  10. :A :B <<create>> Constructor Object Creation • An object may create another object via a <<create>> message. Preferred :A <<create>> :B Sequence Diagrams

  11. :A :B <<destroy>> Object Destruction • An object may destroy another object via a <<destroy>> message. • An object may destroy itself. • Avoid modeling object destruction unless memory management is critical. Sequence Diagrams

  12. [ok] borrow(member) 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. Sequence Diagrams

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

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

More Related