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
Krátká odpověď
- Lepší není ani jeden. Sekvenční diagram činí zjevným pořadí a skrývá strukturu; komunikační to má naopak.
- Sémanticky jde o tutéž interakci nad týmž UML modelem, takže nástroj umí jeden z druhého vygenerovat mechanicky.
- Čísla zpráv existují proto, že není časová osa. Bez nich diagram přestává říkat, co se děje kdy.
- Většina lidí chce sdělit právě pořadí, a proto sekvenční diagram vyhrává téměř každý reálný rozhovor.
01Jedna interakce, dvě kresby#
Oba diagramy níže popisují tutéž pokladnu: zákazník zadá objednávku, kontroler zarezervuje zboží, strhne z karty, uloží objednávku a odpoví. Nic na systému se mezi nimi neliší. Liší se jen osa, na kterou notace utrácí svůj prostor.
Přečtěte si titulní obrázek znovu po tomhle. Komunikační diagram dělá zřejmým to, co sekvenční pohřbívá: každá zpráva jde přes OrderController. Čtyři propojení vycházejí z jednoho uzlu a žádné nespojuje ostatní navzájem, což je tvar návrhu, ne tvar běhu. Na sekvenčním diagramu je ten fakt roztažený přes sedm řádků a musíte ho hledat.
A opak platí stejně. Na sekvenčním diagramu na první pohled vidíte, že karta se strhává po rezervaci zboží a že odpověď o rezervaci přijde dřív, než odejde stržení. Na komunikačním diagramu je to pořadí rozdílem mezi číslicemi 2 a 3.
02Na co každý utrácí svůj prostor#
Obě notace jsou v UML definované nad touž podkladovou interakcí, takže je to volba prezentace, ne modelování. To, co z té volby plyne, je dost konzistentní na to, aby se to dalo zapsat do tabulky.
| Prvek | Notace | Co znamená |
|---|---|---|
| Pořadí | Sekvenční | Čte se dolů stránkou, bez počítání. Na komunikačním diagramu sledujete čísla, což je za zhruba šesti zprávami pomalejší. |
| Struktura | Komunikační | Propojení jsou rozvržením, takže rozbočovače, řetězy a izolovaní účastníci jsou vidět okamžitě. Sekvenční diagram nemá rozvržení, které by se dalo číst. |
| Vnoření | Sekvenční | Aktivační pásy ukazují, které volání je pořád na zásobníku. Komunikační diagramy to vyjadřují desetinným číslováním - 2.1 uvnitř 2 - což se hůř přehlíží. |
| Podmínky a smyčky | Sekvenční | Kombinované fragmenty (alt, opt, loop) orámují oblast diagramu. Komunikační diagramy mají jen stráže na popiscích zpráv. |
| Počet účastníků | Komunikační | Sekvenčnímu diagramu dojde vodorovné místo za šesti či sedmi čarami života. Komunikační je rozloží do dvou rozměrů. |
| Srozumitelnost | Sekvenční | Mnohem víc lidí ho přečte, aniž by je to někdo učil. To není vlastnost notace, ale rozhoduje to většinu reálných voleb. |
Tatáž informace, dva velmi rozdílné zážitky ze čtení.
03Volba mezi nimi#
Rozhodnutí je snazší, pokud si napíšete větu, kterou má diagram někomu vložit do úst. Pokud je v té větě pořadí, chcete čáry života. Pokud je v ní tvar, chcete propojení.
Sáhněte po něm, když
- Sekvenční, když je pointou, co se děje před čím - protokoly, navázání spojení, souběhy.
- Sekvenční, když jsou podmínky a smyčky součástí příběhu a potřebujete rámy alt nebo loop.
- Komunikační, když je pointou, kdo s kým mluví - provázanost, rozbočovač, porušení vrstvení.
- Komunikační, když je účastníků víc, než se vejde na stranu jako čáry života.
Sáhněte po něčem jiném, když
- Komunikační, když je potřeba publikum nejdřív naučit číslování, aby ho vůbec přečetlo.
- Sekvenční, když ve skutečnosti popisujete strukturu - to je diagram tříd nebo komponent.
- Oba, když není otázkou ani pořadí, ani spolupráce. Próza je kratší.
- Kreslit tutéž interakci dvakrát jako dokumentaci. Nechte si jednu; druhou umí nástroj vygenerovat.
V praxi většina týmů kreslí sekvenční diagramy a občas nějaký komunikační přečte, což je rozumná rovnováha: pořadí bývá to, co se lidé snaží vysvětlit. Jediné místo, kde si komunikační diagram jednoznačně zaslouží místo, je návrhový posudek o provázanosti, kde čtyři propojení sbíhající se do jednoho uzlu udělají argument rychleji než jakýkoli seznam míst volání.
04Co si zapamatovat#
Po jednom řádku na každé
- 01Obě notace popisují tutéž interakci. Volba je o tom, čeho si čtenář všimne první.
- 02Sekvenční dává pořadí na svislou osu; komunikační dává na stranu strukturu a zprávy očísluje.
- 03Vnoření je na jednom aktivační pás a na druhém desetinné číslo.
- 04Rámy alt, opt a loop mají jen sekvenční diagramy - podmínky jsou důvodem, proč u nich většina týmů zůstává.
- 05Komunikační a kolaborační diagram je tentýž obrázek pod názvy z UML 2 a UML 1.
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ů.
V této sérii
- 01Co je UML?
- 02Symboly UML
- 03Výběr diagramu
- 04Diagramy tříd
- 05Příklady diagramů tříd
- 06Jak nakreslit diagram tříd
- 07Symboly diagramu tříd
- 08Sekvenční diagramy
- 09Příklady sekvenčních diagramů
- 10Jak nakreslit sekvenční diagram
- 11Diagramy případů užití
- 12Příklady případů užití
- 13Diagramy aktivit
- 14Příklady aktivit
- 15Stavové diagramy
- 16Příklady stavových diagramů
- 17Diagramy komponent
- 18Příklady komponent
- 19Kreslení diagramu komponent
- 20Symboly komponent
- 21Diagramy nasazení
- 22Příklady nasazení
- 23Diagramy objektů
- 24Diagramy balíků
- 25Diagramy složené struktury
- 26Komunikační diagramy
- 27Sekvenční vs komunikační
- 28Časové diagramy
- 29Diagramy přehledu interakcí
- 30Diagramy profilů
- 31UML pomocí AI
- 32Příklad e-shopu
- 33Příklad banky
- 34Příklad mikroslužeb
- 35Příklad AWS
Související články
Diagramy chování
Diagramy chování
Diagramy chování
Základy
Diagramy chování
Diagramy chování