Archyno
UMLDiagramy správania

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.
UML komunikačný diagram tej istej pokladne. Aktér Customer je prepojený s objektom OrderController správou jedna, zadať objednávku. Kontrolér je prepojený s objektom Inventory správou dva, reserve; s objektom PaymentGateway správou tri, charge; a s objektom OrderRepo správou štyri, save. Všetky štyri prepojenia vychádzajú z kontroléra.
Pokladňa ako komunikačný diagram: štruktúra je okamžitá, poradie žije v číslach.

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.

UML sekvenčný diagram pokladne. Aktér Customer volá placeOrder na OrderController. Kontrolér volá reserve na Inventory a dostane reserved, potom volá charge na PaymentGateway a dostane authorised, potom volá save na OrderRepo a nakoniec odpovie zákazníkovi potvrdením.
Tá istá pokladňa ako sekvenčný diagram: poradie je zvislou osou a vnorenie volaní je vidieť v aktivačných pásoch.

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.

PrvokNotáciaČo znamená
PoradieSekvenč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úraKomunikač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ť.
VnorenieSekvenč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čkySekvenč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íkovKomunikač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é

  1. 01Obe notácie popisujú tú istú interakciu. Voľba je o tom, čo si čitateľ všimne prvé.
  2. 02Sekvenčný dáva poradie na zvislú os; komunikačný dáva na stranu štruktúru a správy očísluje.
  3. 03Vnorenie je na jednom aktivačný pás a na druhom desatinné číslo.
  4. 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.
  5. 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

Súvisiace články

Všetky články