ユースケースの話の前にシナリオについてひとこと.シナリオ(scenario)は,具体的なシステムとの関わりを,物語として
キャスト |
誰が |
シーン |
いつ,どこで,なぜ |
アクション |
何を,どんなふうに,どれだけ |
では,ユースケースを理解するために次のシナリオを考えて見よう.このシナリオは,インターネットショッピングが可能なオンラインストアでショッピングを行なうことを想定している.
「顧客がオンラインストアのカタログから欲しいものを選び,ショッピングバスケットに |
入れる.顧客が買うと決めて支払うとき,顧客は品物の届け先とクレジットカード情報を |
入力し,その後最終決定をする.システムはクレジットカードが有効かのチェックをし, |
すぐに売買の確認を知らせ,さらに電子メールで知らせる.」 |
このシナリオは日常起こりえるものである.しかし,時にはクレジットカードが許可されないこともありえる.そのような場合は,別のシナリオが発生する.
ユースケースは,一般のユーザがゴールとしていることで結び付けられたシナリオの集まりである.よって,このシナリオのユースケースは「商品の購入」と「クレジットカードの不許可」などとなる.一般に,ユースケースはすべてうまくいく場合と途中でうまくいかなかった場合などを含んでいる.
Cockburn(2001)は,ユースケースを取り出すために,下に記すように,基本系列とその代替系列をいくつかの番号付きのステップを用いて簡単な書式で表す方法を提案している.これをユースケーステキストという.
ユースケース記述の形式 | |
ユースケース名 | 「○○する」 |
アクタ | |
目的 | アクタまたはシステムのownerにとっての目的 |
事前条件 | ユースケース実行前の主要なオブジェクトの状態 |
基本系列 | アクタとシステムのやりとり |
代替系列 | 例外のやりとり |
事後条件 | ユースケース実行後の主要なオブジェクトの状態 |
備考 | ユースケース理解のためなら何でも書く |
ユースケースの内容をどのように説明するかに関して多くの種類がある.UMLはこれが標準であるというものを決めてない.
どのくらい詳しく説明しなけらばならないかは,ユースケースのリスクに依存している.リスクが高ければ高いほど,より詳しい説明が必要となる.
例として,オンラインショッピングの記述を行なおう.
ユースケース名:商品の購入 | ||||||||
アクタ:顧客 | ||||||||
目的:顧客がインターネットでショッピングがしたい. | ||||||||
事前条件:顧客はショッピングができていない. | ||||||||
基本系列:
|
||||||||
代替系列:
|
||||||||
事後条件:顧客はショッピングができている. | ||||||||
備考: |
システムが外から見てどのように動作し,反応するかを図で表したものが ユースケース図 (use case diagram)である.
ソフト開発の主要な要素としてのユースケースと共に,Jacobson(1994)はユースケースを視覚化するためにユースケース図を提案した.ユースケース図は今ではUMLの一部である.
次の図は金融取引システムのユースケース図である.