[工学]紙と鉛筆とマウスとディスプレイ

最近、Matlab + Simulink でシステムを組んでいる。わりと状態変数を扱う事が多いので Stateflow という Simulink と連動する書いた状態遷移図をそのまま実行できるモデル化ツールを使っている。しかしながら、いざ使ってみると色々と不便な事も多い。

  1. 紙と鉛筆で書く方が断然早い。
  2. 書いた状態遷移図は必ず Stateflow の文法的に完備でないといけない。
  3. だから、試行錯誤の中でちょっとモデルを動かして、他の部分から入力を確認したい時に状態遷移図が中途半端な状況だとそこが原因でまともに動いてくれない。
  4. しかし状態遷移図が大きくなると、試行錯誤が多くなりちょっと動かしたくなる時が多い。

上のような理由によって、結局、最初は紙と鉛筆でラフを何枚か書きながら、遷移、動作の駆動条件、事象のなどのアウトラインを頭の中で何度か思考実験を繰り返して、設計する必要があるようだ。設計支援に成っていないような気がする。要はプログラム言語で実装するか、状態遷移図で視覚的に実装するかの違いである。ただ、やはり細かい話は C などで書いた外部関数が必要になる。それなら最初から最後までプログラムで書いたほうが良いような気もしてくる。なんだか Visual Basic*1 のようでいやだな。・・・
ただ、並行状態を扱えたり、状態の階層化などをちゃんと支援してくれるので、それなり便利そうではある。*2

ソフトウェアの振舞いのような見えない物の見えない側面を扱う以上、仕方の無い話なのだろうか。ただマウスとディスプレイの世界から紙と鉛筆での思考実験に移るとなぜかした検討は進み、思考はまとまりやすいのである。なに故か。手の動きが思考速度について行かないからかなと思う。・・・

*1:画面の部品(フォーム)の中にプログラムを埋め込むという思想が嫌いで10分で挫折しました。

*2:規模が大きくなるとプログラムで実現するのは面倒な事が多い