Docstoc

Communication Diagram

Document Sample
Communication Diagram Powered By Docstoc
					Communication Diagram
    Communication diagram
• Also called “Collaboration diagram” in
  previous versions of UML
• A part of interaction view that explains
  interactions between objects with context
  information
  – Context in this case is implied by links
    (instantiations of associations) and sequences of
    message passing
• A communication diagram includes objects
  and their interactions
  – A subset of objects taken from the class diagram
    to illustrate a particular scenario

                       C-S 446/546                      2
Communication diagram –
    basic syntax Instances of
                    associations

                 1: Op1 (params)
Obj1 : Class A                               : Class B
                             2 : return
                 5 : ret := Op3()




                                                   3 : stimulus
                   4 : Op2 (params)




                            Obj2 : Class A




                             C-S 446/546                          3
   Communication diagram -
        semantics
• Objects and links (instances of associations)
  are chosen from the class diagram
• Messages, stimuli and return arrows are
  drawn parallel to the links, with each
  message/stimulus having a unique label
  – Generally, numeric labels are preferred to show
    the ordering of these message communications
• There can be as many messages, stimuli and
  return arrows on top of a link but their labels
  indicate when these communications take
  place
                      C-S 446/546                     4
    Communication diagram –
     semantics (continued)
• The return value for a message can be
  shown
  – on a separate return arrow (see the return
    arrow labeled ‘2’) or
  – on the message itself (see the message arrow
    labeled ‘5’)
     • the return value in this case is filled after the
       message communication is completed
• Labels for interactions can be chosen as
  1,2,3,… or 1, 1.1, 1.1.1, 1.2, 1.2.1, 1.3, …
                          C-S 446/546                      5
            Conditions and iterations -
                     syntax
                         1: *[x=1..10] Op1 (x)
        Obj1 : Class A                                   : Class B
                                         2 : return
                             5 : ret := Op3()




                                                              stimulus
                                                              [condition]
                                                              3:
                         4 : [for each x] Op2 (x)
                                                                            condition


iteration                               Obj2 : Class A




                                         C-S 446/546                             6
    Conditions and iterations -
            semantics
• When an iteration is specified in a
  message/stimulus, the message/stimulus is
  repeated as many times as indicated in the
  iteration
  – All the subordinate messages/stimuli are also
    exercised in the iteration
  – Example: iteration specified on a message labeled ‘4’.
    This indicates iterations on ‘4’, ‘4.1’, ‘4.1.1’, ‘4.2’ until
    the next label ‘5’ is seen
• Conditions may specify timing relationships


                           C-S 446/546                          7
                                                                                                               2.1.1: result :=
                                                                                                               checkPrereqs(prereqs)
                                                :Student          1: confirm := isSeatAvailable()
5 : change := pay (student#, course#, amount)




                                                     2:request := register (student#, prereqs)


                                                                                                         :Course
                                                            :Registrar        2.1: confirm :=
                                                                              registerThis (student#,
                                                                                                               2.1.2: [result = true]
                                                                              prereqs)
                                                                                                               updateEnrolment(student#)

                                                4: requestPayment (student#, course#, amount)


                                                                   :Account             3: [confirm = true] initiatePayment
                                                                                        (student#, course#)




                                                 Course registration system – registration scenario
                                                                                    C-S 446/546                                            8
  Scenario: ATM Transactions – Deposit, Withdraw Normal



                      5: finishTransactions()
                                                                            4.1: decrease balance
                      4: [amt2 <= balance] withdraw (amt2)                  (amt2)
                      3: deposit (amt1)                                     3.1: increase balance
                      2: amt := returnBalance ()                            (amt1)

                                                                : Account
: Customer
                                                             {new}{destroy}

                                                                        1.1 : Account (act#,bal)
        1: confirm := retrieve (act#)                                   {new}
                                                                        5.1 : updateAccount
                                : Accounts                              (act#, balance)
                                 Database
                                                               5.2 : ~Account (act#) {destroy}

                                        C-S 446/546                                         9
               Observations
• The keyword “{new}” shown on an object
  indicates that the object is created during this
  scenario
• The keyword “{destroy}” shown on an object
  indicates that the object is destroyed during this
  scenario
• The keyword “{new}” shown on a message /
  stimulus indicates that this message / stimulus is
  responsible for creating the object
• The keyword “{destroy}” shown on a message /
  stimulus indicates that this message / stimulus is
  responsible to destroy the object

                       C-S 446/546                     10
                Exercise
• Draw the communication diagram for
  – Inventory example
  – Job posting example




                    C-S 446/546        11

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:7/17/2013
language:English
pages:11
Lingjuan Ma Lingjuan Ma
About