Modeling Software with Finite State Machines: A Practical Approach

Free Standard Shipping

Purchasing Options

ISBN 9780849380860
Cat# AU8086



SAVE 20%

eBook (VitalSource)
ISBN 9781420013641
Cat# AUE8086



SAVE 30%

eBook Rentals

Other eBook Options:


  • 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
  • Summary

    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
    Digital Input and Output
    Other Inputs
    Other Outputs
    VFSM and Its Interfaces
    Debugging Vfsm
    What Is StateWORKS?

    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