Modeling Software with Finite State Machines: A Practical Approach explains how to apply finite state machines to software development. It provides a critical analysis of using finite state machines as a foundation for executable specifications to reduce software development effort and improve quality. This book discusses the design of a state machine and of a system of state machines. It also presents a detailed analysis of development issues relating to behavior modeling with design examples and design rules for using finite state machines.
This volume describes a coherent and well-tested framework for generating reliable software for even the most complex tasks. The authors demonstrate that the established practice of using a specification as a basis for coding is wrong. Divided into three parts, this book opens by delivering the authors' expert opinions on software, covering the evolution of development as well as costs, methods, programmers, and the development cycle. The remaining two parts encourage the use of state machines: promoting the virtual finite state machine (Vfsm) method and the StateWORKS development tools.
The Problems of Software
Evolution of Software Development
The Price of Weakness
Software as Engineering?
Finite State Machines
Introduction, Definitions, and Notation
Misunderstandings about FSM
Designing a State Machine
Systems of State Machines
StateWORKS: Principles and Practice
Digital Input and Output
VFSM and Its Interfaces
What Is StateWORKS?
Microwave Oven Control - Use of StateWORKS Development Tools
Gas Control - Hierarchical System of State Machines
Dining Philosophers Problem
Going Beyond the Limitations of IEC 61131-3
Traffic Light Control - Design of the Hardware Solution
Coding Finite State Machine - Vending Machine Counter Example
IOD File of the StandardUnit
Vending Machine Counter Project
Pedestrian Traffic Light Project
Pumps Supervision Project
Output Function CalcLimits( )
Traffic Light Project
Attributes of RTDB Objects
StateWORKS Tools and Components