Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State...
Transcript of Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State...
![Page 1: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/1.jpg)
Copyright © 2014 Rob Pettit 1
Dynamic Modeling - Finite State Machines
SWE 321 Fall 2014 Rob Pettit
![Page 2: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/2.jpg)
Copyright © 2014 Rob Pettit 2
Finite State Machines
• Finite number of states – Only in one state at a time
• Transition – Change of state – Caused by event – Transition to same or different state – Action may result from state transition
• As entry into a state • As exit from a state • Activity while in a state
• Representation – State transition table – State machine diagram (UML)
![Page 3: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/3.jpg)
Copyright © 2014 Rob Pettit 3
State Machine Diagrams
• State machine diagram – Graphical representation of finite state machine – Relates events and states – States are rounded boxes – Transitions are arcs
• May include actions • Event
– May cause change of state (by triggering a transition) • State
– A recognizable situation – Exists over an interval of time – Represents an interval between successive events
![Page 4: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/4.jpg)
Copyright © 2014 Rob Pettit 4
UML State Machine Notation
![Page 5: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/5.jpg)
Copyright © 2014 Rob Pettit 5
Events
• Event – A discrete signal that happens at a point in time – Also known as a stimulus – Input to an object
• Events may cause a change in state • Events may trigger actions
– Actions can be internal or external • Events may have associated conditions • Signal events can be used to communicate between state
machines
![Page 6: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/6.jpg)
Copyright © 2014 Rob Pettit 6
Events and Conditions
• State transition label – Event [Condition]
• Condition is a Boolean function – Conditions are optional on state machines – Condition is true for finite period of time
• When event occurs, condition must be true for state transition to occur.
• If condition is false, state transition does not occur • Condition may be used to indicate that event has occurred
– E.g., Closedown Was Requested
![Page 7: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/7.jpg)
Copyright © 2014 Rob Pettit 7
Actions
• State transition label – Event / action(s) – Event [condition] / action(s)
• Action – Executed as a result of state transition – Executes instantaneously at state transition – Terminates itself – Is optional
• Entry/exit actions
![Page 8: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/8.jpg)
Copyright © 2014 Rob Pettit 8
Entry and Exit Actions
• Entry action – Action executed on entry into state
• Entry / action • Exit action
– Action executed on exit from state • Exit / action
• Entry and Exit actions specified in the state – Must be true for every entry / exit occurrence – If not, then you must use actions on the individual
transition arcs
![Page 9: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/9.jpg)
Copyright © 2014 Rob Pettit 9
Activities
• Activity – Not instantanious – Executes for duration of state
• do / Activity in state • Examples of activities
– Increase Speed • Executes for duration of Accelerating state
– Maintain Speed • Executes for duration of Cruising state
– Resume Cruising • Executes for duration of Resuming state
![Page 10: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/10.jpg)
Copyright © 2014 Rob Pettit 10
Case Study: Automated Coffee Maker
Input Buttons
Display
Beeper
Heating Element Water Level Sensor Water Pump
Carafe Warmer
Carafe Sensor
Internal Clock
• Person fills with coffee grounds & water filled • Person puts carafe in place • Person presses the Start button • System starts brewing coffee
• Heating element and carafe warmer turned on
• When brewing temp reached, pump is started
• Stop pump, heating element, and sound beeper when water level is empty
• Automated timer begins when brewing is complete
• When timer elapses, turn off carafe warmer.
![Page 11: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/11.jpg)
Copyright © 2014 Rob Pettit 11
Hierarchical State Machines
• Early versions of state machines – Flat structure (no composite states) – With many / complex states, diagrams became very
cluttered • UML State Machines
– Based on Harel Statecharts – Allow hierarchical composition to manage complexity
• Superstate decomposed into substates • Default entry states • Transition out of superstate corresponds to transition
out of every substate
![Page 12: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/12.jpg)
Copyright © 2014 Rob Pettit 12
Hierarchical State Machines
• OR decomposition – When object is in superstate
• It is in one and only one of substates – Transition into superstate
• Must be to one and only one of substates • Aggregation of state transitions
– If same event causes transition out of every substate – Then aggregate into transition out of superstate
![Page 13: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/13.jpg)
Copyright © 2014 Rob Pettit 13
Hierarchical State Machines
• Orthogonal state machine – Used to depict states of different aspects of object
• AND decomposition – Object is in one substate on each lower level state machine – Object’s state is union of all substates
• Same event – May cause transitions on more than one state machine
• Output action on one state machine – May be input event on other state machine
• Substate on one state machine – May be condition on other state machine
![Page 14: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/14.jpg)
Copyright © 2014 Rob Pettit 14
State Machine Guidelines • Create a state machine for each non-«entity» class
– Some will only be simplistic, single-state machines • During analysis, we’ll focus on «control» classes
– This is a deviation from the COMET guidelines, where state machines were only created for «state dependent» classes
• State name should be active not passive – Represents time period when something
• is happenING, e.g., Elevator Moving • Identifiable situation, e.g., Elevator Idle, Initial
• State names must be unique • Must be able to exit from every state • Flat state machine
– State machine is only in one state at a time • Hierarchical state machine
– State machine is only in one substate at a time • Orthogonal state machines – one substate of each orthogonal region
![Page 15: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/15.jpg)
Copyright © 2014 Rob Pettit 15
State Machine Guidelines - 2
• Event is the cause of the state transition – Event happens at a moment in time – Event name indicates something has just happened
• e.g, Received Up Request, Door Closed • Action is the result of the state transition
– Action is a command, e.g., Stop, Close Door – Action executes instantaneously – Activity executes throughout a given state
• More than one action possible with a state transition – Executed in the order they appear on the transition
• Condition is a Boolean value – Event [Condition] – State transition only occurs if
• Event happens & Condition is True – Condition is True over some interval of time
• Events, Actions, Activities and Conditions are optional
![Page 16: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/16.jpg)
Copyright © 2014 Rob Pettit 16
Developing State Machines
• From the Use Case Model: – Look for distinct modes or states
• Are there certain situations where inputs are processed different?
• Are there certain situations where inputs are allowed and other where they are not?
• Do inputs cause a change in the state? • From the Interaction Diagrams
– Look at incoming messages (events) and their corresponding results (actions)
– Do events get processed differently depending on the state of the object?
![Page 17: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/17.jpg)
Copyright © 2014 Rob Pettit 17
Example
Consistency Between Statecharts and Sequence Diagrams - Temperature Control System Case Study -
![Page 18: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/18.jpg)
Copyright © 2014 Rob Pettit 18
![Page 19: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/19.jpg)
Copyright © 2014 Rob Pettit 19
![Page 20: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/20.jpg)
Copyright © 2014 Rob Pettit 20
![Page 21: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/21.jpg)
Copyright © 2014 Rob Pettit 21
![Page 22: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/22.jpg)
Copyright © 2014 Rob Pettit 22
![Page 23: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/23.jpg)
Copyright © 2014 Rob Pettit 23
![Page 24: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/24.jpg)
Copyright © 2014 Rob Pettit 24
![Page 25: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/25.jpg)
Copyright © 2014 Rob Pettit 25
![Page 26: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/26.jpg)
Copyright © 2014 Rob Pettit 26
![Page 27: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/27.jpg)
Copyright © 2014 Rob Pettit 27
![Page 28: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/28.jpg)
Copyright © 2014 Rob Pettit 28
![Page 29: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/29.jpg)
Copyright © 2014 Rob Pettit 29
![Page 30: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/30.jpg)
Copyright © 2014 Rob Pettit 30
![Page 31: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite](https://reader034.fdocuments.in/reader034/viewer/2022043023/5f3f11bf52e5677de054a830/html5/thumbnails/31.jpg)
Copyright © 2014 Rob Pettit 31