나는 전염병과 같은 이런 종류의 것을 피할 것입니다.
내가 경험 한 "심각한"저수준 소프트웨어는 다음과 같은 형태의 상태 머신입니다.
#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 상태 차트는 문서화, 교육 및 분석을위한 환상적인 도구입니다. 그러나 실제 프로그래밍에는 적합하지 않습니다.