3. UML Dynamic Modeling
• In all systems, events happen dynamically,
e.g.:
– Objects are created and destroyed
– Objects send messages to one another
– External events trigger operations on certain
objects
• Objects have states that would be difficult to
capture in a static model
OOAD 3
7. When to use Interaction
Diagrams?
• Interaction diagrams are used when you want
to model the behavior of several objects in a
use case. They demonstrate how the objects
collaborate for the behavior.
• Interaction diagrams do not give a in depth
representation of the behavior. If you want
to see what a specific object is doing for
several use cases use a state diagram. To
see a particular behavior over many use cases
or threads use an activity diagrams.
OOAD 7
8. Messages are passed between objects, and
may contain parameters (e.g., message name
(parameter list))
9. Sequence Diagrams
• Describing the behavior of a system by
viewing the interaction between the system
and its environment
• Shows the objects participating in the
interaction by their life lines and the messages
they exchange
• Shows an interaction arranged in a time
sequence
OOAD 9
10. Elements of a sequence diagram
• Objects: represented by boxes at top of
diagram.
• Lifeline: the time during which an object
exists.
• Messages: means by which objects
communicate with each other.
• Activation: the time period during which an
object performs an operation.
OOAD 10
12. Collaboration Diagrams
• Also known as Communication diagrams
• Represents a collaboration, which is a set of objects
related in a particular context, and interaction, which
is a set of messages exchanged among the objects
within the collaboration to achieve a desired
outcome
• sequences of messages are shown by numbering
OOAD 12
14. Sequence Vs Collaboration
Sequence Diagram:
– Dynamic behavior of a set of objects arranged in time sequence, new
objects added to the right
– Good for real-time specifications and complex scenarios
– easier to read
Collaboration Diagram :
– Shows the relationship among objects.
– Does not show time
– Objects are arranged in a graph or network format
• Both are used to examine the behavior of objects
within a single use case
OOAD 14
16. Drawing Sequence Diagrams
Determine the context of the sequence diagram
Identify the object that are participate in the
sequence
Set of the lifeline for each object
Lay out of messages from the top to the bottom of
the diagram based on the order in which they sent
Add the execution occurrence to each object’s
lifeline
Validate the sequence diagram
17. Identifying Classes/Objects
• Noun phrase approach – read through the
requirements or use cases looking for noun
phrases
• Some classes are implicit or taken from
general knowledge
• Carefully choose and define class names
OOAD 17
18. Use Case: Withdraw saving
A customer wants to draw money from his bank account.
He enters his card into an ATM (automated teller machine).
The ATM machine prompts “ Enter PIN”. The customer
enters his PIN. The ATM (internally) retrieves the bank
account number from the card. The ATM encrypts the PIN
and the account number and sends it over to the bank. The
bank verifies the encrypted account and PIN number. If the
PIN number is correct, the ATM displays, “Enter Amount”.
Draws money from the bank account and pays out the
amount.
OOAD 18
19. Use Case: Withdraw saving
Use Case: Withdraw Saving
Actors: Bank Client
Flow of Events:
5. Bank client insert ATM card into ATM machine
6. ATM machine request PIN code
7. Bank client enter PIN code
8. Verify PIN code entered with saving account
9. ATM machine request amount if the PIN is valid
10. Bank client enter the required amount
11. Process the transaction in the client account
12. ATM machine dispense cash
13. ATM machine print receipt when the transaction completed
Alternative Flow of Events
• Invalid PIN code entered. Indicate error message. Return step 3.
OOAD 19
29. • Object naming
– Syntax: [objectName]:[className]
– Include object (instance) names when objects are referred to in messages
or when several objects of the same type exist in the diagram
– Name classes consistently with your class diagram
Object A: Class A Object B: Class B
:User
messageA()
messageB(“string”)
messageC()
30. Stereotypes of Analysis Classes
Classes or objects can be classified into one
of the following three stereotypes:
– Entity – to hold data
– Boundary – used by actors to interact with the system
For example: Customer place order, interact using a
order form.
– Control – coordinating behavior in the system
For example: control the activities in the transaction
(i.e., rules, calculations)
31. Stereotypes of Analysis Classes
Is an object relation that is
extended to include
responsibilities
32. Stereotypes of Analysis Classes
Is an object relation that is
extended to include
responsibilities
33. Stereotypes of Analysis Classes
A boundary class provides the
interface between an actor and use
case. The actor can be a human or an
external system.
Encapsulates connections between
actors and use cases
34. Stereotypes of Analysis Classes
A boundary class provides the
interface between an actor and use
case. The actor can be a human or an
external system.
Encapsulates connections between
actors and use cases
35. Stereotypes of Analysis Classes
A control class coordinates the
tasks and captures the main
logic in a use case.
Mostly performs behaviors
associated with inner workings
of use cases
42. When to use Activity Diagram?
• The main reason to use activity diagrams is
to model the workflow behind the system
being designed.
• Activity Diagrams are also useful for:
analyzing a use case by describing what
actions need to take place and when they
should occur; describing a complicated
sequential algorithm; and modeling
applications with parallel processes.
OOAD 42
43. Activity Diagram
Focus on flow of activity of internal process in
object
similar to flowchart
describe changes in activity in a procedure
information from use case scenario or event flow
can be used to describe activity diagram.
Used to provide detail for complex algorithms
OOAD 43
44. Activity Diagram (cont.)
• Purpose:
– Modeling human task
– Describe system’s function
– Describe logic operation
• Elements in activity diagram:
Activity Transition Decision
OOAD 44
45. Example of Activity Diagram for Register Course
start
Fill form Select course
[No]
Submit to
PA approve?
[Yes]
Register
course end
46. Example of Activity Diagram for ATM Authorization
Enter card Read card
Enter PIN Request PIN
[No]
Verify PIN valid?
[Yes]
Select other
service
47. Swimlane
- partition an activity
diagram so that parts in the
swimlane relevant to that
activities in the partition
- helpful in investigating
responsibilities for
interactions and
associations between
objects and actors
OOAD 47
48.
49. Activity diagram with
synchronization bars –
split into multiple paths
and multiple paths
combined into a single
transition
Top synchronization bar is
a fork.
Bottom synchronization
bar is a join.
OOAD 49
51. When to use State Diagram?
• Use state diagrams to demonstrate the
behavior of an object through many use
cases of the system.
• Only use state diagrams for classes
where it is necessary to understand the
behavior of the object through the
entire system
OOAD 51
52. What is a State Diagram?
• A diagram that captures the behavior of an object by
specifying the sequence of states it goes through during
its lifetime in response to events, together with the
responses to those events
• describe changes in state in a procedure
• Also called statechart diagram or state machine diagram
• State – a condition or situation during the life of an
object at which time it satisfies some condition, performs
some activity, or waits for some event.
OOAD 52
53. What is a State Diagram? (cont.)
• A state diagram to describe the behavior (i.e., state
changes) of a single class according to events and
messages which class sends and receives
• A state diagram can also clarify a use case – to
specify the actions the use case can take in
accordance with varying conditions of the system
• E.g., a use case ‘enroll course’, the state can be full,
opened, and closed.
OOAD 53
55. Transition Notation
State 1 Event(parameters) [condition] /action State 2
do/activity 1 ...
Start state transition End state
Example: Event(parameters) [condition]
mouse_button_clicked(right_button)[inside the window]
Example: /action
/calculate amount
58. Recap
• After studying this chapter we learned to:
– Understand how to structure requirements with
interaction diagram, activity diagram and state
machine diagram.
– Explain the element of sequence diagrams,
activity diagram and state machine diagram.
– Construct sequence diagrams, activity diagram
and state machine diagram