Was ist der Unterschied zwischen "Use Case", "User Story" und "Nutzungsszenario"?


42

Gibt es eine genaue, aber einfache und verständliche Definition der Unterscheidung zwischen "Anwendungsfall", "User Story" und "Nutzungsszenario"?

Es gibt eine ganze Reihe von Erklärungen, aber im Moment sehe ich niemanden, der die Unterschiede in einem oder zwei Sätzen erklärt ...

(zB http://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComparison sehr lang und schwer zu bekommen, voller Diskussionen)


3
Danke, für ihre Frage. Aus irgendeinem Grund sind Leute, die sich Methoden einfallen lassen, niemals absichtlich genau (nehme ich an), so dass ihre Gedanken niemals beschuldigt werden, auf bestimmte Situationen nicht anwendbar zu sein. Dies zieht die gesamte Branche zurück, in der jeder von uns eine Anpassung erstellen muss, die funktioniert, bevor er die Methodik anwendet. Ich hoffe, die Community wehrt sich gegen dieses Verhalten. Manchmal wählt man zwei Bücher aus und sie definieren die Dinge anders - die Wissenschaft funktioniert nicht so.
NoChance

Ich schlage vor, Sie überprüfen die Wikipedia-Definition jedes Ihrer Begriffe. Dies kann Ihnen helfen, die Bedeutung der Begriffe besser zu verstehen. Beachten Sie auch, dass die Begriffe aus unterschiedlichen Konzepten stammen. Beispiel: User Story ist ein agiles Tool / eine agile Technik und Use Case ist ein OOA-Tool / eine OOA-Technik.
NoChance

Antworten:



20

Für mich sind die größten Unterschiede zwischen einer User Story und einem Anwendungsfall:

  • Eine User Story ist ein leichtes Dokument , das auf einer Karte geschrieben werden kann (Um, wie eine, ich will). Eine User Story erfasst nicht alle Details, sondern ist eine informelle Unterstützung für die Diskussion.
  • Ein Anwendungsfall ist ein schweres Dokument, das ein Word-Dokument benötigt. Es beschreibt einen "normalen Ablauf" von Schritten und / oder Aktionen und "alternativen Abläufen", die detailliert beschrieben werden. Ein Use Case erfasst alle Details, es ist eine formale Spezifikation.

Nach Angaben von Scott W. Ambler zu Nutzungsszenarien sehen diese Artefakte wie der Ablauf eines Anwendungsfalls aus:

Ein Nutzungsszenario , oder kurz Szenario, beschreibt ein Beispiel aus der Praxis, wie eine oder mehrere Personen oder Organisationen mit einem System interagieren. Sie beschreiben die Schritte, Ereignisse und / oder Aktionen, die während der Interaktion auftreten. Verwendungsszenarien können sehr detailliert sein und genau angeben, wie jemand mit der Benutzeroberfläche arbeitet, oder auf einer angemessen hohen Ebene die kritischen Geschäftsaktionen beschreiben, aber nicht, wie sie ausgeführt werden.

Ehrlich gesagt sind die Unterschiede zum Ablauf eines Anwendungsfalls auch nach dem Lesen dieses Absatzes nicht ganz klar (der letzte Satz ist vielleicht der wichtigste):

Wie Sie sich vorstellen können, gibt es verschiedene Unterschiede zwischen Anwendungsfällen und Szenarien. Erstens bezieht sich ein Anwendungsfall normalerweise auf allgemeine Akteure wie z. B. Customer, während sich Szenarien normalerweise auf Beispiele für die Akteure wie z. B. John Smith und Sally Jones beziehen. Nichts hindert Sie daran, ein allgemeines Szenario zu schreiben, aber normalerweise ist es besser, die Szenarien zu personalisieren, um deren Verständlichkeit zu verbessern. Zweitens beschreiben Verwendungsszenarien einen einzelnen Pfad der Logik, wohingegen Verwendungsfälle typischerweise mehrere Pfade beschreiben (den Grundkurs plus alle geeigneten alternativen Pfade). Drittens werden in UP-basierten Prozessen Anwendungsfälle häufig als offizielle Dokumentation aufbewahrt, während Szenarien häufig verworfen werden, nachdem sie nicht mehr benötigt werden.

Ich kann mich irren, aber das Anwendungsszenario klingt wirklich wie Use Case Flow, aber mit einem agilen Touch umbenannt.


Ich halte es für schädlich, die Szenarien zu personalisieren (zumindest so, wie ich es verstehe). Sie sagen: "Normalerweise ist es besser, die Szenarien zu personalisieren." - Aber was wäre, wenn Sally Jones das Unternehmen verlässt oder seine Position wechselt? - Welchen Wert hätte das Szenario?
NoChance

Personalisierung bedeutet nicht, für eine reale Person zu entwerfen. Es könnte für eine reale Person sein, aber es könnte auch für eine fiktive Person sein, wie mit dem "Personas" -Tool. Das Argument für die Verwendung bestimmter (realer oder fiktiver) Benutzer mit einer Persönlichkeit ist, dass die Szenarien "realer" werden. Es ist für den Programmierer einfacher, den Benutzer zu verstehen, wenn er die Persönlichkeit dieses Benutzers versteht, anstatt zu versuchen, einen abstrakten, ungenauen Benutzer zu verstehen. Bitte lassen Sie mich wissen, wenn ich falsch liege oder Ihren Kommentar falsch verstanden habe.
Mads Skjern

In Bezug auf A use case is an heavyweight document that needs a word document.. Martin Fowler denkt, dass Use case are at their best when they are short and readable. You should not be spending weeks, let alone months, generating use case documents before you begin development.
was auch immer

3

Es gibt keine genaue Definition von all dem. Das ist von Unternehmen zu Unternehmen und von System zu System unterschiedlich.

Am besten finden Sie ein Beispiel für Ihr aktuelles Projekt und folgen diesem.

Wenn Sie ein neues System erstellen, finden Sie Definitionen für verschiedene Arten von Anwendungsfällen für jedes System, das Sie bevorzugen. Wählen Sie einfach das Muster aus, das Ihre Absichten am besten zu kommunizieren scheint.

Lass dich nicht auf Namen ein.


1
> Lass dich nicht auf Namen ein. Mach dir keine Sorgen, ich werde nicht! :) Auf der anderen Seite ist es ein durchaus wünschenswertes Ziel, wenn in einem Team alle Mitglieder die Bedeutung eines Wortes auf ähnliche Weise verstehen und verstehen

1
Ich stimme voll und ganz zu - aber auf Teamebene. Ich finde nur, dass eine "globale" Ebene, ich habe noch nie gesehen, dass zwei Menschen "Use Case" auf die gleiche Weise definieren.
Bill K

Nicht dasselbe, aber mit ähnlichen Tendenzen ... und es sind zumindest diese Tendenzen, die ich kennen und verstehen wollte

3

Eine User Story ist immer informell und beschreibt die Bedürfnisse eines Benutzers. Ein Anwendungsfall kann entweder formal oder informell sein und beschreibt das Systemverhalten.

Es ist möglich, "Tech" -Benutzergeschichten zu haben, dasselbe gilt nicht für Anwendungsfälle.

Sobald dies erledigt ist, wird die User Story in der Regel verworfen. Anwendungsfälle können während des Produktlebenszyklus aufrechterhalten werden.

Der Umfang ist auch unterschiedlich. User Stories sind in der Regel kleiner und ein Anwendungsfall besteht daher aus mehreren User Stories. Eine geänderte Anforderung an ein vorhandenes System wird in einer neuen User Story oder einer aktualisierten Version des Anwendungsfalls beschrieben.

Die Ähnlichkeit zwischen User Stories und Use Cases besteht darin, dass beide für die Planung und Planung verwendet werden.


1

Eine User Story, die in Aufgaben zerlegt wird, die den Entwicklern individuell zugewiesen werden können, kann detaillierter und in ihrem Umfang eingeschränkt sein als ein Anwendungsfallszenario. In einer User Story geht es um die Bedürfnisse des Benutzers - ein Ziel oder Ergebnis seiner Nutzung des Systems.

Beispiele für User Stories sind:

  1. Ich bin Kunde und möchte meinen Kontostand online bezahlen - eine ziemlich gute Sichtweise
  2. Ich bin ein Kunde und möchte das Ablaufjahr meiner gespeicherten Kreditinformationen aktualisieren - eine ziemlich granulare Ansicht.

Auf der höchsten Abstraktionsstufe klingt ein Anwendungsfall sehr ähnlich - Ablaufjahr für Kundenaktualisierungen -, aber hier handelt es sich eher um eine Funktionserklärung als um ein Ziel.

Wenn die Granularität der Use-Case-Szenarien definiert wird, geht es mehr um Funktion und Vorgehensweise.

Die Nachbedingung eines Anwendungsfall-Hauptszenarios sollte dasselbe sein wie in der User Story - Das Ablaufjahr der Kreditkarte des Kunden wird aktualisiert.

Use-Case-Szenarien beschreiben Schritt für Schritt entweder im Text- oder im Prozessflussdiagramm (nicht unbedingt UML oder BPM). Ich verwende ein standardmäßiges funktionsübergreifendes Flussdiagramm, um die Übersichtlichkeit und Benutzerfreundlichkeit für ungeübte Benutzer des Anwendungsfalls zu gewährleisten.

Die Quintessenz ist, dass User Stories Bedürfnisse und Ergebnisse beschreiben (was das System liefern muss), während Use Cases Interaktionen zwischen Akteuren beschreiben, die zur Erreichung des Ziels erforderlich sind - UND was schief gehen kann (Erweiterungs-, Alternativ- oder Fehlerszenarien) (wie der Benutzer mit diesen interagiert) das System erreicht dieses Ergebnis)

Für eine ausführliche Diskussion zu diesem Thema empfehle ich die Lektüre von http://c2.com/cgi/wiki?UserStoryAndUseCaseComparison auf der Website von Alistair Cockburn. Da er Unterzeichner des Agilen Manifests ist, die Person, die User Stories erfunden hat und in den letzten Jahrzehnten als Use-Case-Experte galt, ist er meiner Meinung nach eine hervorragende Quelle für weitere Informationen.


2
Dies ist nur eine Textwand; können Sie dies für die Lesbarkeit bearbeiten.
Martijn Pieters

1

Kurzer vorübergehender Hinweis : Dieser Beitrag muss verbessert werden, um die Frage besser beantworten zu können, z zurück zu ihm. Fühlen Sie sich frei, es selbst zu verbessern.


Ein Blick auf die Vorlagen gibt wertvolle Einblicke in die Unterschiede zwischen diesen Begriffen.

Anwendungsfall

Es gibt mehrere Vorlagen für Anwendungsfälle. Ich fand 3 nach einer schnellen Suche: 1 , 2 , 3 . Einige Punkte, die sie (manchmal vage) gemeinsam haben, sind:

  1. Name des Anwendungsfalls / Titels
  2. Beschreibung - ein kurzer Text, der den Umfang beschreibt.
  3. Schauspieler / Hauptdarsteller - Person (en), die mit diesem speziellen Anwendungsfall interagieren.
  4. Voraussetzung - alles, was dieser Anwendungsfall vor Beginn seines Lebenszyklus für wahr halten kann.
  5. Erfolgsszenario - Eine Abfolge von Schritten, die den korrekten Ablauf der Ereignisse beschreiben.
  6. Erweiterungen - Ablauf der Anwendung, wenn sie vom Ablauf des Erfolgsszenarios abweicht:

    1. Alternative Flüsse - andere Optionen für den korrekten Fluss
    2. Ausnahmeflüsse - Ereignisfluss für den Fall, dass etwas schief geht
  7. Erfolgsgarantie (auch bekannt als Post Condition) - Anwendungsstatus, nachdem alles erledigt ist

Einige zusätzliche Punkte, die eingeschlossen werden können, sind Stufe , Mindestgarantien , Auslöser usw.

Oben ist der so genannte vollständig gekleidete Anwendungsfall aufgeführt . Sie können die Erstellung von Anwendungsfällen vereinfachen, indem Sie einen einfachen Anwendungsfall verwenden, indem Sie nur die wichtigsten Punkte verwenden. Beispiel:

  1. Titel
  2. Schauspieler
  3. Ablauf von Ereignissen

Anwendungsfälle wurden von Ivar Jacobson Ende der 80er und Anfang der 90er Jahre entwickelt und verbreitet. Später haben auch andere Leute zu seiner Arbeit beigetragen (einer dieser Leute ist Alistair Cockburn, der Autor von Writing Effective Use Cases ). Um Martin Fowler zu paraphrasieren, können Anwendungsfälle Text und UML-Diagramme verwenden, aber ihr größter Wert liegt im Text. Sie sind am besten, wenn sie nicht groß und leicht zu lesen sind.

User Story (auch bekannt als Feature)

User Story - eine kleine Geschichte, die ein bestimmtes Feature beschreibt. Es gibt ein allgemeines Muster für das Schreiben einer User Story:

Als eine bestimmte Art von Benutzer
möchte ich etwas tun,
damit aus irgendeinem Grund .

Darüber hinaus kann die User Story Akzeptanzkriterien haben .

Wie Sie sehen, ist diese Vorlage viel kleiner als die des Anwendungsfalls. User Stories werden häufig mit der Scrum / Agile / XP-Region der Softwareentwicklung in Verbindung gebracht. Sie sollen auf kleinen Bereichen der Oberfläche wie Post-It-Notizen und / oder auf Scrum-Boards geschrieben werden. Dort erhalten sie (normalerweise) Punktwerte, die ungefähr angeben, wie viel Aufwand in diese User Story- Referenz investiert werden muss .

Bill Wake hat die INVEST-Mnemonik entwickelt, um zu beschreiben, welche Eigenschaften eine gute User Story haben sollte, und ich werde Martin Fowlers kurze Zusammenfassung davon von seiner Website ausleihen :

Unabhängig : Die Storys können in beliebiger Reihenfolge geliefert werden.
Verhandelbar : Die Details der Story werden von den Programmierern und Kunden während der Entwicklung gemeinsam erstellt.
Wertvoll : Die Funktionalität wird von den Kunden oder Anwendern der Software als wertvoll angesehen.
Schätzbar : die Programmierer mit einer vernünftigen Schätzung kommen können , die Geschichte für den Bau von
Klein : Geschichten in einer kleinen Menge Zeit gebaut werden sollen, in der Regel innerhalb von Personentag. Natürlich sollten Sie in der Lage sein, mehrere Storys in einer Iteration zu erstellen.
Testbar : Sie sollten Tests schreiben können, um zu überprüfen, ob die Software für diese Story korrekt funktioniert.

Nutzungsszenario

Verwendungsszenario folgt dem GWT-Muster, das für Given-When-Then steht, wie folgt:

Szenario : Titel
Gegeben : eine bestimmte Tatsache
Und : eine andere bestimmte Tatsache (kann optional sein)
Wann : ein Ereignis eintritt
Dann : ein anderes Ereignis eintritt

Nutzungsszenarien sind mit verhaltensorientierter Entwicklung verbunden. Es klingt einem Test sehr ähnlich. Martin Fowler gibt in seinem Blogbeitrag einen Einblick in die Geschichte und die Gründe für Nutzungsszenarien. Hier ist der wichtige Teil:

Der angegebene Teil beschreibt den Zustand der Welt, bevor Sie mit dem in diesem Szenario angegebenen Verhalten beginnen. Sie können es sich als die Vorbedingungen für den Test vorstellen.
Der Abschnitt when ist das von Ihnen angegebene Verhalten.
Abschließend werden im Abschnitt then die Änderungen beschrieben, die Sie aufgrund des angegebenen Verhaltens erwarten.

Verwendungsszenarien können zum Schreiben von Tests für Ihre Anwendung verwendet werden. So zitieren Sie den letzten Absatz von Martins Beitrag:

Obwohl der Given-When-Then-Stil für BDD symptomatisch ist, ist die Grundidee ziemlich verbreitet, wenn Tests oder Spezifikationen anhand von Beispielen geschrieben werden. Meszaros beschreibt das Muster als Vier-Phasen-Test. Seine vier Phasen sind Setup (Gegeben), Übung (Wann), Verifizieren (Dann) und Herunterfahren. Bill Wake kam mit der Formulierung als Arrangieren, Handeln, Bestätigen.


Referenzen für das weitere Studium:

Wikipedia-Seiten zu Use Case , User Story , Nutzungsszenario
Martin Fowlers Blogs zu Use Case , User Story , Nutzungsszenario


0

Ich bin nicht mit User Story vertraut, aber als ich das vor einigen Jahren untersuchte:

Ein Use Case ist eine große Aufgabe.
Benutzerszenarien sind die verschiedenen Möglichkeiten, die eine Aufgabe ausführen kann. Jeder Anwendungsfall hat also ein oder mehrere Szenarien. Der Anwendungsfall ist die Zusammenfassung, die Benutzerszenarien sind ein Katalog aller möglichen Instanzen dieser abstrakten Aufgabe.

Also:
Use Case A: Benutzer authentifiziert sich mit ID und Passwort.

Szenarien:
1. ID wird erkannt, Passwort ist korrekt. (Szenario "Sonnentag")
2. ID wird erkannt, Passwort ist falsch.
3. ID wird erkannt, Passwort zum dritten Mal falsch.
4. ID wird nicht erkannt.

Ich habe Use Cases immer als eine Möglichkeit gesehen, Anforderungen für den Kunden in ihren Begriffen narrativ zu definieren. Wenn der Client in diesem Fall die Meldung "Aber was ist, wenn er versucht, sich zwischen Mitternacht und Eins anzumelden, wenn das System nicht funktioniert?" ausgibt, wurde ein anderes Szenario für die Authentifizierungsaufgabe und einige zusätzliche Anforderungen ermittelt.


0

Eine User Story ist aus Kundensicht manchmal falsch oder unvollständig. Die Leistung, die Fehlerbehandlung oder das Backend werden möglicherweise nicht berücksichtigt.

Ein Anwendungsfall ist aus der Sicht von dev. Es ist genau und vollständig. Es sollte alle Anforderungen der Kunden erfüllen.


0

"Use Case" und "User Story" sind insofern identisch, als sie "Anforderungen" des Kunden darstellen.

Anwendungsfall ist die Art und Weise, wie das System in jedem Fall verwendet wird, normalerweise dargestellt als Interaktion zwischen Akteur und System oder zwischen Systemen.

Die User Story ist der Ausgangspunkt für die Entwicklung eines computergestützten Tools, mit dem der Endbenutzer etwas erledigen kann. Normalerweise beginnt sie mit einem einfachen Satz, in dem angegeben wird, wer, was und warum ("Als Benutzer, der die Anwendung schließt, möchte ich aufgefordert werden, alle Änderungen zu speichern, die sich seit dem letzten Speichern geändert haben, damit ich nützliche Arbeit bewahren und fehlerhafte Arbeit verwerfen kann. "). Diese User Story muss dann zu einem Anwendungsfall kultiviert werden, den Entwickler zum Erstellen einer Anwendung und Tester zum Durchführen von Tests verwenden.

Aus Sicht eines QA-Testers testen sie nicht "User Stories", sondern "Use Cases", dh sie testen Softwarefunktionalitäten.


1
Obwohl dies korrekt ist, werden die Antworten, die bereits seit 4 Jahren vorliegen, nicht ergänzt.
Adam Zuckerman

0

Der Zweck des Verwendungsszenarios besteht darin, das Wesentliche der Benutzerinteraktion mit Ihrem System zu erfassen, um ein Ziel zu erreichen, ohne auf die Details der Systemaktionen oder den tatsächlichen Entwurf einzugehen. Der Fokus liegt auf dem Benutzer, nicht auf dem System.

Der Anwendungsfall enthält auch Anweisungen zur Funktionsweise des Systems, während das Anwendungsszenario diese Diskussion vermeidet.

Sie haben noch nicht festgelegt, wie Sie es implementieren werden.

Von der Produktkunstseite .


Dies fügt nichts über die akzeptierte Antwort hinaus hinzu, die vor mehr als sieben Jahren veröffentlicht wurde. Außerdem ist es gut, Quellen zu zitieren, aber es ist besser, es in eigenen Worten zu erklären: Was bedeutet der Text für Sie?

Nur um es klar zu machen: Es ist nichts Falsches daran, auf alte Fragen zu antworten. Für Stack Exchange gibt es keine Anti-Nekromantie-Richtlinie. Wenn Sie jedoch zu spät zur Diskussion kommen, müssen Sie neue Informationen hinzufügen, möglicherweise Informationen, die vor sieben Jahren noch nicht verfügbar waren.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.