Article Preview
TopIntroduction
The history of the concept of finite state machine illustrates its wide range of applications. The first researchers to consider the concept included biologists, psychologists, mathematicians, engineers, and computer scientists. “They all were interested in modeling the human thought process, whether in the brain or in a computer” (Subhadra, 2016). For example, Turing’s underlying thought was that “the organization of the brain must be realizable as a finite discrete-state machine” (Hodges, 2013; see Maguire et al., 2015). “All of the ‘computers’ that we encounter in everyday life are merely physical finite state machines” (Maguire et al., 2015).
Discrete state machines theoretically underlie almost everything related to computers (Mertz, 2000), but a survey revealed that only 28% of university students considered State Machine Diagrams very useful. Teachers have indicated that students tend to underestimate the relevance of state machines, and novices often reject the concept outright (Wrycza & Marcinkowski, 2007).
Finite state machines have a finite number of unambiguous states and use deterministic rules to transition from one state to another. Other models have been inspired by the ideas of states and diagrams; nevertheless, the state machine remains the dominant model for describing the behavior of control systems. State machines are so widely known as a subject of research and study that a review of their basic concepts seems hardly necessary.
SMs were originally introduced for hardware design and differentiated as Mealy machines (outputs as functions of state only) and Moore machines (outputs as functions of state and inputs). The concept of a state machine has also been used in software design, especially with the introduction of the extended state machine known as Statecharts with its view of sub-states through a state. “Statecharts is sometimes considered a replacement for the state machine concept. There is no direct translation between a system of state machines and a Statecharts representation of a control system. Statecharts is a new, interesting model of control systems which is used in UML for behavior specification and is not too helpful for creating the software” (Wagner & Wolstenholme, 2004). This paper focuses on the classical (finite) SM as it includes the fundamental concept of incorporating states and events.