Modeling Software with Finite State Machines : A Practical Approach
معرفی کتاب «Modeling Software with Finite State Machines : A Practical Approach» نوشتهٔ Sally Coulthard و Ferdinand Wagner, Ruedi Schmuki, Thomas Wagner, Peter Wolstenholme، منتشرشده توسط نشر Auerbach Publication c/o Taylor & Francis در سال 2006. این کتاب در 6 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است.
The title "Modeling Software with Finite State Machines", and the accompanying web-site [...], proclaim a new and fabulous way to design, develop and implement software-solutions. This method, so the authors state, will bring the engineering back into software development. To my mind, those statements are ludicrous, very biased and uninformed and so it made it really very hard for me to read the book. The tendentious style penetrates pretty much the entire first third of the book. As however I needed a good overview of practical use of state-machine (for a non-hardware problem), I persevered. Chapters 4, 8 and 9 gave me what I needed, though again the material is presented in a pseudo-academic, know-it-all style. The academic material on Finite Automata I have read tends to be pretty impractical, whilst this book takes a practical approach and as I get the impression, that the authors are experienced in their fields, that was good enough for me. The last third of the book (Chapters 10 to 17), focus on StateWorks. As I do not intend to buy that product, this gave me little information I could use. Modeling Software with Finite State Machines: A Practical Approach......Page 1 Preface......Page 4 Document Conventions......Page 6 Trademarks, Registered Marks......Page 7 About the Authors......Page 8 Contents......Page 10 Part I THE PROBLEMS OF SOFTWARE......Page 19 Introduction......Page 20 Programming Languages......Page 21 A Little History......Page 22 C++......Page 23 PLC......Page 24 There Are Many Languages......Page 25 Methods......Page 26 Basic Knowledge......Page 27 Specifying or Not?......Page 28 CASE Tools......Page 29 UML......Page 30 Agile Methods......Page 33 Behavior Modeling......Page 34 Development Tools......Page 36 Recommended Reading......Page 37 Software Development Costs......Page 39 Programming as a Hobby......Page 40 Small Software Projects......Page 41 Large Software Projects......Page 42 Hardness of Software......Page 44 Ease of Creating New Macro Languages......Page 46 Do We Need So Many Programming Languages?......Page 47 The Specifics of Programming Languages......Page 48 The Specifics of a Software Project......Page 49 Software Errors......Page 51 Software Changes......Page 52 In Code We Trust......Page 53 The Programmers' World......Page 54 A Programmer in a Project......Page 55 Examples of Disasters......Page 56 Recommended Reading......Page 58 Methods......Page 59 Fascination with Graphics......Page 61 Visual Basic Chaos......Page 62 UML Illusion......Page 63 CASE Tools — Value for Money?......Page 65 Programming or Specification Languages?......Page 66 Prototyping......Page 67 Software Development Steps......Page 68 Software Documentation......Page 69 Testing and Debugging......Page 70 Summary......Page 71 Who Is a Programmer?......Page 72 Missing Skill — Examples......Page 73 Conclusions......Page 74 Recommended Reading......Page 76 Part II FINITE STATE MACHINES......Page 77 Finite State Machine......Page 78 Transition Matrix......Page 80 State Transition Diagram......Page 82 Outputs ( Actions)......Page 83 State Transition Table......Page 84 Example......Page 88 Recommended Reading......Page 90 Limited to Boolean Signals......Page 91 Design Example — Traffic Light Control......Page 92 EPROM- Based Implementations......Page 94 Conclusions......Page 97 Recommended Reading......Page 98 Introduction......Page 99 Data and Control Flow......Page 100 Command Input......Page 102 Parameter......Page 103 Timer......Page 104 What about Outputs?......Page 105 Data Processing Output......Page 106 Summary......Page 107 Event as a Control Signal......Page 108 State Machine or Combinational System?......Page 110 Models of a Finite State Machine......Page 112 Application- Based State Machine Models......Page 113 State Machine Execution Models......Page 114 Coding as a Universal Solution......Page 115 Table- Driven Software to Reduce Coding Effort......Page 117 Limits of the Coded Solutions......Page 118 Recommended Reading......Page 119 Historical Background......Page 120 Software Systems......Page 121 Parser Problem......Page 122 State Explosion......Page 123 Signal Lifetime......Page 125 State Machine Size......Page 126 Flowchart......Page 127 Example......Page 128 What Is a Flowchart For?......Page 131 Inventions......Page 133 Conclusions......Page 134 Recommended Reading......Page 135 A State Machine Models Behavior......Page 136 Mealy or Moore Models......Page 137 Actions ( Entry, Input, Exit, Transition)......Page 139 Acknowledgment Principle ( Busy and Done States)......Page 140 Error States and Alarms......Page 142 Completeness of the Design......Page 145 The Requirements......Page 146 The Specification......Page 147 The Specification Must Be Understandable......Page 150 The Requirements......Page 151 The Specification......Page 152 The Output Function......Page 155 The State Transition Diagram......Page 156 Conclusions......Page 157 Mastering Complexity......Page 158 The Partitioning Criteria......Page 159 The Communication Interface among State Machines......Page 161 The Handshaking Rule......Page 163 The ( Hierarchical) Structure of the Control System......Page 164 Locality of the Control Problems......Page 165 Up- Down or Bottom- Up Design......Page 166 Loops......Page 167 Sins......Page 168 Task Definition......Page 169 The First Approach......Page 170 The Second Trial......Page 172 The Ultimate Solution......Page 177 Task Definition......Page 181 " Obvious" Solution......Page 182 The Ultimate Control......Page 184 Light......Page 185 TrafficLight......Page 187 Flash......Page 188 System for Two- Track Railway......Page 189 Summary......Page 190 Conclusions......Page 191 Designing a State Machine......Page 192 Designing a System of State Machines......Page 193 Part III STATEWORKS: PRINCIPLES AND PRACTICE......Page 194 Virtual Environment and Vfsm......Page 195 Positive Logic Algebra......Page 196 The Vfsm Execution Model......Page 197 Objects......Page 199 Signal Lifetime......Page 202 Behavior Specification......Page 203 The StateWORKS Execution Environment......Page 209 RTDB- Based Runtime System......Page 210 Output Function......Page 211 I/ O Handler......Page 212 User Interface......Page 213 Recommended Reading......Page 214 A Digital Input Has Three Control Values......Page 215 Setting and Clearing the Boolean Output Are Two Different Actions......Page 216 Recommended Reading......Page 219 Control Values......Page 221 Example......Page 222 Actions......Page 223 Control Values......Page 224 Example......Page 225 Properties......Page 226 PAR Object as a Specific Variant of DAT Type......Page 227 Control Values......Page 228 Properties......Page 229 Control Values......Page 230 Example......Page 231 Recommended Reading......Page 232 Actions......Page 233 Properties......Page 235 Output Demultiplexer ( TAB)......Page 236 Actions......Page 237 Properties......Page 238 Example......Page 239 Recommended Reading......Page 240 Actions......Page 241 Control Values......Page 242 Example......Page 243 An Event Counter ( ECNT)......Page 244 Properties......Page 245 A Timer ( TI)......Page 246 Control Values......Page 247 Example......Page 248 Recommended Reading......Page 249 Virtual Finite State Machine Interfaces......Page 251 A Virtual Finite State Machine ( VFSM)......Page 252 Hiding Specification Details......Page 253 A Command ( CMD)......Page 254 An Interface to I/ O Handler ( UNIT)......Page 258 An Interface to a User- Written Function ( OFUN)......Page 259 Properties......Page 260 Internal Value as a Control Value......Page 261 Recommended Reading......Page 262 Testing a Vfsm Application......Page 263 Trace......Page 264 Debugging Mode ( VFSM)......Page 266 Command Files......Page 267 Service Mode......Page 269 The Role of Documentation......Page 272 Compared with Specification Methods......Page 273 Application Areas......Page 274 Recommended Reading......Page 275 Appendix A Case Studies......Page 277 Topic......Page 279 First Simple Solution......Page 280 More Realistic Control......Page 281 RTDB Objects......Page 282 Conclusions......Page 284 Demo......Page 285 Topic......Page 287 Flow Control......Page 288 Monitoring the Pressure......Page 289 Gas Control......Page 291 Conclusions......Page 292 Demo......Page 293 Example......Page 295 Running the Example......Page 297 GRAVEL Example from IEC 61131 Document — Critical Analysis......Page 298 A State Machine as a Replacement for Markers......Page 303 GRAVEL Example as a State Machine......Page 304 Conclusions......Page 308 Recommended Reading......Page 309 Appendix F Traffic Light Control —Design of the Hardware Solution......Page 310 Appendix G Coding Finite State Machine — Vending Machine Counter Example......Page 312 Appendix H IOD File of the Standard Unit......Page 315 A Project......Page 317 Specification of State Machines......Page 318 System Specification......Page 319 Testing with SWLab and Monitors......Page 320 Documentation of Examples......Page 321 Appendix J Vending Machine Counter Project......Page 323 The State Machine of Type Pedestrian......Page 325 Testing with SWLab......Page 326 The System......Page 329 The State Machine of Type Device......Page 330 Testing with SWLab......Page 333 Appendix M Output Function CalcLimits()......Page 335 The Flash State Machine......Page 338 The TrafficLight State Machine......Page 339 The Light State Machine......Page 340 Testing with SWLab......Page 342 The State Machine Test_ DI_ DO......Page 344 The State Machine Tank......Page 345 The State Machine Test_ DAT......Page 347 The State Machine Test_ SWIP......Page 348 The State Machine Test_ STR......Page 349 The State Machine Test_ NO......Page 352 Testing TAB Object......Page 354 The State Machine Test_ AL......Page 355 The State Machine Test_ CNT......Page 358 The State Machine Test_ ECNT......Page 361 The State Machine Test_ UDC......Page 362 Appendix S Attributes of RTDB Objects......Page 364 State Machine Specification......Page 366 Building......Page 367 StateWORKS Monitors......Page 368 Recommended Reading......Page 369 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. Modeling Software with Finite State 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 promoting the virtual finite state machine (Vfsm) method and the StateWORKS development tools. 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. Explains how to apply finite state machines to software development. This book presents an analysis of development issues relating to behavior modeling with design examples and design rules for using finite state machines. It demonstrates the implementation of these concepts using StateWORKS software.
دانلود کتاب Modeling Software with Finite State Machines : A Practical Approach