現在一生懸命にFlowSimulatorの開発をしているわけですが、それに関しての記事。
FlowSimulatorの設計ですが、全くと言って良いほど、作成していません。
ほぼ脳内で、すべて即座に設計しています。
最近、それが難しくなってきたので、1.1.0の設計をメモしていこうと思います。
まずは、要件
- シミュレーションにジャンプ機能(繰り返し・サブルーチン)が使えるようにする。
- エレメントを選択可能にして、一度に操作できるようにする。
- シミュレーション時のエラー箇所を特定しやすいようにする。
- ライン引きをvisioぽい操作にしてみる。
- ステップ実行を付ける。
- 変数の内容をトレースできるようにする。(デバッガ[用語あってますか?])
恐らくこれくらいでしょう。
上3つを目標としていて、それ以外は次回に回す予定です。
ちなみに現在は、どれも実装できていない状況です。
次、内部仕様です。
- ウィンドウ方式からバックバッファ方式に変更する。
- Zオーダーを入れる。
- ファイル入出力を厳密に行う。
1.0系では、このあたりが不完全で、バグとして出ています。たとえば、ファイル読み込み時に、ラインが崩れるなど。
ウィンドウ方式というのは、勝手に決めた方式で、エレメントが1つのウィンドウとして動かす方式です。
この方法だと、上記のバグが発生したり、構造が複雑になるので、あきらめて、内部にビットマップを持たせるバックバッファ方式に変更しています。
現在変更中で、この作業に、一番時間がかかっています。
さらに予定では、マイナーバージョン(2桁目の数値)が変わる毎にファイルのバージョンを変えようと思っています。つまり、今回はファイルバージョンを変更することになります。
また、ファイルの下位互換についてですが、申し訳ないですが現在のところ考えていません。時間があれば、コンバータか何かを提供したいと思っています。
2010年5月3日追記: 気が変わりました。1.1では1.0も読み込めるようにしたいと思います。
こんな感じで、現在制作中です。
2010年5月3日追記: 大まかな部分は完成しました。残りは、ファイル関連とプラグインのインターフェースの作成です。またこれも時間がかかりそうです。
2010年6月19日追記: プログラムが完成しました。現在ヘルプを作成中です。今月中に仕上げたいと思っていますが、大学の課題で忙しいので厳しいかもしれません。。。
イメージスクリーンショット