矢沢久雄
図1●システム開発の初期工程 |
●ユース・ケース図の役割
今回は,ユース・ケース図の役割とかき方を学習しましょう。「ユース・ケース(use case)」とは,システムに要求される機能をユーザーの視点から示したものです。ユース・ケースを図に表したものが「ユース・ケース図」です。ユース・ケース図は,コンピュータやプログラミングに関する知識の少ないユーザーにも分かりやすいものです。ユース・ケース図を使えば,システムの全体像を,開発者とユーザーが一緒にレビュー(評価)できます。完成したシステムの機能がユーザーの要望に合わなかった,などという結末を防ぐために,ユース・ケース図は効果を発揮するのです。
図2●アクターの図記号 |
●ユース・ケース図のかき方
ユース・ケース図では,2つの図記号が使われます。「アクター」と「ユース・ケース」です。アクターは,システムの外からシステムを起動したり,システムと情報を入出力するものです。アクターは,ユーザー(人間)であったり,他のシステムであったりします。アクターは,人間の形の図記号で表されます。図記号の下に,アクターの名前を記述します(図2)。
図3●ユース・ケースの図記号 |
一つのシステムが持つユース・ケースは,複数となるのが一般的です。ユース・ケースとアクターの関係は,実線で結んで示されます。一つのユース・ケースが複数のアクターと関係している場合も,一つのアクターが複数のユース・ケースに関係している場合もあります。システムの内部の領域を明確にするために,ユース・ケース全体を長方形で囲んで「システム境界」を示すこともあります。システム境界の上部には,システム名を記述します。
図4●電卓のユース・ケース図 |
●ユース・ケース間の関連を示す方法
システムを構成するユース・ケースの中には,他のユース・ケースと関連を持ったものもあります。ユース・ケース間の関連は,ユース・ケースを破線で結び,ステレオ・タイプを使って関連の種類を示します。 ユース・ケース間の関連を示すために使われるステレオ・タイプには,<
図5●ユース・ケース間の関連を示す |
●ユース・ケースのドキュメント
皆さんは,「こんなに単純なユース・ケース図だけで,開発者とユーザーがコミュニケーションできるのだろうか?」と疑問に思うかもしれません。まさしくその通りです。実際には,ユース・ケース図に何らかのドキュメントを添付することになります。ユース・ケースのドキュメントには,特に決まった書式がありません。UMLが規定しているのは,図記号の表記方法だけだからです。ですから,ユース・ケース図を使ってユーザーに口頭で説明する内容を,ドキュメントとして明文化する必要があります。これは,UMLの他の図にドキュメントを添付する場合でも同様です。「UMLを使っているのだから,その他の図やドキュメントを使ってはいけないのではないか?」と思うかもしれませんが,そんなことはないのです。
例えば,「ボタンを押す」というユース・ケースのドキュメントは,表1のように作成できます。もちろん,この例とは,異なる表記方法を使ってもかまいません。ユース・ケースのドキュメントでは,ユース・ケースが起動されるタイミングや,アクターとユース・ケースの間で入出力されるデータを明記することがポイントとなります。
項目 | 説明 |
ユース・ケース | ボタンを押す |
アクター | 電卓のユーザー |
動作の詳細 | このユース・ケースは,電卓のユーザーが目的のボタンを押すことで起動される。ボタンが押されると,システムの内部でボタンの種類が判別され,「数値を表示する」というユース・ケースが起動される。 |
関連するユース・ケース | 「数値を表示する」,「計算ボタンを押す」 |
表1●ユース・ケースのドキュメントの例 |
ユース・ケースのドキュメントとして「シナリオ」を作成することもよく行われます。シナリオとは,ユース・ケースの具体例を示したものです。ユース・ケースによっては,例外(エラーのこと)が発生する場合もあり得ます。通常動作のシナリオと例外のシナリオを分けて記述した方が,わかりやすいドキュメントとなります。例えば,「ボタンを押す」というユース・ケースのシナリオは,表2のように作成できます。
シナリオ | 説明 |
通常動作 | 電卓のユーザーは,6÷3という計算をしようとしている。[6]ボタンを押すことで,液晶画面に6が表示された。[÷]ボタン,[3]ボタンを押すことで,液晶画面に3が表示された。[=]ボタンを押すことで,液晶画面に計算結果である2が表示された。 |
例外 | 電卓のユーザーは,誤って[3]ボタンの代わりに[0]ボタンを押してしまった。これによって,ゼロ除算のエラーとなり,液晶画面には「ERROR」と表示された。 |
表2●ユース・ケースのシナリオの例 |