teaforone’s diary

ソフトウェアや製造業に関することを個人の目線から書きます

状態遷移図とは

Stateflow(のステートチャート)は状態遷移図です。状態遷移図とはステート(状態)とその遷移をモデル表現したものです。これが大前提となります。
このステートは実際の物理的なステートを表現することもありますし、コントローラのステートをモデル化することもあります。またステートは実在する状態に限らず、設計者の都合の良いように架空のステートを作り上げることもあります。
なぜモデリングするかというと、いろんな観点でソフトウエアの品質を上げやすいからです。


誤解を恐れずに書くと、Stateflowは単なるプログラミング言語の一種です。思いのまま自由に記述し、ステートをモデル化せずとも、「何か」動くソフトを作ることは可能です。(実際にフローチャートとして記述することも可能になっています)
ですがStateflowが強力なツールであるのは、ステートをモデリングしたときにのみ発揮されます。


もしステートのモデル化を目的としないのであれば、Stateflowがテキストコーディングに対して持っているアドバンテージは少なくなるため、実現手段を一度考え直してみるのも良いでしょう。
 

Stateflowについての記事を書いてみたいと思います

はじめに
組み込み系でSimulink使う場合、ロジックの表現をするのにStateflowは強力なツールです。
 
Simulinkはいわゆる制御工学の領域の記述には適していますが、実際の組み込みソフトで必要とされる、「それ以外のロジック」の作り込みにはあまり適していません。
 
無理にSimulinkで全てを記述しようとすると、読みにくく、複雑になってしまうためStateflowを組み合わせて使ったり、従来のコーディングと組み合わせ使ったりします。
 
従来のコーディングについては、既に導入している人には説明の必要がないと思われますが、Stateflowについては、いろんな理由からプログラミング教育を受けていない人が使うことも多いようです。(数式で制御則を扱うことと、組み込みソフトをデザインする能力は混同されている場合がある)
 
Stateflowには入門書のようなものがあまり見つからないので、これからStateflowを使うであろう人、プログラミング教育を受けていない人に対して、メモや考え方をまとめて残しておくことにしました。