Sekvenční vs komunikační diagram
Tentýž nákup nakreslený oběma způsoby, aby byl kompromis vidět, ne jen popsán: jeden dává čas na svislou osu, druhý na stránku strukturu a zprávy očísluje.
7 min čteníUML 2.5.127 z 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.
05Časté dotazy
Co je lepší, sekvenční, nebo komunikační diagram?
Ani jeden není lepší, jen zdůrazňují jiné osy. Sekvenční diagram činí zjevným pořadí a skrývá strukturu. Komunikační diagram činí zjevným tvar spolupráce a pořadí ztěžuje. Vyberte ten, jehož silná stránka odpovídá vaší otázce.
Obsahují sekvenční a komunikační diagram tytéž informace?
Sémanticky ano - oba popisují jednu interakci a UML je definuje nad týmž modelem, takže nástroj umí vygenerovat jeden z druhého. Liší se to, čeho si člověk všimne nejdřív, a to je jediný důvod mít dvě notace.
Proč komunikační diagramy číslují zprávy?
Protože nemají časovou osu, ze které by se pořadí dalo číst. Pořadí nese číslování, přičemž vnořená čísla jako 2.1 a 2.2 ukazují, která volání probíhají uvnitř kterých. Bez čísel diagram přestává říkat, co se děje kdy.
Lze sekvenční diagram převést na komunikační?
Ano a mechanicky. Z každé čáry života se stane uzel, z každé zprávy očíslovaný popis spoje mezi dvěma uzly a z pořadí shora dolů číslování. Mnohé modelovací nástroje převádějí oběma směry z jedné uložené interakce.
Proč se komunikační diagramy používají tak zřídka?
Většina lidí chce sdělit právě pořadí a vyčíst ho ze sady čísel je pomalejší než přečíst ho shora dolů. Komunikační diagram vyhrává, když jde o to, kdo s kým mluví, a ne v jakém pořadí - a to je menší část reálných rozhovorů.
Související články