Table of contents for Modeling software with finite state machines : a practical approach / Ferdinand Wagner ... [et al.].

Bibliographic record and links to related information available from the Library of Congress catalog.

Note: Contents data are machine generated based on pre-publication provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.


Counter
 
Table of Contents
Part I The Problems of Software
CHAPTER 1 Evolution Of Software Development 
1.1.Introduction
1.2.Programming languages
1.2.1 A little history
1.2.2 BASIC catastrophe
1.2.3 C++
1.2 4 PLC
1.2.5 Script or Macro notations
1.2.6 There are many languages
1.3. Methods
1.3.1 Basic knowledge
1.3.2 Specifying or not?
1.3.3 CASE tools
1.3.4 UML
1.3.5 Agile methods
1.3.6 Behaviour modelling
1.4.Development tools
CHAPTER 2 The Price Of Weakness
2.1.Software development costs
2.1.1 Programming as a hobby
2.1.2 Small software projects
2.1.3 Large software projects
2.1.4 Hardness of software
2.1.5 Ease of creating new macro languages
2.1.6 Do we need so many programming languages?
2.1.7 The specifics of programming languages
2.1.8 The specific of a software project
2.1.9 Software is expensive
2.2. Maintenance costs
2.2.1 Software errors
2.2.2 Software changes
2.2.3 In code we trust
2.2.4 The costs of software errors
2.3.The programmers' world
2.3.1 A programmer in a project
2.3.2 The software project leader
2.4.Examples of disasters
CHAPTER 3 Software As Engineering?
3.1.Methods
3.1.1 Fascination with graphics
3.1.2 Visual BASIC chaos
3.1.3 Object oriented design illusion
3.1.4 UML illusion
3.1.5 Formal methods
3.1.6 CASE tools ¿ value for money?
3.1.7 Programming or specification languages?
3.2.Development cycle
3.2.1 Prototyping
3.2.2 Specification
3.2.3 Software development steps
3.2.4 Software documentation
3.2.5 Testing and Debugging
3.2.6 Maintenance and Support
3.2.7 Human factors
3.2.8 Summary
3.3.Education requirements
3.3.1 Who is a programmer?
3.3.2 Education as the basis of skill
3.3.3 Missing skill - examples
3.4.Conclusions
3.4.1 References
Part II Finite state machines
CHAPTER 4 Introduction, Definitions and Notation
4.1.Finite State Machine
4.2.State machine models and presentations
4.2.1 Transition matrix
4.2.2 State transition diagram
4.2.3 Outputs (Actions)
4.2.4 Moore and Mealy model
4.2.5 State transition table
4.2.6 Example
CHAPTER 5 Hardware Applications
5.1.Introduction
5.2.Limited to boolean signals
5.2.1 Design example - Traffic light control
5.2.2 EPROM based Implementations
5.2.3 FPLA or CPLD based Implementations
5.3.Conclusions
CHAPTER 6 Software Specific
6.1.Introduction
6.2.Data and control flow
6.3.Any class of signal may ¿contain¿ the control value
6.3.1 Digital input
6.3.2 Command input
6.3.3 Numerical input
6.3.4 Parameter
6.3.5 Data processing result
6.3.6 Timer
6.3.7 State machine
6.3.8 External and internal signals
6.3.9 What about outputs?
6.3.10 Digital output
6.3.11 Command output
6.3.12 Numerical output
6.3.13 Data processing output
6.3.14 Timer
6.3.15 Summary
6.4. Event driven software
6.4.1 Event as a control signal
6.5.State machine or combinational system?
6.6.Models of a finite state machine
6.6.1 Application based state machine models
6.6.2 State machine execution models
6.7.Coding as a universal solution
6.8.Table-driven software to reduce coding effort
6.9.Limits of the coded solutions
CHAPTER 7 Misunderstandings about FSM
7.1.Historical background
7.2.Software systems
7.2.1 ¿Event driven¿ model
7.2.2 ¿Parser¿ problem
7.2.3 State explosion
7.2.4 Signal life time
7.2.5 State machine size
7.2.6 Interface between state machines
7.3.A flowchart is not a state machine
7.3.1 Flowchart
7.3.2 Example
7.3.4 What is a flowchart for?
7.4.Inventions
7.5.Conclusions
CHAPTER 8 Designing a State Machine 
8.1.A state machine models behaviour
Mealy or Moore models
8.2.Actions (entry, input, exit, transition)
8.3.Defining states
8.4.Acknowledgement principle (busy and done states)
8.5.The role of a timer
8.6.Error states and alarms
8.7.Completeness of the design
8.7.1 Hiding control information
8.8.Example ¿ Pedestrian traffic lights
8.8.1 The requirements
8.8.2 The specification
8.8.3 The specification must be understandable
8.9.Example ¿ Pressure supervision
8.9.1 The requirements
8.9.2 The specification
8.9.3 The Output function
8.9.4 The state transition diagram
8.10.Conclusions
CHAPTER 9 Systems of State Machines
9.1.Mastering complexity
9.2.The partitioning criteria
9.3.The communication interface among state machines
9.4.The handshaking rule
9.5.The (hierarchical) structure of the control system
9.6.Design procedure
9.6.1 Locality of the control problems
9.6.2 Up-down or bottom-up design
9.6.3 Deadlocks
9.6.4 Loops
9.6.5 Sins
9.6.6 Design rules
9.7.Example - Pumps supervision system
9.7.1 Task definition
9.7.2 The first approach
9.7.3 The second trial
9.7.4 The ultimate solution
9.8.Example -Traffic light control
9.8.1 Task definition
9.8.2 ¿Obvious¿ solution
9.8.3 The ultimate Control
9.8.4 Light
9.8.5 TrafficLight
9.8.6 Flash
9.8.7 System for 2-track railway
9.8.8 Summary
9.9.Conclusions
9.9.1 Implementation
9.9.2 Designing a state machine: 
9.9.3 Designing a system of state machines:
9.9.4 References
Part III StateWORKS: Principles and Practice
CHAPTER 10 StateWORKS 
10.1.Virtual environment and Vfsm
10.2.The StateWORKS development environment
10.2.1 Positive logic algebra
10.2.2 The Vfsm execution model
10.2.3 Objects
10.2.4 State machine defines object control values
10.2.5 Signal life time
10.2.6 Behaviour specification
10.2.7 System specification
10.3.The StateWORKS execution environment
10.3.1 RTDB based run-time system
10.3.2 Output function
10.3.3 I/O handler
10.3.4 User interface
CHAPTER 11 Digital Input and Output
11.1.A digital input has three control values
11.1.1Example
11.2.Setting and clearing the boolean output are two different actions
11.3. DI and DO properties
CHAPTER 12 Other Inputs
12.1.Input data (DAT)
12.1.1 Control values
12.1.2 Example
12.1.3Properties
12.2.Getting the control value (SWIP)
12.2.1Actions
12.2.2Control values
12.2.3 Example
12.2.4 Properties
12.3.NI object as an extension of DAT type
12.3.1 Control values
12.3.2 Properties
12.4.PAR object as a specific variant of DAT type
12.4.1 Control values
12.4.2 Properties
12.5.Strings (STR) as a specific variant of SWIP
12.5.1Actions
12.5.2Control values
12.5.3Example
12.5.4 Properties
CHAPTER 13 Other Outputs
13.1.Output data (NO)
13.1.1 Actions
13.1.2 Example
13.1.3 Properties
13.2.Output demultiplexer (TAB)
13.2.1 Actions
13.2.2 Example
13.3.Alarms (AL)
13.3.1 Actions
13.3.2 Properties
13.3.3 Example
CHAPTER 14 Counters
14.1.A simple counter (CNT)
14.1.1 Actions
14.1.2 Control values
14.1.3 Example
14.1.4 Properties
14.2.An event counter (ECNT)
14.2.1 Example
14.2.2 Properties
14.3.A timer (TI)
14.3.1 Properties
14.4.An up/down counter (UDC)
14.4.1 Actions
14.4.2 Control values
14.4.3 Properties
14.4.4Example
CHAPTER 15 VFSM and its Interfaces
15.1.Virtual finite state machine interfaces
15.2.A virtual finite state machine (VFSM)
15.2.1 Hiding specification details
15.3.A command (CMD)
15.3.1 Properties
15.4.An interface to I/O handler (UNIT)
15.5.An interface to a user written function (OFUN)
15.5.1 Example
15.5.2 Properties
15.6.Just XDA
15.6.1Memory for OFUN
15.6.2 Internal value as a control value
CHAPTER 16 Debugging Vfsm
16.1.Testing Vfsm Application
16.2.System consistency
16.3.Trace
16.4.Debugging mode (VFSM)
16.5.Command files
16.6.Service mode
16.7.The role of documentation
CHAPTER 17 What is StateWORKS?
17.1.Compared with specification methods
17.2.Compared with Agile methods
17.3.Application areas
References
Appendix A: Case Studies
Appendix B: Microwave Oven Control - Use of StateWORKS development tools
Topic
First simple solution
More realistic control
RTDB objects
Yet another change
Conclusions
Demo
Appendix C: Gas control - Hierarchical system of state machines
Topic
Flow control
Monitoring the Pressure
Gas control
Conclusions
Demo
Appendix D: Dining philosopher problem
Example
Running the example
Appendix E: Going beyond the limitations of IEC 61131-3
Introduction
GRAVEL example from IEC 61131 document ¿ critical analysis
A state machine as a replacement for markers
GRAVEL example as a state machine
Conclusions
Testing with SWLab
References
Appendix F: Traffic light control ¿ design of the hardware solution
Appendix G: Coding finite state machine ¿ Vending Machine Counter example
Appendix H: IOD file of the StandardUnit
Appendix I: StateWORKS projects
A project
Specification of state machines
Specification of UNITs
System specification
Documentation
Testing with SWLab and Monitors
Documentation of examples
Appendix J: Vending Machine Counter project
Appendix K: Pedestrian traffic light project
The system
The state machine of type Pedestrian
Testing with SWLab
Appendix L: Pumps supervision project
The system
The Main state machine
The state machine of type Pressure
The state machine of type Device
Testing with SWLab
Appendix M: Output function CalcLimits()
Appendix N: Traffic light project
The system
The Flash state machine
The TrafficLight state machine
The Light state machine
Testing with SWLab
Appendix O: DI_DO project
The project
The state machine Test_DI_DO
The state machine Tank
Appendix P: Other_Inputs project
The project
The state machine Test_DAT
The state machine Test_SWIP
The state machine Test_STR
Appendix Q: Other_Outputs project
The project
The state machine Test_NO
Testing TAB object
The state machine Test_AL
Appendix R: Counters project
The project
The state machine Test_CNT
The state machine Test_ECNT
The state machine Test_UDC
Appendix S: Attributes of RTDB objects
Appendix T: StateWORKS Tools and Components
StateWORKS Studio
StateWORKS Simulation
StateWORKS Monitors
StateWORKS Run-Time Systems
References

Library of Congress Subject Headings for this publication:

Computer software -- Development.
Machine theory.