ロバストネス図とは
ロバストネス図は、「 システムの動きを絵として表したもの 」です。
UMLで定義されている13種類のダイアグラムには入っていませんが、UMLのコミュニケーション図やコラボレーション図を簡略化した形で簡単に書くことができます。
ロバストネス図では、システムの要素を以下の3種類に分類します。
- バウンダリ :ユーザーや外部システムとのやりとりを行う
- エンティティ :データの保存や管理を行う
- コントロール :ユーザーの要求を処理・制御する
ロバストネス図では、これらの要素をそれぞれ異なる形で表現します。
ロバストネス図を書くことで、システムが
- どのような機能 を持っていて
- どのようなデータ を扱っているか
と言うことがわかりやすくなります。
よりわかりやすく説明すると、ロバストネス図は
「お話の 登場人物 や 道具 や 場所 を絵にしたもの」
と言えます。
- 主人公 、 仲間 、 敵 = 「 バウンダリ 」
- 宝物 、 武器 、 魔法 = 「 エンティティ 」
- 冒険 、 戦闘 、 謎解き = 「 コントロール 」
ロバストネス図では、これらの 登場人物 や 道具 や 場所 を それぞれ異なる形 で描いて、話の内容を分かりやすくします。
必要性
ロバストネス図は、「 システムの要件を分析する 」時に役立ちます。
ロバストネス図を書くことで、システムが どのような機能 を持っていて、 どのようなデータ を扱っているかが明確になります。
また、ロバストネス図はシステムの 設計 や 実装 にも繋がります。
ロバストネス図は、システム開発の「 全体像を把握する 」ために必要な図と言えます。
メリット
ロバストネス図のメリットとして、以下の点があげられます。
シンプルでわかりやすい図
- UMLの コミュニケーション図 や コラボレーション図 を、簡略化した形で表現できる
- システムの「 構造 」や「 動作 」を簡潔に表現できる
要件と設計の間のギャップを埋める
- 要件を定義する時に書いた ユースケース と、設計する時に書く クラス図 や 相互作用図 との 対応関係 が 明確 になる
- 要件と設計の「 一貫性 」や「 正確性 」を高めることができる
チーム内でのコミュニケーションを促進する
- 異なる視点や知識レベルの人たちにも理解しやすい
- システムの要件や設計について、共通の言語で話し合える
要件の曖昧さを除去する
- ユースケース記述 の 曖昧さを削減し、設計 、テスト、見積りを容易にする
書き方の原則
ロバストネス図の書き方の原則として、以下の点があげられます。
- ユースケース記述 や ドメインモデル図 を参考にして、「 システムの振る舞い 」を表現する
- アクター 、 境界オブジェクト 、 制御オブジェクト 、 エンティティオブジェクト の、 4種類 の要素を使う
- 「 アクターの視点 」から記述する段階と、「 システムの視点 」から記述する段階の、大きく 2段階 に分けられる
- 「 要件の曖昧さ 」を除去するために描く
- ロバストネス図を描きながら「 ユースケース記述 」や「 ドメインモデル図 」に不足や矛盾 がないかをチェックする
- 「 システムの設計や実装に繋がる 」ために描く
- ロバストネス図は一時的なモデルであり、最終的な成果物ではないことを意識する
- 下流工程からのフィードバックを繰り返す
- 下流工程からのフィードバックを繰り返すことで、要件の曖昧さを除去し、確実性のあるものにしていく
あとがき
ロバストネス図は、システムの動作や構造を視覚的に理解できるようにするための強力なツールです。
システムの要件分析から設計、実装に至るまでの一連の作業を支援し、チーム内外でのコミュニケーションを円滑にする役割を果たします。
ロバストネス図は一時的なモデルであることを忘れず、常に要件や設計の変化に対応できる柔軟性を持たせることが重要です。
この図を活用することで、システム開発の全体像を把握し、プロジェクトの進行をスムーズにすることができるようになると思います。