SlideShare a Scribd company logo
Finite State Machine

    Osama Hussain
Content
•   Concept
•   Mealy & Moore Machines
•   UML State Machines
•   UML State Diagrams
•   Examples
•   Implementation
Concept


A finite state machine (hereinafter called FSM) is
a mathematical model which abstracts the
representation of behavior exhibited by some
systems
Mathematical Model




  Check it by yourself 
System & Behavior

System
System                 Abstraction

            Behavior                 FSM
System
  …
Examples
• Traffic Light
   – Switching lights on and off
• Text Parsers
   – Detection of certain phrase or word
• Washing Machine
   – Washing, Rinsing, Spinning …
• Mario in Super Mario Game
   – Walk, Run, Jump …
Remarks
• Not all systems can be modeled in FSM
  – Real-time systems for example
  – Memory limitations due to huge number of states
• Not all systems can be easily modeled in FSM
  – Some behaviors are hard to describe in terms of
    states
• Proper FSM design can lead to easier system
  development
Within Game Dev.
• Some Game Developers think
  – FSM is only considered for AI field
  – FSM is only used in abstracting character behavior
  – FSM is only considered for Gameplay
    Programmers
Misconception
• Some Game Developers think
  – FSM is only considered for AI field
  – FSM is only used in abstracting character behavior
  – FSM is only considered for Gameplay
    Programmers

                          
Composition
• FSM consists of several states
• In Programming, state is a technical term for
  all the stored information, at a given point in
  time, which the program has access to.
  – Spinning in Washing Machine
  – C++ parser detects “int” keyword CPP file
  – Mario Jumping inside a Super Mario game
  – Red Light in Traffic Light
Composition
• Inputs into the machine are combined with
  the current state of the machine to determine
  the new state or the next state of the machine


    Current State                  Next State




            Input
State diagram




Donate a graphical representation of an FSM


           UML State diagrams
“Hello World” state diagram
                                  Initial Transition


                                              States

Indicator of Initial Transition

                                                       Final State


                  Transitions         Initial State
Composition
• Output … ?
Mealy Machine



Output determined by state and input
Traffic Light – Concept
• We got 3 lights that can be switched on and off individually,
  they are: Red, Yellow, and Green
• Traffic light contains a timer
• The traffic light starts by turning on the red light and turn
  off the rest
• After timer completes, switch on the green light and turn
  off the rest
• After timer completes, switch on the yellow light and turn
  off the rest
• After timer completes, switch on the red light and turn off
  the rest
• Restart again
Traffic Light – Mealy Machine
Quote Parser – Concept
• For a whole string of characters, print
  characters which are within double quotations
• Example
  – Input: “Hello ”people, what a nice “world!”
  – Output: Hello world!
Quote Parser – Mealy Machine
Moore Machine




Output determined by state and output
Traffic Light – Moore Machine
Traffic Light - Comparison
Mealy Machine     Moore Machine
Quote Parser – Moore Machine
UML State Machine
Significantly enhanced realization of the
mathematical concept of a finite automaton in
Computer Science applications as expressed in
the Unified Modeling Language notation
  – Object-based variant of Harel statechart (the
    concept of nested states)
  – Combines both Mealy and Moore machines with
    further addition of features
State Structure
Think of your states as objects where you might
need to
• Initialize it through Entry actions
• Update it through Do actions
• Finalize it through Exit actions
State Structure
Advantages
• Less states
• Default control mechanism
• Object oriented style
Hierarchically Nested States

 Arranging states in a structural way
Hierarchically Nested States
• The most important innovation of UML state
  machines over the traditional FSMs
• State nesting is not limited to one level only
• TOP state
  – Exist in every state machine
  – Contains all the other elements of the entire state
    machine
  – Optionally to depict it in the diagram
Traffic Light
• Based on previous traffic light description
• Add to that a switch
• You can turn the traffic light on and off at any
  time
• If the traffic light is switched on, then it
  operates normally
• Otherwise, all the lights will be turned off
• By default the traffic light is turned off
Traffic Light
Traffic Light
Gain
• Less transitions
• Less states
• Structural behavior
  – Zoom out: Hide complexity of the system
  – Zoom in: View the details of sub behavior in
    meaningful way
History




A facility to return back to the previous state
Space Counter
Space Counter
Washing Machine
Washing Machine




                                  Junction Point




A.K.A. Shallow History
Deep History



Recall the state of every nested substate of the
enclosing substate, down to any level of nesting
Washing Machine
Orthogonal Regions



A state can contain two or more independent
regions runs concurrently
Keyboard
Counter
• Imagine designing a FSM for 32-bit counter
  – Input: an external trigger
  – Output: once reaches 2^32 – 1, the system peeps!
• More than 4 billion different states!
Mgd finite statemachine
Extended states




State machines supplemented with variables
Extended states
• Program variables are commonly dissociated
  from states
• the complete condition of the system (called
  the extended state) is the combination of a
  qualitative aspect (the state) and the
  quantitative aspects (the extended state
  variables)
• UML state machines belong to this category
Counter




               Guard Conditions




Choice Point
Guard Conditions
• Boolean expressions evaluated dynamically
  based on the value of extended state variables
  and event parameters
• Enable actions or transitions only when they
  evaluate to TRUE and disabling them when
  they evaluate to FALSE
• Shown in square brackets “[]”
Guard Conditions
• Good for the design, making it further simpler
• However, do not use it to eliminate states that
  you actually start used to eliminate IF ELSE
  statements!
• If you do … spaghetti code
State Diagrams' Limitations
• Any nontrivial state machine requires a large
  amount of textual information. For example,
  actions
• Depend heavily on the specific programming
  language
• Poorly represent the sequence of processing
• Require a lot of plumbing gear (junction points,
  choice points, etc.) to represent the flow of
  control graphically
• several complementary views of the same state
  machine
Commercial Tools
• Rational Rose
  – Well known tool
  – Bought by IBM in 2003
• Bouml
  – Cross-platform
  – Was free at certain point of time 
Open Source Tools
• StarUML
  – Windows only
  – Have most of the features required for State
    diagrams with only exception of orthogonal
    regions
  – No longer being in development 
  – Many initiatives to re-launch the project again
Questions?
Thank you

More Related Content

ODP
Akka Finite State Machine
Knoldus Inc.
 
PPTX
Synchronous state machines. Moore and Mealy state machines (FSM)
Mumbi Chishimba
 
PPSX
Finite state automaton
AmmAr mobark
 
PPTX
Moore and mealy machine
Mian Munib
 
PPTX
Applications of Mealy & Moore Machine
SardarKashifKhan
 
PPT
Mealy and moore machines
grahamwell
 
PPTX
Mealy Machine by Daniyal Khan
Daniyal Khan
 
PPT
Moore and Mealy machines
Irfan Anjum
 
Akka Finite State Machine
Knoldus Inc.
 
Synchronous state machines. Moore and Mealy state machines (FSM)
Mumbi Chishimba
 
Finite state automaton
AmmAr mobark
 
Moore and mealy machine
Mian Munib
 
Applications of Mealy & Moore Machine
SardarKashifKhan
 
Mealy and moore machines
grahamwell
 
Mealy Machine by Daniyal Khan
Daniyal Khan
 
Moore and Mealy machines
Irfan Anjum
 

What's hot (12)

PPT
19 moore mealy
Hareem Memon
 
PPT
State Machine Diagram
Niloy Rocker
 
PDF
Finite State Machines with Output
Mustafa Saeed
 
PPT
Slide 6 Activity Diagram
Niloy Rocker
 
PPTX
ALGORITHMIC STATE MACHINES
Rabindranath Tagore University, Bhopal
 
PPT
18th & 19th Lecture
babak danyal
 
PPTX
FSM and ASM
Unsa Shakir
 
PDF
Unit IV robotics-- Kinematics
Dr.G.Saravanan
 
PPT
State Diagrams
Vaidik Trivedi
 
PDF
Unit iv robot programming
Dr.G.Saravanan
 
PPTX
Programming models for event controlled programs
Priya Kaushal
 
19 moore mealy
Hareem Memon
 
State Machine Diagram
Niloy Rocker
 
Finite State Machines with Output
Mustafa Saeed
 
Slide 6 Activity Diagram
Niloy Rocker
 
ALGORITHMIC STATE MACHINES
Rabindranath Tagore University, Bhopal
 
18th & 19th Lecture
babak danyal
 
FSM and ASM
Unsa Shakir
 
Unit IV robotics-- Kinematics
Dr.G.Saravanan
 
State Diagrams
Vaidik Trivedi
 
Unit iv robot programming
Dr.G.Saravanan
 
Programming models for event controlled programs
Priya Kaushal
 
Ad

Viewers also liked (18)

PPTX
Finite state machines
dennis gookyi
 
PPT
Moore and mealy machines
lavishka_anuj
 
PDF
Mealy machine
Arif Siyal
 
PDF
Mealy state machine
Arif Siyal
 
PPT
Cldch8
sealife24
 
PPT
A&D - UML
vinay arora
 
PDF
Software Verification, Validation and Testing
Dr Sukhpal Singh Gill
 
PPT
Requirement specification
Abdul Basit
 
PPT
design of FPGA based traffic light controller system
Vinny Chweety
 
PDF
Model based software testing
Sachin MK
 
PDF
A WHITE BOX TESTING TECHNIQUE IN SOFTWARE TESTING : BASIS PATH TESTING
Journal For Research
 
PPTX
Blackbox
GuruKrishnaTeja
 
DOCX
Hospital Management System
idowume
 
PPTX
Black box testing or behavioral testing
Slideshare
 
PPT
Requirement Analysis
sslovepk
 
PPTX
PART -1 TRAFFIC LIGHT CONTROL USING 8085
Subash Sambath Kumar
 
PPTX
Introduction to White box testing
Aliaa Monier Ismaail
 
PDF
Requirement analysis and specification
M.E. at GTU- PG School
 
Finite state machines
dennis gookyi
 
Moore and mealy machines
lavishka_anuj
 
Mealy machine
Arif Siyal
 
Mealy state machine
Arif Siyal
 
Cldch8
sealife24
 
A&D - UML
vinay arora
 
Software Verification, Validation and Testing
Dr Sukhpal Singh Gill
 
Requirement specification
Abdul Basit
 
design of FPGA based traffic light controller system
Vinny Chweety
 
Model based software testing
Sachin MK
 
A WHITE BOX TESTING TECHNIQUE IN SOFTWARE TESTING : BASIS PATH TESTING
Journal For Research
 
Blackbox
GuruKrishnaTeja
 
Hospital Management System
idowume
 
Black box testing or behavioral testing
Slideshare
 
Requirement Analysis
sslovepk
 
PART -1 TRAFFIC LIGHT CONTROL USING 8085
Subash Sambath Kumar
 
Introduction to White box testing
Aliaa Monier Ismaail
 
Requirement analysis and specification
M.E. at GTU- PG School
 
Ad

Similar to Mgd finite statemachine (20)

PPTX
Finite State Machine.ppt.pptx
SKUP1
 
PPTX
Unit 4- State Machine in mobile programming
LeahRachael
 
PDF
Tool demo composition of executable languages
David Méndez Acuña
 
PPTX
Finite state machine and it's types and working
bt21ec022
 
PPTX
States, state graphs and transition testing
ABHISHEK KUMAR
 
PPTX
Finite State Machines Digital Logic Design .pptx
23021519147
 
PPT
Fdocuments.in chapter 11-states-state-graphs-and-transition-testing
Subhash Chintalapudi
 
PPTX
ASIC Design Laboratory Finite State Machines State Diagrams vs. Algorithmic S...
akwatronics
 
PPTX
State-Machine-Diagram.pptx
Smit Mehta
 
DOCX
UNIT-IV .FINITE STATE MACHINES
Dr.YNM
 
PDF
Finite automata
Pusp Sunar
 
PDF
state_machines1.pdf
rdjo
 
PPTX
Sometimes tells me funny stories from his childhood
nomuss27
 
PPTX
States, state graphs and transition testing
geethawilliam
 
PPTX
mealy and moore machines
Unsa Shakir
 
PPT
chap8 synchronous sequential circuit design.ppt
AliAbdulhadi8
 
PPT
Introduction state machine
Shreyans Pathak
 
PPT
C:\documents and settings\student\desktop\swaroop uml
satyaiswaroop
 
PDF
The State Machine Compiler
François Perrad
 
PDF
L0537075
IOSR Journals
 
Finite State Machine.ppt.pptx
SKUP1
 
Unit 4- State Machine in mobile programming
LeahRachael
 
Tool demo composition of executable languages
David Méndez Acuña
 
Finite state machine and it's types and working
bt21ec022
 
States, state graphs and transition testing
ABHISHEK KUMAR
 
Finite State Machines Digital Logic Design .pptx
23021519147
 
Fdocuments.in chapter 11-states-state-graphs-and-transition-testing
Subhash Chintalapudi
 
ASIC Design Laboratory Finite State Machines State Diagrams vs. Algorithmic S...
akwatronics
 
State-Machine-Diagram.pptx
Smit Mehta
 
UNIT-IV .FINITE STATE MACHINES
Dr.YNM
 
Finite automata
Pusp Sunar
 
state_machines1.pdf
rdjo
 
Sometimes tells me funny stories from his childhood
nomuss27
 
States, state graphs and transition testing
geethawilliam
 
mealy and moore machines
Unsa Shakir
 
chap8 synchronous sequential circuit design.ppt
AliAbdulhadi8
 
Introduction state machine
Shreyans Pathak
 
C:\documents and settings\student\desktop\swaroop uml
satyaiswaroop
 
The State Machine Compiler
François Perrad
 
L0537075
IOSR Journals
 

More from Moroccan game developers (7)

PPTX
Global Game Jam Morocco
Moroccan game developers
 
PPT
MGD Html5 pres fr
Moroccan game developers
 
PPTX
Mgd gamification
Moroccan game developers
 
PPTX
Mgd crowfundinginvideogames
Moroccan game developers
 
PPT
Mgd unity interface
Moroccan game developers
 
PPTX
Mgd game devprocess
Moroccan game developers
 
PPT
Mgd scripting
Moroccan game developers
 
Global Game Jam Morocco
Moroccan game developers
 
MGD Html5 pres fr
Moroccan game developers
 
Mgd gamification
Moroccan game developers
 
Mgd crowfundinginvideogames
Moroccan game developers
 
Mgd unity interface
Moroccan game developers
 
Mgd game devprocess
Moroccan game developers
 

Mgd finite statemachine

  • 1. Finite State Machine Osama Hussain
  • 2. Content • Concept • Mealy & Moore Machines • UML State Machines • UML State Diagrams • Examples • Implementation
  • 3. Concept A finite state machine (hereinafter called FSM) is a mathematical model which abstracts the representation of behavior exhibited by some systems
  • 4. Mathematical Model Check it by yourself 
  • 5. System & Behavior System System Abstraction Behavior FSM System …
  • 6. Examples • Traffic Light – Switching lights on and off • Text Parsers – Detection of certain phrase or word • Washing Machine – Washing, Rinsing, Spinning … • Mario in Super Mario Game – Walk, Run, Jump …
  • 7. Remarks • Not all systems can be modeled in FSM – Real-time systems for example – Memory limitations due to huge number of states • Not all systems can be easily modeled in FSM – Some behaviors are hard to describe in terms of states • Proper FSM design can lead to easier system development
  • 8. Within Game Dev. • Some Game Developers think – FSM is only considered for AI field – FSM is only used in abstracting character behavior – FSM is only considered for Gameplay Programmers
  • 9. Misconception • Some Game Developers think – FSM is only considered for AI field – FSM is only used in abstracting character behavior – FSM is only considered for Gameplay Programmers 
  • 10. Composition • FSM consists of several states • In Programming, state is a technical term for all the stored information, at a given point in time, which the program has access to. – Spinning in Washing Machine – C++ parser detects “int” keyword CPP file – Mario Jumping inside a Super Mario game – Red Light in Traffic Light
  • 11. Composition • Inputs into the machine are combined with the current state of the machine to determine the new state or the next state of the machine Current State Next State Input
  • 12. State diagram Donate a graphical representation of an FSM UML State diagrams
  • 13. “Hello World” state diagram Initial Transition States Indicator of Initial Transition Final State Transitions Initial State
  • 15. Mealy Machine Output determined by state and input
  • 16. Traffic Light – Concept • We got 3 lights that can be switched on and off individually, they are: Red, Yellow, and Green • Traffic light contains a timer • The traffic light starts by turning on the red light and turn off the rest • After timer completes, switch on the green light and turn off the rest • After timer completes, switch on the yellow light and turn off the rest • After timer completes, switch on the red light and turn off the rest • Restart again
  • 17. Traffic Light – Mealy Machine
  • 18. Quote Parser – Concept • For a whole string of characters, print characters which are within double quotations • Example – Input: “Hello ”people, what a nice “world!” – Output: Hello world!
  • 19. Quote Parser – Mealy Machine
  • 20. Moore Machine Output determined by state and output
  • 21. Traffic Light – Moore Machine
  • 22. Traffic Light - Comparison Mealy Machine Moore Machine
  • 23. Quote Parser – Moore Machine
  • 24. UML State Machine Significantly enhanced realization of the mathematical concept of a finite automaton in Computer Science applications as expressed in the Unified Modeling Language notation – Object-based variant of Harel statechart (the concept of nested states) – Combines both Mealy and Moore machines with further addition of features
  • 25. State Structure Think of your states as objects where you might need to • Initialize it through Entry actions • Update it through Do actions • Finalize it through Exit actions
  • 27. Advantages • Less states • Default control mechanism • Object oriented style
  • 28. Hierarchically Nested States Arranging states in a structural way
  • 29. Hierarchically Nested States • The most important innovation of UML state machines over the traditional FSMs • State nesting is not limited to one level only • TOP state – Exist in every state machine – Contains all the other elements of the entire state machine – Optionally to depict it in the diagram
  • 30. Traffic Light • Based on previous traffic light description • Add to that a switch • You can turn the traffic light on and off at any time • If the traffic light is switched on, then it operates normally • Otherwise, all the lights will be turned off • By default the traffic light is turned off
  • 33. Gain • Less transitions • Less states • Structural behavior – Zoom out: Hide complexity of the system – Zoom in: View the details of sub behavior in meaningful way
  • 34. History A facility to return back to the previous state
  • 38. Washing Machine Junction Point A.K.A. Shallow History
  • 39. Deep History Recall the state of every nested substate of the enclosing substate, down to any level of nesting
  • 41. Orthogonal Regions A state can contain two or more independent regions runs concurrently
  • 43. Counter • Imagine designing a FSM for 32-bit counter – Input: an external trigger – Output: once reaches 2^32 – 1, the system peeps! • More than 4 billion different states!
  • 45. Extended states State machines supplemented with variables
  • 46. Extended states • Program variables are commonly dissociated from states • the complete condition of the system (called the extended state) is the combination of a qualitative aspect (the state) and the quantitative aspects (the extended state variables) • UML state machines belong to this category
  • 47. Counter Guard Conditions Choice Point
  • 48. Guard Conditions • Boolean expressions evaluated dynamically based on the value of extended state variables and event parameters • Enable actions or transitions only when they evaluate to TRUE and disabling them when they evaluate to FALSE • Shown in square brackets “[]”
  • 49. Guard Conditions • Good for the design, making it further simpler • However, do not use it to eliminate states that you actually start used to eliminate IF ELSE statements! • If you do … spaghetti code
  • 50. State Diagrams' Limitations • Any nontrivial state machine requires a large amount of textual information. For example, actions • Depend heavily on the specific programming language • Poorly represent the sequence of processing • Require a lot of plumbing gear (junction points, choice points, etc.) to represent the flow of control graphically • several complementary views of the same state machine
  • 51. Commercial Tools • Rational Rose – Well known tool – Bought by IBM in 2003 • Bouml – Cross-platform – Was free at certain point of time 
  • 52. Open Source Tools • StarUML – Windows only – Have most of the features required for State diagrams with only exception of orthogonal regions – No longer being in development  – Many initiatives to re-launch the project again