矢沢久雄

図1●システム開発の初期工程

●ユース・ケース図の役割

 今回は,ユース・ケース図の役割とかき方を学習しましょう。「ユース・ケース(use case)」とは,システムに要求される機能をユーザーの視点から示したものです。ユース・ケースを図に表したものが「ユース・ケース図」です。ユース・ケース図は,コンピュータやプログラミングに関する知識の少ないユーザーにも分かりやすいものです。ユース・ケース図を使えば,システムの全体像を,開発者とユーザーが一緒にレビュー(評価)できます。完成したシステムの機能がユーザーの要望に合わなかった,などという結末を防ぐために,ユース・ケース図は効果を発揮するのです。

図2●アクターの図記号
 ユース・ケース図は,システム開発の初期工程で作成されます。開発者は,ユーザーの要望をヒアリングして,ユース・ケース図を作成します。ユース・ケース図によって,システムの全体像が見えてきます。ユース・ケース図の良しあしが,システム開発の成功のカギを握っていると言っても過言ではありません(図1[拡大表示])。

●ユース・ケース図のかき方

 ユース・ケース図では,2つの図記号が使われます。「アクター」と「ユース・ケース」です。アクターは,システムの外からシステムを起動したり,システムと情報を入出力するものです。アクターは,ユーザー(人間)であったり,他のシステムであったりします。アクターは,人間の形の図記号で表されます。図記号の下に,アクターの名前を記述します(図2)。

図3●ユース・ケースの図記号
 ユース・ケースは,システムの持つ機能を示したものです。そしてユース・ケース図は,システムの外にいるアクターとシステムの対話関係をモデル化したものです。システムの持つ機能をアクターの立場で表したものがユース・ケースだと言えます。ユース・ケースは,だ円の図記号で表されます。だ円の中にユース・ケースの名前を記述します(図3)。

 一つのシステムが持つユース・ケースは,複数となるのが一般的です。ユース・ケースとアクターの関係は,実線で結んで示されます。一つのユース・ケースが複数のアクターと関係している場合も,一つのアクターが複数のユース・ケースに関係している場合もあります。システムの内部の領域を明確にするために,ユース・ケース全体を長方形で囲んで「システム境界」を示すこともあります。システム境界の上部には,システム名を記述します。

図4●電卓のユース・ケース図
 図4に,前回のセミナーで取り上げた電卓のユース・ケース図を示します。ユース・ケース図の作成で重要なことは,何と言っても「アクターの視点でシステムを見る」ということです。外部からシステムがどのように見えるかを考えるのです。

●ユース・ケース間の関連を示す方法

 システムを構成するユース・ケースの中には,他のユース・ケースと関連を持ったものもあります。ユース・ケース間の関連は,ユース・ケースを破線で結び,ステレオ・タイプを使って関連の種類を示します。

 ユース・ケース間の関連を示すために使われるステレオ・タイプには,<> と <> があります。<> は,一つのユース・ケースが他のユース・ケースの機能を呼び出している(機能を含んでいる)ことを表します。<> は,一つのユース・ケースを拡張した形で他のユース・ケースが存在することを表します。

図5●ユース・ケース間の関連を示す
 (図5[拡大表示])は,電卓を例として,<> と <> の使い方を示したものです。「ボタンを押す」というユース・ケースは,「数値を表示する」というユース・ケースの機能を呼び出しています。「ボタンを押す」というユース・ケースを拡張する形で,「数値ボタンを押す」及び「計算ボタンを押す」というユース・ケースが存在します。もちろん,この他にもいくつかのユース・ケースが考えられますが,ここでは省略しています。

●ユース・ケースのドキュメント

 皆さんは,「こんなに単純なユース・ケース図だけで,開発者とユーザーがコミュニケーションできるのだろうか?」と疑問に思うかもしれません。まさしくその通りです。実際には,ユース・ケース図に何らかのドキュメントを添付することになります。ユース・ケースのドキュメントには,特に決まった書式がありません。UMLが規定しているのは,図記号の表記方法だけだからです。ですから,ユース・ケース図を使ってユーザーに口頭で説明する内容を,ドキュメントとして明文化する必要があります。これは,UMLの他の図にドキュメントを添付する場合でも同様です。「UMLを使っているのだから,その他の図やドキュメントを使ってはいけないのではないか?」と思うかもしれませんが,そんなことはないのです。

 例えば,「ボタンを押す」というユース・ケースのドキュメントは,表1のように作成できます。もちろん,この例とは,異なる表記方法を使ってもかまいません。ユース・ケースのドキュメントでは,ユース・ケースが起動されるタイミングや,アクターとユース・ケースの間で入出力されるデータを明記することがポイントとなります。

項目説明
ユース・ケースボタンを押す
アクター電卓のユーザー
動作の詳細このユース・ケースは,電卓のユーザーが目的のボタンを押すことで起動される。ボタンが押されると,システムの内部でボタンの種類が判別され,「数値を表示する」というユース・ケースが起動される。
関連するユース・ケース「数値を表示する」,「計算ボタンを押す」
表1●ユース・ケースのドキュメントの例

 ユース・ケースのドキュメントとして「シナリオ」を作成することもよく行われます。シナリオとは,ユース・ケースの具体例を示したものです。ユース・ケースによっては,例外(エラーのこと)が発生する場合もあり得ます。通常動作のシナリオと例外のシナリオを分けて記述した方が,わかりやすいドキュメントとなります。例えば,「ボタンを押す」というユース・ケースのシナリオは,表2のように作成できます。

シナリオ 説明
通常動作 電卓のユーザーは,6÷3という計算をしようとしている。[6]ボタンを押すことで,液晶画面に6が表示された。[÷]ボタン,[3]ボタンを押すことで,液晶画面に3が表示された。[=]ボタンを押すことで,液晶画面に計算結果である2が表示された。
例外 電卓のユーザーは,誤って[3]ボタンの代わりに[0]ボタンを押してしまった。これによって,ゼロ除算のエラーとなり,液晶画面には「ERROR」と表示された。
表2●ユース・ケースのシナリオの例