MSc in Communication Sciences Program in Technologies for Human Communication Davide Eynard Facoltà di scienze della comunicazione Università della Svizzera italiana 06 – Finite State Machines Software Technology 2
I Facoltà di scienze della comunicazione Università della Svizzera italiana Intro A very practical lesson “by examples” Exercises (old and new) Write down notes, they will be useful for the exam!!! A very specific tool QFSM – A graphical tool for designing and simulating Finite State Machines Linux and Windows versions available herehere Mac OSX version available herehere User manual at 2
I Facoltà di scienze della comunicazione Università della Svizzera italiana The tool QFSM is an opensource graphical FSM editor It allows to design Finite State Machines Moore and Mealy I/O Binary, ASCII, or free text FSM Nice to see, but also… … it provides machine simulation, and… … possibility to export into many different formats 3
I Facoltà di scienze della comunicazione Università della Svizzera italiana States and transitions State properties: Name Code Moore Output Initial/Final tag Transition properties: Condition type Condition value (ranges, any, inverts, or default transition) Mealy Output 4
I Facoltà di scienze della comunicazione Università della Svizzera italiana Example 1 The e-commerce website example (ecommerce01.fsm, ecommerce02.fsm) 5
I Facoltà di scienze della comunicazione Università della Svizzera italiana Example 1 – Exporting outputs 6
I Facoltà di scienze della comunicazione Università della Svizzera italiana Example 2 The engine, with Moore outputs (engine01.fsm) 7
I Facoltà di scienze della comunicazione Università della Svizzera italiana Example 3 The engine, with Moore and Mealy outputs (engine02.fsm) 8
I Facoltà di scienze della comunicazione Università della Svizzera italiana Example 4 The ATM machine (atm01.fsm, atm02.fsm) 9
I Facoltà di scienze della comunicazione Università della Svizzera italiana Example 5 Regular Expression: 0 | [+|-]? [1-9] [0-9]* (regexp01.fsm) We do not have ε in the tool... how can we code empty transitions? [NOTE] this solution is purposely WRONG! 10
I Facoltà di scienze della comunicazione Università della Svizzera italiana Example 6 Regular Expression: [a-z](0[1-9]|[1-9][0-9]) (regexp02.fsm) FSM can be used to accept the token or not 11
I Facoltà di scienze della comunicazione Università della Svizzera italiana A little more complex modelling example: traffic lights (traffic.fsm) Which are all the states? Which are the real ones we want to model? Visible states vs total states Example 7 12
I Facoltà di scienze della comunicazione Università della Svizzera italiana Conclusions Modelling FSM is not hard... … from a technical point of view (we have good tools) … but modelling cannot be totally delegated to a tool! The human part of modelling is not always trivial Understanding which are the states we are interested in Thinking not only about visible states Coding solutions in a complete way (especially if we want to automatically convert a FSM in code) Possible exercises: Think about a process you already know well and formalize it with a FSM Try to convert previously explained regular expressions 13
I Facoltà di scienze della comunicazione Università della Svizzera italiana References Some Web references: Tools: 14