QP (http://www.state-machine.com) は、私の考えでは、非常にモデル駆動型の開発に適した別のオプションです。最近、私の意見を裏付ける学期論文を読みました: http://security.hsr.ch/mse/projects/2011_Code_Generator_for_UML_State_Machines.pdf
理論的には、非常にノイズのない構文を持つ boost::msm eUML フロント エンドを使用することもできます。これはブーストからの簡単な例です:
BOOST_MSM_EUML_TRANSITION_TABLE((
Playing == Stopped + play [some_guard] / (some_action , start_playback) ,
Open == Stopped + open_close/ open_drawer ,
Stopped == Stopped + stop ,
Empty == Open + open_close / close_drawer ,
Open == Empty + open_close / open_drawer ,
Stopped == Empty + cd_detected [good_disk_format] / store_cd_info
),transition_table)
eUML の「実験的」ステータスをどの程度真剣に受け止めるべきかわかりませんが、これまでのところ問題はありませんでした。