Archyno
UMLDiagrammes de comportement

Diagrammes de communication UML

La même interaction qu'un diagramme de séquence, disposée pour répondre à une autre question : non pas quand les choses se produisent, mais qui est relié à qui.

6 min de lectureUML 2.5.126 sur 35

La réponse courte

  • Il porte la même information qu'un diagramme de séquence et n'en diffère que par la disposition : un réseau au lieu d'un axe temporel.
  • Seuls les numéros de messages portent l'ordre, puisque la disposition n'en porte aucun. Les points décimaux marquent l'imbrication : 1.1 part pendant le traitement de 1.
  • Diagramme de collaboration était le nom de la même chose en UML 1.x. Les ouvrages anciens et bon nombre d'outils l'emploient encore.
  • Choisissez-le quand la structure compte plus que l'ordre - vérifier qu'un composant ne parle qu'à ses voisins prévus. Pour le branchement et les chemins d'échec, prenez la séquence.
Un diagramme de communication UML. Un objet Merchant envoie le message 1, soumettre le paiement, à un objet Checkout. Checkout envoie le message 2, autoriser le montant, à un objet PaymentOrchestrator. L'orchestrateur envoie le message 3, débiter la carte, à un objet CardGateway et le message 4, enregistrer l'écriture, à un objet Ledger. La séquence est portée par les numéros de message, pas par la disposition.
L'autorisation d'un paiement, en diagramme de communication. Comparez-le au même flux en diagramme de séquence : contenu identique, et une tout autre chose rendue évidente.

01Ce qu'il montre#

Un diagramme de communication - appelé diagramme de collaboration avant UML 2 - montre un ensemble d'objets, les liens entre eux, et les messages qui circulent sur ces liens. C'est l'un des quatre diagrammes d'interaction, et il porte exactement la même information que le diagramme de séquence équivalent.

Ce qui diffère, c'est ce que la disposition met en avant. Un diagramme de séquence dépense sa géométrie sur le temps : les participants en haut, l'ordre vers le bas de la page. Un diagramme de communication dépense la sienne sur la topologie : des objets là où vous les placez, des liens tracés entre ceux qui se parlent. L'ordre est rétrogradé au rang de numéro devant chaque message.

02La notation#

ÉlémentNotationCe que cela signifie
Objetrectangle, nom soulignéUn participant, écrit role: Type. Même notation d'instance que sur un diagramme d'objets.
Lientrait simpleCes deux-là peuvent communiquer. Le trait lui-même ne porte pas de direction : c'est le canal, pas le trafic.
Messagepetite flèche à côté du lienUne communication, étiquetée sequenceNumber: name(arguments). Plusieurs messages peuvent tenir sur un même lien.
Numéro de séquence1:, 1.1:, 2:L'ordre. Les décimales s'imbriquent : 1.1 se produit pendant 1.
Itération1 * [i = 1..n]:Le message se répète.
Garde1 [ok]:Le message n'est envoyé que si la condition est vraie.

La partie qui vaut d'être apprise est la numérotation décimale imbriquée, car c'est ainsi que ce diagramme exprime la profondeur d'appel sans axe vertical. Le message 2.1 se produit pendant le traitement du message 2. Lisez un diagramme de communication par numéro, pas par position : 1, 1.1, 1.2, 2. La position est délibérément dénuée de sens.

03Choisir entre celui-ci et un diagramme de séquence#

Ils sont interchangeables en principe - un bon outil convertit automatiquement de l'un à l'autre - donc le choix porte sur le lecteur.

Préférez un diagramme de séquence quand l'ordre est le sujet, quand il y a beaucoup de messages, ou quand il vous faut des fragments combinés. Rien dans la notation de communication n'égale un bloc alt pour montrer une branche, et au-delà d'une douzaine de messages la numérotation devient plus difficile à suivre qu'un axe vertical.

Préférez un diagramme de communication quand le sujet est la structure des connexions : quels objets se connaissent, où sont les concentrateurs, si la forme correspond à l'architecture voulue. C'est aussi le plus compact des deux pour une petite interaction répartie sur beaucoup d'objets, parce qu'il ne réserve pas une colonne par participant.

Évaluation honnête : les diagrammes de séquence dominent en pratique, et si vous n'apprenez qu'un seul diagramme d'interaction, apprenez celui-là. Les diagrammes de communication restent bons à reconnaître - et bons à dessiner le jour précis où la question porte sur le couplage plutôt que sur l'ordre.

04Quand en dessiner un#

À utiliser quand

  • La question est qui parle à qui, pas dans quel ordre
  • Chercher des problèmes de couplage : concentrateurs et liens inattendus ressortent
  • Une petite interaction répartie sur beaucoup d'objets, où un diagramme de séquence serait surtout du vide
  • Montrer qu'une conception correspond à une structure voulue, par exemple un patron

Préférer autre chose quand

  • Le flux a des branches ou des boucles : les fragments n'ont pas d'équivalent ici
  • Il y a plus d'une douzaine de messages ; la numérotation cesse d'être lisible
  • Le public connaît déjà la structure et a besoin de l'ordre
  • Vous voulez montrer du temps écoulé : prenez un diagramme de temps

En une ligne chacun

  1. 01La même information qu'un diagramme de séquence, disposée pour montrer la structure plutôt que le temps.
  2. 02La disposition est le graphe des connexions ; la position ne dit rien de l'ordre.
  3. 03L'ordre vit dans les numéros de message, et les décimales s'imbriquent pour montrer la profondeur d'appel.
  4. 04Lisez par numéro - 1, 1.1, 1.2, 2 - jamais par position sur la page.
  5. 05Idéal quand la question est le couplage ; prenez un diagramme de séquence quand c'est l'ordre ou le branchement.

05Questions fréquentes#

Quelle différence entre diagramme de communication et de séquence ?

Ils portent la même information et ne diffèrent que par la disposition. Un diagramme de séquence met le temps sur un axe vertical : l'ordre saute aux yeux, les connexions non. Un diagramme de communication dispose les participants en réseau : qui parle à qui saute aux yeux, et l'ordre doit se lire sur les numéros de messages.

Comment fonctionne la numérotation des messages ?

Les messages sont numérotés dans l'ordre d'exécution, et l'imbrication se marque par des points décimaux. Le message 1.1 est le premier envoyé pendant le traitement du message 1, et 1.1.2 le deuxième envoyé pendant le traitement de 1.1. La numérotation est la seule chose qui porte la séquence, puisque la disposition n'en porte aucune.

Un diagramme de communication est-il un diagramme de collaboration ?

Oui. Diagramme de collaboration était le nom en UML 1.x, renommé diagramme de communication dans UML 2.0. Les ouvrages plus anciens, et bon nombre d'outils, emploient encore l'ancien terme.

Quand choisir un diagramme de communication ?

Quand la structure d'une interaction compte plus que son ordre : vérifier qu'un composant ne parle qu'à ses voisins prévus, ou montrer le couplage. Là où le temps, le branchement ou les chemins d'échec comptent, le diagramme de séquence est le meilleur outil.

Dans cette série

À lire aussi

Tous les articles