Description: Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems by Miro Samek Practical UML Statecharts in C/C++ Second Edition bridges the gap between high-level abstract concepts of the Unified Modeling Language (UML) and the actual programming aspects of modern hierarchical state machines (UML statecharts). The book describes a lightweight, open source, event-driven infrastructure, called QP that enables direct manual coding UML statecharts and concurrent event-driven applications in C or C++ without big tools.This book is presented in two parts. In Part I, you get a practical description of the relevant state machine concepts starting from traditional finite state automata to modern UML state machines followed by state machine coding techniques and state-machine design patterns, all illustrated with executable examples. In Part II, you find a detailed design study of a generic real-time framework indispensable for combining concurrent, event-driven state machines into robust applications. Part II begins with a clear explanation of the key event-driven programming concepts such as inversion of control ("Hollywood Principle"), blocking versus non-blocking code, run-to-completion (RTC) execution semantics, the importance of event queues, dealing with time, and the role of state machines to maintain the context from one event to the next. This background is designed to help software developers in making the transition from the traditional sequential to the modern event-driven programming, which can be one of the trickiest paradigm shifts.The lightweight QP event-driven infrastructure goes several steps beyond the traditional real-time operating system (RTOS). In the simplest configuration, QP runs on bare-metal microprocessor, microcontroller, or DSPcompletely replacing the RTOS. QP can also work with almost any OS/RTOS to take advantage of the existing device drivers, communication stacks, and other middleware. The accompanying website to this book contains complete open source code for QP, ports to popular processors and operating systems, including 80x86, ARM Cortex-M3, MSP430, and Linux, as well as all examples described in the book.Focuses on core concepts rather than tools which are always changing allowing the reader to continue to use this information with various projectsProvides a complete, ready-to-use, open source software architecture for small and large embedded systemsIncludes an extensive example using the ARM Cortex-M3 throughout the book highlighting issues programmers and architects encounter in everyday life FORMAT Paperback LANGUAGE English CONDITION Brand New Publisher Description Practical UML Statecharts in C/C++ Second Edition bridges the gap between high-level abstract concepts of the Unified Modeling Language (UML) and the actual programming aspects of modern hierarchical state machines (UML statecharts). The book describes a lightweight, open source, event-driven infrastructure, called QP that enables direct manual coding UML statecharts and concurrent event-driven applications in C or C++ without big tools. This book is presented in two parts. In Part I, you get a practical description of the relevant state machine concepts starting from traditional finite state automata to modern UML state machines followed by state machine coding techniques and state-machine design patterns, all illustrated with executable examples. In Part II, you find a detailed design study of a generic real-time framework indispensable for combining concurrent, event-driven state machines into robust applications.Part II begins with a clear explanation of the key event-driven programming concepts such as inversion of control ("Hollywood Principle"), blocking versus non-blocking code, run-to-completion (RTC) execution semantics, the importance of event queues, dealing with time, and the role of state machines to maintain the context from one event to the next.This background is designed to help software developers in making the transition from the traditional sequential to the modern event-driven programming, which can be one of the trickiest paradigm shifts. The lightweight QP event-driven infrastructure goes several steps beyond the traditional real-time operating system (RTOS). In the simplest configuration, QP runs on bare-metal microprocessor, microcontroller, or DSP completely replacing the RTOS. QP can also work with almost any OS/RTOS to take advantage of the existing device drivers, communication stacks, and other middleware. The accompanying website to this book contains complete open source code for QP, ports to popular processors and operating systems, including 80x86, ARM Cortex-M3, MSP430, and Linux, as well as all examples described in the book.*Focuses on core concepts rather than tools which are always changing allowing the reader to continue to use this information with various projects *Provides a complete, ready-to-use, open source software architecture for small and large embedded systems *Includes an extensive example using the ARM Cortex-M3 throughout the book highlighting issues programmers and architects encounter in everyday life Author Biography Dr. Miro Samek is the founder and president of Quantum Leaps, an open source company providing lightweight, state machine-based, event-driven application frameworks for embedded systems. He is the author of Practical Statecharts in C/C++ (CMP Books, 2002), has written numerous articles for magazines, including a column for C/C++ Users Journal, is a regular speaker at the Embedded Systems Conferences, and serves on the editorial review board of the Embedded Systems Design magazine. For a number of years, he worked in various Silicon Valley companies as an embedded software architect and before that he worked as an embedded software engineer at GE Medical Systems (now GE Healthcare). Dr. Samek earned his Ph.D. in nuclear physics at GSI (Darmstadt, Germany). Table of Contents Preface PART I STATECHARTS Chapter 1 Whirlwind Tour of Programming with Statecharts 1.1 Why Bother? 1.2 The Traditional Event-Action Paradigm 1.3 State Machines ? A Better Way of Programming 1.3.1 The Time Bomb Example 1.3.2 The Calculator Example 1.5 Object-Oriented Analogy 1.6 The Event-driven Framework 1.6 Summary Chapter 2 A Crash Course in Statecharts 2.1 The Essence of Finite State Machines 2.2 The Essence of UML Statecharts 2.3 Examples of State Models 2.4 Summary Chapter 3 Standard State Machine Implementations 3.1 State Machine Interface 3.2 Nested switch Statement 3.3 State Table 3.4 State Design Pattern 3.5 Optimal FSM Implementation 3.6 State Machines and C++ Exception Handling 3.7 Role of Pointer-to-Member Functions 3.8 Implementing Guards, Junctions, and Choice Points 3.9 Implementing Entry and Exit Actions 3.10 Dealing with State Hierarchy 3.11 Summary Chapter 4 QEP: A Minimal Hierarchical Event Processor 4.1 General Structure of the QEP Event Processor 4.2 An Annotated Example (QHsm) 4.3 QEP Structure 4.3.1 QEP Source Code Structure 4.3.2 Internal Representation of a State Machine 4.3.3 Initialization of a State Machine 4.3.4 Dispatching Events to a FSM 4.3.5 Executing a Transition in a FSM 4.3.6 Dispatching Events to a HSM 4.3.7 Executing a Transition in a HSM 4.3.8 Static Transition Optimization in a HSM 4.4 Porting and Configuring QEP 4.5 Caveats 4.6 Summary Chapter 5 Implementing State Machines with QEP 5.1 Implementing a HSM with QEP 5.1.1 Step 1: Enumerating Signals 5.1.2 Step 2: Defining Events 5.1.3 Step 3: Defining the QCalc State Machine 5.1.4 Step 4: Declaring the QCalc States 5.1.5 Step 5: Initializing the HSM 5.1.6 Step 6: Implementing the State Handler Functions 5.2 Implementing a FSM with QEP 2.5 Pitfalls to Avoid While Coding State Machines with QEP 2.5.1 Incomplete State Handlers2-37 2.5.2 Confusing Statecharts with Flowcharts2-38 2.5.3 Ill-Formed State Handlers2-39 2.5.4 Suboptimal Signal Granularity2-42 2.5.5 Violating the Run To Completion Semantics2-42 4.6 Summary Chapter 6 State Patterns 6.1 Ultimate Hook 6.2 Reminder 6.3 Deferred Event 6.4 Orthogonal Component 6.5 Transition to History 6.6 Summary PART II EVENT-DRIVEN FRAMEWORK Chapter 7 QF: A Minimal Event-Driven Embedded Framework 7.1 Conventional Approach to Multithreading 7.2 Computing Model of QF 7.3 Annotated Example 7.3.1 The ?Airplane in the Tunnel? Game 7.3.2 The Active Object Design 7.3.3 The Implementation 7.3.4 The Port for ARM Cortex-M3 7.3.5 Testing 7.4 Summary Chapter 8 Design of QF 8.1 Handling Errors and Exceptional Conditions 8.2 Memory Management 8.3 Mutual Exclusion and Blocking 8.4 Active Objects 8.5 Event Management in QF 8.6 Event Delivery Mechanisms in QF 8.9 Deferring and Recalling Events in QF 8.7 Time Events 8.8 Summary Chapter 9 Implementation of QF 9.1 Code Organization 9.2 Critical Section in QF 9.3 General QF Policies Enforced by Assertions 9.4 Active Object class 9.5 Native QF Event Queue 9.6 Native QF Memory Pool 9.7 Native QF Priority Set 9.8 Native QF Scheduler Chapter 10 Porting QF 10.1 QF Porting Guide 10.2 QF on Bare-Metal Targets (the Vanilla Port) 10.3 Using QF with a preemptive Real-Time Kernel (µC/OS-II) 10.4 QF port to a POSIX-Compliant OS (Linux) 10.5 Summary Chapter 11 Conclusion 11.2 Rules for Developing Event-Driven Embedded Applications 11.3 Heuristics 11.4 Sizing Event Queues and Event Pools 11.5 System Integration 11.6 Summary of Key Elements 11.7 An Invitation Appendix A QK: A Single-Stack Preemptive Kernel A.2 Run-to-Completion Processing A.3 Synchronous and Asynchronous Preemptions A.4 Stack Utilization A.4 Comparison with a Traditional RTOS A.5 Summary Appendix B QS: Software Tracing for Event Driven Systems B.1 Software Tracing Concepts B.2 Structure of QS Trace Records B.3 QS Filters B.4 QS Data Protocol B.5 QS Trace Buffer B.6 Configuring and Porting QS B.7 Summary Appendix C Inheriting Entire State Models in C++ C.1 Statechart Refinement Example in C++ C.3 Caveats C.4 Summary Appendix D Guide to Notation D.1 Class Diagrams D.2 Statechart Diagrams D.3 Sequence Diagrams D.4 Timing Diagrams Appendix E CD-ROM E.1 Source Code Structure E.2 Installation E.3 Licensing E.4 Answers to the Exercises E.5 QP Reference Guide (Doxygen) E.6 Resources Bibliography Index Promotional "Headline" Streamline your embedded code projects with just one book - Miro Samek presents UML statecharts - a practical, time-saving design methodology! Details ISBN0750687061 Author Miro Samek Language English Edition 2nd ISBN-10 0750687061 ISBN-13 9780750687065 Media Book Format Paperback DEWEY 005.117 Year 2008 Publication Date 2008-05-31 Imprint Newnes Subtitle Event-Driven Programming for Embedded Systems Place of Publication Oxford Country of Publication United Kingdom Short Title PRAC UML STATECHARTS IN C/C++ Illustrations 1, black & white illustrations Replaces 9781578201105 Edition Description Revised Pages 728 Publisher CRC Press DOI 10.1604/9780750687065 UK Release Date 2008-11-10 AU Release Date 2008-11-10 NZ Release Date 2008-11-10 We've got this At The Nile, if you're looking for it, we've got it. With fast shipping, low prices, friendly service and well over a million items - you're bound to find what you want, at a price you'll love! TheNile_Item_ID:16568377;
Price: 146.41 AUD
Location: Melbourne
End Time: 2024-10-26T23:29:02.000Z
Shipping Cost: 0 AUD
Product Images
Item Specifics
Restocking fee: No
Return shipping will be paid by: Buyer
Returns Accepted: Returns Accepted
Item must be returned within: 30 Days
ISBN-13: 9780750687065
Book Title: Practical UML Statecharts in C/C++: Event-Driven Programming for
Number of Pages: 728 Pages
Language: English
Publication Name: Practical Uml Statecharts in C/C++: Event-Driven Programming for Embedded Systems
Publisher: Elsevier Science & Technology
Publication Year: 2008
Subject: Computer Science
Item Height: 246 mm
Item Weight: 1383 g
Type: Textbook
Author: Miro Samek
Item Width: 189 mm
Format: Paperback