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

» 2006年03月25日 00時00分 公開
[赤穂/ラン/唐/渡辺 キャッツ,@IT MONOist]
前のページへ 1|2|3       

クラス図

 次にクラス図の作成ですが、何をオブジェクトとして定義すればいいのかよく分からず、当初は処理の1つ1つをオブジェクトとしたり、感覚だけでオブジェクトやクラスを作成していました。そのため、クラスの責務が重なってしまったり、何をしているのか分からないクラスが出てきてしまいました。

 デザインレビューで「このクラスは何をするクラスなの?」と聞かれたときに、うまく説明できなかったり、言葉に詰まってしまったり。また、それぞれの処理ごとにクラスを作成していた結果、複雑で視認性も悪く、意図の伝わらないモデルになってしまいました(図8)。

初期のクラス図 図8 初期のクラス図

 デザインレビューを繰り返すうちに、各オブジェクトやクラスには明確な定義が必要であり、またそれらの責務が重なってはいけない理由を理解していきました。また、きちんとした定義を行い、責務を明確にすることで、分かりやすいクラス図となりました(図9)。

完成したクラス図 図9 完成したクラス図

 最終的にクラス図はもっとシンプルにしたかったのですが、どうしても組み込み処理を表現しようとすると図9のようになってしまいます。その辺がUMLを組み込み開発に適用することの難しさなのでしょう。

モデリング審査の結果

 4つの最終モデルを完成させて気が付いたことは以下です。

  • 何を表現するかによってモデル図を選択する
  • モデル図同士の整合性を保つこと(文言の統一化)
  • UML図を構成する1つ1つのパーツ(線や楕円や四角)の定義を正しく理解する
  • 色彩を意識することで見やすいモデルになる

 2005年7月に発表されたモデリングの審査結果で、ハッスルCATSは残念ながら上位入賞は逃しましたが、最終選考に残りました。初めてのモデリングに挑戦したことで、次のようなことを理解しました。

  • 抽象化することによる見やすさ
  • 図を描くことが重要ではなく、分析を行った結果を図として作成し、関係者同士で意思の疎通を図ることが重要

 また反省点として、モデル図のレビューはデザイン(絵的な)レビューがメインで、どんなものを作るかという突っ込んだレビューの機会をほとんど持てなかったことがあります。UMLの図の描き方さえ知らないままモデリングを行ったという事情があるので、仕方がないのかもしれません。しかし、もっとチーム内で各自の意見をぶつけ合い、意思の疎通を図るためにモデル図を活用できたら、さらによかったでしょう。

競技会当日の裏話とレース結果

 そしていよいよ実際にPathFinderを走行させる競技会の当日がやって来ました。優勝を目指していましたが、実際のところ完走できるか不安でした。コースにはINコース走行とOUTコース走行があり、それぞれに難所(ショートカットやオフロードなど)が設けられています。そこを走破できれば大幅なタイムの短縮が狙えますが、難所を避けて安全なコースを選ぶこともできます。競技会に対するチーム戦略の結論として、難所は避けてレースに臨むことにしました。

 ハッスルCATSの第1回目は「OUTコース走行」です。いざスタートさせた瞬間に、ラインから外れコースアウトしてしまいました。原因は光センサの値を試走時の値で走らせたこと、ほかチームと一緒に走ることを想定していなかったこと、スタートの練習をしていなかったことなどでした。コースアウトしたことにより、急にチームの雰囲気も悪くなってしまいました。しかしそれを救ってくれたのは、応援に来てくれた会社の人たちでした。「次があるから頑張れっ!」と励ましてくれました。応援してくれる人がいるのはとても心強いことです。

緊張のスタート 写真1 緊張のスタート。第1回でコースアウトし、背水の陣で臨んだ第2回のスタート直前。向かって右側(INコース)がハッスルCATS

 そして、次は「INコース走行」です。後がなくなった第2回目。恥ずかしい話ですが、緊張のあまり手が震え、最初レーンを間違えて置いてしまいました。いざスタートさせると、1回目のようなトラブルはなく軽快に走っていきました。何回かリカバリー走行をしながらも、ゴールまで走り切ってくれました。タイムはあまり良くありませんでしたが、無事に完走しタイムを残すことができて、ゴールした瞬間「ヤッター!」という気持ちでイッパイでした。

完走を果たしたハッスルCATS 写真2 完走を果たしたハッスルCATS。第9位の成績で見事チャンピオンシップ大会の出場権を獲得し、笑顔を見せるハッスルCATSのメンバー

 参加53チームで行われたタイムトライアルでは、完走16チーム中、第9位でした。優勝は逃しましたが、ET2005で開催されるチャンピオンシップ大会への出場権を獲得し、形のある結果を出せたことはとてもうれしかったです。次回は、チャンピオンシップ大会へ向けたプログラムのチューニング作業を中心に報告します。お楽しみに。(後編へ続く)


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.