![Page 1: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/1.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/2.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/3.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/4.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/5.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/6.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/7.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/8.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/9.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/10.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/11.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/12.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/13.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/14.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/15.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/16.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/17.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/18.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/19.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/20.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/21.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/22.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 22
Example States: Switch
l State: Offl State: On
![Page 23: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/23.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/24.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/25.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/26.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/27.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/28.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/29.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/30.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 30
Sample Transition: Elevator
![Page 31: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/31.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/32.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/33.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 33
Simple FSM
![Page 34: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/34.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/35.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 35
What’s the Object?
![Page 36: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/36.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 36
Message Transaction FSM
![Page 37: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/37.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/38.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/39.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/40.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 40
Retriggerable One-shot Timer
![Page 41: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/41.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/42.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/43.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/44.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/45.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/46.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/47.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/48.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/49.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 49
Concurrent State Model Solution
![Page 50: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/50.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/51.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/52.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 52
Approach 2
![Page 53: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/53.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/54.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/55.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/56.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/57.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/58.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/59.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/60.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/61.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/62.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/63.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 63
Example: Jolt Cola Machine
![Page 64: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/64.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 64
Example: Coin Receptacle FSM
![Page 65: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/65.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 65
Substate: Issuing Can
Entry/ Rack.Dispense( )
![Page 66: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/66.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 66
Class Button FSM
![Page 67: Finite State Machines 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/67.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/68.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/69.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/70.jpg)
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 1fleck/181content/fsm1.pdfView 1: Values of All Attributes Defines the State l Are Value = 0.0 and Value = 0.000001 different states? YES! l How many states are](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f8535da8e595950495ba042/html5/thumbnails/71.jpg)
Bruce Powel Douglass, Ph.D. i-Logix Inc. Page 71