Upload
apu
View
4.434
Download
2
Tags:
Embed Size (px)
Citation preview
Slide 1Object-Oriented Software Systems Engineering – Chapter 7
Sequence and Collaboration Diagrams
Chapter 7
Slide 2Object-Oriented Software Systems Engineering – Chapter 7
Objectives
In this chapter we will: Review the different dynamic modelling
techniques Discuss different types of messages Discuss different types of events Introduce sequence and collaboration diagrams
Slide 3Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling
Dynamics of a systemhow objects communicate and the effects of such
communicationhow objects collaborate through communication and how
objects change state
Dynamics of a system is described by four diagramsState SequenceCollaboration Activity
Interactioncommunication between objects in order to generate some
functiondescribed in sequence, collaboration and activity diagrams
Slide 4Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling diagrams
State diagram -describeswhich states an object can have
behaviour in those states
what events cause the state to change
Sequence diagram - describes how objects interact and communicate with each other
primary focus is time
shows how a sequence of messages are sent and received between a set of objects in order to perform some function
Slide 5Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling diagrams
Collaboration diagram - describes how objects interact
focus is on space - relationships between objects are shown
Activity diagram - describes activities and their order - another way of showing interactions
focus on work - when objects interact they also perform work in terms of activities
Slide 6Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling - Messages
Messagea communication between objects that conveys
information has a sender and recipientis represented as an arrow denoting flow of control
Slide 7Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling - Messages
Types of messagessimple
flat flow of control - control is passed without describing any details
synchronousnested flow of control - operation call
handling of the message is completed before the caller resumes execution
asynchronousthere is no explicit return to the caller
the sender continues to execute after sending the message without waiting for it to be handled
Slide 8Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling
Use cases are elaborated in two stagesExpand the use-cases into sequence diagramsUse the sequence diagrams to produce finite state
machines
Slide 9Object-Oriented Software Systems Engineering – Chapter 7
Events
Kinds of eventsreceipt of a call on an operation by another object
( message) the signal itself is an object-shown as an event-signature
on state transitionsreceipt of an explicit signal from another object
(message) the signal itself is an object- also shown as an event-
signature on state transitionsa condition becoming true
shown as a guard conditionpassage of a designed period of time
shown as a time expression
Slide 10Object-Oriented Software Systems Engineering – Chapter 7
Events
Basic semantics about event labeled transitions events are triggers that activate state transitionsif an event can activate more then one transition only one
will be triggeredif en event occurs and guard is false then the event is
ignored (events are not stored)
Slide 11Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling-Sequence Diagram
:Object A :Object B
:Actor A
destructor()
return
Objects lifeline
Asynchronous
messge
Focus of control
Synchronous
message
Simple message
XObject is destroyed
Slide 12Object-Oriented Software Systems Engineering – Chapter 7
Sequence Diagram
Conditional branch
: A : B : C
[ x>0 ] doM()
[ x<=0 doN()]
*dialDigit(d)
: A : B
Loop
Slide 13Object-Oriented Software Systems Engineering – Chapter 7
Sequence Diagram
To support conditional and looping constructs, the UML uses frames. Frames are regions or fragments of the diagrams; they have an operator or label (such as loop) and a guard (conditional clause).
The following table summarizes some common frame operators:
Frame Operator Meaning
alt Alternative fragment for mutual exclusion conditional logic expressed in the guards.
loop Loop fragment while guard is true.
opt Optional fragment that executes if guard is true.
par Parallel fragments that execute in parallel.
region Critical region within which only one thread can run.
Slide 14Object-Oriented Software Systems Engineering – Chapter 7
Sequence Diagram Example
:floor panel
<<boundary>>
:ElevatorControl
<<control>>:floorSensor
<<boundary>>
:Elevator
Person on floor
Call(floorNumber)
moveUp(floorNumber)
arriveAt(floorNumber)
stop()
state moving up
state idle
state idle
Slide 15Object-Oriented Software Systems Engineering – Chapter 7
Sequence Diagram Example
:floor panel
<<boundary>>
:ElevatorControl
<<control>>:floorSensor
<<boundary>>
:Elevator
Person on floor
Call(floorNumber)
moveDown(floorNumber)
arriveAt(floorNumber)
stop()
state moving down
state idle
state idle
Slide 16Object-Oriented Software Systems Engineering – Chapter 7
Sequence Diagram Example
:ElevatorControl
<<control>>:floorSensor
<<boundary>>
:Elevator
[timer=time_out]/moveDown(firstfloor)
arriveAt(firstfloor)
stop()
state moving down to first floor
state on first floor
state idle
Slide 17Object-Oriented Software Systems Engineering – Chapter 7
Dynamic Modelling - Collaboration Diagram
Show:network of collaborating objects
interactions - how messages are sent between objects
Used to illustrate execution ofa use casean operation
Focus on time
Slide 18Object-Oriented Software Systems Engineering – Chapter 7
Collaboration Diagram
: Queue
: Computer : PrintServer
: Printer
: User
2: print( file)
5: printing
3: print( file )
4: printing
1: print( file )6: printing
Slide 19Object-Oriented Software Systems Engineering – Chapter 7
Collaboration Diagram
: Queue
: Computer : PrintServer
: Printer
: User
2: print( file)
5: wait
3: store( file ) 4: stored1: print( file )6: wait
Slide 20Object-Oriented Software Systems Engineering – Chapter 7
Collaboration Diagram for ElevatorControl
On further investigation ElevatorControl may need to be expanded into more classes
revisit sequence diagrams!
:Organiser:Queue
:Order
:Dispatcher
1: Call floor(number)1.1: *[all queues]:len=length(){return shortest}
1.2:Create()parameter
1.3:Invoke(job){join queue}
2: nextjob=get()
:ElevatorControl
Active object
own thread
of control
Slide 21Object-Oriented Software Systems Engineering – Chapter 7
More about Interaction Diagrams
Different developers have different preferencestime-ordering or spatial
Interaction diagrams are good at showing collaboration between objects
They are not good at precise definition of the behaviour
They are at their best when the behaviour is simple To capture complex behaviour in a single diagram
use an activity diagram To look at the behaviour of a single object across
many use cases use a state diagram many use cases or many threads use an activity diagram
Slide 22Object-Oriented Software Systems Engineering – Chapter 7
Summary
In this chapter we have: Reviewed the different dynamic modelling
techniques Discussed different types of messages Discussed different types of events Introduced sequence and collaboration diagrams