CS/CPE 426 Senior Projects

1 / 29

# Chapter 21: State Machines Chapter 22:Advanced State Machines [Arlow and Neustadt 2005] March 4, 2008 - PowerPoint PPT Presentation

CS/CPE 426 Senior Projects. Chapter 21: State Machines Chapter 22:Advanced State Machines [Arlow and Neustadt 2005] March 4, 2008. Outline. State machines: Introduction State machine diagrams States Transitions Events Advanced state machines: Composite states Simple Orthogonal

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Chapter 21: State Machines Chapter 22:Advanced State Machines [Arlow and Neustadt 2005] March 4, 2008 ' - daniel_millan

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
CS/CPE 426Senior Projects

Chapter 21: State Machines

March 4, 2008

Outline
• State machines:
• Introduction
• State machine diagrams
• States
• Transitions
• Events
• Composite states
• Simple
• Orthogonal
• Submachine states
• Submachine communication
• History
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
Introduction
• Reactive objects:
• Respond to external events
• May generate and respond to internal events
• Have a lifecycle modeled as a progression of states, transitions and events
• May have current behavior that depends on past behavior
• State machines are used to model behavior of classifiers such as classes, use cases, subsystems, systems
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
State machine diagrams
• There are three main modeling elements in state diagrams: statestransitions, and events.
• Example of a simple state machine, Fig. 21.2 [Arlow & Neustadt]
States

Summary of UML state syntax, Fig.21.4 [Arlow & Neustadt 2005]

Transitions

Summary of UML syntax for transitions in behavioral state diagrams,

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
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.

Transitions

A junction pseudo-state represents a point where transitions merge or

branch, e.g. Fig.21.7 [Arlow & Neustadt 2005]

Transitions

A junction pseudo-state may have more than one output transition

(protected by mutually exclusive guard conditions) e.g. Fig.21.8

Transitions

Choice pseudo-state can also be used, e.g. Fig. 21.9 [Arlow & Neustadt

2005]

Events
• Events can be of four types:
• Call event
• Signal event
• Change event
• Time event
Events

Example of a call event, Fig.21.11 [Arlow & Neustadt 2005]

Events

A signal is a package of

information sent

asynchronously between

objects. Example of signal

event Fig. 21.12 [Arlow &

Example of sending a

Signal Fig. 21.13 [Arlow &

Events

Change events are positive edge triggered.

Example of a change event, Fig. 21.15 [Arlow & Neustadt 2005]

Events

Time events are indicated by the keywords when and after.

Example of a time event, Fig. 21.16 [Arlow & Neustadt, 2002]

Example of a

state machine

[Dascalu 2001]

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
Simple composite states
• A superstate that contains a single region is called a simple composite state, e.g.Fig 22.5 [Arlow & Neustadt 2005]
Orthogonal composite states
• Orthogonal composite states consist of two or more sub-machines that execute in parallel. InFig 22.6 [Arlow & Neustadt 2005] there are two such composite states, Initializing and Monitoring
Orthogonal composite states

The composite state Initializing, Fig 22.7 [Arlow & Neustadt 2005]

Orthogonal composite states

The composite state Monitoring,Fig 22.8 [Arlow & Neustadt 2008]

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]
Submachine states
• Fig. 22. 10 [Arlow & Neustadt 2005]. The notation for a submachine state is

<state name : name of referenced state machine diagram>

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
Submachine communication
• Example of communication via attributes, Fig. 22.11 [A&N 2005]
History

Example of using the shallow history indicator,Fig 22.12 [Arlow & Neustadt 2005]

History

Example of using

the deep history

indicator

Fig 22.13 [Arlow &