71
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 1 State Machines and State Charts Bruce Powel Douglass, Ph.D.

Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 1

State Machines and State Charts

Bruce Powel Douglass, Ph.D.

Page 2: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 2

How to contact the authorHow to contact the authorBruce Powel Douglass, Ph.D.

Chief Evangelisti-Logix, Inc.

1309 Tompkins Drive Apt FMadison, WI 53716

(608) [email protected]

see our web sitewww.ilogix.com

Page 3: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 3

About the Authorl Almost 20 years in safety-critical

hard-real time systemsl Mentor, trainer, consultant in real-

time and object-oriented systemsl Author of

– Real-Time UML: Efficient Objectsfor Embedded Systems(Addison-Wesley, Dec. 1997)

– Doing Hard Time: Using ObjectOriented Programming andSoftware Patterns in Real Time

l Partner on the UML proposall Embedded Systems Conference

Advisory Board

Page 4: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 4

Huh? Of Course!

One man’s “Of Course!” is another man’s “Huh?”

Book of Douglass, Law 79Feel free to ask questions!

Page 5: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 5

Agendal Approach taken for this talkl Types of behaviorl State Behaviorl Mealy-Moore State Modelsl Harel Statechartsl Integrating FSMs with your

development processl Producing code for state machines

Page 6: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 6

Approach taken for this talkl This is meant to be a gentle introduction

to states and state machinesl This section will be mostly on state

machines and a little on statechartsl State models will first be introduced in

simple formsl Gradually concepts enhanced and

elaboratedl Ask questions if you don’t think your

neighbor is understanding

Page 7: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 7

What kinds of things haveBehavior?

l Objects!– Object have

u Internal datau Operations on that data (behavior)

– Objects canu react to environmental events and informationu autonomously produce events and actions

– Not all Objects have state behavior!

Page 8: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 8

Types of Behavior

l Behavior can be simpleSimple behavior does not depend on the object’shistory

l Behavior can be continuousContinuous behavior depends on the object’s historybut in a smooth, continuous fashion

l Behavior can be state-drivenState-driven behavior means that the object’sbehavior can be divided into disjoint sets

Page 9: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 9

Simple Behavior

l The behavior is not affected by theobject’s history– cos( x )– getTemperature( )– setVoltage( v )– max(a,b)– ∫ −b

a

x dxe2

Page 10: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 10

Continuous Behaviorl Object’s behavior depends on history in

a continuous way– Control loops

– digital filter

– fuzzy logicUses partial set membership to compute asmooth, continuous output

fd d d d

jj j j j

=+ + +− − −1 2 3

4

Ka

Xn Yn-

+ DelayWn

Kb

++Vn

Zn

Page 11: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 11

State Behavior

l Object exhibit discontinuous modes ofbehavior– in “therapy mode” delivery anesthetic agent

based on knob position– in “service mode” select service function

based on knob position– in “startup mode” ignore the knob turns

Page 12: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 12

Why State Machines?

l Simplification

l Predictability

l Easy Development

l Easy Testing

Page 13: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 13

Why: Simplificationl Introduce simplifying assumptions

– Assumes system is only in a single state at atime

– Assumes state transitions are instantaneous

l Limit interactions with other objects– A finite set of transitions are permitted while

in any given state– Other events are

u ignoredu cause error recovery states to be enteredu queued

Page 14: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 14

Why: Simplificationl Overall behavior is decomposed into

sets of non-overlapping behaviordefined by– input events accepted while in a state– outputs initiated while in a state– error recovery mechanisms

l Easy Error Handling– easy to specify valid and non-valid inputs

by in states

Page 15: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 15

Why: Predictability

l FSMs divide their complexity intochunks called states

l Each state is simpler than the overallobject

l Because each state is simpler, it ismore understandable and predictable

Page 16: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 16

Why: Easy Development

l FSMs simplify the system into smallerpieces

l Smaller pieces are easier to code– They are easy to write the code for– They are easier to “get right”– They are easy to explain in peer reviews

Page 17: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 17

Easy Testing

l Unit testing is fundamentally at the levelof the object (or function)

l FSMs can be subdivided into states fortesting– Each state has a smaller set of input and

output conditions– The overall testing is decreased because

of low coupling among states

Page 18: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 18

Finite State Machinesl A finite state model is the description

from which any number of instancescan be made

l A finite state machine (FSM) is anobject which has state behavior definedby– A finite set of states– A finite set of transitions

l So,– What’s a state?– What’s a transition?

Page 19: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 19

What is a state?

Huh?

A state is a distinguishable, disjoint, orthogonal ontological condition that persists for a significant period of time

Well, duh!

Page 20: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 20

What is a state?l Distinguishable

It can be clearly distinguished fromother states– Inputs accepted– Actions performed

l DisjointAn object can only be in one state in atime and must be in exactly one state atall times

Page 21: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 21

What is a state?l Orthogonal

States do not overlap other states

l Ontological“fundamental condition of existence”

l Persists for a significant period of time– Objects spend all their time in states

(“Significant” is problem-domain specific)

Page 22: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 22

Example States: Switch

l State: Offl State: On

Page 23: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 23

Example States:Oregon Weather

l State: Rainingl State: Going to Rain

Page 24: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 24

Example States: Elevator

l State: Stoppedl State: Going Upl State: Going Down

Page 25: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 25

What constitutes a state?l View 1: The value of all attributes of the

object uniquely define the state

l View 2: The value of some specificattributes (state variables) uniquelydefines the state

l View 3: A unique set of inputs acceptedand actions performed defines the state

Page 26: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 26

View 1: Values of AllAttributes Defines the State

l Are Value = 0.0 and Value = 0.000001different states? YES!

l How many states are there? Infinite.l Are the behaviors or events accepted in

different states actually different? No.

enum tState {Off, Calibrating, Measuring, NoValidMeasurement, ValidMeasurement }

Sensorfloat Value;

enum tState s;

Page 27: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 27

View 2: Values of Some Set ofAttributes Defines the State

l Are Value = 0.0 and Value = 0.000001different states? No.

l How many states are there? 5.l Are the behaviors or events accepted in

different states actually different? Yes.

enum tState {Off, Calibrating, Measuring, NoValidMeasurement, ValidMeasurement }

Sensorfloat Value;

enum tState s;

Page 28: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 28

View 3: Unique Set ofBehaviors Defines the State

l Are Value = 0.0 and Value = 0.000001different states? No.

l How many states are there? 5.l Are the behaviors or events accepted in

different states actually different? Yes.

enum tState {Off, Calibrating, Measuring, NoValidMeasurement, ValidMeasurement }

Sensorfloat Value;

enum tState s;

Page 29: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 29

Transitions:Getting there is half the fun

l A transition is the changing from onestate of an object to another

l Transitions are the FSM representationof responses to events

l Events may be from internal or externalsources

l Transitions may have associatedactions

Page 30: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 30

Sample Transition: Elevator

Page 31: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 31

Actions

l Actions are functions that take aninsignificant amount of time to perform

l Actions are implemented via– an object’s operations– externally available functions

l They may occur when– A transition is taken– A state is entered– A state is exited

Page 32: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 32

Actions

l Assign to a state when they are alwaysexecuted on state entry or exit

l Assign to transition when they they arenot always executed on state entry orexit

Page 33: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 33

Simple FSM

Page 34: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 34

A Slightly More Complex FSM

l You are implementing a reliabletransmission service for an OSI-compliant protocol stack.

l A message is sent that requires thereceiver to return an ACK.

l If an ACK does not occur, retransmit themessage

l If the message is transmitted 5 timeswithout an ACK, then inform the sender.

Page 35: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 35

What’s the Object?

Page 36: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 36

Message Transaction FSM

Page 37: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 37

Mealy-Moore State Models

l The set of states defines the state space

l State spaces are flat– All states are at the same level of abstraction– All state names are unique

l State models are single-threaded– Only a single state can be valid at any time

Page 38: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 38

Mealy-Moore State Models

l Mealy State Models– All actions are in transitions

l Moore State Models– All actions are upon state entry

Page 39: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 39

Retriggerable One-shot Timer FSMl How many states?l Model 1

– Idle– Count = 65,535– Count = 65,534– ...– Count = 0

l Model 2– Idle– Counting down

ANS: Model 2(Drawing model 1 is ahomework exercise)

ANS: Model 2(Drawing model 1 is ahomework exercise)

Page 40: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 40

Retriggerable One-shot Timer

Page 41: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 41

Retriggerable One-Shot Timer

Stop Timer

Set Set_TimeStart Timer

Raise InterruptReset Timer

Page 42: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 42

Problems with M&M State Models

l Scalability due to lack of metaphor fordecomposition

l No Concurrency support

l No support for orthogonal components

Page 43: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 43

Scalability

Parameter OK

Parameter In Alarm:

Tone 1

Parameter In Alarm:

Tone 2

Parameter In Alarm:Tone OFF

Parameter In Alarm:

Tone 3

THIS....

Page 44: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 44

Scalability

Parameter OKOR THIS....

Parameter In Alarm

SoundingTone 1

SoundingTone 2

Tone OFF

SoundingTone 3

Page 45: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 45

Concurrency

• Problem: A device can be in states • Off • Starting Up• Operational• Error

• And it can be running from • mains • battery

Page 46: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 46

How to arrange these states?

OperationalMains

Startup

Error Battery

Off

Page 47: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 47

Concurrency

l In M&M View, the following are differentstates– Operational with Battery– Operation with Mains

l This is called state explosionl Solution:

– Allow states to operate concurrently

Page 48: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 48

Mealy-Moore Solution

Operational - Battery

Operational - Mains

Startup - Battery Startup - Mains

Error - Battery Error - Mains

Off - Battery Off - Mainsmains on line

mains off line

mains on line

mains off line

mains on line

mains off line

mains on line

mains off line

Switch to On Switch to On

POST Complete POST Complete

Error Detected Error Detected

Error Detected

Error Detected

Error Detected

Error Detected

Switch to Off

Switch to Off

Switch to Off

Switch to Off

Switch to Off

Switch to Off

Page 49: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 49

Concurrent State Model Solution

Page 50: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 50

Orthogonal Components

myInstance: myClass

tColor Colorboolean ErrorStatustMode Mode

enum tColor {eRed, eBlue, eGreen};

enum boolean {TRUE, FALSE}

enum tMode {eNormal, eStartup, eDemo}

How do you draw the state of this object?

Page 51: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 51

Approach 1: Enumerate all

eRed, TRUE,eDemo

eBlue, FALSE,eDemo

eGreen, FALSE,eDemo

eRed, FALSE,eDemo

eBlue, TRUE,eDemo

eGreen, TRUE,eDemo

eRed, TRUE,eNormal

eBlue, FALSE,eNormal

eGreen, FALSE,eNormal

eRed, FALSE,eNormal

eBlue, TRUE,eNormal

eGreen, TRUE,eNormal

eRed, TRUE,eStartup

eBlue, FALSE,eStartup

eGreen, FALSE,eStartup

eRed, FALSE,eStartup

eBlue, TRUE,eStartup

eGreen, TRUE,eStartup

Page 52: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 52

Approach 2

Page 53: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 53

Harel State Chartsl Created by David Harel in late 1980sl Supports

– Nested states– Actions and Activities– Guards– History

l Advanced Features (Part II)– Concurrency– Broadcast Transitions– Orthogonal Components

Page 54: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 54

Basic Harel SyntaxS2

U1

U2

A B CX2[G]

T3 /C1C2

S3

S1entry A1( )exit A2( )throughout A1, A2

entry B1( )exit B2( )throughout B3( )

X1

T1

T2Y2

Y1(int r)

X3

T4

T5

H

T5

Page 55: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 55

Nested States

l Improves scalabilityl Increases understandabilityl Permits problem decomposition (divide-

and conquer)l Methods

– Nested states on same diagram– Nested states on separate diagram

Page 56: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 56

Actions and Activitiesl Actions

– are functions which take an insignificantamount of time to execute

– they may have parameters– they may occur on

u Transitionsu State Entryu State Exit

l Activities– are functions executed as long as a state is

active

Page 57: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 57

Order of Nested Actionsl Execute from outermost - in on entryl Execute from innermost - out on exit

U entry: f( )exit: g(a,b)

U1 entry: x(c )exit: y()

A

first f( ) then x(c)

first y( ) then g(a,b )

Page 58: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 58

Transitions

l Basic (UML) syntax:

name(params)[guards]^events/actions

– Name– Parameters– Guard– Event List– Action List

Page 59: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 59

Transitions: Event List

l Comma separated list of transitions thatoccur in other concurrent statemachines because of this transition

l A.k.a propagated transitions

l This will be discussed more in Part II

Page 60: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 60

Transitions: Guards

l A guard is some condition that must bemet for the transition to be taken

l Guards can be– Variable range specification– Concurrent state machine is in some state

[IN(X)]– Some other constraint (preconditional

invariant) must be met

Page 61: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 61

Transitions

BA

T1(int r)[r < 0] / f(r)

T2 [IN(READY)] /g( )

Page 62: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 62

Historyl The history annotation means that the

state “remembers” the substate and returnsto it as the default

l Can also work with an initial state indicator

H

A

B

C

S

H

T1 X

Y

T2

T3

T4

Page 63: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 63

Example: Jolt Cola Machine

Page 64: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 64

Example: Coin Receptacle FSM

Page 65: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 65

Substate: Issuing Can

Entry/ Rack.Dispense( )

Page 66: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 66

Class Button FSM

Page 67: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 67

Summaryl Objects have behavior

– Simple– Continuous– State-driven

l Modeling objects as Finite State Machinessimplifies the behavior

l States apply to objectsl FSM Objects spend all their time in exactly 1

state (discounting orthogonal substates)

Page 68: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 68

Summary

l States are disjoint ontological conditionsthat persist for a significant period of time.

l States are defined by one of the following:– The values of all attributes of the object– The values of specific attributes of the object– Disjoint behaviors

u Events acceptedu Actions performed

Page 69: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 69

Summaryl Transitions are the representation of

responses to events within FSMsl Transitions take an insignificant amount

of timel Actions are functions which may be

associated with– Transitions– State Entry– State Exit

l Activities are processing that continuesas long as a state is active

Page 70: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 70

Summary

l Harel statecharts expand standard FSMs– Nested states– Concurrency– Broadcast transitions– Orthogonal Components– Actions on states or transitions– History– Guards on transitions

Page 71: Finite State Machines 1 · – Each state has a smaller set of input and output conditions – The overall testing is decreased because of low coupling among states. Bruce Powel Douglass,

Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 71