Archyno
UMLDiagrammes de comportement

Comment dessiner un diagramme de séquence UML

Un scénario, les participants qu'il touche réellement, le chemin nominal dans l'ordre, puis les branches - et un arrêt net à un écran.

7 min de lectureUML 2.5.110 sur 35

La réponse courte

  • Commencez par un scénario écrit en une phrase. Si vous ne pouvez pas nommer ce déroulement unique en une phrase, vous avez un cas d'utilisation, pas un diagramme de séquence.
  • Placez les participants de gauche à droite dans l'ordre où le flux les touche d'abord, l'acteur tout à gauche. Toute autre disposition garantit des flèches croisées.
  • Ici, des flèches qui se croisent ne sont pas une question de style : elles rendent l'ordre de lecture ambigu, et l'ordre est toute la raison d'être du diagramme.
  • Un écran, une quinzaine de messages. Au-delà on fait défiler au lieu de lire, et la seconde moitié doit passer derrière un fragment ref.
Un diagramme de séquence UML à un stade précoce. Un client envoie une demande de réservation à un site de réservation, qui demande à un service de disponibilité si une chambre est libre, puis écrit une réservation dans un magasin. Chaque message reçoit une réponse.
Après l'étape trois. Un scénario, tout droit - et l'ordonnancement est déjà réglé.

01Étapes un et deux : un scénario, puis ses participants#

Écrivez le scénario sous forme de phrase avant de dessiner quoi que ce soit."Un client réserve une chambre qui est disponible" est un scénario. "Réservation" n'en est pas un : c'est un cas d'utilisation, qui couvre toutes les exécutions, y compris celles qui échouent, et un diagramme qui essaie d'être toutes à la fois est celui qui finit à quatre-vingts messages. Si votre phrase contient le mot "ou", vous avez deux scénarios ou un fragment alt, et il faut trancher avant de continuer.

Listez ensuite les participants que ce scénario touche réellement, et placez-les de gauche à droite dans l'ordre où il les atteint. L'acteur est le plus à gauche. Quatre ou cinq est la plage de travail ; si vous en avez sept, deux au moins sont des détails d'implémentation sur lesquels le flux ne raisonne pas, et les supprimer ne perdra rien dont un lecteur avait besoin.

02Étape trois : le chemin nominal, dans l'ordre, et rien d'autre#

Dessinez l'exécution où tout fonctionne, de haut en bas, sans aucun fragment. C'est le diagramme en tête d'article, et il est fini en tant que travail même s'il ne l'est pas en tant que diagramme : l'ordonnancement est réglé, et c'est la partie coûteuse.

Deux conventions portent l'essentiel du sens. L'étiquette d'un message est une opération avec ses arguments, pas une description : isFree(dates, roomType)dit au lecteur ce que le destinataire doit offrir, là où "vérifie la disponibilité" lui raconte une histoire qu'il connaissait déjà. Et toute réponse est en tirets : une flèche pleine qui revient est un second appel, et cela veut dire autre chose.

Les barres d'activation sont optionnelles en UML 2.5.1 et valent la peine d'être tracées. Elles sont la seule chose du diagramme qui montre qu'un appel synchrone bloque son appelant pendant tout l'échange imbriqué en dessous, ce qui est généralement le fait que le diagramme a été dessiné pour établir.

03Étapes quatre et cinq : les branches, et s'arrêter#

Le même diagramme de séquence UML après ajout des branches. La vérification de disponibilité est enveloppée dans un fragment alt : quand la chambre est libre, le site la réserve et confirme ; quand elle ne l'est pas, le site demande des alternatives et les propose à la place. Une préautorisation de paiement est envoyée en asynchrone vers un journal d'audit.
Le même flux après l'étape quatre. L'alt est enroulé autour du point où la réponse commence à compter.

C'est seulement maintenant qu'on ajoute les fragments, un à la fois, en demandant à chacun : cette branche change-t-elle ce que le lecteur doit construire ? Une branche qui renvoie une erreur et s'arrête le fait rarement, et se consigne mieux dans le texte du cas d'utilisation. Une branche qui fait un autre travail - comme proposer des dates alternatives ci-dessus - le fait toujours, et sa place est sur le diagramme.

Enroulez le cadre autour de l'endroit où les chemins divergent, pas autour de tout le diagramme. L'alt ci-dessus commence après le retour du verdict de disponibilité, parce que tout ce qui précède est commun aux deux issues ; un cadre autour des neuf messages serait techniquement légal et ne dirait rien au lecteur sur l'endroit où se trouve la décision.

Puis arrêtez-vous à un écran. Ce n'est pas une recommandation souple : un diagramme de séquence existe pour rendre un ordre visible d'un coup d'oeil, et un diagramme qu'il faut faire défiler y a renoncé tout en gardant le coût. Quand un flux ne tient pas, coupez-le à une couture naturelle, nommez chaque moitié et renvoyez de la première à la seconde par un fragment ref - ou dessinez au-dessus de l'ensemble un diagramme global d'interaction.

En une ligne chacun

  1. 01Écrivez d'abord le scénario comme une phrase. S'il contient 'ou', tranchez entre deux diagrammes et un alt.
  2. 02Les participants vont de gauche à droite dans l'ordre où le flux les atteint, l'acteur d'abord.
  3. 03Dessinez le chemin nominal sans fragments. Les étiquettes sont des opérations avec arguments ; toute réponse est en tirets.
  4. 04N'ajoutez une branche que si elle change ce qui sera construit, et posez le cadre là où les chemins divergent.
  5. 05Un écran. Au-delà, coupez et employez un fragment ref.

Trois flux terminés dont s'inspirer : les exemples traités.

04Questions fréquentes#

Par où commencer un diagramme de séquence ?

Par un scénario écrit sous forme de phrase, pas par les cases. Un diagramme de séquence décrit un seul déroulement, donc si vous ne savez pas dire lequel en une phrase, vous n'avez pas encore de diagramme : vous avez un cas d'utilisation, et c'est une autre image.

Dans quel ordre placer les participants ?

De gauche à droite dans l'ordre où le flux les touche pour la première fois, l'acteur tout à gauche. Toute autre disposition garantit des flèches qui se croisent, et ici ce n'est pas une question de style : cela rend l'ordre de lecture réellement ambigu.

Quelle longueur pour un diagramme de séquence ?

Un écran, soit une quinzaine de messages. Au-delà, le diagramme n'est plus lu de haut en bas mais fait défiler, et l'ordre qui était toute la raison de le tracer cesse d'être visible. Découpez-le et renvoyez à la seconde moitié par un fragment ref.

Dans cette série

À lire aussi

Tous les articles