質問は非常に一般的です。有効なユースケースを特定するために留意すべき点は何ですか?ユースケースにアプローチする方法は?
4 に答える
ユース ケースの定義は単純です。
ビジネス価値のあるものを作成するためのシステムとのアクターの対話。
より正式には:
特定のアクターに対して測定可能な値のセットを生成する、システムによって実行される一連のトランザクション。
それらは非常に単純であることを意図しています: アクター、相互作用、価値。いくつかの詳細を追加できますが、多すぎることはできません。
ユースケースの使用は簡単です。これを読んでください: http://www.gatherspace.com/static/use_case_example.html
最大の間違いは、アクターとシステムの間の相互作用を見落としていることです。ユースケースは、長くて詳細な技術的アルゴリズム設計を書き留める場所ではありません。ユースケースは、アクターが何かを行う場所です。
人々はシステムと対話してアクション (注文、請求の承認、保険請求の拒否など) を実行できます。アクションを実行するには、まず決定を下します。決定を下すには、情報が必要です
- 情報
- 決断
- アクション
これらは、ユースケースの「相互作用」部分の構成要素です。
ユースケースは、ユーザーがプログラムを使用して達成できるタスクまたは目標を具体的に識別します。ユーザーが理解できる言葉で書かれている必要があります。
ウィキペディアの説明は過度に形式的です。すぐに他のテキストを掘り下げます。対照的に、元の wiki の記事はよりアクセスしやすくなっています。
The Pragmatic Programmerが積極的に引用した Alastair Cockburn による初期の記事には、優れたテンプレートが含まれています。
ほんの数日前のこの質問は、非常に密接に関連していますが、もう少し具体的です。
有効な使用例は次のとおりです。
- 対象者 / ユーザー
- 前提条件 (つまり、ログインしている必要があるなど)
- 期待される成果)
- 考えられる障害点
- ユーザーのワークフロー
ガイドラインから: Eclipseの人々によるアクターとユースケースの識別と概要:
アクターの特定
開発中のシステムが対話する必要がある外部エンティティを見つけます。候補には、タスクを実行し、システムの 1 次または 2 次機能を実行するためにシステムからの支援を必要とするユーザーのグループ、および外部ハードウェア、ソフトウェア、およびその他のシステムが含まれます。
名前を付けて簡単な説明を書いて、各候補アクターを定義します。アクターの責任範囲と、システムを使用するときにアクターが達成しようとする目標が含まれます。目標のないアクター候補を排除します。
これらの質問は、アクターを特定するのに役立ちます。
- システムから情報を提供、使用、または削除するのは誰ですか?
- 誰がシステムを使用しますか?
- システムが提供する特定の機能やサービスに興味を持っているのは誰ですか?
- 誰がシステムをサポートおよび保守しますか?
- システムの外部リソースは何ですか?
- 開発中のシステムと対話するために、他にどのようなシステムが必要ですか?
ビジョン ステートメントで把握した利害関係者のリストを確認します。すべての利害関係者がアクターになるわけではありません (つまり、すべてが開発中のシステムと直接対話するわけではありません) が、この利害関係者のリストは、アクターの候補を特定するのに役立ちます。
ユースケースの特定
ユースケースを見つける最善の方法は、各アクターがシステムに何を必要としているかを検討することです。人間であるかどうかにかかわらず、各アクターについて次の質問をします。
- 攻撃者がシステムで達成しようとする目標は何ですか?
- 攻撃者がシステムに実行させたい主なタスクは何ですか?
- アクターはシステム内のデータを作成、保存、変更、削除、または読み取るか?
- アクターは突然の外部変化についてシステムに通知する必要がありますか?
- 攻撃者は、ネットワーク リソースが利用できないなど、システム内で特定の事象について通知を受ける必要がありますか?
- 攻撃者はシステムの起動またはシャットダウンを実行しますか?
対象組織がどのように機能し、この情報システムが既存の業務にどのように組み込まれるかを理解することで、システムの周辺についてのアイデアが得られます。その情報により、他のユースケースの候補が明らかになる可能性があります。
各ユースケースの目標を明確に説明する一意の名前と簡単な説明を付けます。候補のユース ケースに目標がない場合は、それが存在する理由を自問してから、目標を特定するか、ユース ケースを除外します。
ユースケースの概要
詳細には触れずに、優先度が高いと特定されたユース ケースのイベント フローの最初のドラフトを作成します。最初に、ユースケースの基本的な流れを段階的に簡単に説明します。ステップバイステップの説明は、アクターとシステムの間の対話を順番に並べた単純なリストです。たとえば、Automated Teller Machine (ATM) の Withdraw Cash ユース ケースの基本フローの説明は、次のようになります。
- 顧客が銀行カードを挿入します。
- システムはカードを検証し、個人識別番号 (PIN) の入力を求めます。
- 顧客は PIN を入力します。
- システムは PIN を検証し、顧客にアクションを選択するように求めます。
- 顧客は [現金を引き出す] を選択します。
- システムにより、顧客はどのアカウントを選択するかを尋ねられます。
- 顧客は当座預金口座を選択します。
- 金額の入力を求めるプロンプトが表示されます。
- 顧客は引き出し金額を入力します。
- システムは金額を検証し (十分な資金があると仮定)、現金と領収書を発行します。
- 顧客は現金と領収書を受け取り、銀行カードを取り出します。
- ユースケースは終了します。
このイベントの基本的な流れの段階的な説明を作成すると、別の例外的な流れを発見できます。たとえば、顧客が無効な PIN を入力するとどうなりますか? 識別した各代替フローの名前と簡単な説明を記録します。
アクターとユースケース間の関係を表す
アクターとユース ケースの関係をキャプチャまたは文書化できます。これを行うにはいくつかの方法があります。プロジェクトでユース ケース モデルを使用している場合は、ユース ケース図を作成して、アクターとユース ケースが互いにどのように関係しているかを示すことができます。詳細については、ガイドライン:ユースケース モデルを参照してください。
プロジェクトにユース ケース モデルを使用していない場合は、各ユース ケースが関連する主役と副役を識別していることを確認してください。