rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780849380860

Modeling Software with Finite State Machines: A Practical Approach

by ;
  • ISBN13:

    9780849380860

  • ISBN10:

    0849380863

  • Edition: 1st
  • Format: Hardcover
  • Copyright: 2006-05-15
  • Publisher: Auerbach Public

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $140.00 Save up to $88.52
  • Rent Book $99.75
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE
    USUALLY SHIPS IN 3-5 BUSINESS DAYS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

How To: Textbook Rental

Looking to rent a book? Rent Modeling Software with Finite State Machines: A Practical Approach [ISBN: 9780849380860] for the semester, quarter, and short term or search our site for other textbooks by Wagner; Ferdinand. Renting a textbook can save you up to 90% from the cost of buying.

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. It 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 text demonstrates the implementation of these concepts using StateWORKS software and introduces the basic components of this software.

Table of Contents

Part I The Problems of Software
1 Evolution of Software Development
3(20)
Introduction
3(1)
Programming Languages
4(5)
A Little History
5(1)
BASIC Catastrophe
6(1)
C++
6(1)
PLC
7(1)
Script or Macro Notations
8(1)
There Are Many Languages
8(1)
Methods
9(10)
Basic Knowledge
10(1)
Specifying or Not?
11(1)
CASE Tools
12(1)
UML
13(3)
Agile Methods
16(1)
Behavior Modeling
17(2)
Development Tools
19(1)
Recommended Reading
20(3)
2 The Price of Weakness
23(20)
Software Development Costs
23(12)
Programming as a Hobby
24(1)
Small Software Projects
25(1)
Large Software Projects
26(2)
Hardness of Software
28(2)
Ease of Creating New Macro Languages
30(1)
Do We Need So Many Programming Languages?
31(1)
The Specifics of Programming Languages
32(1)
The Specifics of a Software Project
33(2)
Software Is Expensive
35(1)
Maintenance Costs
35(3)
Software Errors
35(1)
Software Changes
36(1)
In Code We Trust
37(1)
The Costs of Software Errors
38(1)
The Programmers' World
38(2)
A Programmer in a Project
39(1)
The Software Project Leader
40(1)
Examples of Disasters
40(2)
Recommended Reading
42(1)
3 Software as Engineering?
43(20)
Methods
43(8)
Fascination with Graphics
45(1)
Visual Basic Chaos
46(1)
Object-Oriented Design Illusion
47(1)
UML Illusion
47(2)
Formal Methods
49(1)
CASE Tools — Value for Money?
49(1)
Programming or Specification Languages?
50(1)
Development Cycle
51(5)
Prototyping
51(1)
Specification
52(1)
Software Development Steps
52(1)
Software Documentation
53(1)
Testing and Debugging
54(1)
Maintenance and Support
55(1)
Human Factors
55(1)
Summary
55(1)
Education Requirements
56(2)
Who Is a Programmer?
56(1)
Education as the Basis of Skill
57(1)
Missing Skill — Examples
57(1)
Conclusions
58(2)
Recommended Reading
60(3)
Part II Finite State Machines
4 Introduction, Definitions, and Notation
63(14)
Finite State Machine
63(2)
State Machine Models and Presentations
65(10)
Transition Matrix
65(2)
State Transition Diagram
67(1)
Outputs (Actions)
68(1)
Moore and Mealy Model
69(1)
State Transition Table
69(4)
Example
73(2)
Recommended Reading
75(2)
5 Hardware Applications
77(8)
Introduction
77(1)
Limited to Boolean Signals
77(6)
Design Example — Traffic Light Control
78(2)
EPROM-Based Implementations
80(3)
FPLA- or CPLD-Based Implementations
83(1)
Conclusions
83(1)
Recommended Reading
84(1)
6 Software Specific
85(22)
Introduction
85(1)
Data and Control Flow
86(2)
Any Class of Signal May "Contain" the Control Value
88(6)
Digital Input
88(1)
Command Input
88(1)
Numerical Input
89(1)
Parameter
89(1)
Data Processing Result
90(1)
Timer
90(1)
State Machine
91(1)
External and Internal Signals
91(1)
What about Outputs?
91(1)
Digital Output
92(1)
Command Output
92(1)
Numerical Output
92(1)
Data Processing Output
92(1)
Timer
93(1)
Summary
93(1)
Event-Driven Software
94(2)
Event as a Control Signal
94(2)
State Machine or Combinational System?
96(2)
Models of a Finite State Machine
98(3)
Application-Based State Machine Models
99(1)
State Machine Execution Models
100(1)
Coding as a Universal Solution
101(2)
Table-Driven Software to Reduce Coding Effort
103(1)
Limits of the Coded Solutions
104(1)
Recommended Reading
105(2)
7 Misunderstandings about FSM
107(16)
Historical Background
107(1)
Software Systems
108(6)
Event-Driven Model
109(1)
Parser Problem
109(1)
State Explosion
110(2)
Signal Lifetime
112(1)
State Machine Size
113(1)
Interface between State Machines
114(1)
A Flowchart Is Not a State Machine
114(6)
Flowchart
114(1)
Example
115(3)
What Is a Flowchart For?
118(2)
Inventions
120(1)
Conclusions
121(1)
Recommended Reading
122(1)
8 Designing a State Machine
123(22)
A State Machine Models Behavior
123(1)
Mealy or Moore Models
124(2)
Actions (Entry, Input, Exit, Transition)
126(1)
Defining States
127(1)
Acknowledgment Principle (Busy and Done States)
127(2)
The Role of a Timer
129(1)
Error States and Alarms
129(3)
Completeness of the Design
132(1)
Hiding Control Information
133(1)
Example — Pedestrian Traffic Lights
133(5)
The Requirements
133(1)
The Specification
134(3)
The Specification Must Be Understandable
137(1)
Example — Pressure Supervision
138(6)
The Requirements
138(1)
The Specification
139(3)
The Output Function
142(1)
The State Transition Diagram
143(1)
Conclusions
144(1)
9 Systems of State Machines
145
Mastering Complexity
145(1)
The Partitioning Criteria
146(2)
The Communication Interface among State Machines
148(2)
The Handshaking Rule
150(1)
The (Hierarchical) Structure of the Control System
151(1)
Design Procedure
152(4)
Locality of the Control Problems
152(1)
Up-Down or Bottom-Up Design
153(1)
Deadlocks
154(1)
Loops
154(1)
Sins
155(1)
Design Rules
156(1)
Example — Pumps Supervision System
156(12)
Task Definition
156(1)
The First Approach
157(2)
The Second Trial
159(5)
The Ultimate Solution
164(4)
Example — Traffic Light Control
168(10)
Task Definition
168(1)
"Obvious" Solution
169(2)
The Ultimate Control
171(1)
Light
172(2)
TrafficLight
174(1)
Flash
175(1)
System for Two-Track Railway
176(1)
Summary
177(1)
Conclusions
178(5)
Implementation
179(1)
Designing a State Machine
179(1)
Designing a System of State Machines
180(3)
Part III StateWORKS: Principles and Practice
10 StateWORKS
183(20)
Virtual Environment and Vfsm
183(1)
The StateWORKS Development Environment
184(13)
Positive Logic Algebra
184(1)
The Vfsm Execution Model
185(2)
Objects
187(3)
State Machine Defines Object Control Values
190(1)
Signal Lifetime
190(1)
Behavior Specification
191(6)
System Specification
197(1)
The StateWORKS Execution Environment
197(5)
RTDB-Based Runtime System
198(1)
Output Function
199(1)
I/O Handler
200(1)
User Interface
201(1)
Recommended Reading
202(1)
11 Digital Input and Output
203(6)
A Digital Input Has Three Control Values
203(1)
Example
204(1)
Setting and Clearing the Boolean Output Are Two Different Actions
204(3)
DI and DO Properties
207(1)
Recommended Reading
207(2)
12 Other Inputs
209(12)
Input Data (DAT)
209(2)
Control Values
209(1)
Example
210(1)
Properties
211(1)
Getting the Control Value (SWIP)
211(3)
Actions
211(1)
Control Values
212(1)
Example
213(1)
Properties
214(1)
NI Object as an Extension of DAT Type
214(1)
Control Values
214(1)
Properties
214(1)
PAR Object as a Specific Variant of DAT Type
215(3)
Control Values
216(1)
Properties
217(1)
String (STR) as a Specific Variant of SWIP
218(2)
Actions
218(1)
Control Values
218(1)
Example
219(1)
Properties
220(1)
Recommended Reading
220(1)
13 Other Outputs
221(8)
Output Data (NO)
221(3)
Actions
221(2)
Example
223(1)
Properties
223(1)
Output Demultiplexer (TAB)
224(1)
Actions
225(1)
Example
225(1)
Alarms (AL)
225(3)
Actions
225(1)
Properties
226(1)
Example
227(1)
Recommended Reading
228(1)
14 Counters
229(10)
A Simple Counter (CNT)
229(3)
Actions
229(1)
Control Values
230(1)
Example
231(1)
Properties
232(1)
An Event Counter (ECNT)
232(2)
Example
233(1)
Properties
233(1)
A Timer (TI)
234(1)
Properties
235(1)
An Up/Down Counter (UDC)
235(2)
Actions
235(1)
Control Values
235(1)
Properties
236(1)
Example
236(1)
Recommended Reading
237(2)
15 VFSM and Its Interfaces
239(12)
Virtual Finite State Machine Interfaces
239(1)
A Virtual Finite State Machine (VFSM)
240(2)
Hiding Specification Details
241(1)
A Command (CMD)
242(4)
Properties
246(1)
An Interface to I/O Handler (UNIT)
246(1)
An Interface to a User-Written Function (OFUN)
247(2)
Example
248(1)
Properties
248(1)
Just XDA
249(1)
Memory for OFUN
249(1)
Internal Value as a Control Value
249(1)
Recommended Reading
250(1)
16 Debugging Vfsm
251(10)
Testing a Vfsm Application
251(1)
System Consistency
252(1)
Trace
252(2)
Debugging Mode (VFSM)
254(1)
Command Files
255(2)
Service Mode
257(3)
The Role of Documentation
260(1)
17 What Is StateWORKS?
261(6)
Compared with Specification Methods
261(1)
Compared with Agile Methods
262(1)
Application Areas
262(1)
Recommended Reading
263(2)
Appendix A Case Studies 265(2)
Appendix B Microwave Oven Control—Use of StateWORKS Development Tools 267(8)
Topic
267(1)
First Simple Solution
268(1)
More Realistic Control
269(1)
RTDB Objects
270(2)
Yet Another Change
272(1)
Conclusions
272(1)
Demo
273(2)
Appendix C Gas Control — Hierarchical System of State Machines 275(8)
Topic
275(1)
Flow Control
276(1)
Monitoring the Pressure
277(2)
Gas Control
279(1)
Conclusions
280(1)
Demo
281(2)
Appendix D Dining Philosophers Problem 283(4)
Example
283(2)
Running the Example
285(2)
Appendix E Going Beyond the Limitations of IEC 61131-3 287(12)
Introduction
287(1)
GRAVEL Example from IEC 61131 Document — Critical Analysis
287(5)
A State Machine as a Replacement for Markers
292(1)
GRAVEL Example as a State Machine
293(4)
Conclusions
297(1)
Testing with SWLab
298(1)
Recommended Reading
298(1)
Appendix F Traffic Light Control — Design of the Hardware Solution 299(2)
Appendix G Coding Finite State Machine — Vending Machine Counter Example 301(4)
Appendix H IOD File of the StandardUnit 305(2)
Appendix I StateWORKS Projects 307(6)
A Project
307(1)
Specification of State Machines
308(1)
Specification of UNITs
309(1)
System Specification
309(1)
Documentation
310(1)
Testing with SWLab and Monitors
310(1)
Documentation of Examples
311(2)
Appendix J Vending Machine Counter Project 313(2)
Appendix K Pedestrian Traffic Light Project 315(4)
The System
315(1)
The State Machine of Type Pedestrian
315(1)
Testing with SWLab
316(3)
Appendix L Pumps Supervision Project 319(6)
The System
319(1)
The Main State Machine
320(1)
The State Machine of Type Pressure
320(1)
The State Machine of Type Device
320(3)
Testing with SWLab
323(2)
Appendix M Output Function CalcLimits() 325(4)
Appendix N Traffic Light Project 329(6)
The System
329(1)
The Flash State Machine
329(1)
The TrafficLight State Machine
330(1)
The Light State Machine
331(2)
Testing with SWLab
333(2)
Appendix O DI_DO Project 335(4)
The Project
335(1)
The State Machine Test_DI_DO
335(1)
The State Machine Tank
336(3)
Appendix P Other_Inputs Project 339(6)
The Project
339(1)
The State Machine Test_DAT
339(1)
The State Machine Test_SWIP
340(1)
The State Machine Test_STR
341(4)
Appendix Q Other_Outputs Project 345(6)
The Project
345(1)
The State Machine Test_NO
345(2)
Testing TAB Object
347(1)
The State Machine Test_AL
348(3)
Appendix R Counters Project 351(6)
The Project
351(1)
The State Machine Test_CNT
351(3)
The State Machine Test_ECNT
354(1)
The State Machine Test_UDC
355(2)
Appendix S Attributes of RTDB Objects 357(2)
Appendix T StateWORKS Tools and Components 359(4)
StateWORKS Studio
359(2)
State Machine Specification
359(1)
UNIT Specification
360(1)
String Resource Specification
360(1)
Definition of Object Properties
360(1)
Definition of System of State Machines
360(1)
Building
360(1)
Testing
361(1)
StateWORKS Simulation
361(1)
StateWORKS Monitors
361(1)
StateWORKS Runtime Systems
362(1)
Recommended Reading
362(1)
Index 363

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program