Wagner F. Modeling Software with Finite State Maschines. A Practical Appr. 2006
Download Torrent
Opens in your torrent client (e.g. qBittorrent)
Health
Dead0/0
Info Hash60C41A6374F18312634E84EC12291729D25AE802
Peers Updated8 hours ago (2026-03-24 12:25:51)
Description
Textbook in PDF format
This book discusses a topic that is among the central questions of software development. Therefore, we must position ourselves in that area to justify our right to express our opinion on that topic. Saying “we” implies at least one person in the co-author group. We have worked for several years in software development using various languages and development environments. We did this in large, medium, and small companies, as well as individually. We took part in projects in different positions as programmers, project leaders, managers, or consultants. We know software from the university perspective as a scientific and teaching subject. Hence, we have experienced software from several perspectives. We regularly read books and journals ranging from IEEE journals to very simple marketingcontrolled papers. This experience allows us to have a well-established opinion, which is independent of any pressure of specific professional circumstances. For instance, I have a rather bad opinion about BASIC but some co-authors did a good job with Visual Basic and see it in a better light than I; thus, we managed to find a compromise view about that issue.
Source Code
Document Conventions
Trademarks, Registered Marks
About the Authors
The Problems of Software
Evolution of Software Development
Programming Languages
A Little History
BASIC Catastrophe
C++
PLC
Script or Macro Notations
There Are Many Languages
Methods
Basic Knowledge
Specifying or Not?
CASE Tools
UML
Agile Methods
Behavior Modeling
Development Tools
Recommended Reading
The Price of Weakness
Software Development Costs
Programming as a Hobby
Small Software Projects
Large Software Projects
Hardness of Software
Ease of Creating New Macro Languages
Do We Need So Many Programming Languages?
The Specifics of Programming Languages
The Specifics of a Software Project
Software Is Expensive
Maintenance Costs
Software Errors
Software Changes
In Code We Trust
The Costs of Software Errors
The Programmers’ World
A Programmer in a Project
The Software Project Leader
Examples of Disasters
Recommended Reading
Software as Engineering?
Methods
Fascination with Graphics
Visual Basic Chaos
Object-Oriented Design Illusion
UML Illusion
Formal Methods
CASE Tools — Value for Money?
Programming or Specification Languages?
Development Cycle
Prototyping
Specification
Software Development Steps
Software Documentation
Testing and Debugging
Maintenance and Support
Human Factors
Education Requirements
Who Is a Programmer?
Education as the Basis of Skill
Missing Skill — Examples
Conclusions
Recommended Reading
Finite State Machines
Introduction, Definitions, and Notation
Finite State Machine
State Machine Models and Presentations
Transition Matrix
State Transition Diagram
Outputs (Actions)
Moore and Mealy Model
State Transition Table
Example
Recommended Reading
Hardware Applications
Limited to Boolean Signals
Design Example — Traffic Light Control
EPROM-Based Implementations
FPLA- or CPLD-Based Implementations
Conclusions
Recommended Reading
Software Specific
Data and Control Flow6
Any Class of Signal May “Contain” the Control Value
Digital Input
Command Input
Numerical Input
Parameter
Data Processing Result
Timer
State Machine
External and Internal Signals
What about Outputs?
Digital Output
Command Output
Numerical Output
Data Processing Output
Timer
Event-Driven Software
Event as a Control Signal
State Machine or Combinational System
Models of a Finite State Machine
Application-Based State Machine Models
State Machine Execution Models
Coding as a Universal Solution
Table-Driven Software to Reduce Coding Effort
Limits of the Coded Solutions
Recommended Reading
Misunderstandings about FSM
Historical Background
Software Systems
Event-Driven Model
Parser Problem
State Explosion
Signal Lifetime
State Machine Size
Interface between State Machines
A Flowchart Is Not a State Machine
Flowchart
Example
What Is a Flowchart For?
Inventions
Conclusions
Recommended Reading
Designing a State Machine
A State Machine Models Behavior
Mealy or Moore Models
Actions (Entry, Input, Exit, Transition)
Defining States
Acknowledgment Principle (Busy and Done States)
The Role of a Timer
Error States and Alarms
Completeness of the Design
Hiding Control Information
Example — Pedestrian Traffic Lights
The Requirements
The Specification
The Specification Must Be Understandable
Example — Pressure Supervision
The Requirements
The Specification
The Output Function
The State Transition Diagram
Conclusions
Systems of State Machines
Mastering Complexity
The Partitioning Criteria
The Communication Interface among State Machines
The Handshaking Rule
The (Hierarchical) Structure of the Control System
Design Procedure
Locality of the Control Problems
Up-Down or Bottom-Up Design
Deadlocks
Loops
Sins
Design Rules
Example — Pumps Supervision System
Task Definition
The First Approach
The Second Trial
The Ultimate Solution
Example — Traffic Light Control
Task Definition
“Obvious” Solution
The Ultimate Control
Light
TrafficLight
Flash
System for Two-Track Railway
Conclusions
Implementation
Designing a State Machine
Designing a System of State Machines
StateWORKS: Principles and Practice
StateWORKS
Virtual Environment and Vfsm
The StateWORKS Development Environment
Positive Logic Algebra
The Vfsm Execution Model
Objects
State Machine Defines Object Control Values
Signal Lifetime
Behavior Specification
System Specification
The StateWORKS Execution Environment
RTDB-Based Runtime System
Output Function
I/O Handler
User Interface
Recommended Reading
Digital Input and Output
A Digital Input Has Three Control Values
Example
Setting and Clearing the Boolean Output Are Two Different Actions
DI and DO Properties
Recommended Reading
Other Inputs
Input Data (DAT)
Control Values
Example
Properties
Getting the Control Value (SWIP)
Actions
Control Values
Example
Properties
NI Object as an Extension of DAT Type
Control Values
Properties
PAR Object as a Specific Variant of DAT Type
Control Values
Properties
String (STR) as a Specific Variant of SWIP
Actions
Control Values
Example
Properties
Recommended Reading
Other Outputs
Output Data (NO)
Actions
Example
Properties
Output Demultiplexer (TAB)
Actions
Example
Alarms (AL)
Actions
Properties
Example
Recommended Reading
Counters
A Simple Counter (CNT)
Actions
Control Values
Example
Properties
An Event Counter (ECNT)
Example
Properties
A Timer (TI
Properties
An Up/Down Counter (UDC)
Actions
Control Values
Properties
Example
Recommended Reading
VFSM and Its Interfaces
Virtual Finite State Machine Interfaces
A Virtual Finite State Machine (VFSM)
Hiding Specification Details
A Command (CMD)
Properties
An Interface to I/O Handler (UNIT
An Interface to a User-Written Function (OFUN)
Example
Properties
Just XDA
Memory for OFUN
Internal Value as a Control Value
Recommended Reading
Debugging Vfsm
Testing a Vfsm Application
System Consistency
Trace
Debugging Mode (VFSM
Command Files
Service ModeThe Role of Documentation
What Is StateWORKS?
Compared with Specification Methods
Compared with Agile Methods
Application Areas
Recommended Reading
Appendix
Case Studies
Microwave Oven Control — Use of StateWORKS Development Tools
Topic
First Simple Solution
More Realistic Control
RTDB Objects
Yet Another Change
Conclusions
Demo
Gas Control — Hierarchical System of State Machines
Topic
Flow Control
Monitoring the Pressure
Gas Control
Conclusions
Demo
Dining Philosophers Problem
Example
Running the Example
Going Beyond the Limitations of IEC 61131-3
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
Recommended Reading
Traffic Light Control — Design of the Hardware Solution
Coding Finite State Machine — Vending Machine Counter Example
IOD File of the StandardUnit
StateWORKS Projects
A Project7
Specification of State Machines
Specification of UNITs
System Specification
Documentation
Testing with SWLab and Monitors
Documentation of Examples
Vending Machine Counter Project
Pedestrian Traffic Light Project
The System
The State Machine of Type Pedestrian
Testing with SWLab
Pumps Supervision Project
The System
The Main State Machine
The State Machine of Type Pressure
The State Machine of Type Device
Testing with SWLab
Output Function CalcLimits
Traffic Light Project
The System
The Flash State Machine
The TrafficLight State Machine
The Light State Machine
Testing with SWLab
DI_DO Project
The Project
The State Machine Test_DI_DO
The State Machine Tank
Other_Inputs Project
The Project
The State Machine Test_DAT
The State Machine Test_SWIP
The State Machine Test_STR
Other_Outputs Project
The Project
The State Machine Test_NO
Testing TAB Object
The State Machine Test_AL
Counters Project
The Project
The State Machine Test_CNT
The State Machine Test_ECNT
The State Machine Test_UDC
Attributes of RTDB Objects
StateWORKS Tools and Components
StateWORKS Studio
State Machine Specification
UNIT Specification
String Resource Specification
Definition of Object Properties
Definition of System of State Machines
Building
Testing
StateWORKS Simulation
StateWORKS Monitors
StateWORKS Runtime Systems
Recommended Reading