本文来自:http://www.itsenka.com/contents/development/uml/usecase.html
ユースケース図(Use Case Diagram)
ユースケース図とは、ユーザ(外部システムも含む)の要求に対するシステムの振る舞いを表現する図です。ユースケース図はシステムの要件定義についての俯瞰的情報を提供します。したがってユースケース図を描くことは、同時に要件定義の分析の機会になります。
記述例
例えば、次のような仕様の「受験管理システム」があるとします。
【要件定義】
ユーザ(受験者)は「受験申し込み」、「受験料振込み」、「テストを受ける」という処理を行っています。
このとき、ユースケース図では次のように表現できます。
ユーザ(受験者)が何を行うのかを書き出すことによって、より具体的な要件定義の視覚的な理解深まると同時に、不足している要件や修正するべき要件を洗い出す事が出来ます。
構成要素
ユースケース図は次の要素で構成されます。
要素 | 表示形式 | 意味 | |
アクター(Actor) | システムを利用する、システムに働きかけるユーザーまたは、システムを表します。 | ||
ユースケース(Usecase) | システムに対する具体的な働きかけや命令の内容を表します。複数存在する場合は、基本的に動作する順番に記述します。 | ||
サブジェクト(Subject) | 一つの機能を構成する複数のユースケースをまとめるために使用します。 | ||
パッケージ(Package) | サブジェクトをパッケージとして再利用する場合に使用します。 | ||
汎化(Generalization) | ユースケースBまたはアクタBは、ユースケースAまたはアクタAをより具体化したものであることを示します。 「is a」関係、つまり、「ユースケースB is a ユースケースA」または、「アクタB is a アクタA」の関係が成り立ちます。 | ||
包含(Include) | ユースケースBの中には、ユースケースAが含まれていることを示します。 「has a」関係、つまり、「ユースケースB has a ユースケースA」の関係が成り立ちます。 | ||
拡張(Extend) | ユースケースAに対して、機能を追加するようなユースケースBの関係を示します。 | ||
拡張ポイント(Extend Points) | ユースケースの拡張する時点(拡張ポイント)を明記した形式です。 |
各要素の記述例
サブジェクト
下図は、上記サンプルの一連の動作を受験というサブジェクトにまとめたものです。
パッケージ
下図は、受験(サブジェクト)をパッケージとして表したものです。
汎化
下図は、「プログラムを書く」というユースケースは、「Javaのコードを書く」というユースケースと「Cのコードを書く」というユースケースをより抽象化したユースケースであることを示しています。
包括
下図は、「手紙を送る」というユースケースは、「切手を貼る」というユースケースを含んでいることを示しています。
拡張
下図は、「自由研究」というユースケースの「調査する」の時点で、「インターネットを使う」というユースケースを追加していることを示しています。