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.
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ément | Notation | Ce que cela signifie |
|---|---|---|
| Objet | rectangle, nom souligné | Un participant, écrit role: Type. Même notation d'instance que sur un diagramme d'objets. |
| Lien | trait simple | Ces deux-là peuvent communiquer. Le trait lui-même ne porte pas de direction : c'est le canal, pas le trafic. |
| Message | petite flèche à côté du lien | Une communication, étiquetée sequenceNumber: name(arguments). Plusieurs messages peuvent tenir sur un même lien. |
| Numéro de séquence | 1:, 1.1:, 2: | L'ordre. Les décimales s'imbriquent : 1.1 se produit pendant 1. |
| Itération | 1 * [i = 1..n]: | Le message se répète. |
| Garde | 1 [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
- 01La même information qu'un diagramme de séquence, disposée pour montrer la structure plutôt que le temps.
- 02La disposition est le graphe des connexions ; la position ne dit rien de l'ordre.
- 03L'ordre vit dans les numéros de message, et les décimales s'imbriquent pour montrer la profondeur d'appel.
- 04Lisez par numéro - 1, 1.1, 1.2, 2 - jamais par position sur la page.
- 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
- 01Qu'est-ce que UML ?
- 02Symboles UML
- 03Choisir un diagramme
- 04Diagrammes de classes
- 05Exemples de diagrammes de classes
- 06Dessiner un diagramme de classes
- 07Symboles du diagramme de classes
- 08Diagrammes de séquence
- 09Exemples de diagrammes de séquence
- 10Dessiner un diagramme de séquence
- 11Diagrammes de cas d'utilisation
- 12Exemples de cas d'utilisation
- 13Diagrammes d'activité
- 14Exemples d'activité
- 15Diagrammes états-transitions
- 16Exemples d'états-transitions
- 17Diagrammes de composants
- 18Exemples de composants
- 19Dessiner un diagramme de composants
- 20Symboles de composants
- 21Diagrammes de déploiement
- 22Exemples de déploiement
- 23Diagrammes d'objets
- 24Diagrammes de paquetages
- 25Diagrammes de structure composite
- 26Diagrammes de communication
- 27Séquence vs communication
- 28Diagrammes de temps
- 29Diagrammes globaux d'interaction
- 30Diagrammes de profil
- 31UML avec l'IA
- 32Exemple e-commerce
- 33Exemple bancaire
- 34Exemple microservices
- 35Exemple AWS
À lire aussi
Diagrammes de comportement
Fondamentaux
Diagrammes de comportement
Diagrammes de structure
Diagrammes de comportement
Diagrammes de comportement