ゼロから始めた組み込みUMLモデリング“ハッスルCATS”のETロボコン2005参戦記(前編)(2/3 ページ)

» 2006年03月25日 00時00分 公開
[赤穂/ラン/唐/渡辺 キャッツ,@IT MONOist]

ドメイン分割

 ユースケース分析の次に取り組んだのは、ドメイン分割です。ここで行ったのは、システムの内部をいくつかのドメイン(領域)に分割することでした。組み込み開発では、ソフトウェアとハードウェアの双方を意識する必要があります。そこでユースケースで記述したシステムのサービスは、上位レイヤの「アプリケーション」とし、下位レイヤには入出力ポートの制御を行う「ハードウェア」、これらの中間に「ユーザーインターフェイス」と「メカニズム」の4つのドメインを定義しました(図4)。

初期のドメイン分割 図4 初期のドメイン分割

 ドメイン分割については、初期モデルと最終モデル(図5)はそれほど変わりはありませんが、ユースケース図やクラス図などでユースケースごとやドメインごとに色分けをすることでモデル図が見やすくなることを知りました。また、当初はモデル図で使っている文言がモデルごとに異なっていて、立て続けにモデルを見たときに違和感がありました。モデル図を描くときは、同じ表現に統一することも大切です。

完成したドメイン分割 図5 完成したドメイン分割

状態図

 初期の状態図では、コース上に描かれた漆黒/黒のラインを光センサで読み取るためのキャリブレーションやIN/OUTコースの選択といった、走行前のセッティングに関する状態のみを記述していました(図6)。

初期の状態図 図6 初期の状態図

 これでもPathFinderを普通に走行させるなら問題ありません。しかし、ハッスルCATSの目標はタイムトライアルで優勝することです。走行テストを繰り返すうちに、走行中に現在の状態を判断することがタイム向上に重要であると判明しました。走行テストの結果を基にモデルを洗練させていった結果、走行中の状態について詳細の記述を追加することになりました(図7)。

完成した状態図 図7 完成した状態図

 走行中の状態とは、坂道走行であれば上りか下りか、通常走行ではストレート走行中かカーブ走行中であるか、などです。状態図で走行中にどのような状態にあるのかを明確に表現したことにより、走行性能を向上させる設計のポイントを理解することができたのです。

Copyright © ITmedia, Inc. All Rights Reserved.