dynamic modeling - finite state machinesrpettit/files/lectures/321l06.pdf · 2014-10-20 · state...

31
Copyright © 2014 Rob Pettit 1 Dynamic Modeling - Finite State Machines SWE 321 Fall 2014 Rob Pettit

Upload: others

Post on 12-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dynamic Modeling - Finite State Machinesrpettit/files/lectures/321L06.pdf · 2014-10-20 · State Machine Diagrams • State machine diagram – Graphical representation of finite

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Copyright © 2014 Rob Pettit 31