分析したモデルが意図通りか確認しよう
もちろんモデルを使って分析/設計を行うだけでも十分効果的です。しかし、世の中には記述したモデルを実際に動かすことができるツールもあります。今回は、モデル駆動型組込みシステムソフトウェア開発のモデリングツール「Telelogic Rhapsody」を使ってモデルを作りました。このツールはモデルを実際に動かして動的検証することが可能なツールです。
ここで、これまで説明してきたハイブリッドカーのモデルを動かしてみたいと思います。なお、誌面の関係でモデルを限定的に説明してきましたが、実際のモデルは動かすために他にも記述があります。
動画でわかるガソリンとバッテリが切り替えのモデル
今回は特にバッテリ制御の動きに着目してみたいと思います。図3の動画の中のアクティビティ図の中でピンク色の枠になっているものが現在のアクションです。黄土色の枠になっているものが1つ前のアクションです。
また、同時にモデル制御用の簡単なHTMLも作成しました。ボタンを押すと、「エンジンOff → エンジンOn → 緩やかな加速 → 緩やかな減速 → 停止 → 激しい加速 → 緩やかな加速 → 激しい減速 → 停止 → エンジンOff」の順番に車を操作していきます。
これらのシナリオがバッテリ良好の状態とバッテリが低下している状態で2回流れます。HTMLには他にも車の画像があります。車の後部にあるのがバッテリ、中部にあるのがガソリンエンジンです。車の中を矢印が流れていきます。これがエネルギーの流れになります。動画を見ると車の状態やバッテリの状態に応じてアクティビティ図の流れが変わるのがよくわかると思います。
今回、ハイブリッドカーを例にしましたが、複雑で大きなシステムでは、まずSysMLなどを使って抽象度の高いところからモデル(「第1回:これがハイブリッドカーのモデリングだ!」参照)を作っていくことが肝心です。その後、今回説明したように順を追って細かな部品にばらしていきます。
モデルを使用することで曖昧さも低減されますし、動的検証を利用可能なツールを使用すれば実装前に間違いに気付くこともできます。モデルを使って分析/設計を行っていくことは難しくないといことを少しはご理解いただけましたでしょうか?
第1回、第2回はSysMLを使ったシステムエンジニアリングモデルについて紹介しました。第3回、第4回では、UMLを使ったソフトウェアエンジニアリングについてお話したいと思います。
なお、記事中にてご紹介しているモデル表記、動画などは、テレロジック社のモデル駆動型組込み開発環境の「Telelogic Rhapsody(ラプソディ)」を利用しています。 タイトルへ戻る