Proposes a radically new method of software development based upon the intensive use of finite state machines for the specification of software behavior
Offers expert opinion and analysis of the problems that traditionally afflict development
Provides rules for designing a finite state machine and systems of state machines
Contains numerous worked-out examples that enable better comprehension of both principles and practice
Furnishes a link for a free download of StateWORKS development tools, source code of all examples, and additional technical notes not found in the book
Enables purchasers of the book to obtain an unlimited-time use license for the StateWORKS Studio LE development tools, free of charge, which is otherwise limited to 30 days
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.
Table of Contents
The Problems of Software Evolution of Software Development The Price of Weakness Software as Engineering?
Finite State Machines Introduction, Definitions, and Notation Hardware Applications Software Specific Misunderstandings about FSM Designing a State Machine Systems of State Machines
StateWORKS: Principles and Practice StateWORKS Digital Input and Output Other Inputs Other Outputs Counters VFSM and Its Interfaces Debugging Vfsm What Is StateWORKS?
Appendices Case Studies 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 StateWORKS Projects Vending Machine Counter Project Pedestrian Traffic Light Project Pumps Supervision Project Output Function CalcLimits( ) Traffic Light Project DI_DO Project Other_Inputs Project Other_Outputs Project Counters Project Attributes of RTDB Objects StateWORKS Tools and Components