macgram

Diagramme de cas d'utilisation : définition et exemple

Un diagramme de cas d'utilisation montre ce qu'un système permet de faire, et à qui. C'est un des diagrammes d'UML, souvent le premier qu'on dessine : il fixe le périmètre avant de penser aux données et au code.

Le vocabulaire

  • Un acteur est un rôle qui utilise le système : un client, un vendeur. On le dessine comme un bonhomme. Un autre système (un service de paiement) est aussi un acteur, dessiné comme une boîte « system ».
  • Un cas d'utilisation est un but de l'acteur, nommé par un verbe à l'infinitif : passer une commande, suivre une commande. On le dessine comme une ellipse.
  • La frontière du système est un cadre autour des cas. Les acteurs restent dehors.
  • Une association relie un acteur aux cas qu'il utilise.

Include, extend et généralisation

  • « include » : un cas en utilise toujours un autre. Passer une commande inclut Payer. La flèche part du cas qui inclut.
  • « extend » : un cas en complète un autre, parfois seulement. Appliquer un code promo étend Passer une commande. La flèche part du cas optionnel.
  • La généralisation relie deux acteurs : un client premium est un client, il hérite de ses cas.

Un piège courant : utiliser include et extend pour découper un cas en étapes. Le diagramme n'est pas un organigramme ; les étapes vont dans le scénario du cas, ou dans ses user stories.

Un exemple

La boutique en ligne de la page MCD.

Boutique en ligneClient«system»Paiement«include»«extend»Parcourir le cataloguePasser une commandeSuivre une commandePayerAppliquer un code promo

Le client parcourt le catalogue, passe des commandes et les suit. Payer se fait toujours en passant une commande, d'où le include, avec le service de paiement, un acteur système. Le code promo est facultatif, d'où le extend.

Comment s'y prendre

  • Liste les acteurs : qui utilise le système, et quels autres systèmes il appelle.
  • Pour chacun, note ses buts. Un but qui ne rapporte rien à l'acteur n'est pas un cas, c'est une étape.
  • Regroupe les cas par module (catalogue, commandes, compte) si le système est gros.
  • Ajoute include et extend seulement là où ils évitent de répéter quelque chose.
  • Décris chaque cas par ses user stories, puis passe au MCD pour les données qu'il manipule.

Dans l'éditeur de macgram, l'écran Cas d'utilisation dessine acteurs, cas, include, extend et généralisation, encadre les cas par module, et Réarranger range le tout avec le moins de croisements possible. Les acteurs et les modules sont partagés avec les user stories et se lient aux entités du MCD.