A Finite State Machine (FSM) is a model of behavior composed of a finite number of states and transitions between those states.
A transition indicates a state change and is described by a condition that would need to be fulfilled to enable the transition.
Finite state machines are a class of automata studied in automata theory and the theory of computation. In computer science, finite state machines are widely used in modeling of application behavior, design of hardware digital systems, software engineering, compilers, network protocols, and the study of computation and languages.





