Archyno
UMLDiagrammes de comportement

Diagrammes de cas d'utilisation UML

Le diagramme du périmètre, pas de la conception. Qui utilise le système, pour quoi faire, et où passe vraiment la frontière de ce que vous construisez - tracé avant qu'une seule classe existe.

13 min de lectureUML 2.5.111 sur 35

La réponse courte

  • Un diagramme de cas d'utilisation est une carte du périmètre : qui interagit avec le système, avec quels objectifs, et où passe la frontière entre dedans et dehors.
  • Un cas d'utilisation est un objectif qui apporte de la valeur à un acteur, pas une étape ni un écran. Les acteurs sont des rôles et se tiennent toujours hors de la frontière.
  • « include » va du cas de base vers un comportement qui s'exécute toujours ; « extend » va de l'ajout optionnel vers le cas de base. Les sens sont opposés, et c'est là que se fait l'erreur.
  • Le diagramme est la table des matières. Le livrable est la description de cas d'utilisation derrière chaque ellipse : acteur principal, préconditions, scénario nominal, extensions, postconditions.
Un diagramme de cas d'utilisation UML. Un acteur Marchand se tient hors de la frontière du système Checkout et est associé à trois cas d'utilisation : soumettre un paiement, autoriser un paiement et rembourser un paiement. Soumettre un paiement et rembourser un paiement incluent chacun autoriser un paiement. Journaliser la piste d'audit étend rembourser un paiement. Autoriser un paiement est associé à un service antifraude, acteur secondaire à droite.
Un diagramme de cas d'utilisation pour un système de paiement. Le rectangle est la frontière du système : tout ce qui est dedans, c'est à vous de le construire, tout ce qui est dehors est quelqu'un à qui vous parlez.

01Ce qu'il montre, et ce qu'il ne montre délibérément pas#

Un diagramme de cas d'utilisation est une carte du périmètre. Il nomme les personnes et les systèmes qui interagissent avec ce que vous construisez, les objectifs avec lesquels ils viennent, et la ligne entre le dedans et le dehors. C'est tout ce qu'il fait, et sa retenue est précisément l'intérêt.

Il ne dit rien de l'ordre. Rien des écrans, des champs ou des algorithmes. Rien de la façon dont quoi que ce soit fonctionne. Chacun de ces sujets est un autre diagramme, et la tentation de les faire passer en fraude sur celui-ci produit ces diagrammes de cas d'utilisation tentaculaires et inutiles qui ont donné mauvaise réputation à la notation.

02Trouver les acteurs et les cas d'utilisation#

Personne ne vous tend la liste. Le diagramme ci-dessus paraît évident une fois tracé et ne l'était pas du tout avant ; l'écart entre la page blanche et cette image, ce sont quatre questions posables dans une salle en vingt minutes.

  1. Qui déclenche quelque chose ici ? Chacun est un acteur principal candidat. Demandez le rôle plutôt que le nom - la personne qui a dit « c'est moi qui fais ça » est un titulaire d'un rôle qui lui survivra.
  2. Qui ou quoi reçoit quelque chose sans le demander ? Rapports, fichiers, notifications, traitements de règlement. Ce sont les acteurs secondaires à droite de la frontière, et c'est la moitié du diagramme que la plupart des premiers jets oublient.
  3. Qu'est-ce qui doit être là pour que cela fonctionne ? Prestataires de paiement, services d'identité, le mainframe, un moteur antifraude. Tout ce pour quoi vous ouvririez un ticket à une autre équipe est hors frontière et a sa place sur le diagramme - le dessiner est souvent le moment où quelqu'un réalise que la dépendance n'a jamais été convenue.
  4. Qu'est-ce qui arrive parce que le temps a passé ? Un rapprochement nocturne, une expiration à quatorze jours, une facturation mensuelle. Le temps est un acteur, dessiné en bonhomme bâton étiqueté Clock ou Scheduler, et les processus qui l'omettent finissent avec des cas d'utilisation que personne ne semble déclencher.

Nommez ensuite chaque objectif du côté du comptoir où se tient l'acteur, verbe d'abord, dans son vocabulaire : Submit payment, pas Payment submission handling et surtout pas PaymentController. Si le nom n'a de sens que pour qui a vu le code, c'est une étape dans un cas d'utilisation plutôt qu'un cas d'utilisation.

03Les quatre marques#

ÉlémentNotationCe que cela signifie
Acteurbonhomme bâtonUn rôle hors du système - une personne, un autre système ou une horloge. Un rôle, pas un individu nommé : Merchant, jamais Anna.
Cas d'utilisationellipseUn objectif que le système délivre, nommé verbe en tête.
Frontière du systèmerectangleLe sujet. Les cas d'utilisation vont dedans, les acteurs toujours dehors. Son nom est ce que vous construisez.
AssociationCet acteur participe à ce cas d'utilisation. Pas de pointe nécessaire.
IncludeFlèche pointillée du cas de base vers le cas inclus. Le comportement inclus s'exécute toujours.
ExtendFlèche pointillée de l'extension vers le cas de base. Le comportement ne s'exécute que parfois.
GénéralisationTriangle creux du côté du plus général. Fonctionne entre acteurs et entre cas d'utilisation.

04Include et extend, sans la confusion#

Ces deux-là sont la raison pour laquelle les diagrammes de cas d'utilisation sont mal tracés. Les deux sont des flèches pointillées avec un mot-clé, et elles pointent dans des directions opposées.

«include» pointe du cas de base vers ce qu'il fait toujours. Lisez « appelle ». Dans le diagramme ci-dessus, Submit payment inclut Authorize payment : on ne peut pas soumettre sans autoriser. Cela sert à factoriser un comportement partagé par plusieurs cas - et c'est exactement pourquoi Refund payment l'inclut aussi.

«extend» pointe de l'ajout optionnel vers le cas de base. Lisez « peut interrompre ». Log audit trail étend Refund payment : les remboursements fonctionnent sans, et cela arrive sous une certaine condition. Le cas de base ignore l'existence de ses extensions.

Généralisation d'acteurs. Un acteur Administrateur marchand et un acteur Employé marchand pointent tous deux, par des triangles creux, vers un acteur général Utilisateur marchand, ce qui signifie que chacun est une sorte d'utilisateur marchand.
La généralisation vaut aussi pour les acteurs. Les deux rôles spécifiques pointent vers le rôle général, ce qui signifie que chacun peut tout ce que peut un utilisateur marchand.

05Derrière la bulle : la description de cas d'utilisation#

Le diagramme est la table des matières. Ce à partir de quoi on construit vraiment, c'est la description de cas d'utilisation derrière chaque ellipse - et un projet qui trace le diagramme sans jamais écrire les descriptions a produit une image du travail plutôt qu'une spécification. C'est la partie dont la notation ne dit rien, d'où le nombre d'équipes qui s'arrêtent à l'image.

Il y a trois profondeurs utiles, et le choix relève du projet et non de la modélisation. Une description brève, ce sont deux phrases dans le backlog. Une informelle, un paragraphe par scénario. Une entièrement rédigée comporte les champs ci-dessous et vaut l'effort pour la poignée de cas qui portent de l'argent ou du risque réels.

  • Nom. L'étiquette de l'ellipse, verbe d'abord : Authorize payment.
  • Acteur principal. Celui qui veut le résultat. Merchant.
  • Parties prenantes et intérêts. Qui d'autre est concerné et ce qu'il en attend. L'acquéreur veut un code d'autorisation valide ; l'équipe antifraude veut la tentative enregistrée, qu'elle réussisse ou non. C'est dans ce champ qu'apparaissent la plupart des exigences oubliées.
  • Préconditions. Ce qui est déjà vrai avant le début - le marchand est authentifié, la commande existe. Pas une liste d'étapes, une liste de garanties.
  • Scénario nominal. Le chemin heureux numéroté, étape acteur puis étape système, dans la langue du métier. Entre cinq et douze étapes ; au-delà, le cas d'utilisation en est deux.
  • Extensions. Numérotées d'après l'étape dont elles dérivent - 4a, 4b, 7a - chacune avec sa condition et ce qui se passe. C'est ce champ qui justifie le format, car c'est une invite systématique à envisager chaque façon d'échouer.
  • Postconditions. Ce qui est vrai ensuite, en succès et pour chaque échec. « Une autorisation est enregistrée et les fonds sont bloqués » se teste ; « le paiement est traité » non.

En petit, pour Authorize payment : le scénario nominal est (1) le marchand soumet le paiement, (2) le système valide le total de la commande, (3) le système demande l'autorisation à l'acquéreur, (4) l'acquéreur renvoie une approbation, (5) le système enregistre le blocage et confirme. Le travail est dans les extensions - 3a l'acquéreur ne répond pas, 4a l'acquéreur refuse, 4b l'acquéreur demande une authentification renforcée - et chacune est une conversation qu'on aurait sinon eue six semaines plus tard en triage de défauts.

06Quand en tracer un#

À utiliser quand

  • S'accorder sur le périmètre en début de projet, avec des gens qui ne lisent pas de code
  • Déterminer de quels systèmes externes vous dépendez réellement
  • Produire une liste dont on peut dériver un plan de test ou un backlog
  • Montrer qu'une exigence appartient au système de quelqu'un d'autre, pas au vôtre

Préférer autre chose quand

  • Vous voulez montrer une suite d'étapes - c'est un diagramme d'activité ou de séquence
  • Le système a un acteur et quatre cas d'utilisation ; une liste à puces est plus claire
  • Vous êtes tenté de décomposer les cas d'utilisation sur trois niveaux
  • Le public, ce sont des ingénieurs qui ont besoin de la conception, pas du périmètre

Un diagramme de cas d'utilisation utile tient sur une page et compte entre trois et dix ellipses. C'est une table des matières, pas le livre. Le détail appartient aux descriptions - le flux principal numéroté et ses alternatives - ou, si le flux est assez ramifié pour mériter un dessin, à un diagramme d'activité par cas.

07Erreurs courantes#

  1. Décomposition fonctionnelle. Vingt ellipses nommées d'après des boutons. Les cas d'utilisation sont des objectifs ; si ce n'est pas quelque chose qu'un acteur veut, cela n'a rien à faire là.
  2. Des acteurs nommés d'après des personnes ou des intitulés de poste. Modélisez le rôle. Une personne peut être plusieurs acteurs, et un acteur peut être un traitement par lots.
  3. Flèches «include» et «extend» inversées. Elles pointent en sens opposés. Appliquez le test du retrait ci-dessus.
  4. Des acteurs à l'intérieur de la frontière. La frontière est ce que vous construisez. Un acteur est par définition à l'extérieur.
  5. Un ordre suggéré par la position verticale. Un diagramme de cas d'utilisation n'a pas d'axe temporel. Rien dans la mise en page ne dit ce qui vient d'abord.

En une ligne chacun

  1. 01Les diagrammes de cas d'utilisation répondent à qui et pour quoi - jamais à comment ni dans quel ordre.
  2. 02Un cas d'utilisation est un objectif qui apporte de la valeur à un acteur, nommé verbe en tête.
  3. 03Les acteurs sont des rôles et se tiennent toujours hors du rectangle de frontière.
  4. 04«include» pointe du cas de base vers un comportement qui s'exécute toujours.
  5. 05«extend» pointe de l'ajout optionnel vers le cas de base.
  6. 06Trois à dix cas sur une page ; le détail vit dans les descriptions, pas sur le canevas.

08Questions fréquentes#

Quelle est la différence entre include et extend ?

Include signifie que le cas de base exécute toujours le cas inclus : c'est du comportement factorisé, et la flèche va de la base vers l'inclus. Extend signifie que le cas d'extension ne s'exécute que sous condition, et la flèche va dans l'autre sens, de l'extension vers la base. C'est le sens de la flèche que l'on inverse le plus souvent.

Qu'est-ce qu'un acteur dans un diagramme de cas d'utilisation ?

Tout ce qui, hors du système, interagit avec lui : une personne dans un rôle, un autre système, ou un déclencheur planifié. Un acteur est un rôle et non un individu, donc une personne peut être deux acteurs et un acteur peut être beaucoup de personnes.

Qu'est-ce qui n'a pas sa place dans un diagramme de cas d'utilisation ?

L'ordre, les données et la conception. Un diagramme de cas d'utilisation répond à qui s'en sert et pour quoi, pas dans quel ordre ni avec quels champs. Si vous vous mettez à dessiner des étapes, c'est un diagramme d'activité qu'il vous faut.

À quoi sert le cadre de frontière du système ?

Le rectangle autour des cas d'utilisation marque ce que vous construisez. Les acteurs sont dehors, les cas d'utilisation dedans. C'est l'élément qui fait du diagramme une déclaration de périmètre, ce qui est la principale raison d'en tracer un.

Que met-on dans une description de cas d'utilisation ?

Une description complète comporte un nom, l'acteur principal, les parties prenantes et ce dont chacune a besoin, des préconditions, un scénario nominal numéroté, des extensions numérotées d'après l'étape dont elles dérivent, et des postconditions. C'est le champ des extensions qui justifie le format, car il oblige à passer en revue chaque façon dont le chemin nominal peut échouer.

Dans cette série

À lire aussi

Tous les articles