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
01One interaction, two drawings
Both diagrams below describe the same checkout: a customer places an order, the controller reserves stock, charges a card, saves the order and replies. Nothing about the system differs between them. Only the axis the notation spends its space on does.
Read the hero figure again after that one. The communication diagram makes something obvious that the sequence diagram buries: every message passes through OrderController. Four links radiate from one node and none connect to each other, which is the shape of the design rather than the shape of the run. On the sequence diagram that fact is spread over seven rows and you have to look for it.
And the reverse is just as true. On the sequence diagram you can see at a glance that the card is charged after stock is reserved, and that the reservation reply comes back before the charge goes out. On the communication diagram that ordering is the difference between the numerals 2 and 3.
02What each one spends its space on
The two notations are defined over the same underlying interaction in UML, so this is a presentation choice rather than a modelling one. What follows from that choice is consistent enough to tabulate.
| Element | Notation | What it means |
|---|---|---|
| Order | Sequence | Read down the page, with no counting. On a communication diagram you follow the numbers, which is slower past about six messages. |
| Structure | Communication | The links are the layout, so hubs, chains and isolated participants are visible immediately. A sequence diagram has no layout to read. |
| Nesting | Sequence | Activation bars show which call is still on the stack. Communication diagrams express it as decimal numbering - 2.1 inside 2 - which is harder to scan. |
| Conditionals and loops | Sequence | Combined fragments (alt, opt, loop) frame a region of the diagram. Communication diagrams have only guards on message labels. |
| Number of participants | Communication | A sequence diagram runs out of horizontal room past six or seven lifelines. A communication diagram lays them out in two dimensions. |
| Being understood | Sequence | Far more people can read one without being taught. That is not a property of the notation, but it decides most real choices. |
The same information, two very different reading experiences.
03Choosing between them
The decision is easier if you write the sentence the diagram is meant to make somebody say. If the sentence has an order in it, you want lifelines. If it has a shape in it, you want links.
Reach for it when
- Sequence, when the point is what happens before what - protocols, handshakes, race conditions.
- Sequence, when conditionals and loops are part of the story and you need alt or loop frames.
- Communication, when the point is who talks to whom - coupling, a hub, a layering violation.
- Communication, when there are more participants than fit across a page as lifelines.
Reach for something else when
- Communication, when the audience has to be taught the numbering before they can read it.
- Sequence, when you are really describing structure - that is a class or component diagram.
- Both, when neither order nor collaboration is in question. Prose is shorter.
- Drawing the same interaction twice as documentation. Keep one; a tool can regenerate the other.
In practice most teams draw sequence diagrams and read the occasional communication diagram, which is a reasonable equilibrium: order is what people are usually trying to explain. The one place the communication diagram earns its keep outright is a design review about coupling, where four links converging on one node makes the argument faster than any list of call sites.
04What to remember
In one line each
- 01Both notations describe the same interaction. The choice is about what a reader notices first.
- 02Sequence puts order on the vertical axis; communication puts structure on the page and numbers the messages.
- 03Nesting is an activation bar on one and a decimal number on the other.
- 04Only sequence diagrams have alt, opt and loop frames - conditionals are why most teams stay with them.
- 05Communication diagram and collaboration diagram are the same picture under UML 2 and UML 1 names.
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.
À lire aussi