Archyno
UMLDiagramy chování

UML komunikační diagramy

Tatáž interakce, jakou ukazuje sekvenční diagram, uspořádaná tak, aby odpověděla na jinou otázku: ne kdy se věci dějí, ale kdo je s kým spojen.

6 min čteníUML 2.5.126 z 35

Krátká odpověď

  • Nese stejnou informaci jako sekvenční diagram a liší se jen rozložením: síť místo časové osy.
  • Pořadí nesou jedině čísla zpráv, protože rozložení nenese žádné. Desetinné tečky značí vnoření: 1.1 se odesílá během zpracování 1.
  • Diagram spolupráce byl název téže věci v UML 1.x. Starší knihy a nemálo nástrojů ho stále používají.
  • Volte jej, když na struktuře záleží víc než na pořadí - ověřit, že komponenta mluví jen se zamýšlenými sousedy. Na větvení a chybové cesty použijte sekvenční.
UML komunikační diagram. Objekt Merchant posílá zprávu 1, odeslat platbu, objektu Checkout. Checkout posílá zprávu 2, autorizovat částku, objektu PaymentOrchestrator. Orchestrátor posílá zprávu 3, strhnout z karty, objektu CardGateway a zprávu 4, zapsat položku, objektu Ledger. Pořadí nesou čísla zpráv, ne rozvržení.
Autorizace platby jako komunikační diagram. Porovnejte to s týmž tokem jako sekvenčním diagramem: stejný obsah a úplně jiná věc udělaná zřejmou.

01Co ukazuje#

Komunikační diagram - před UML 2 nazývaný kolaborační diagram - ukazuje sadu objektů, propojení mezi nimi a zprávy, které po těch propojeních cestují. Je jedním ze čtyř interakčních diagramů a nese přesně tutéž informaci jako odpovídající sekvenční diagram.

Liší se to, co rozvržení zdůrazňuje. Sekvenční diagram utratí svou geometrii za čas: účastníci napříč nahoře, pořadí dolů stránkou. Komunikační diagram utratí svou geometrii za topologii: objekty kamkoli je dáte, propojení nakreslená mezi těmi, které spolu mluví. Pořadí je degradováno na číslo před každou zprávou.

02Notace#

PrvekNotaceCo znamená
Objektobdélník, podtržený názevÚčastník, psaný role: Type. Tatáž notace instance jako v diagramu objektů.
Propojeníobyčejná čáraTyhle dva spolu umí komunikovat. Samotná čára nenese směr - je to kanál, ne provoz.
Zprávamalá šipka vedle propojeníJedna komunikace, označená sequenceNumber: name(arguments). Na jednom propojení může sedět víc zpráv.
Pořadové číslo1:, 1.1:, 2:Pořadí. Desetinná čísla se vnořují: 1.1 se děje během 1.
Iterace1 * [i = 1..n]:Zpráva se opakuje.
Stráž1 [ok]:Zpráva se pošle jen tehdy, když podmínka platí.

Částí, kterou se vyplatí naučit, je vnořené desetinné číslování, protože právě tak tenhle diagram vyjadřuje hloubku volání bez svislé osy. Zpráva 2.1 se děje uvnitř zpracování zprávy 2. Komunikační diagram čtěte podle čísla, ne podle polohy: 1, 1.1, 1.2, 2. Poloha je záměrně bezvýznamná.

03Volba mezi tímhle a sekvenčním diagramem#

V principu jsou zaměnitelné - dobrý nástroj mezi nimi převádí automaticky - takže volba je o čtenáři.

Upřednostněte sekvenční diagram, když je předmětem pořadí, když je zpráv hodně nebo když potřebujete kombinované fragmenty. Nic v komunikační notaci se nevyrovná bloku alt při ukázání větve a za zhruba tuctem zpráv se číslování sleduje hůř než svislá osa.

Upřednostněte komunikační diagram, když je předmětem struktura propojení: které objekty se navzájem znají, kde jsou rozbočovače, jestli tvar odpovídá architektuře, kterou jste zamýšleli. Je také kompaktnější z těch dvou u malé interakce mezi mnoha objekty, protože nerezervuje sloupec na účastníka.

Poctivé zhodnocení: v praxi dominují sekvenční diagramy, a pokud se máte naučit jen jeden interakční diagram, naučte se ten. Komunikační diagramy se nadále vyplatí poznat - a vyplatí se je nakreslit v ten konkrétní den, kdy je otázka o provázanosti a ne o pořadí.

04Kdy takový nakreslit#

Sáhněte po něm, když

  • Otázkou je, kdo s kým mluví, ne v jakém pořadí
  • Hledání problémů s provázaností - rozbočovače a nečekaná propojení vyčnívají
  • Malá interakce rozprostřená přes mnoho objektů, kde by sekvenční diagram byl většinou prázdné místo
  • Ukázání, že návrh odpovídá zamýšlené struktuře, například vzoru

Sáhněte po něčem jiném, když

  • Tok má větve nebo smyčky - fragmenty tu nemají ekvivalent
  • Zpráv je víc než zhruba tucet; číslování přestává být čitelné
  • Publikum už strukturu zná a potřebuje pořadí
  • Chcete ukázat uplynulý čas - použijte časovací diagram

Po jednom řádku na každé

  1. 01Tatáž informace jako sekvenční diagram, uspořádaná tak, aby ukazovala strukturu místo času.
  2. 02Rozvržením je graf propojení; poloha nenese o pořadí žádný význam.
  3. 03Pořadí žije v číslech zpráv a desetinná čísla se vnořují, aby ukázala hloubku volání.
  4. 04Čtěte podle čísla - 1, 1.1, 1.2, 2 - nikdy podle polohy na stránce.
  5. 05Nejlepší, když je otázkou provázanost; sekvenční použijte, když je jí pořadí nebo větvení.

05Časté dotazy#

Jaký je rozdíl mezi komunikačním a sekvenčním diagramem?

Nesou stejnou informaci a liší se jen rozložením. Sekvenční diagram klade čas na svislou osu, takže pořadí je zřejmé a spojení ne. Komunikační diagram rozloží účastníky jako síť, takže je zřejmé, kdo s kým mluví, a pořadí je třeba vyčíst z čísel zpráv.

Jak funguje číslování zpráv?

Zprávy jsou číslovány v pořadí vykonávání a vnoření se značí desetinnými tečkami. Zpráva 1.1 je první odeslaná během zpracování zprávy 1 a 1.1.2 je druhá odeslaná během zpracování 1.1. Číslování je jediné, co nese pořadí, protože rozložení nenese žádné.

Je komunikační diagram totéž co diagram spolupráce?

Ano. Diagram spolupráce byl název v UML 1.x, v UML 2.0 přejmenovaný na komunikační diagram. Starší knihy a nemálo nástrojů starší pojem stále používají.

Kdy zvolit komunikační diagram?

Když na struktuře interakce záleží víc než na jejím pořadí: ověřit, že komponenta mluví jen se zamýšlenými sousedy, nebo ukázat provázanost. Tam, kde jde o časování, větvení nebo chybové cesty, je lepším nástrojem sekvenční diagram.

V této sérii

Související články

Všechny články