Kamalesh Karmakar, Assistant Professor, C.S.E. & I.T. Meghnad Saha Institute of Technology
Finite State Machine
The use of Finite State Machines (FSM) is at the base of several software design methods, and they can provide strong support during both design and implementation phases of software development. This chapter focuses on the use of Finite State Diagrams (FSD) for specifying the dynamic operation of software. Before planning an FSD, it is usual to draw up a context diagram to define the system perimeter.
Context Diagram
Finite State Diagram
FSDs or State Transition Diagrams (STD) are very widely used to describe and analyse event-driven, cyclical systems. Both hardware and software can be dealt with using this simple technique. Indeed, both structured analysis/ design and object-oriented design/programming methodologies employ finite state descriptions to capture and specify system dynamics. System behaviour is represented on an FSD as a group of discrete, mutually exclusive states, only one of which is occupied at any time. A transition between two of the system states is triggered by an event which commonly arises from a change in the status of an input port, perhaps generating an interrupt. All states and valid transitions must be clearly and completely specified.