sequence diagram. uml diagrams there are many ways of organizing the uml diagrams. can be organized...
TRANSCRIPT
SEQUENCE DIAGRAM
UML diagrams
There are many ways of organizing the UML diagrams. Can be organized as the fallowing:
1. Structural diagrams: to show the building blocks of your system—features that don’t
change with time. Ex: Class diagram
2. Behavioral diagrams: to show how your system responds to requests or otherwise
evolves over time. Ex: Use case diagram
3. Interaction diagrams: Is a type of behavioral diagram. to depict the exchange of messages within a collaboration (a
group of cooperating objects). Ex: Sequence diagram & Collaboration diagram
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.
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
Interaction Diagrams
UML Collaboration Diagrams
Emphasizes structural relations between objects
Sequence Diagram The subject of this lecture
Sequence Diagrams
Illustrates how objects interacts with each other.
Emphasizes time ordering of messages. Can model simple sequential flow,
branching, iteration, recursion and concurrency.
UML sequence diagrams
Used during requirements analysis To refine use case
descriptions to find additional
objects (“participating objects”)
Used during system design to refine subsystem
interfaces Classes are represented by
columns Messages are represented
by arrows Activations are
represented by narrow rectangles
Lifelines are represented by dashed lines
selectZone()
pickupChange()
pickUpTicket()
insertCoins()
PassengerTicketMachine
Nested messages
The source of an arrow indicates the activation which sent the message
An activation is as long as all nested activations
Horizontal dashed arrows indicate data flow
Vertical dashed lines indicate lifelines
selectZone()
PassengerZone Selection F. TarifSchedule Display
lookupPrice(selection)
displayPrice(price)price
Dataflow
…to be continued...
Iteration & condition
Iteration is denoted by a * preceding the message name Condition is denoted by boolean expression in [ ] before the message
name
PassengerChangeProcessor
insertChange(coin)
CoinIdentifier Display CoinDrop
displayPrice ( billed Amount)
lookupCoin(coin)
price
[billed Amount<0] returnChange(-billedAmount)
Iteration
Condition…to be continued...
…continued from previous slide...
*
Creation and destruction
Creation is denoted by a message arrow pointing to the object.
Destruction is denoted by an X mark at the end of the destruction activation.
In garbage collection environments, destruction can be used to denote the end of the useful life of an object.
PassengerChangeProcessor
…continued from previous slide...
Ticket
createTicket(selection)
free()
Creation
Destruction
print()
Software Design (UML)
Sequence Diagram
An object in a sequence diagram is rendered
as a box with a dashed line descending from it.
The line is called the object lifeline, and it
represents the existence of an object over a
period of time.
an Order Line
Software Design (UML)
Sequence Diagraman Order Line a Stock Item
[check = “true”] remove()
check()
Messages are rendered as horizontal
arrows being passed from object to
object as time advances down the
object lifelines. Conditions ( such as
[check = “true”] ) indicate when a
message gets passed.
Software Design (UML)
Sequence Diagraman Order Line a Stock Item
[check = “true”] remove()
check() Notice that the bottom arrow is different. The arrow head is not solid, and there is no accompanying message.
This arrow indicates a return from a previous message, not a new message.
Software Design (UML)
Sequence Diagraman Order a Order Line
* prepare() An iteration marker, such as * (as shown), or *[i = 1..n] , indicates that a message will be repeated as indicated.
Iterationmarker
Software Design (UML)
an Order Entrywindow
an Order an Order Line a Stock Item
A ReorderItem
A DeliveryItem
new
[check = “true”] new
[needsToReorder = “true”]
needsToReorder()
[check = “true”] remove()
check()
* prepare()
prepare()
Object
Message
Iteration
Return
Creation
Condition
Self-Delegation
[Fowler,97]
Basic Elements of a Sequence Diagram
Active Objects Actors or Objects Notated using the UML notation for class
instances “Life line” appears below active objects to
indicate their lifespan Messages
Arrowed lines that indicated communication between objects
Three Active Objects with Two Messages
Chessboard Database
Chess Player
make move
record move
critique
Message Types
Synchronous message (wait for return)
Return messages (response to previous message)
Asynchronous messages (no wait)
Flat (unspecified synchronization)
Note closed arrowhead
Creating/Deleting Objects
Send messages <<create>> and <<destroys>>
Chessboard
Database<<create>>
critique<<destroys>>
Conditional Messages
Chessboard
Database<<create>>
critique
[unfavorable critique] <<destroys>>
Branching
Chessboard Database
Chess Player
[make move]
critique
[resign]
Alternative Flow
Chessboard Database
Chess Player
[make move]
[game over]
Control Rectangles
Show when an object is involved in a sequence of messages
Chessboard ChessEngine
Request Position
Request Evaluation
Database
Record Data
Modeling Time
Chess Client Chess Server
Send Player’s Move
Send Opponent’s Move
Diagonal message lines indicate that the messages take time to transmit
Specifying a Time Constraint on a message
Chess Client Chess Server
Send Player’s Move
Send Opponent’s Move
{sendTime for player’s move<2 seconds}
Modeling Loops
Chess Client Chess Server
Send Player’s Move
Send Opponent’s Move
*[while !gameOver]
Modeling Recursion
Application Sorter
Sort List
Sort List
Arguments and Return Values
Web Interface
Database
GPA = RequestGPA(studentName)
Adding Notes to Diagrams
Chess Client Chess Server
Send Player’s Move
Send Opponent’s Move
Send a move and get a move. If connection is lost, an automatic reconnect is attempted.
System Diagram notation
class instance named instance
:Sale s1:SaleSale
Which would you expect to find most often in a sequence diagrams?
Sequence Diagram Notation
: Register : Sale
doA
doB
doX
doC
doD
typical sychronous message shown with a filled-arrow line
a found message whose sender will not be specified
execution specification bar indicates focus of control
Figure 15.7
What does vertical placement communicate?
: Register : Sale
makePayment(cashTendered)
: Paymentcreate(cashTendered)
authorize
note that newly created objects are placed at their creation "height"
Figure 15.10
Examples
Example 1: Part of a Vending Machine
Example 2: ATM
Example 2: ATM in Detail
Example 3: Shopping Cart
Example 4: Video Rental
Sequence Diagram Summary UML sequence diagram represent
behavior in terms of interactions. Useful to find missing objects. Time consuming to build but worth the
investment. Complement the class diagrams (which
represent structure).