UMLにおけるユースケース:効果的なユースケース仕様書の作成方法

のみを使用してユースケース図を表示するUML表記だけでは不十分である。各ユースケースには、その目的とユースケースが実行されたときに完了する機能を説明するテキストが付随している。ユースケース仕様書は、通常、分析および設計フェーズの間で反復的に作成される。

  • まず、ユースケースの通常の流れに必要な手順のみについて簡潔な記述を書く(つまり、ユースケースが提供する機能)。
  • 分析が進むにつれて、これらの手順はより詳細に拡張される。
  • 最後に、代替フローおよび例外フローがユースケースに追加される。
  • 各プロジェクトは、標準的なユースケーステンプレートを採用して、ユースケース仕様書を作成できる。

ユースケース vs. ユースケース仕様書

ユースケースは、ビジネス価値を提供するアクターが実行するタスクを記述する。ユースケースは、ユースケース図および/または構造化されたテキスト形式の仕様として可視化できる。

Use Case vs. Use Case Specification

ユースケース(顧客が実行したいタスク)は次のようになる。

  • インタラクション — システムユースケースは、アクターが定義されたビジネス目標を達成するためにシステムとどのようにやり取りするかを記述する。
  • 手動 — アクターが実行する一連のアクション。
  • 自動 — プログラムまたはスクリプトによって実行される一連のステップ。

ユースケースの特徴

ユースケースには以下の特徴がある。

  • 唯一の目的
  • 一つの開始点
  • 一つの終了点
  • 開始から終了までの複数の経路
    • つまり、さまざまな可能な状況に対する動作を指定する
    • 各状況には特定のアクションが必要となる場合がある

Characteristics of a Use Case

例:顧客が請求書を支払う:

Customer Pays a Bill

目的を達成するための複数の経路がある目的を達成する:

  • 電話で
  • 郵送
  • 対面
  • 振込
  • 現金など

目的に至らないパス:

  • クレジットカードが拒否されました

アジャイルなユースケースアプローチ

ユースケースモデルおよびその個々のユースケースは時間とともに段階的に進化する。モデル内のすべてのユースケースが同じ詳細レベルで定義される必要はない。

タイムリーかつ適正な量

ユースケースは、異なる詳細度と範囲で記述でき、それぞれが目的を果たす。

  • 概要:システム機能またはビジネスプロセスの一般的な説明と高レベルな概要。
  • ユーザー目標レベル:タスク関連の記述ユーザーの目標とシステムとのやり取り;特定のビジネスプロセスの記述。ユーザー目標のユースケースは、通常、ユーザーの主要な作業タスクのレベルとされる。

:ATMから現金を引き出すことは有用なタスクであり、コアレベルのユースケースとなるが、PINを入力することは主なタスクを支援するため、このレベルには含まれない。

  • サブ機能:コアユースケースの一部を完了するための低レベルの活動の記述。

Agile Use Case Approach

注意:一部のユースケースはレベルIIまで完全に記述される場合がある。必要なだけの詳細を、適切なタイミングで適切な量だけ得られたら、停止する。

詳細なユースケース仕様

詳細なユースケースは、特定のフォーマットで、イベントの順序とその他の関連するユースケース情報をテキスト形式で記述したものである。人々は通常、標準的なユースケーステンプレートを用いて詳細なユースケース情報を記録する。

Detailed Use Case Specification

ユースケーステンプレート – ATM現金引き出しの例

前述したように、ユースケースにはさまざまな表記スタイル(例:図式、UML、テキスト形式)がある。使用する表記にかかわらず、理解しやすいものでなければならない。アリスター・コックバーンによるテンプレートなど、お使いのチームに最も適したテンプレートを選択して使用できる。アリスター・コックバーン、またはチームに最も適したテンプレートを選択する。

ユースケース仕様
ユースケース名: 現金の引き出し
アクター: 顧客(主なアクター)、銀行システム(補助的アクター)
概要: 任意の銀行顧客が自分の口座から現金を引き出すことを可能にする。
優先度: 必須
状態: 中程度の詳細
事前条件: 銀行顧客がATMに挿入可能なカードを持っている
ATMはオンラインで正常に動作している
事後条件:
  • 銀行顧客は現金(およびオプションの領収書)を受け取った
  • 銀行は顧客の口座から引き落としを行い、取引の詳細を記録した
基本フロー:
  1. 顧客が自分のカードをATMに挿入する
  2. ATMはカードが有効な銀行カードであることを確認する
  3. ATMはPINの入力を求めます
  4. 顧客が自分のPINを入力する
  5. ATMは銀行カードとPINを照合して確認する
  6. ATMはサービスオプションを提示し、「引き出し」を含む
  7. 顧客は「引き出し」を選択する
  8. ATMは金額オプションを提示する
  9. 顧客は金額を選択するか、金額を入力する
  10. ATMは機械内に十分な現金が確保されているか確認する
  11. ATMは顧客が引き出し限度額以内であるか確認する
  12. ATMは顧客の銀行口座に十分な資金があるか確認する
  13. ATMは顧客の銀行口座から引き落としを行う
  14. ATMは顧客の銀行カードを返却する
  15. 顧客は自分の銀行カードを受け取る
  16. ATMは顧客に現金を払い出す
  17. 顧客は自分の現金を受け取る
代替フロー: 2a. 無効なカード
2b. カードが逆向きに挿入された
5a. 盗難されたカード
5b. 無効なPIN
10a. マシン内の現金が不足している
10b. マシン内の現金の額面が正しくない
11a. 引出金額が引き出し限度額を超える
12a. 顧客の口座に十分な資金がない
14a. 銀行カードがマシンに詰まっている
15a. 顧客が銀行カードを受け取らない
16a. 現金がマシンに詰まっている
17a. 顧客が現金を受け取らない

  • ATMは銀行システムと通信できない
  • 顧客がATMのプロンプトに応答しない
ビジネスルール: B1: PINのフォーマット
B2: PINの再試行回数
B3: サービスオプション
B4: 金額オプション
B5: 引出限度額
B6: 現金を払い出す前にカードを取出さなければならない
非機能要件: NF1: 取引完了に要する時間
NF2: PIN入力のセキュリティ
NF3: カードおよび現金の受け取りに許可される時間
NF4:言語サポート
NF5:視覚障害者および視力が一部損なわれたユーザーへの対応

コメントを残す