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.
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.