ETロボコン2008〜チャンピオンシップへの道

ETロボコン2008〜チャンピオンシップへの道(4)〜

“本番に強い”クラス図をマスターしよう

上口翔子 @IT MONOist編集部 2008/10/7

今年で9回目となるETソフトウェアデザインロボットコンテスト(愛称:ETロボコン)。本連載では、11月に開催されるチャンピオンシップ大会へ向けた各チームの熱き健闘を随時レポートしていく。今回は2008年9月13日から15日に行われた関東地区大会モデルワークショップの中から、クラス図の描き方についてお伝えする。(編集部)

- PR -

 前回に引き続き、本稿では関東地区大会ワークショップの模様をお伝えする。まずはクラス化モデリングを行ううえで基本となるクラス図の描き方をご紹介。講師はETロボコン審査委員を務める幸加木 哲治氏(リコー)だ。


クラス図ってどう描くの?

――そもそもクラス図とは、機能(ユースケースなど)を実現するために必要な要素やその要素間の関連を記述した構造図のことです。順を追って説明していきましょう。(幸加木氏、以下省略)

モデリング方針を決める

――まずは何を達成するのか、ユースケースを確認し、そのための戦略を決めます。ここでは例として“コースを最速走破する”というユースケースを設定します。すると、次のような戦略が考えられます。

 戦略1:コースは複数の形状からなる

図1 (クリックで画像が拡大します)
緩いカーブ、直線、急カーブという3つのコース形状がある

 戦略2:各コース形状には最適な走行方法がある

図2 (クリックで画像が拡大します)
走行方法によって、駆動輪・操蛇(そうだ)輪の方向、パワーが変化する

 戦略3:コースの状況変化に応じて走行方法を切り替える

図3 (クリックで画像が拡大します)
黒線と白線の検知がほぼ同じであれば直線。白線よりも黒線が多ければ緩いカーブ。そして、内側に回ったときに黒線の割合が多ければ急カーブとする

――このような戦略を立てることで、走行方法、コース状況、変化、切り替えというような概念が出てきます。


オブジェクトの抽出

――戦略を考えたうえで、次は方針に従って機能を実現するために必要なオブジェクトを抽出します。これは手順1で決めた戦略の部分に当たります。

図4(クリックで画像が拡大します)
動作を実現するために必要なオブジェクトを書き出す

クラス化

――次に共通の特徴を持ったオブジェクトをグルーピングし、さらに構造化(クラス化、属性化、操作化)します。例えば走行方法ならば、直線走行、急カーブ走行、緩カーブ走行の3つでまとめることができます。

図5
走行方法のオブジェクトは、直線走行、急カーブ走行、緩カーブ走行になる

――ここで、オブジェクト間の関連を考察します。例えばコース状況を見ると、コース形状、そしてそのコース形状に応じた走行方法が分かるので、それらをリンクさせます。

図6(クリックで画像が拡大します)
それぞれの走行ごとに適した駆動輪・操蛇輪の方向、パワーがありそうだ

――変化、切り替えが見えてきたので、これを属性化、操作化します。

図7(クリックで画像が拡大します)
コース状況の変化量よって切り替え操作ができる

――最後に多重度、ロール名(関連名)を決定します。多重度はオブジェクトからのリンクを張った数によって決まります。

――基本なことですが、以上の操作を定量的に行うだけでもモデルの評価はぐっと高くなります!

 最後に、以下の4つのチェックポイントを押さえよう。

チェックポイント!
UMLの記法に従っているか
「すべてのクラスに属性がない」「多重度がない」「ロール名(もしくは関数名)がない」ということはないか
ハードウェアのオブジェクトのみでクラスが構築されていないか
そもそも動解析(アクティビティ図やシーケンス図)から始めていないか?
ここが一番重要


  >>次ページ。本部モデル部門審査員を務めたマイクロソフト 太田 寛氏による、クラス図の分析・設計方法をご紹介!


  • 連載バックナンバー
  • 全記事インデックス
  • 組み込み開発トップ
  • MONOistトップ

メールマガジン

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

特集ページ

セミコン・ジャパン2008特集
ET2008特集
自動車、カーエレ特集

Windows Embeddedコーナー

Windows Embedded
Windows Embedded専門コーナー誕生。Windows CEやXP Embeddedに関する技術情報を提供します。

@IT MONOist 求人情報