連載
» 2006年05月20日 00時00分 公開

ETロボコン2006へと続く道(2):“優れたモデルは、性能も優れている”の深意 (1/2)

UMLモデリングによる組み込み開発は、はたして吉と出るか凶と出るか。ETロボコンを通して見えてきた“現実的な落としどころ”を教えよう

[渡辺 博之 オージス総研,@IT MONOist]

はじめに

 ETロボットコンテスト(以下、ETロボコン)は、単にロボットの性能を競い合うだけでなく「ロボットを動かすソフトウェア」の優劣も競い合うという点で、ほかのロボットコンテストとは一線を画しているユニークな大会です。

 しかも、「ソフトウェア」とはいっても、実際のソースコードではなく、「ソフトウェアの設計図」すなわち「モデル」を審査対象としています。このモデルという設計図の良しあしで実際のソフトウェアの出来を判断するという点も、従来にないユニークな試みといえるでしょう。

 これは、そもそもこのコンテスト自体の生い立ちが、「大規模・複雑化の波が押し寄せる組み込みソフトウェアの開発現場に『モデル開発』という工学的な手法を普及させる」ことを目的としている点にあります。

 ですから、このコンテストではモデルの提出は必須になっていますし、ソフトウェア自体の性能で競われる「競技部門」よりも、モデルの良しあしで競われる「モデル部門」で好成績を収めることの方がより高く評価されてきました(ちなみに賞品のランクも「モデル部門」>「競技部門」となっています)。

  さて、そこで気になるのが「『モデル』すなわち『設計図』が優れていれば、実際のソフトウェア自体も優れているはずである」という仮説です。本稿では、昨年(2005年)の第4回ETロボコンにおける結果を用いてこの仮説を検証するとともに、それを踏まえて今年の第5回ETロボコンで解明していきたいポイントについても言及してみたいと思います。

モデルと性能の相関関係について

 図1は、第4回大会のモデルと性能の相関関係を表したグラフです。もし、前述の仮説が正しいのであれば、右肩下がりの分布となるはずですが、これを見る限りでは、そのような分布とはいえません。むしろ、次のような傾向が分かります。

  • 競技部門で高順位(性能が良い)のものは、モデルとしてはおおむね中程度の評価を得ている
  • モデル審査で低評価だったチームは競技部門でも低順位(性能が良くない)
  • モデル審査で高評価だったチームは、競技部門で低順位(性能が良くない)

 この要因を考える前に、まずETロボコンに代表される「組み込みシステム」開発の特徴について確認しておきましょう。

モデルと性能の相関関係(第4回ETロボコン) 図1 モデルと性能の相関関係(第4回ETロボコン)。モデル部門の評価の高い順からS、A、B、C、Dとなる。走行順位(横軸)の上位は、モデルの評価Bのチームがほぼ独占している(注:X軸の性能(走行順位)は、完走したチームのみのデータ)

組み込みシステム開発の特徴

 組み込みシステムの開発は、図2に示したように、

  • 「論理的性能」の追求
  • 「実性能」の追求

という2つのアプローチにより実現されます。

組み込みシステム開発の特徴はボトムアップとトップダウンの混在 図2 組み込みシステム開発の特徴はボトムアップとトップダウンの混在

「論理的性能」の追求

 「論理的性能」の追求とは、「開発対象を理解・整理し、論理的なソリューションを検討する」トップダウンのアプローチです。システムに対する「機能要求」や「保守性」「再利用性」「移植性」といった「内部品質にかかわる非機能要求」の実現方法を検討するためには欠かせないアプローチといえます。特に、大規模・複雑化したシステムには必須であり、この検討がいいかげんだと「何とか作ったはいいが、保守できない」「ちょっと変更すると、いろいろなところに影響が及ぶ」といった問題を引き起こすことになります。

 このアプローチでは、「関心事の分離」「分割統治」といったキーワードに代表されるように、「複雑なものは、なるべく独立性の高いシンプルな要素の集まりに分けて管理する」方針に沿って、開発対象を整理することから始めます。さらに、「本来、どうあるべきか」という目的レベルでの整理を実施することで、手段にとらわれない本質的な論理構造を得ることができます。

 ETロボコンの例では、まず「走行体の位置判断」「走行コースの選択」「走行体の制御」などのように要求を整理し、それらを実現するために必要な「コース」「区間」「走法」などといった構成要素を見いだします。そしてこれらの要素を組み合わせることで、要求が正しく実現できることを検証します。「オブジェクト指向」という還元論的な考え方や、「UML」などのモデルを使った開発手法は、この「論理性」を追求するアプローチを実践するうえで非常に役立ちます。

「実性能」の追求

 一方、「実性能」の追求とは、「多くの制約にどう対処して要求された性能を実現するか」を目指すボトムアップのアプローチです。こちらは、「効率性」「信頼性」「ユーザービリティ」といった「非機能要求」の中でも「外部品質」すなわち「実性能」にかかわる要求を実現するためには欠かせないアプローチとなります。環境や人間といった現実世界の予測できない相手と直接対峙(たいじ)する中で、求められる性能を達成するためには、「要素技術」と呼ばれるさまざまな実践的ノウハウが必要になってきます。

 ETロボコンでも、「センサーの性能誤差への対処法」「電池の消耗具合の検出法」「舵(かじ)の切り方」「照明の変化への対応」「最適なコース攻略法」「実装言語の選択」「実装環境であるOSやライブラリの特性熟知」など数多くの要素技術が必要になります。これら要素技術は実性能に直結するため、ある程度規模が小さな開発であれば、このアプローチだけでも十分要求を満たすシステムが構築できます。ただし、規模が大きくなるにつれ、この方法だけでは対象が複雑化して破たんしてしまうため、前述した「論理的性能」に基づいた整理が必要となります。

 まとめると、組み込みシステムの開発においては、

  • トップダウンで追求する「論理的性能」
  • ボトムアップで追求する「実性能」

という2つのアプローチをうまくバランスさせることが成功の秘訣といえます。つまり、ボトムアップである程度「実性能」が追求できたら、そこで発見された内容や要素技術をトップダウンで作成したモデルにフィードバックすることで、より実践的できちんと整理されたソフトウェアが出来上がるのです。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.