rdf-syntax-grammar
mods:
  schema location: http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd
  title info:
    title: Practical UML statecharts in C/C++
    sub title: event-driven programming for embedded systems
  name:
    name part: Samek, Miro.
    role:
      role term: creator
  name:
    name part: ScienceDirect (Online service)
  type of resource: text
  genre: bibliography
  genre: Electronic books.
  origin info:
    place:
      place term: ne
    date issued: 2009
    edition: 2nd ed.
    issuance: monographic
  language:
    language term: eng
  physical description:
    form: electronic
    form: remote
    extent: xxxi, 712 pages : illustrations ; 24 cm.
  abstract: 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 system…
  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 Handle…
  note: Miro Samek.
  note: Previous edition: Lawrence, Kan. : CMP Books, c2002.
  note: Electronic resource.
  note: Electronic reproduction. Amsterdam : Elsevier Science & Technology, 2008. Mode of access: World Wide Web. System requirements: Web browser. Title from title screen (viewed on Dec. 9, 2008). Access may be restricted to users at subscribing institutions.
  note: Includes bibliographical references (pages [693]-697) and index.
  subject:
    topic: System design
  subject:
    topic: Computer software
    topic: Development
  subject:
    topic: Formal methods (Computer science)
  subject:
    topic: Statecharts (Computer science)
  subject:
    topic: UML (Computer science)
  subject:
    topic: Object-oriented programming (Computer science)
  classification: QA76.9.S88 S26 2009eb
  classification: 005.117
  related item:
    identifier: (OCoLC)214307694
  identifier: 9780750687065
  identifier: 0750687061
  identifier: 152626:152780 Elsevier Science & Technology
  identifier: http://proxy.library.tamu.edu/login
  record info:
    record content source: OPELS
    record creation date: 081212
    record change date: 20260609193356.6
    record identifier: in00002491131
    language of cataloging:
      language term: eng