Upload
adler
View
43
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Sequence Diagram. Prepared by: T. Fatimah Alageel. UML diagrams. There are many ways of organizing the UML diagrams. Can be organized as the fallowing: Structural diagrams: to show the building blocks of your system—features that don’t change with time. Ex: Class diagram - PowerPoint PPT Presentation
Citation preview
SEQUENCE DIAGRAMPrepared by: T. Fatimah Alageel
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()
Passenger TicketMachine
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()
Passenger Zone 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
Passenger ChangeProcessor
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 renderedas 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 horizontalarrows being passed from object toobject as time advances down theobject lifelines. Conditions ( such as[check = “true”] ) indicate when amessage 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
IterationReturn
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 moverecord 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 MessagesChessboard
Database<<create>>
critique[unfavorable critique] <<destroys>>
Branching
Chessboard Database
Chess Player
[make move]
critique
[resign]
Alternative FlowChessboard 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 RecursionApplication 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