Practical UML statecharts in C/C++ event-driven programming for embedded systems

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

Descripción completa

Detalles Bibliográficos
Otros Autores: Samek, Miro, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Amsterdam, [Netherlands] : Elsevier 2009.
Edición:2nd ed
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009627506906719
Tabla de Contenidos:
  • Front Cover; Practical UML Statecharts in C/C++; Copyright Page; Table of Contents; Preface; Acknowledgments; Introduction; Part I UML State Machines; Chapter 1: Getting Started with UML State Machines and Event-Driven Programming; 1.2. Let's Play; 1.5. Active Objects in the ""Fly 'n' Shoot"" Game; 1.5.2. The Ship Active Object; 1.8. The Execution Model; 1.8.1. Simple Nonpreemptive ""Vanilla"" Scheduler; 1.8.2. The QK Preemptive Kernel; 1.8.3. Traditional OS/RTOS; 1.9. Comparison to the Traditional Approach; Chapter 2: A Crash Course in UML State Machines
  • 2.1. The Oversimplification of the Event-Action Paradigm2.2. Basic State Machine Concepts; 2.2.1. States; 2.2.4. Extended State Machines; 2.2.6. Events; 2.2.7. Actions and Transitions; 2.2.8. Run-to-Completion Execution Model; 2.3. UML Extensions to the Traditional FSM Formalism; 2.3.1. Reuse of Behavior in Reactive Systems; 2.3.2. Hierarchically Nested States; 2.3.3. Behavioral Inheritance; 2.3.5. Orthogonal Regions; 2.3.7. Internal Transitions; 2.3.15. UML State Machine Semantics: An Exhaustive Example; 2.4. Designing A UML State Machine; 2.4.1. Problem Specification; 2.4.6. Final Touches
  • 2.5. SummaryChapter 3: Standard State Machine Implementations; 3.3.2. Consequences; 3.3.3. Variations of the Technique; 3.4. State Table; 3.4.3. Consequences; 3.5. Object-Oriented State Design Pattern; 3.5.2. Consequences; 3.6.4. Variations of the Technique; 3.7.2. State Machines and C++ Exception Handling; 3.7.3. Implementing Guards and Choice Pseudostates; 3.7.4. Implementing Entry and Exit Actions; 3.8. Summary; Chapter 4: Hierarchical Event Processor Implementation; 4.1. Key Features of the QEP Event Processor; 4.5.7. Dispatching Events (QHsm_dispatch(), General Structure)
  • 4.6. Summary of Steps for Implementing HSMs with QEP4.6.1. Step 1: Enumerating Signals; 4.6.2. Step 2: Defining Events; 4.6.6. Coding Entry and Exit Actions; 4.6.7. Coding Initial Transitions; 4.7.2. Ill-Formed State Handlers; 4.7.3. State Transition Inside Entry or Exit Action; 4.7.9. Violating the Run-to-Completion Semantics; 4.7.10. Inadvertent Corruption of the Current Event; 4.9. Summary; Chapter 5: State Patterns; 5.1. Ultimate Hook; 5.1.1. Intent; 5.1.2. Problem; 5.1.5. Consequences; 5.2. Reminder; 5.2.1. Intent; 5.2.2. Problem; 5.2.3. Solution; 5.2.5. Consequences; 5.3.6. Known Uses
  • 5.4. Orthogonal Component5.4.1. Intent; 5.4.2. Problem; 5.4.4. Sample Code; 5.4.5. Consequences; 5.4.6. Known Uses; 5.5. Transition to History; 5.5.1. Intent; 5.5.2. Problem; 5.5.3. Solution; 5.5.5. Consequences; 5.5.6. Known Uses; 5.6. Summary; Part II Real-Time Framework; Chapter 6: Real-Time Framework Concepts; 6.1. Inversion of Control; 6.2. CPU Management; 6.2.1. Traditional Sequential Systems; 6.2.3. Traditional Event-Driven Systems; 6.3.2. Asynchronous Communication; 6.3.3. Run-to-Completion; 6.3.4. Encapsulation; 6.4.2. Publish-Subscribe; 6.5. Event Memory Management
  • 6.5.1. Copying Entire Events