Diagramme de séquence vs de communication
Le même achat dessiné des deux façons, pour que le compromis se voie au lieu de se raconter : l'un met le temps sur l'axe vertical, l'autre met la structure sur la page et numérote les messages.
7 min de lectureUML 2.5.127 sur 35
La réponse courte
- Aucun ne vaut mieux. Le diagramme de séquence rend l'ordre évident et la structure difficile à voir ; le diagramme de communication fait l'inverse.
- Sémantiquement, c'est la même interaction sur le même modèle UML : un outil peut générer l'un à partir de l'autre, mécaniquement.
- Les numéros de messages existent parce qu'il n'y a pas d'axe temporel. Sans eux, le diagramme ne dit plus ce qui se passe quand.
- L'ordre est ce que la plupart des gens cherchent à communiquer, et c'est pourquoi le diagramme de séquence l'emporte presque toujours.
01Une interaction, deux dessins#
Les deux diagrammes ci-dessous décrivent le même passage en caisse : un client passe commande, le contrôleur réserve du stock, débite une carte, enregistre la commande et répond. Rien du système ne diffère entre eux. Seul diffère l'axe sur lequel la notation dépense sa place.
Relisez la figure d'ouverture après celle-ci. Le diagramme de communication rend évident ce que le diagramme de séquence enfouit : chaque message passe par OrderController. Quatre liens rayonnent d'un seul noeud et aucun ne relie les autres entre eux, ce qui est la forme de la conception et non celle de l'exécution. Sur le diagramme de séquence, ce fait est étalé sur sept lignes et il faut le chercher.
Et l'inverse est tout aussi vrai. Sur le diagramme de séquence, vous voyez d'un coup d'oeil que la carte est débitée après la réservation du stock, et que la réponse de réservation revient avant que le débit ne parte. Sur le diagramme de communication, cet ordre est la différence entre les chiffres 2 et 3.
02Ce à quoi chacun consacre sa place#
Les deux notations sont définies en UML sur la même interaction sous-jacente : c'est donc un choix de présentation et non de modélisation. Ce qui découle de ce choix est assez constant pour être mis en tableau.
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Ordre | Séquence | On lit vers le bas de la page, sans compter. Sur un diagramme de communication, on suit les numéros, ce qui est plus lent au-delà de six messages environ. |
| Structure | Communication | Les liens sont la mise en page, donc concentrateurs, chaînes et participants isolés se voient immédiatement. Un diagramme de séquence n'a pas de mise en page à lire. |
| Imbrication | Séquence | Les barres d'activation montrent quel appel est encore sur la pile. Les diagrammes de communication l'expriment par une numérotation décimale - 2.1 dans 2 - plus difficile à parcourir. |
| Conditions et boucles | Séquence | Les fragments combinés (alt, opt, loop) encadrent une région du diagramme. Les diagrammes de communication n'ont que des gardes sur les étiquettes de message. |
| Nombre de participants | Communication | Un diagramme de séquence manque de place horizontale au-delà de six ou sept lignes de vie. Un diagramme de communication les dispose en deux dimensions. |
| Être compris | Séquence | Bien plus de gens savent en lire un sans qu'on le leur apprenne. Ce n'est pas une propriété de la notation, mais cela tranche la plupart des choix réels. |
La même information, deux expériences de lecture très différentes.
03Choisir entre les deux#
La décision est plus simple si vous écrivez la phrase que le diagramme doit faire dire à quelqu'un. Si la phrase contient un ordre, vous voulez des lignes de vie. Si elle contient une forme, vous voulez des liens.
À utiliser quand
- La séquence, quand l'enjeu est ce qui se passe avant quoi : protocoles, poignées de main, situations de concurrence.
- La séquence, quand conditions et boucles font partie de l'histoire et qu'il vous faut des cadres alt ou loop.
- La communication, quand l'enjeu est qui parle à qui : couplage, concentrateur, violation de couches.
- La communication, quand il y a plus de participants qu'il n'en tient en lignes de vie sur une page.
Préférer autre chose quand
- La communication, quand il faut d'abord enseigner la numérotation au public pour qu'il puisse lire.
- La séquence, quand vous décrivez en fait une structure : c'est un diagramme de classes ou de composants.
- Les deux, quand ni l'ordre ni la collaboration ne sont en question. La prose est plus courte.
- Dessiner deux fois la même interaction en documentation. Gardez-en une ; un outil régénère l'autre.
En pratique, la plupart des équipes dessinent des diagrammes de séquence et lisent de temps en temps un diagramme de communication, ce qui est un équilibre raisonnable : l'ordre est en général ce que les gens cherchent à expliquer. Le seul endroit où le diagramme de communication paie franchement est une revue de conception sur le couplage, où quatre liens convergeant vers un noeud font l'argument plus vite que n'importe quelle liste de sites d'appel.
04Ce qu'il faut retenir#
En une ligne chacun
- 01Les deux notations décrivent la même interaction. Le choix porte sur ce qu'un lecteur remarque en premier.
- 02La séquence met l'ordre sur l'axe vertical ; la communication met la structure sur la page et numérote les messages.
- 03L'imbrication est une barre d'activation sur l'un et un nombre décimal sur l'autre.
- 04Seuls les diagrammes de séquence ont des cadres alt, opt et loop : les conditions sont la raison pour laquelle la plupart des équipes y restent.
- 05Diagramme de communication et diagramme de collaboration sont la même image sous les noms UML 2 et UML 1.
05Questions fréquentes#
Lequel vaut mieux, un diagramme de séquence ou de communication ?
Aucun ne vaut mieux : ils insistent sur des axes différents. Le diagramme de séquence rend l'ordre évident et la structure difficile à voir. Le diagramme de communication rend la forme de la collaboration évidente et l'ordre pénible à suivre. Choisissez la force qui répond à votre question.
Les diagrammes de séquence et de communication portent-ils la même information ?
Sémantiquement oui : tous deux décrivent une interaction, et UML les définit sur le même modèle, si bien qu'un outil peut générer l'un à partir de l'autre. Ce qui diffère, c'est ce qu'un humain remarque en premier, et c'est la seule raison d'avoir deux notations.
Pourquoi les diagrammes de communication numérotent-ils leurs messages ?
Parce qu'il n'y a pas d'axe temporel où lire l'ordre. C'est la numérotation qui le porte, et les numéros imbriqués comme 2.1 et 2.2 montrent quels appels ont lieu à l'intérieur de quels autres. Sans les numéros, le diagramme ne dit plus ce qui se passe quand.
Peut-on convertir un diagramme de séquence en diagramme de communication ?
Oui, et mécaniquement. Chaque ligne de vie devient un nœud, chaque message une étiquette numérotée sur le lien entre deux nœuds, et l'ordre de haut en bas devient la numérotation. Beaucoup d'outils convertissent dans les deux sens depuis une seule interaction stockée.
Pourquoi les diagrammes de communication sont-ils si peu utilisés ?
La plupart des gens cherchent justement à communiquer l'ordre, et le lire dans une suite de numéros est plus lent que de le lire de haut en bas. Le diagramme de communication l'emporte quand l'enjeu est qui parle à qui, pas dans quel ordre - une part plus petite des conversations réelles.
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
Diagrammes de comportement
Diagrammes de comportement
Fondamentaux
Diagrammes de comportement
Diagrammes de comportement