「ユースケース」、「ユーザーストーリー」、「使用シナリオ」の違いについて、正確ではあるがシンプルで理解できる定義はありますか?
説明はかなりたくさんありますが、今のところ、1つまたは2つの文の違いを説明する人は見当たりません...
(例 http://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComparison 非常に長く、入手が困難で、十分な議論)
私にとって、ユーザーストーリーとユースケースの最大の違いは次のとおりです。
使用シナリオ に関するScott W. Amblerによると、これらのアーティファクトはユースケースのフローのように見えます。
使用シナリオ、または略してシナリオは、1人以上の人または組織がシステムと対話する方法の実際の例を示します。これらは、対話中に発生するステップ、イベント、アクションを記述します。使用シナリオは非常に詳細であり、ユーザーインターフェースの操作方法を正確に示したり、重要なビジネスアクションをかなり高レベルで説明しますが、実行方法は示しません。
正直なところ、この段落を読んでも、ユースケースのフローとの違いは明確ではありません(最後の文がおそらく最も重要です)。
ご想像のとおり、ユースケースとシナリオの間にはいくつかの違いがあります。まず、ユースケースは通常、Customerなどの一般的なアクターを指しますが、シナリオは通常、John SmithやSally Jonesなどのアクターの例を指します。一般的なシナリオを書くことを妨げるものは何もありませんが、シナリオをパーソナライズして、理解しやすさを向上させることをお勧めします。 2番目に、使用シナリオはロジックの単一のパスを記述しますが、ユースケースは通常、いくつかのパス(基本コースと適切な代替パス)を記述します。 3番目に、UPベースのプロセスでは、ユースケースが公式のドキュメントとして保持されることが多いのに対し、シナリオは、不要になったときに破棄されることがよくあります。
私は間違っているかもしれませんが、Usage Scenarioは実際にはユースケースフローのように聞こえますが、アジャイルタッチでブランド変更されています。
ユーザーストーリーは常に非公式であり、ユーザーのニーズを説明します。ユースケースは、公式または非公式のいずれかであり、システムの動作を説明します。
「技術的な」ユーザーストーリーを作成することは可能ですが、ユースケースには同じことが当てはまりません。
完了すると、通常、ユーザーストーリーは破棄されます。ユースケースは、製品のライフサイクルの間維持される場合があります。
スコープも異なります。通常、ユーザーストーリーは範囲が小さいため、ユースケースは複数のユーザーストーリーで構成されます。既存のシステムの変更された要件は、新しいユーザーストーリーまたはユースケースの更新バージョンで説明されています。
ユーザーストーリーとユースケースの類似点は、どちらも計画とスケジューリングに使用されることです。
このようなものの正確な定義はありません。それはすべて、会社ごと、システムごとに少し(または多く)異なります。
あなたの最善の策は、現在のプロジェクトのためにすでに用意されている例を見つけてそれに従うことです。
新しいシステムを作成している場合は、どのシステムでも、さまざまなタイプのユースケースの定義を見つけることができます。意図を最もよく伝えていると思われるパターンを選択するだけです。
名前にこだわらないでください。
ユーザーストーリーは、開発者に個別に割り当て可能なタスクに分解されると、ユースケースシナリオよりも詳細であり、範囲が制限される場合があります。ユーザーストーリーとは、ユーザーのニーズ、つまりシステムの使用による目標または成果です。
ユーザーストーリーの例は次のとおりです。
最高レベルの抽象化では、ユースケースは非常によく似ています-お客様がカードの有効期限を更新します-しかし、ここでは、目標ではなく機能のステートメントです。
ユースケースシナリオの細分性が定義されるにつれて、それらは機能と手順についての詳細になります。
ユースケースのメインシナリオの事後条件は、ユーザーストーリーで述べられているものと同じ結果である必要があります-顧客のクレジットカードの有効期限が更新されます。
ユースケースシナリオでは、テキストまたはプロセスのフローチャートでステップバイステップで説明します(UMLまたはBPMである必要はありません-ユースケースのトレーニングを受けていないコンシューマーによる明確さと使いやすさのために、標準の部門連係フロー図を使用します。
要点は、ユーザーストーリーはニーズと結果(システムが提供する必要のあるもの)を説明するのに対し、ユースケースは目標を達成するために必要なアクター間の相互作用を説明し、何が問題になるか(拡張、代替、またはエラーシナリオ)(ユーザーとの対話方法)システムはその結果を達成します)
このトピックの詳細については、Alistair CockburnのWebサイトで http://c2.com/cgi/wiki?UserStoryAndUseCaseComparison を読むことをお勧めします。彼はアジャイルマニフェストの署名者であり、ユーザーストーリーを作成し、過去20年間にわたってユースケースの専門家と見なされてきた人物なので、詳細については優れた情報源だと思います。
簡単な一時メモ:この投稿は、質問に適切に回答するために改善が必要です。たとえば、1)参照から追加の詳細を含める必要があります。英語の全体的な正しさ4)ナラティブの全体的な質5)など私はそれに戻ります。自分で自由に改善してください。
それらのテンプレートを見ると、これらの用語の違いについて貴重な洞察を得ることができます。
ユースケースには複数のテンプレートがあります。クイック検索の結果、3つ見つかりました: 1 、 2 、。彼らが(時には漠然と)共通している点は次のとおりです。
Extensions-成功シナリオのフローから逸脱した場合のアプリケーションのフロー:
成功保証(別名。ポスト条件)-すべてが完了した後のアプリケーションの状態
含めることができるいくつかの追加ポイントは、Level、最小保証、トリガーなど.
上記はいわゆる完全なユースケースです。最も重要なポイントのみを使用してカジュアルなユースケースを使用すると、ユースケースの作成を簡略化できます。次に例を示します。
ユースケースは、80年代後半から90年代前半にIvar Jacobsonによって作成され、一般化されました。後に他の人々も彼の作品に貢献しました(そのような人々の1人は Writing Effective Use Cases の著者であるAlistair Cockburnです)。 言い換えると、Martin Fowler のユースケースでは、テキストとUML図を利用できますが、その最大の価値はそのテキストにあります。大きくなく読みやすい場合に最適です。
ユーザーストーリー-特定の機能を説明する小さなストーリー。ユーザーストーリーの書き方には、次のような一般的なパターンがあります。
Asユーザーの特定のタイプ
欲しい何かをしたい
そのように何らかの理由。
さらに、ユーザーストーリーは受け入れ基準を持つことができます。
ご覧のとおり、このテンプレートは使用例よりもはるかに小さくなっています。ユーザーストーリーは通常、ソフトウェア開発のスクラム/アジャイル/ XP領域に関連付けられています。それらは、付箋紙などの表面の小さな領域やスクラムボードに書かれることを意図しています。そこでは、それらは(通常)そのユーザーストーリーにどれだけの労力を費やす必要があるかを概算するポイント値が与えられます 参照。
Bill Wakeは INVESTニーモニック を作成し、優れたユーザーストーリーの品質を説明しました。借ります Martin Fowlerの彼のWebサイトからの短い要約 :
独立:ストーリーは任意の順序で配信できます
交渉可能:ストーリーの内容の詳細は、開発中にプログラマーとお客様が共同で作成します。
Valuable:この機能は、ソフトウェアの顧客またはユーザーにとって価値があると見なされています。
見積もり可能:プログラマーは、ストーリーを構築するための合理的な見積もりを考え出すことができます
小:ストーリーは、通常は人日で、短時間で作成する必要があります。確かに、1回の反復で複数のストーリーを構築できるはずです。
Testable:このストーリーのソフトウェアが正しく動作することを確認するためのテストを作成できるはずです。
使用シナリオは、Give-When-Thenを表すGWTパターンに従います。
シナリオ:title
所定の:特定の事実
And:別の特定の事実(オプションの場合があります)
いつ:いくつかのイベントが発生しました
次に:他のイベントが発生します
使用シナリオは、行動駆動型開発に関連付けられています。テストと非常によく似ています。 Martin Fowler氏のブログ記事 は、使用シナリオの背後にある歴史と推論を示しています。ここに重要な部分があります:
givenの部分は、このシナリオで指定している動作を開始する前の世界の状態を説明しています。テストの前提条件と考えることができます。
whenセクションは、指定する動作です。
最後に、、次にセクションでは、指定された動作により予期される変更について説明します。
使用シナリオは、アプリケーションのテストを作成するために使用できます。マーティンの投稿の最後の段落を引用するには:
Give-When-ThenスタイルはBDDの症状ですが、例によってテストや仕様を作成する場合、基本的な考え方はかなり一般的です。 Meszarosはパターンを4相テストとして説明しています。彼の4つのフェーズは、セットアップ(指定)、エクササイズ(いつ)、検証(その後)、ティアダウンです。ビル・ウェイクは、アレンジ、アクト、アサートとして公式を考案しました。
ユースケース 、 ユーザーストーリー 、 使用シナリオ のWikipediaページ
Martin Fowlerのブログ 使用例 、 ユーザーストーリー 、 使用シナリオ
使用シナリオの目的は、システムアクションの詳細や実際の設計に飛び込むことなく、目標を達成するためにシステムとユーザーがやり取りする本質を捉えることです。焦点はシステムではなくユーザーにあります。
...ユースケースには、システムが何を行うかについての記述も含まれますが、使用シナリオではこの議論を避けます。
実装方法はまだ決定していません。
product-arts サイトから。
「ユースケース」と「ユーザーストーリー」は、顧客の「要件」を表すという意味で同じです。
ユースケースは、システムが各ケースで使用される方法であり、通常、アクターとシステムの間、またはシステム間の相互作用として表されます。
ユーザーストーリーは、エンドユーザーが何かを成し遂げることができるコンピュータ支援ツールを作成する旅の出発点であり、通常、だれが、何を、なぜ(アプリケーションを閉じるユーザーとして、前回の保存以降に変更されたものを保存するように求められるので、有用な作業を保持し、誤った作業を破棄できます。」)次に、そのユーザーストーリーを、開発者がアプリケーションを構築するために使用するユースケースと、テスターがテストを実施するために採用する必要があります。
QAテスターの観点から見ると、彼らは「ユーザーストーリー」ではなく「ユースケース」をテストしています。つまり、ソフトウェアの機能をテストしています。
私はユーザーストーリーに精通していませんが、数年前にこれを調べたとき:
ユースケースは主要なタスクです。
ユーザーシナリオは、タスクを実行するさまざまな方法です。したがって、すべてのユースケースには1つ以上のシナリオがあります。ユースケースは抽象であり、ユーザーシナリオはその抽象タスクのすべての可能なインスタンスのカタログです。
そう:
使用例A:ユーザーはIDとパスワードで認証します。
シナリオ:
1。 IDは認識され、パスワードは正しい。 (「晴れた日」のシナリオ)
2。 IDが認識され、パスワードが正しくありません。
3。 IDは認識されましたが、パスワードは3回目は正しくありません。
4。 IDが認識されません。
私は常に、ユースケースを、クライアントの言葉で要件をナラティブに定義する方法として考えてきました。上記のw/r/tで、クライアントが「真夜中からシステムがダウンしたときの間にログインしようとするとどうなるか」と言う場合、認証タスクの別のシナリオといくつかの追加要件が見つかりました。
ユーザーストーリーは、顧客の観点からのものであり、不正確または不完全な場合があります。パフォーマンス、エラー処理、またはバックエンドで何も考慮されていない場合があります。
ユースケースは、開発者の観点からです。それは正確で完全です。それは顧客からのすべての要件に答えるべきです。