states - Courses

Download Report

Transcript states - Courses

Dynamic Modeling
Grady Booch, James Rumbaugh, and Ivar Jacobson,
The Unified Modeling Language User Guide, 2nd
edition, Addison Wesley, 2005.
Outline
• Dynamic models
• State machine diagrams (a.k.a. statechart)
– Modeling object states
• Interaction diagrams
– Sequence diagrams (a.k.a. message sequence)
• The time order of interactions between objects
– Communication diagrams (a.k.a. collaboration)
• Messages passed between objects
2
Dynamic Models
• Used to model control aspects (e.g., when)
• Several different models possible, e.g.,
– Focusing on state changes
– Focusing on interactions
3
Dynamic Models
• Used to model control aspects (e.g., when)
• Several different models possible, e.g.,
– Focusing on state changes
•
•
•
•
Used to show software control
Sequence of operations and events
Transitions between states
UML state machine diagrams
– Focusing on interactions
4
Dynamic Models
• Used to model control aspects (e.g., when)
• Several different models possible, e.g.,
– Focusing on state changes
– Focusing on interactions
• Used to show dynamic relationships between objects
• Messages, interfaces, and timings
• UML interaction diagrams
– Sequence diagrams, focusing on ordered interactions
– Communication diagrams, focusing on interaction links
– Timing diagrams, focusing on interaction timings
5
Outline
 Dynamic models
• State machine diagrams
• Interaction diagrams
6
Modeling State Changes
• Modeling object states
– UML state machine diagram
– Depicts the flow of control using states and
transitions
– Generalization of finite state machines
7
Modeling Object States
• Network of states and transitions
• One diagram for each object with important
dynamic behavior
• Independent timing of state machines for
different objects (asynchronous)
switch pushed
On
Off
switch pushed
8
Elements of State Machine
Diagrams
Final State
Initial State
Transition
Running
Idle
State
9
Initial and Final States
White’s turn
checkmate
Black
win
stalemate
start
black
moved
white
moved
Black’s turn
Draw
stalemate
checkmate
White
win
10
States
• Condition or situation in the life of a system (or
object) during which it:
– Satisfies some condition,
– Performs some activity, or
– Waits for some events.
• Set of values of properties that affect the behavior of
the system (or object).
– Determines response to an event
– Thus, different states may produce different responses to the
same event
11
States (Cont.)
• All objects have states.
• A state is an abstraction of the values
maintained by the object that determine
behavior.
• Examples:
–
–
–
–
–
The invoice is paid.
The car is parked.
The engine is running.
Kate is working.
Jim is playing.
12
State Corresponds to Interval
of Time between Events
• Events: points in time
• State: interval of time; may correspond
to a continuous activity
– E.g., waiting, ringing, and flying
• State may be associated with value of
object satisfying some condition.
– E.g., automobile transmission is in reverse.
– E.g., balance of account is negative
13
Identifying States
• Ignore attributes that don't affect
behavior
• Combine set of attributes that form a
parameter of the control
– E.g., the control is not changed by
changing the digits in the phone call.
14
Specifying States
• Name (optional)
• Internal activities (optional)
– Actions and activities performed while in the state
– Predefined: entry, exit, do
• Internal transitions (optional)
– Reaction within a state but without changing state
Name
Internal activities
Internal transitions
Brewing
do / brew coffee
pot removed/ suspend
pot replaced/ resume
15
Internal Activities and Transitions
• Actions and activities performed
while in the state
– Action: atomic
– Activity: more complex behavior
• Action/activity label, specifying
triggering conditions
– Entry: performed on entry to state
– Exit: performed on exit from state
– Do: performed while in the state
Attacking
entry/unsheathe sword
do/charge
exit/sheathe sword
enemy swings[distance<3 ft]/dodge
• Internal transitions
– Reactions to events that doesn’t
cause state changes (see transitions)
16
Example
[number.isValid()]
Starting
entry / start dial tone
exit / end dial tone
dialed (n)
Dialing
entry / number.append(n)
dialed (n)
17
Events
• Something that happens at a point in time
– No duration: instantaneous
– At least we think of it this way when we model
(abstraction)
• Stimulus from one object to another
• May result in a change of state
• May result in event being sent to another
object
18
Two Events:
• May be unrelated (concurrent)
– E.g., flight 123 departs El Paso and flight
555 departs Las Vegas.
• May depend on each other (sequential)
– E.g., flight 123 departs El Paso and flight
123 arrives Las Vegas.
19
Events Are Not Subroutine
Calls
• One way transmission of information
– obj1 sends event to obj2
– obj2 sends event to obj1
– two different events
• Events are grouped via generalization
– the phone that rings depends on which
digits are dialed, but the event is “digit
dialed”.
20
Transitions
• Relationship between two states indicating
that a system (or object) in the first state will:
– Perform certain actions and
– Enter the second state when specified event
occurs and specified condition is satisfied.
• Consists of:
– Source and target states
– Optional event trigger, guard condition, and action
trigger [guard] / action
Source
Target
21
Transitions (Cont.)
• Source state
– State affected by transition
• Event trigger
Source
– Triggering the transition
• Guard condition
– Boolean evaluated after the
event trigger. Transition only
occurs if guard is true
trigger [guard] / action
• Action
– Atomic operation that occurs as
the transition occurs
Target
• Target state
– State active after transition
22
Example
trigger [guard] / action
Source
Target
key pressed [key == ENTER_KEY] / str := input_buffer
Note that every transition should be labeled.
23
Transitions (Cont.)
• Lead from one state to another
• Instantaneous
• Several types of events:
–
–
–
–
A condition becomes true.
An explicit signal is received from an object.
An operation is called by an object.
A designated period of time passes.
24
Phone Example
digit dialed (n)
[incomplete]
connected
Connecting
Dialing
digit dialed (n)
[invalid]
Ringing
digit dialed (n)
[valid] / connect
busy
Busy
Invalid
25
Another Example
recovery success
recovery failure
Normal
anomaly
Recovery
Identification
temperature
problem
pressure
problem
recovery
success
recovery
success
Pressure
Recovery
Temperature
Recovery
recovery
failure
recovery
failure
26
In Class: Digital Watch
• (Pairs) Draw a state machine diagram
The watch has a single mode button and a single
advance button. Pressing the mode button once
and then pressing the advance button increments
the hours by 1. Each press of the advance button
increments the hour. Pressing the mode button the
second time allows advancing the minutes by one.
Pressing the mode button a third time displays the
current time. While displaying the current time, the
advance button is ignored. Pressing the mode
button allows the user to set the hour again.
27
In Class: Toy Train
(Pairs) Draw a state machine diagram










Initially, headlight is off, and train is not moving.
If power on, headlight shines, and train moves forward.
If power off, headlight goes out, but train still moves forward.
If power on, headlight comes on, and train does not move.
If power off, headlight goes off, and train stays stopped.
If power on, headlight comes on, and train moves backward.
If power off, headlight goes off, but train still moves backward.
If power on, headlight comes on, and train doesn’t move.
If power off, headlight off, and train remains stopped.
Repeats from step 2 above.
28
Structuring State Machine Diagrams
Can this diagram be presented better?
recovery success
recovery failure
Normal
anomaly
Recovery
Identification
pressure
problem
recovery
success
recovery
success
Pressure
Recovery
temperature
problem
recovery
Unstructured!failure
Temperature
Recovery
recovery
failure
29
Better Presented:
anomaly
Recovery
Recovery
Identification
Normal
recovery
success
recovery
failure
pressure
problem
Pressure
Recovery
temperature
problem
Temperature
Recovery
30
Composite States (Cont.)
•
•
•
•
•
•
States containing one or more state diagrams
Used to simplify diagrams
Inside, looks like state machine diagrams
May have composite transitions
May have transitions from substates
Sequential and parallel
31
Composite States and
Transitions
Transition to/from composite state
Active
Idle
Validating
Selecting
Processing
Maintenance
Printing
Transition from substate
32
Including Composite States
Dialing Number
Include / Dialing
Dialing
[number.isValid()]
Starting
entry / start dial tone
exit / end dial tone
dialed(n)
Partial Dialing
entry / number.append(n)
dialedn)
33
Parallel Composition
• Concurrency (split of control)
• Synchronization
Superstate
substate1
substate2
substate3
substate4
34
Example Parallel
Composite state
Fork
Maintaining
Idle
Testing
Testing
Diagnose
Join
Commanding
Waiting
Command
Concurrent States
35
Another Example
Incomplete
HW1
HW2
Passed
Project
Midterm
Final
fail
Failed
36
Example of Synchronization
Play
Remote Control
On
Off
On
Off
Stop
On
Play
On/Stop
Off
Stop
Off
MP3 Player
On/Play
Off/Stop
37
In Class: Toy Train
(Pairs) Draw a state machine diagram










Initially, headlight is off, and train is not moving.
If power on, headlight shines, and train moves forward.
If power off, headlight goes out, but train still moves forward.
If power on, headlight comes on, and train does not move.
If power off, headlight goes off, and train stays stopped.
If power on, headlight comes on, and train moves backward.
If power off, headlight goes off, but train still moves backward.
If power on, headlight comes on, and train doesn’t move.
If power off, headlight off, and train remains stopped.
Repeats from step 2 above.
38
In Class: Office Phone
• (Pairs) Draw a state machine diagram describing
the operation of an office phone.
Assume that the phone has keys for the digits 09, #, and *. It can detect when the receiver is onhook or off-hook. The phone is idle when the
receiver is on-hook. Model phone calls.
– making calls (e.g., dialing, connecting,
talking),
– receiving calls (e.g., ringing, talking)
39
Outline
 Dynamic models
 State machine diagrams
• Interaction diagrams
40
Modeling Interactions
• Focus on communications among
elements
– Ordering of interactions
– Messages and interfaces
– Communication links
– Timings of messages (between when
message sent and received)
41
UML Interaction Diagrams
• Whole class of diagrams including
– Sequence Diagrams
• The time order of interactions between objects
– Communication Diagrams
• Messages passed between objects
– Interaction Overview Diagram
• Overview diagram that hides much of the detail
– Timing Diagram
• Interactions with precise time axis (for real-time or timesensitive systems)
42
Sequence Diagrams
• Depicts object interaction by highlighting
the time ordering of method invocations
• Describes a sequence of method calls
among objects
• (This is the only interaction diagram
we’ll look at.)
43
Example
sdPlaceOrder
: Customer
: Or der
: Payment
: Product
: Supplier
object
place an or der
control
pr ocess
lifetime
validate
if ( payment ok )
deliver
if ( not in stock )
back order
g et addres s
mail to address
message
44
Example (Cont.)
: Customer
: Order
: Payment
: Product
: Supplier
place an order
process
validate
Sequence of message sending
if ( payment ok )
deliver
if ( not in stock )
back order
g et addres s
mail to address
45
Different Types of Messages
Synchronous message
Asynchronous message
Return message
<<create>>
<<destroy>>
o: Class
Creation message
Destruction message
46
Return Messages
sdPlaceOrder
:CustomerWIndow
Change
:Customer
Update
Return
(dashed line,
open arrow)
47
Creation and Destruction
sdPlaceOrder
:CustomerWIndow
Change
<<create>>
:Customer
getRating()
<<destroy>>
48
In Class: Weblog Content
Management System (CMS)
• (Pairs) Draw a sequence diagram for creating
a new blog account.
The content management system allows an
administrator to create a new blog account,
provided the personal details of the new blogger
are verified using the author credential database.
A summary of the new blog account’s details
should be mailed to the author.
49