Practical Statecharts in C/C++: Quantum Programming for Embedded Systems with CDROM
C**A
Beyond if/else ahocery
Well done.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 statemachinesIt also promotes reuse instead of ahoc statemachine design.Via the state function pointers, and state objects and class inheritance a web of if/else are reduced and often elimated. My one reservation is usage of C++ macros may be a bit much cumbersome at timesOne ofther quites sweet result is it show you how to make self describing code which is easily related tohigh level state diagramsQuite revoltionary.If your thinking of employing a statemahineI whole heartedly recommend this book.
D**A
Great tech
Looks like an excellent method for formalizing and standardizing state machines. This enables highly reactive systems with minimal OS requirements.
N**Y
Not what I expected
I bought this book after reading some reviews which hinted that this book would be helpful for software developers of all systems and not just embedded ones. I have to admit I have almost no practical experience with C++, but I have substantial insights into OOD.I think this book is singularly targeted towards embedded developers, especially the ones who are into the crux of critical systems. I'm into regular OOD for PC/Web applications, and except for the first 2-3 chapters, I thought the book was impractical in today's age of environments such as .NET and high-performance hardware. This is a highly theoretical book which demands a massive change and learning curve for traditional developers.This, however, does not undermine State Machines. State Machines, if implemented right, can work wonders for regular apps. I found the Windows Workflow Foundation to be an excellent example of practical implementation of State Machines; it does have its limitations though and is meant for high-level processes. I am probably just going to stick to State Tables and such for a simplistic model with easy debugging capabilities.I found the UML 2 for Dummies much more practical.
B**Y
It`s realy woundeful book.
Firstly: I am sorry about my English.I think that this book is really useful and very interesting for each interesting in C++/C. And want write programs with HSM behind as behavior rules of program.For conclusion: Useful and easy reading book.
C**M
Nice concept but useless in real-time embedded application
Since I saw quite a few excellent reviews on Amazon as well as on some other websites, I decided to purchase the book hoping it would give me some fresh new ideas in implementing FSM for real-time embedded system. I was quite disappointed when I received the book and had a chance to read it. Here are my own personal comments:- The text is too verbose and quite disorganized. Reading this I had the feeling of listening to someone rambling on and on.- The concept is unique and quite interesting. However, it is useless as far as embedded system implementation. Think of how you are going to debug this in a real-time environment. It would be a nightmare!- Lots of the detailed codings are encapsulated by the house-keeping codes. This is a definitely NO-NO for embedded system application if one must know every single line of executable code. (You have to know if you want to do size and speed optimization.)- It would be a nightmare to maintain an application written using this concept. It is just not consistent with the natural flow of thinking. Don't forget that the human element can never be detached from any application.- Debugging the state machine written using this concept is extremely difficult. (Believe me! I tried.) The concept of simply returning to the parent state if no special handling is required can be very very misleading during real-time debugging.Simply put, if you want to read some new interesting idea, this book is for you. But if you are looking for practical idea to apply to your SW development project, I suggest you look elsewhere. The 5-star rating is very very misleading. If you are still curious, you might want to check it out first at your local Barnes&Nobles or Border before buying.(In case anyone wonders about my background, I've been doing software development & architecture since 1988.)
M**Y
Absolutely useless
Completely derivative one trick approach to different problems. State machines are useful and have a place, but there is no need for a whole book on the subject.
I**S
素晴らしい!ステート指向プログラミングの世界
UMLの静的な構造からJavaのクラスを自動生成できます、そんな売り文句に飽きた人。この本は新しい世界を切り開いています。それは、動的な振る舞いをあらわすステートチャート図を使い、そこからストレートに実装(プログラミング)にマッピングしようという試みです。ステートチャートに基づいてステートマシンを実装することは、決して新しいことはありませんが、効率よく、かつ、ステートをストレートにプログラミング上表現できるという点で、まったく画期的なものになっています。タイトルには組み込みシステム向けとありますが、イベント指向なフレームワークなどを作られているかたにも役に立つ内容です。
"**"
テンプレートを使わない状態マシン実装の決定版
※2015-05追記C++11な現在、状態マシンを使いたいならboost::msmを使う方がしっくりきます。以下の記載は割り引いてお読みください。。。シンプルな状態マシンを設計するためには、階層構造や履歴といったアイテムを用いることが必要です。私は、組み込みプログラマとして、今までに幾つかの状態マシンの実装を見る機会がありました。しかしそれらに共通して言えたことは、すべてをフラットな状態遷移表にマップし、履歴/階層を表現するための場当たり的なグローバル変数の嵐に巻き込まれていたことです。状態遷移表は遷移テストの漏れを防ぐといっても、100近いグローバル変数の前では、その意味を失っていました。本書は、階層構造を持つ状態マシンを、高価で融通の利かないCASEツールを使わずに、C/C++で直接実装する仕方を説明しています。最近ではBoost::fsmといったC++テンプレートを利用した実装が現れてきましたが、本書では、デザインパターンの一つであるStateパターンと、遷移テーブルとを組み合わせた様な実装を提案しています。組み込みに限らず、イベントドリブンなアプリケーション開発をされている方にも必読の一冊であると思います。組み込みが強いと言われている(本当に?)日本で、なぜ日本語訳が出版されていないのか理解できません。
Trustpilot
2 weeks ago
3 weeks ago