Sekvenčný vs komunikačný diagram
Ten istý nákup nakreslený oboma spôsobmi, aby bol kompromis viditeľný, nie len opísaný: jeden dáva čas na zvislú os, druhý na stránku štruktúru a správy očísluje.
7 min čítaniaUML 2.5.127 z 35
Krátka odpoveď
- Lepší nie je ani jeden. Sekvenčný diagram robí zjavným poradie a skrýva štruktúru; komunikačný to má naopak.
- Sémanticky ide o tú istú interakciu nad tým istým UML modelom, takže nástroj vie jeden z druhého vygenerovať mechanicky.
- Čísla správ existujú preto, že nie je časová os. Bez nich diagram prestáva hovoriť, čo sa deje kedy.
- Väčšina ľudí chce oznámiť práve poradie, a preto sekvenčný diagram vyhráva takmer každý reálny rozhovor.
01Jedna interakcia, dve kresby#
Oba diagramy nižšie popisujú tú istú pokladňu: zákazník zadá objednávku, kontrolér zarezervuje tovar, strhne z karty, uloží objednávku a odpovie. Nič na systéme sa medzi nimi nelíši. Líši sa len os, na ktorú notácia míňa svoj priestor.
Prečítajte si hlavičkový obrázok znova po tomto. Komunikačný diagram robí zrejmým to, čo sekvenčný pochováva: každá správa ide cez OrderController. Štyri prepojenia vychádzajú z jedného uzla a žiadne nespájajú ostatné navzájom, čo je tvar návrhu, nie tvar behu. Na sekvenčnom diagrame je ten fakt roztiahnutý cez sedem riadkov a musíte ho hľadať.
A opak platí rovnako. Na sekvenčnom diagrame na prvý pohľad vidíte, že karta sa strháva po rezervácii tovaru a že odpoveď o rezervácii príde skôr, než odíde strhnutie. Na komunikačnom diagrame je to poradie rozdielom medzi číslicami 2 a 3.
02Na čo každý míňa svoj priestor#
Obe notácie sú v UML definované nad tou istou podkladovou interakciou, takže je to voľba prezentácie, nie modelovania. To, čo z tej voľby vyplýva, je dosť konzistentné na to, aby sa to dalo zapísať do tabuľky.
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Poradie | Sekvenčný | Číta sa dolu stránkou, bez počítania. Na komunikačnom diagrame sledujete čísla, čo je za zhruba šiestimi správami pomalšie. |
| Štruktúra | Komunikačný | Prepojenia sú rozložením, takže rozbočovače, reťaze a izolovaní účastníci sú viditeľní okamžite. Sekvenčný diagram nemá rozloženie, ktoré by sa dalo čítať. |
| Vnorenie | Sekvenčný | Aktivačné pásy ukazujú, ktoré volanie je stále na zásobníku. Komunikačné diagramy to vyjadrujú desatinným číslovaním - 2.1 vnútri 2 - čo sa horšie prehliada. |
| Podmienky a slučky | Sekvenčný | Kombinované fragmenty (alt, opt, loop) orámujú oblasť diagramu. Komunikačné diagramy majú len stráže na popiskách správ. |
| Počet účastníkov | Komunikačný | Sekvenčnému diagramu dôjde vodorovné miesto za šiestimi či siedmimi čiarami života. Komunikačný ich rozloží do dvoch rozmerov. |
| Zrozumiteľnosť | Sekvenčný | Oveľa viac ľudí ho prečíta bez toho, aby ich to niekto učil. To nie je vlastnosť notácie, ale rozhoduje to väčšinu reálnych volieb. |
Tá istá informácia, dva veľmi rozdielne zážitky z čítania.
03Voľba medzi nimi#
Rozhodnutie je ľahšie, ak si napíšete vetu, ktorú má diagram niekomu vložiť do úst. Ak je v tej vete poradie, chcete čiary života. Ak je v nej tvar, chcete prepojenia.
Siahnite po ňom, keď
- Sekvenčný, keď je pointou, čo sa deje pred čím - protokoly, nadviazania spojenia, súbehy.
- Sekvenčný, keď sú podmienky a slučky súčasťou príbehu a potrebujete rámy alt alebo loop.
- Komunikačný, keď je pointou, kto s kým hovorí - previazanosť, rozbočovač, porušenie vrstvenia.
- Komunikačný, keď je účastníkov viac, než sa vojde na stranu ako čiary života.
Siahnite po niečom inom, keď
- Komunikačný, keď treba publikum najprv naučiť číslovanie, aby ho vôbec prečítalo.
- Sekvenčný, keď v skutočnosti popisujete štruktúru - to je diagram tried alebo komponentov.
- Oba, keď nie je otázkou ani poradie, ani spolupráca. Próza je kratšia.
- Kresliť tú istú interakciu dvakrát ako dokumentáciu. Nechajte si jednu; druhú vie nástroj vygenerovať.
V praxi väčšina tímov kreslí sekvenčné diagramy a občas nejaký komunikačný prečíta, čo je rozumná rovnováha: poradie býva to, čo sa ľudia snažia vysvetliť. Jediné miesto, kde si komunikačný diagram jednoznačne zaslúži miesto, je návrhový posudok o previazanosti, kde štyri prepojenia zbiehajúce sa do jedného uzla spravia argument rýchlejšie než akýkoľvek zoznam miest volania.
04Čo si zapamätať#
Po jednom riadku na každé
- 01Obe notácie popisujú tú istú interakciu. Voľba je o tom, čo si čitateľ všimne prvé.
- 02Sekvenčný dáva poradie na zvislú os; komunikačný dáva na stranu štruktúru a správy očísluje.
- 03Vnorenie je na jednom aktivačný pás a na druhom desatinné číslo.
- 04Rámy alt, opt a loop majú len sekvenčné diagramy - podmienky sú dôvodom, prečo pri nich väčšina tímov zostáva.
- 05Komunikačný a kolaboračný diagram je ten istý obrázok pod názvami z UML 2 a UML 1.
05Časté otázky#
Čo je lepšie, sekvenčný alebo komunikačný diagram?
Ani jeden nie je lepší, len zdôrazňujú iné osi. Sekvenčný diagram robí zjavným poradie a skrýva štruktúru. Komunikačný diagram robí zjavným tvar spolupráce a poradie sťažuje. Vyberte ten, ktorého silná stránka zodpovedá vašej otázke.
Obsahujú sekvenčný a komunikačný diagram tie isté informácie?
Sémanticky áno - oba popisujú jednu interakciu a UML ich definuje nad tým istým modelom, takže nástroj vie vygenerovať jeden z druhého. Líši sa to, čoho si človek všimne najskôr, a to je jediný dôvod mať dve notácie.
Prečo komunikačné diagramy číslujú správy?
Pretože nemajú časovú os, z ktorej by sa poradie dalo čítať. Poradie nesie číslovanie, pričom vnorené čísla ako 2.1 a 2.2 ukazujú, ktoré volania prebiehajú vnútri ktorých. Bez čísel diagram prestáva hovoriť, čo sa deje kedy.
Dá sa sekvenčný diagram previesť na komunikačný?
Áno a mechanicky. Z každej čiary života sa stane uzol, z každej správy očíslovaný popis spoja medzi dvoma uzlami a z poradia zhora nadol číslovanie. Mnohé modelovacie nástroje prevádzajú oboma smermi z jednej uloženej interakcie.
Prečo sa komunikačné diagramy používajú tak zriedka?
Väčšina ľudí chce oznámiť práve poradie a vyčítať ho zo sady čísel je pomalšie než prečítať ho zhora nadol. Komunikačný diagram vyhráva, keď ide o to, kto s kým hovorí, a nie v akom poradí - a to je menšia časť reálnych rozhovorov.
V tejto sérii
- 01Čo je UML?
- 02Symboly UML
- 03Výber diagramu
- 04Diagramy tried
- 05Príklady diagramov tried
- 06Ako nakresliť diagram tried
- 07Symboly diagramu tried
- 08Sekvenčné diagramy
- 09Príklady sekvenčných diagramov
- 10Ako nakresliť sekvenčný diagram
- 11Diagramy prípadov použitia
- 12Príklady prípadov použitia
- 13Diagramy aktivít
- 14Príklady aktivít
- 15Stavové diagramy
- 16Príklady stavových diagramov
- 17Diagramy komponentov
- 18Príklady komponentov
- 19Kreslenie diagramu komponentov
- 20Symboly komponentov
- 21Diagramy nasadenia
- 22Príklady nasadenia
- 23Diagramy objektov
- 24Diagramy balíkov
- 25Diagramy zloženej štruktúry
- 26Komunikačné diagramy
- 27Sekvenčný vs komunikačný
- 28Časové diagramy
- 29Diagramy prehľadu interakcií
- 30Diagramy profilov
- 31UML pomocou AI
- 32Príklad e-shopu
- 33Príklad banky
- 34Príklad mikroslužieb
- 35Príklad AWS
Súvisiace články
Diagramy správania
Diagramy správania
Diagramy správania
Základy
Diagramy správania
Diagramy správania