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)
agile
object-oriented
Henning
quelle
quelle
Antworten:
Eine User Story ist eine informellere, benutzerfreundlichere und kleinere Version eines Anwendungsfalls , abzüglich des UML-Diagramms. Es wird normalerweise in iterativen Szenarien verwendet.
Ein Verwendungsszenario ist ein Anwendungsfall, der in einer schrittweisen Prozedur dargestellt wird und manchmal von einem Flussdiagramm begleitet wird.
quelle
Für mich sind die größten Unterschiede zwischen einer User Story und einem Anwendungsfall:
Nach Angaben von Scott W. Ambler zu Nutzungsszenarien sehen diese Artefakte wie der Ablauf eines Anwendungsfalls aus:
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):
Ich kann mich irren, aber das Anwendungsszenario klingt wirklich wie Use Case Flow, aber mit einem agilen Touch umbenannt.
quelle
A use case is an heavyweight document that needs a word document.
. Martin Fowler denkt, dassUse 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.
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.
quelle
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.
quelle
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:
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.
quelle
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:
Erweiterungen - Ablauf der Anwendung, wenn sie vom Ablauf des Erfolgsszenarios abweicht:
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:
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 :
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:
Verwendungsszenarien können zum Schreiben von Tests für Ihre Anwendung verwendet werden. So zitieren Sie den letzten Absatz von Martins Beitrag:
Referenzen für das weitere Studium:
Wikipedia-Seiten zu Use Case , User Story , Nutzungsszenario
Martin Fowlers Blogs zu Use Case , User Story , Nutzungsszenario
quelle
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.
quelle
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.
quelle
"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.
quelle
Von der Produktkunstseite .
quelle