- 本カテゴリの商品を2500円以上購入で買取金額500円UPキャンペーン対象商品です。商品出荷時に買取サービスでご利用いただけるクーポンをメールにてご案内させていただきます。 詳細はこちら (細則もこちらからご覧いただけます)
Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems (英語) ペーパーバック – 2008/10/11
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
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.
<STRONG>Dr. Miro Samek</STRONG> 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).
The book describes how to use QM, a graphical tool for designing firmware, by creating UML state charts. It also describes how to use QP, a framework for managing concurrent, hierarchical state machines, (Active Objects) that can run under Linux, Windows and a multitude of different micro-controllers.
The book explains what hierarchical state machines and Active Objects are. It describes how and why they would be used. It also describes QK, which is a preemptive real time executive that is very fast and has an extremely tiny foot print.
Another topic discussed in the book is QSpy, a powerful tool for logging software trace information, used for debugging the firmware running on the target, in real time.
There are detailed examples in the book that explain how to use events, through the use of a messaging system.
Later in the book porting of QP or QK to other embedded platform, is explained in detail.
One of the best features of QP and QM, is that they can be downloaded for free, from SourceForge.net for non-commercial purposes. Very cool!!!
If it sounds like I am very impressed with the book, I am. I used the book to learn how to use QM and QP for the verification and validation testing of the firmware, of a medical device used to help people, suffering from epilepsy. The testing was necessary for FDA cerification,
QM was used to design a test harness, which ran on a PC. The test harness was used to test QP state transitions, running on an embedded target. So in effect, QP running on a PC, was used to test firmware running QP, on the target.
I learned everything that was needed to create and run the test harness using QM and QP, from the book. For me it was like a graduate course in computer engineering as well as being fun.
My hobby is building robots and I intend to use QM and QP to design the controller for my next robot. I still refer to the book from time to time, because it is so full of very useful information about embedded programming.
This book is best suited to people that have had some embedded programming experience.
This book shows you the power of state machines.
He takes the reader way beyond if/else and switch statements.
This book clearly shows how to map the problem space onto the solution space using statemachines
It also promotes reuse instead of ahoc statemachine design.
My one reservation is usage of C++ macros may be a bit much cumbersome
I whole heartedly recommend this book.