連載
» 2008年10月07日 00時00分 UPDATE

ETロボコン2008〜チャンピオンシップへの道〜(4):“本番に強い”クラス図をマスターしよう (1/2)

クラス図ってどう描くの?そもそもクラス図とは?――モデル審査員が語る“本番に強い”モデルの描き方、設計方法をお伝えする。

[上口翔子,@IT MONOist]

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

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

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

モデリング方針を決める

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

  • 戦略1:コースは複数の形状からなる
緩いカーブ、直線、急カーブという3つのコース形状がある 図1 緩いカーブ、直線、急カーブという3つのコース形状がある
  • 戦略2:各コース形状には最適な走行方法がある
走行方法によって、駆動輪・操蛇(そうだ)輪の方向、パワーが変化する 図2 走行方法によって、駆動輪・操蛇(そうだ)輪の方向、パワーが変化する
  • 戦略3:コースの状況変化に応じて走行方法を切り替える
黒線と白線の検知がほぼ同じであれば直線 図3 黒線と白線の検知がほぼ同じであれば直線。白線よりも黒線が多ければ緩いカーブ。そして、内側に回ったときに黒線の割合が多ければ急カーブとする

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

オブジェクトの抽出

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

動作を実現するために必要なオブジェクトを書き出す 図4 動作を実現するために必要なオブジェクトを書き出す

クラス化

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

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

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

それぞれの走行ごとに適した駆動輪・操蛇輪の方向、パワーがありそうだ 図6 それぞれの走行ごとに適した駆動輪・操蛇輪の方向、パワーがありそうだ

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

コース状況の変化量よって切り替え操作ができる 図7 コース状況の変化量よって切り替え操作ができる

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

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

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

チェックポイント!

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


       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.