Lecture 5 SequesnceDiagram
Lecture 5 SequesnceDiagram
2
Sequence Diagram Frames
Frame—a rectangle with a pentagon in the upper
left-hand corner called the name compartment.
sd interactionIdentifier
interactionIdentifier is either a simple name or an
operation specification as in a class diagram
3
Lifelines
Participating individuals are arrayed across the
diagram as lifelines:
Rectangle containing an identifier
Dashed line extending down the page
The vertical dimension represents time; the dashed
line shows the period when an individual exists.
4
Lifeline Creation and Destruction
5
Lifelines Example
sd UseComponent
client supplier
create
:Component
destroy
X
6
Lifeline Identifier Format
name[ selector ] : typeName
7
Lifeline Identifier Examples
player[i] : Player
player[i]
: Player
board
8
Self
Used when the interaction is “owned” by one of the
interacting individuals
sd delete( item : ItemIdentifier )
get(item)
remove(item)
destroy
X
9
Messages and Message Arrows
Synchronous—The sender
suspends execution until
the message is complete
Asynchronous—The
sender continues
execution after sending
the message
Synchronous message
return or instance creation
10
Message Arrow Example
sd FindItem
client searcher
find(description)
foundMatch(description)
fetch(description)
clone(item)
result
11
Message Specification Format
variable = name argumentList
variable—name of variable assigned a result
Optional; if omitted, so is the equals sign
12
Message Specification Examples
hello
hello()
msg = getMessage( helloMessage )
x = sin( a/2 )
x = sin( angle = a/2 )
trim( result = aString )
Note that assigning a value to a parameter and
assigning a returned value to a variable cannot be
distinguished.
13
Execution Occurrences
An operation is executing when some process is
running its code.
An operation is suspended when it sends a
synchronous message and is waiting for it to
return.
An operation is active when it is executing or
suspended.
The period when an object is active can be shown
using an execution occurrence.
Thin white or grey rectangle over lifeline dashed line
14
Execution Occurrence Example
sd ButtonPress
press
actionPerformed(event)
toggle
getState()
15
Sequence Diagram Heuristics 1
Put the sender of the first message leftmost.
Put pairs of individuals that interact heavily next to
one another.
Position individuals to make message arrows as short
as possible.
Position individuals to make message arrows go from
left to right.
16
Sequence Diagram Heuristics 2
Put the self lifeline leftmost.
In a sequence diagram modeling an operation
interaction, draw the self execution occurrence from
the top to the bottom of the diagram.
Name individuals only if they are message arguments
or are used in expressions.
17
Sequence Diagram Heuristics 3
Choose a level of abstraction for the sequence
diagram.
Suppress messages individuals send to themselves
unless they generate messages to other individuals.
Suppress return arrows when using execution
occurrences.
Don’t assign values to message parameters by
name.
18
Using Sequence Diagrams
Sequence diagrams are useful for modeling
Interactions in mid-level design;
The interaction between a product and its environment
(called system sequence diagrams);
Interactions between system components in
architectural design.
Sequence diagrams can be used as (partial) use
case descriptions.
19
ELEMENTS
The reference numbers on the
figure denotes:
1. Object lifeline
2. Message/Stimulus
3. Iteration
4. Self-reference
5. Return
6. Anonymous object
7. Object name
8. Sequence number
9. Condition
10. Basic comment
20
Elements (extended)
1. Activation:
The start of the vertical
rectangle, the activation bar
2. Deactivation:
The end of the vertical
rectangle, the activation bar
3. Timeout event:
Typically signified by a full
arrowhead with a small clock
face or circle on the line
4. Asynchronous event:
Typically signified by a stick
arrowhead
5. Object termination
symbolized by an X
21
-: EXAMPLES :-
22
On-Line Stockbroker
– Use Cases for Stock Purchase
Successful purchase
customer
Unsuccessful purchase attempt
23
On-Line Stockbroker Scenarios
24
Description of Scenario 1
User logs in
Selects the stock he wishes to purchase
Specifies how much stock he wants to buy
Specifies the limits on the price he is willing to pay
Places order
System responds with details of successful purchase
25
Class Diagram
People Web Interfaced Computer System
Customer
Stockbroker System SecuritiesExchange
26
Sequence Diagram for Stock Purchase
27
Description of Scenario 2:
Un-successful purchase of stock – inadequate funds available
1. User logs in
2. Select stock he wishes to purchase
3. Specifies how much stock he wants to buy
4. Specifies limits on the price he is willing to pay
5. Place order
6. Order rejected due to lack of funds
7. Delete order
28
Un-successful purchase of stock – inadequate funds available
29
Electric Kettle Design Scenario 1
kettle boils after cut out due to no water
User
Boils water
30
Scenario 1: Boil Water but – no water
31
Develop relevant Class Diagrams
We need switch, water, heating element, cut-out
temperature Provides
Cut-out temperature heat to
Cut-out
reset
32
We need Water and Switch
liquid
Boiling point
Latent heat of vaporisation
boiling
Switch
Water State = [ On or Off]
33
Sequence Diagram for Scenario 1
User
{Loop until cut-out
Switch on Activate or boils}heat
{loop} update
temperature
{Loop} update
temperature
Check cut-out
temperature
34
Update Scenario 1: Boil Water but – no water
User turns on switch
Water heats up and boils
Element overheats and cuts out
35