私はペストのようなこの種のものを避けるでしょう。
私が遭遇したほとんどの「深刻な」低レベルソフトウェアは、この形式のステートマシンでした。
#include <stdio.h>
typedef enum
{
STATE_INIT, // Description
STATE_RUNNING, // Description
STATE_COMPLETE // Description
} state_t;
int main(void)
{
state_t state = STATE_INIT; // setup the initial state
while(1)
{
os_run(); // call the OS services (poll the UART, check buttons, etc.)
switch(state)
{
case STATE_INIT:
state = STATE_RUNNING;
puts("init");
break;
case STATE_RUNNING:
state = STATE_COMPLETE;
puts("running");
break;
case STATE_COMPLETE:
puts("complete");
break;
}
}
return 0;
}
C / C ++には他にも多くの優れたアプローチがありますが、私のお気に入りではありません。
QPのようなツールの大きな問題は、彼らがあなたに望まないことをするのが非常に難しいことです。手動でコードをいじることを選択した場合、特別なケースを永久に維持する必要があります。
UMLステートチャートは、ドキュメント作成、教育、分析のための素晴らしいツールです。しかし、実際のプログラミング用ではありません-そのためのより良いツールがあります:)