第14回から、架空の宅配便会社「まいにち宅配便」が開発を進めている「配達予約システム」を例にとり、UMLを用いてシステムの仕様をモデリングする方法について説明しています。今回は、「ユースケース」の仕様をモデリングする際、ロバストネス図に記述する内容について具体的に解説します。
ロバストネス図を記述する際、以下の5点を含めます。
1.ユーザーインタフェース
ユーザーインタフェースを表現するステレオタイプを図の左側に名称を付けて配置します。昔から使われているユーザーインタフェース用のステレオタイプにバウンダリというものがありますが、独自のステレオタイプを定義して使う方がわかりやすく、ユーザーインタフェースの種類を見分けるのに役立ちます。例では、画面やメールのステレオタイプを使っています。
2.コントロール
コントロール(システム内部の振る舞いを表現するステレオタイプ)を図の中央に配置します。コントロールには「認証」「配達予約」など、振る舞いを示す名前を記述します。
3.エンティティ
エンティティ(データを表現するステレオタイプ)を図の右側に配置します。エンティティは必ずクラス図と同じ名前にします。例では、「配達事前連絡先」「宅配」「配達計画」などがエンティティに当たります。
4.システム間インタフェース
システム間インタフェースを表現するステレオタイプを図の右側に配置します。例では、バウンダリで「配達計画システムへの配達計画登録インタフェース」を記述しています。
5.メッセージ
メッセージ(注1)を使って各ステレオタイプ間で行われるやり取りを記述します。単純な画面遷移の場合は画面から画面へのメッセージになります。データまたは表を更新するのであれば、「画面→コントロール→エンティティ」のメッセージになります。特にエンティティへのメッセージは、次の点に注意して定義しましょう。
注5:オブジェクト間で行われるやり取り。
●クラス図を意識してエンティティ間のメッセージを定義する
●エンティティを複数件取得する場合は繰り返しや取得するエンティティの条件を記述する
ロバストネス図の副次的な効果
そもそも、データは様々なユースケースに使われるものです。したがって、データはすべてのユースケースの画面やビジネスルールに加え、業務フロー(ユースケース間のつながり)を実現できなければなりません。ところが、クラス図を眺めてもユースケースや業務フローとデータの整合性をチェックできません。そこで、ユースケースの仕様とエンティティの構造を併記したロバストネス図を作成することで、クラス図の整合性をチェックすることが可能になります。
次回以降は、アーキテクチャを設計するためにUMLをどのように使うかということについて解説します。
『出典:システム開発ジャーナル Vol.4(2008年5月発刊)』
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは異なる場合があります。ご了承ください。