web-dev-qa-db-fra.com

Quelle est la différence entre "cas d'utilisation", "User Story" et "scénario d'utilisation"?

Existe-t-il une définition exacte, mais simple et compréhensible de la distinction entre "cas d'utilisation", "User Story" et "scénario d'utilisation"?

il y a beaucoup d'explications, mais pour le moment, je ne vois personne qui explique les différences dans une seule phrase, ou deux ...

(par exemple http://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComparison très long et difficile à obtenir, plein de discussions)

44
Henning

A ser Story est une version plus informelle, plus conviviale et plus petite d'un Cas d'utilisation , moins le diagramme UML; il est généralement utilisé dans des scénarios itératifs.

Un scénario d'utilisation est un cas d'utilisation élaboré dans une procédure étape par étape, parfois accompagné d'un organigramme.

21
Robert Harvey

Pour moi, les plus grandes différences entre une user story et un cas d'utilisation sont:

  • Une user story est un document léger qui peut être écrit sur une carte (pour, en tant que, je vouloir ). Une User Story ne capture pas tous les détails, c'est un support informel pour la discussion.
  • Un cas d'utilisation est un document lourd qui a besoin d'un document Word. Il décrit un "flux normal" d'étapes et/ou d'actions et des "flux alternatifs" qui sont détaillés. Un cas d'utilisation capture tous les détails, c'est une spécification formelle.

Selon Scott W. Ambler sur Scénarios d'utilisation , ces artefacts ressemblent au flux d'un cas d'utilisation:

Un scénario d'utilisation , ou scénario en bref, décrit un exemple concret de la façon dont une ou plusieurs personnes ou organisations interagissent avec un système. Ils décrivent les étapes, les événements et/ou les actions qui se produisent pendant l'interaction. Les scénarios d'utilisation peuvent être très détaillés, indiquant exactement comment quelqu'un travaille avec l'interface utilisateur, ou décrivant raisonnablement de haut niveau les actions commerciales critiques, mais pas indiquant comment elles sont effectuées.

Honnêtement, les différences avec le flux d'un cas d'utilisation ne sont pas claires, même après avoir lu ce paragraphe (la dernière phrase étant peut-être la plus importante):

Comme vous pouvez l'imaginer, il existe plusieurs différences entre les cas d'utilisation et les scénarios. Tout d'abord, un cas d'utilisation fait généralement référence à des acteurs génériques, tels que Client, tandis que les scénarios font généralement référence à des exemples d'acteurs tels que John Smith et Sally Jones. Rien ne vous empêche d'écrire un scénario générique, mais il est généralement préférable de personnaliser les scénarios pour augmenter leur compréhensibilité. Deuxièmement, les scénarios d'utilisation décrivent un seul chemin logique alors que les cas d'utilisation décrivent généralement plusieurs chemins (le cours de base plus tous les chemins alternatifs appropriés). Troisièmement, dans les processus basés sur UP, les cas d'utilisation sont souvent conservés en tant que documentation officielle tandis que les scénarios sont souvent ignorés lorsqu'ils ne sont plus nécessaires.

Je peux me tromper, mais le scénario d'utilisation ressemble vraiment à un flux de cas d'utilisation, mais renommé avec une touche Agile.

20
Pascal Thivent

Une histoire d'utilisateur est toujours informelle et décrit le besoin d'un utilisateur. Un cas d'utilisation peut être formel ou informel et décrit le comportement du système.

Il est possible d'avoir des user stories "tech", il n'en va pas de même pour les cas d'utilisation.

Une fois cela fait, la user story est généralement supprimée. Les cas d'utilisation peuvent être conservés pendant le cycle de vie du produit.

La portée est également différente. Les user stories ont généralement une portée plus petite et, par conséquent, un cas d'utilisation comprend plusieurs user stories. Une exigence modifiée pour un système existant est décrite dans une nouvelle user story ou une version mise à jour du cas d'utilisation.

La similitude entre les user stories et les cas d'utilisation est que les deux sont utilisés pour la planification et l'ordonnancement.

3
user249665

Il n'y a pas de définition exacte de tout cela. Tout varie un peu (ou beaucoup) d'une entreprise à l'autre et d'un système à l'autre.

Votre meilleur pari est de trouver un exemple déjà en place pour votre projet actuel et de le suivre.

Si vous créez un nouveau système, vous pouvez trouver des définitions de différents types de cas d'utilisation pour le système que vous préférez - Choisissez simplement le modèle qui semble communiquer le mieux vos intentions.

Ne vous attardez pas sur les noms.

3
Bill K

Une User Story décomposée en tâches qui peuvent être attribuées individuellement aux développeurs peut ou peut ne pas être plus granulaire et de portée limitée qu'un scénario de cas d'utilisation. Une histoire d'utilisateur concerne le besoin de l'utilisateur - un objectif ou un résultat de son utilisation du système.

Voici des exemples d'histoires d'utilisateurs:

  1. Je suis un client et je veux payer le solde de mon compte en ligne - une vue assez élevée
  2. Je suis un client et je veux mettre à jour l'année d'expiration sur mes informations de crédit stockées - une vue assez granulaire.

Au niveau d'abstraction le plus élevé, un cas d'utilisation semble très similaire - Année d'expiration de la carte de mise à jour client - mais ici, c'est une déclaration de fonction plutôt qu'un objectif.

À mesure que la granularité des scénarios de cas d'utilisation est définie, ils deviennent davantage des fonctions et des procédures.

La post-condition d'un scénario principal de cas d'utilisation devrait être le même résultat que celui indiqué dans la user story - l'année d'expiration de la carte de crédit du client est mise à jour.

Les scénarios de cas d'utilisation décrivent étape par étape, soit dans un organigramme de texte ou de processus (pas nécessairement UML ou BPM - j'utilise un organigramme interfonctionnel standard pour la clarté et la facilité d'utilisation par des consommateurs non formés du cas d'utilisation.

L'essentiel est que les récits d'utilisateurs décrivent les besoins et les résultats (ce que le système doit fournir) tandis que les cas d'utilisation décrivent les interactions entre les acteurs nécessaires pour atteindre l'objectif - ET ce qui peut mal se passer (scénarios d'extension, alternatifs ou d'erreur) (comment l'utilisateur interagit avec le système atteint ce résultat)

Pour une discussion approfondie sur ce sujet, je suggère de lire http://c2.com/cgi/wiki?UserStoryAndUseCaseComparison sur le site Web d'Alistair Cockburn. Puisqu'il est signataire du Manifeste Agile, la personne qui a inventé User Stories et qui a été considérée comme un expert des cas d'utilisation au cours des deux dernières décennies, je pense qu'il est une excellente source pour plus d'informations.

1
jon karpoff

Note temporaire rapide : Ce poste a besoin d'améliorations pour mieux répondre à la question, comme 1) des détails supplémentaires devraient être inclus dans les références 2) certaines citations peut-être 3) exactitude générale de l'anglais 4) qualité globale du récit 5) etc. Je vais y revenir. N'hésitez pas à l'améliorer vous-même.


Un coup d'œil à leurs modèles peut donner un aperçu précieux des différences entre ces termes.

Cas d'utilisation

Il existe plusieurs modèles pour les cas d'utilisation. J'ai trouvé 3 après une recherche rapide: 1 , 2 , . Certains points communs (parfois vagues) sont:

  1. Nom du cas d'utilisation/titre
  2. Description - un court texte décrivant la portée.
  3. Acteur (s)/Acteur principal - personne (s) qui interagit avec ce cas d'utilisation particulier.
  4. Condition préalable - tout ce que ce cas d'utilisation peut supposer être vrai avant de commencer son cycle de vie.
  5. Scénario de réussite - une séquence d'étapes décrivant le déroulement correct des événements qui ont lieu.
  6. Extensions - flux d'application lorsqu'il s'écarte du flux du scénario de réussite:

    1. Flux alternatifs - autres options de flux correct
    2. Flux d'exceptions - flux d'événements en cas de problème
  7. Garantie de succès (aka. Condition de post) - état de l'application après que tout soit fait

Quelques points supplémentaires qui peuvent être inclus sont Niveau , Garanties minimales , Déclencheur , etc.

Ci-dessus se trouve ce qu'on appelle cas d'utilisation entièrement habillé . Vous pouvez simplifier la création de cas d'utilisation en utilisant un cas d'utilisation occasionnel en utilisant uniquement les points les plus vitaux, par exemple:

  1. Titre
  2. Acteur (s)
  3. Séquence d'événements

Les cas d'utilisation ont été créés et popularisés par Ivar Jacobson à la fin des années 80 et au début des années 90. Plus tard, d'autres personnes ont également contribué à son travail (une de ces personnes est Alistair Cockburn qui est l'auteur de Writing Effective Use Cases ). Pour paraphraser Martin Fowler les cas d'utilisation peuvent utiliser du texte et des diagrammes UML, mais leur plus grande valeur réside dans le texte. Ils sont meilleurs lorsqu'ils ne sont pas gros et faciles à lire.

ser story (aka. Fonctionnalité)

User story - une petite histoire qui décrit une caractéristique particulière. Il existe un modèle commun de rédaction d'une user story, qui est:

En tant que type particulier d'utilisateur
Je veux faire quelque chose
de sorte que une raison.

De plus, la user story peut avoir des critères d'acceptation .

Comme vous pouvez le voir, ce modèle est beaucoup plus petit que celui du cas d'utilisation. Les user stories sont généralement associées à la région scrum/agile/xp du développement logiciel. Ils sont destinés à être écrits sur de petites zones de surface, telles que des post-it, et/ou sur des mêlées. Là, on leur donne (généralement) des valeurs en points qui approximent combien d'efforts doivent être investis dans cette user story ref.

Bill Wake a développé mnémotechnique INVEST pour décrire les qualités que devrait avoir une bonne histoire d'utilisateur, et je vais emprunter le bref résumé de Martin Fowler sur son site Web :

Indépendant : les histoires peuvent être livrées dans n'importe quel ordre
Négociable : les détails de ce qui est dans l'histoire sont co-créés par les programmeurs et le client pendant le développement.
Précieuse : la fonctionnalité est considérée comme précieuse par les clients ou les utilisateurs du logiciel.
Estimable : les programmeurs peuvent trouver une estimation raisonnable pour construire l'histoire
Petit : les histoires doivent être construites en peu de temps, généralement en quelques jours-personne. Vous devriez certainement pouvoir créer plusieurs histoires en une seule itération.
Testable : vous devriez pouvoir écrire des tests pour vérifier que le logiciel de cette histoire fonctionne correctement.

Scénario d'utilisation

Le scénario d'utilisation suit le modèle GWT qui signifie Given-When-Then, comme ceci:

Scénario : title
Étant donné : un fait particulier
Et : un autre fait particulier (peut être facultatif)
Quand : un événement se produit
Puis : un autre événement se produit

Les scénarios d'utilisation sont associés au développement piloté par les comportements. Cela ressemble beaucoup à un test. Martin Fowler dans son article de blog donne un peu d'histoire et de raisonnement derrière les scénarios d'utilisation. Voici la partie importante:

La partie donnée décrit l'état du monde avant de commencer le comportement que vous spécifiez dans ce scénario. Vous pouvez le considérer comme les conditions préalables au test.
La section lorsque correspond au comportement que vous spécifiez.
Enfin, la section puis décrit les changements que vous attendez en raison du comportement spécifié.

Des scénarios d'utilisation peuvent être utilisés pour écrire un test pour votre application. Pour citer le dernier paragraphe du post de Martin:

Bien que le style Given-When-Then soit symptomatique de BDD, l'idée de base est assez courante lors de l'écriture de tests ou de spécifications par exemple. Meszaros décrit le modèle comme un test en quatre phases. Ses quatre phases sont la configuration (donnée), l'exercice (quand), la vérification (alors) et la suppression. Bill Wake a proposé la formulation Arrange, Act, Assert.


Références pour une étude plus approfondie:

Pages Wikipedia pour cas d'utilisation , ser story , scénario d'utilisation
Les blogs de Martin Fowler sur cas d'utilisation , ser story , scénario d'utilisation

1
wha7ever

Le but du scénario d'utilisation est de capturer l'essence de l'interaction de l'utilisateur avec votre système pour atteindre un objectif, sans plonger dans les détails des actions du système ou la conception réelle. L'accent est mis sur l'utilisateur, pas sur le système.

... Le cas d'utilisation inclut également des déclarations sur ce que le système fera, tandis que le scénario d'utilisation évitera cette discussion.

Vous n'avez pas encore déterminé comment vous allez l'implémenter.

Depuis le site product-arts .

0
Daniel

"Cas d'utilisation" et "user story" sont les mêmes en ce sens qu'ils représentent les "exigences" du client.

Le cas d'utilisation est la façon dont le système est utilisé dans chaque cas, normalement représenté comme une interaction entre l'acteur et le système ou entre les systèmes.

L'histoire de l'utilisateur est le point de départ du voyage pour créer un outil assisté par ordinateur qui permettra à l'utilisateur final de faire quelque chose, et commence normalement par une simple phrase en utilisant qui, quoi, pourquoi ("En tant qu'utilisateur fermant l'application, je veux être invité à enregistrer tout ce qui a changé depuis la dernière sauvegarde afin que je puisse conserver le travail utile et éliminer le travail erroné. "). Cette histoire utilisateur doit ensuite être cultivée dans un cas d'utilisation que les développeurs utilisent pour créer une application et les testeurs pour effectuer les tests.

Du point de vue d'un testeur d'assurance qualité, ils ne testent pas des "user stories", mais plutôt des "cas d'utilisation", ce qui signifie qu'ils testent des fonctionnalités logicielles.

0
Kate

Je ne connais pas la User Story, mais quand j'ai étudié cela il y a plusieurs années:

Un cas d'utilisation est une tâche majeure.
Les scénarios utilisateur sont les différentes manières dont la tâche peut être exécutée. Ainsi, chaque cas d'utilisation comporte un ou plusieurs scénarios. Le cas d'utilisation est l'abstrait, les scénarios utilisateur sont un catalogue de toutes les instances possibles de cette tâche abstraite.

Donc:
Cas d'utilisation A: l'utilisateur s'authentifie avec son identifiant et son mot de passe.

Scénarios:
1. L'ID est reconnu, le mot de passe est correct. (scénario "journée ensoleillée")
2. L'ID est reconnu, le mot de passe est incorrect.
3. L'ID est reconnu, le mot de passe est incorrect pour la troisième fois.
4. L'ID n'est pas reconnu.

J'ai toujours pensé aux cas d'utilisation comme un moyen de définir les exigences de manière narrative pour le client dans leurs termes. w/r/t ce qui précède, si le client dit "Mais que se passe-t-il s'il essaie de se connecter entre minuit et un lorsque le système est en panne?", nous avons découvert un autre scénario pour la tâche d'authentification et certaines exigences supplémentaires.

0
cvsdave

Une user story est du point de vue d'un client, parfois incorrecte ou incomplète. Il peut ne pas avoir de considération sur les performances, la gestion des erreurs ou rien sur le backend.

Un cas d'utilisation est du point de vue du développeur. C'est précis et complet. Il doit répondre à toutes les exigences des clients.

0
Dan