View
216
Download
1
Tags:
Embed Size (px)
Citation preview
11
CS/CPE 426Senior Projects
Chapter 21: State MachinesChapter 22:Advanced State Machines
[Arlow and Neustadt 2005]
March 24, 2009
22
Outline State machines:
IntroductionState machine diagramsStatesTransitionsEvents
Advanced state machines:Composite states
SimpleOrthogonal
Submachine statesSubmachine communicationHistory
33
Introduction
Both activity diagrams and state machine diagrams model system behavior
However, they have different semantics:Activity diagrams are based on Petri Nets and
usually model processes when several objects participate
State machine are based on Harel’s statecharts and typically used to model single reactive objects
44
Introduction
Reactive objects:Respond to external eventsMay generate and respond to internal
eventsHave a lifecycle modeled as a progression
of states, transitions and eventsMay have current behavior that depends
on past behavior State machines are used to model
behavior of classifiers such as classes, use cases, subsystems, systems
55
Introduction
There are two types of state machines: Behavioral state machines Protocol state machines
State machines are most commonly used to model dynamic behavior of classes
In UP, state machines can be used in: requirements, analysis, design
A significant challenge is testing state machines: manual walkthrough, simulation, code generation + test harnesses for state machines
66
State machine diagrams There are three main modeling elements in state
diagrams: states transitions, and events. Example of a simple state machine, Fig. 21.2 [Arlow &
Neustadt]
77
States
Summary of UML state syntax, Fig.21.4 [Arlow & Neustadt 2005]
88
TransitionsSummary of UML syntax for transitions in behavioral state diagrams, Fig.21.5 [Arlow & Neustadt 2005]
Where: event(s)= internal or external occurrence(s) that trigger the transition guardCondition = boolean expression, when true the transition is
allowed anAction = some operation that takes place when the transition fires
99
Transitions
Summary of UML syntax for transitions in protocol state
diagrams, Fig.21.6 [Arlow & Neustadt 2005]
Note that there is no action and guard conditions are replaced by preconditions and postconditions.
1010
TransitionsA junction pseudo-state represents a point where transitions
merge or branch, e.g. Fig.21.7 [Arlow & Neustadt 2005]
1111
TransitionsA junction pseudo-state may have more than one output
transition(protected by mutually exclusive guard conditions) e.g.
Fig.21.8[Arlow & Neustadt 2005]
1212
TransitionsChoice pseudo-state can also be used, e.g. Fig. 21.9 [Arlow &
Neustadt2005]
1313
Events
Events can be of four types:Call eventSignal eventChange eventTime event
1414
Events
Example of a call event, Fig.21.11 [Arlow & Neustadt 2005]
1515
Events
A signal is a package of information sent asynchronously between objects. Example of signal event Fig. 21.12 [Arlow & Neustadt 2005]
Example of sending a Signal Fig. 21.13 [Arlow & Neustadt 2005]
1616
EventsChange events are positive edge triggered.Example of a change event, Fig. 21.15 [Arlow & Neustadt
2005]
1717
Events
Time events are indicated by the keywords when and after. Example of a time event, Fig. 21.16 [Arlow & Neustadt,
2002]
1818
Example of astate machine[Dascalu 2001]
Stopped MoveWithSpeedOne
MoveWithSpeedTwo
Blocked
go1_command /speedOne()
target_reached /stop()
go2_command /speedTwo()
go2_command /speedOne()
limit_reached or otheremergency condition /
stop ()
permission_to_restart /reset ()
limit_reached or otheremergency condition /
stop ()
stateinitial state
transition
event action
change_direction_command /reverseDirection()
final state
off
off
From the stopped state, the 2-speed motor brings the probe in atarget position by "accelerating" with speed 1, "crusing" with speed2, "deccelerating" with speed 1, and then stopping. If out of limitsor in case of another emergency, the motor stops immediately andrequires the operator's permission to restart working.
1919
Composite states
A composite state contains one or more nested state machines (submachines), each existing in its own region, Fig 22.2 [Arlow & Neustadt 2005].
The composition icon is shown in Fig. 22.4
2020
Simple composite states A superstate that contains a single region is called a
simple composite state, e.g. Fig 22.5 [Arlow & Neustadt 2005]
2121
Orthogonal composite states Orthogonal composite states consist of two or more sub-
machines that execute in parallel. In Fig 22.6 [Arlow & Neustadt 2005] there are two such composite states, Initializing and Monitoring
2222
Orthogonal composite states
The composite state Initializing, Fig 22.7 [Arlow & Neustadt 2005]
2323
Orthogonal composite statesThe composite state Monitoring, Fig 22.8 [Arlow & Neustadt 2008]
2424
Submachine states
A submachine state is a special state that references a state machine recorded in a separate diagram, e.g. Fig. 22. 9 [Arlow and Neustadt 2005]
2525
Submachine states Fig. 22. 10 [Arlow & Neustadt 2005]. The notation
for a submachine state is
<state name : name of referenced state machine diagram>
2626
Submachine communication
Asynchronous submachine communication can be achieved via attributes:
The modeled reactive object has a set of attributes that can be used by submachines
The communication mechanism: one machine sets attributes and the other uses the attribute values in guard conditions of their transitions
2727
Submachine communication Example of communication via attributes, Fig. 22.11
[A&N 2005]
2828
HistoryExample of using the shallow history indicator, Fig 22.12 [Arlow &
Neustadt 2005]
2929
History
Example of using the deep history indicatorFig 22.13 [Arlow & Neustadt 2005]