Archyno
C4Prax modelovania

C4 vs UML

Porovnanie sa kladie ako buď-alebo a nie je ním: C4 hovorí, ktoré diagramy kresliť, UML hovorí ako, a užitočná odpoveď býva oboje.

6 min čítaniaC4 model3 z 3

Krátka odpoveď

  • C4 je konvencia o tom, čo kresliť na štyroch úrovniach priblíženia. UML je notácia s definovanou sémantikou. Odpovedajú na rôzne otázky.
  • C4 diagram kontajnerov nakreslený notáciou UML komponentov je súčasne správnym C4 diagramom aj legálnym UML diagramom.
  • UML voľte, keď má byť diagram presný alebo sa má vymieňať medzi nástrojmi; obyčajné C4 boxy voľte, keď sú v publiku ľudia, ktorí notáciu nečítajú.
  • Skutočným zlyhaním nie je ani jedno: je ním diagram, ktorého boxy znamenajú rôzne veci, lebo nikto nepovedal, o ktorú úroveň či notáciu ide.

01Nie sú to veci toho istého druhu#

Toto porovnanie sa zvyčajne rámuje ako voľba, a preto zriedka prinesie použiteľnú odpoveď. Jedno z tých dvoch je konvencia o tom, aké diagramy má systém mať; druhé je jazyk s definovanou sémantikou prvkov a vzťahov. Porovnávať ich je bližšie k porovnávaniu obsahu knihy s písmom než k porovnávaniu dvoch notácií.

PrvokNotáciaČo znamená
C4Štyri úrovne, žiadne predpísané tvaryHovorí, čo kresliť na ktorej úrovni priblíženia a pre koho to je. Nedefinuje sémantiku prvkov, takže nie je čo formálne pokaziť.
UML 2.5.1Štrnásť typov diagramov, definované tvaryHovorí, ako nakresliť štruktúru alebo správanie, s metamodelom, ktorý robí niektoré diagramy legálnymi a iné neplatnými. O tom, aké diagramy váš systém potrebuje, nehovorí nič.

Práve tento rozdiel je dôvod, prečo sa tie dva skladajú namiesto toho, aby si konkurovali. C4 necháva notáciu otvorenú; UML je notácia. Vyplniť jednu medzeru tou druhou je zamýšľané použitie oboch.

02Kreslenie C4 úrovne v UML#

Mapovanie je natoľko priame, že to väčšina tímov robí bez toho, aby si to všimla. Kontextový diagram sú aktéri a externé systémy okolo hranice subjektu, čo je presne rám diagramu prípadov použitia. Diagram kontajnerov sú UML komponenty s rozhraniami medzi nimi. Diagram komponentov je tá istá notácia o úroveň nižšie.

Odmena za použitie skutočnej notácie nie je estetická. UML model sa exportuje do XMI a dá sa skontrolovať na legálnosť; sada obdĺžnikov ani jedno. Ak sa diagram bude odovzdávať inému tímu, inému nástroju alebo audítorovi, záleží na tom. Ak ide na wiki stránku pre ľudí, ktorí modelovací nástroj nikdy neotvoria, nezáleží.

03Čo každý z nich vynecháva#

C4 je celý o statickej štruktúre. Neexistuje C4 diagram pre sled správ, stavový automat ani obchodný proces - takže systém zdokumentovaný len v C4 má štyri obrázky toho, čo existuje, a žiadny o tom, čo sa deje. Túto medzeru vypĺňajú diagramy správania v UML a je to medzera skutočná: väčšina incidentov je o správaní.

Medzera UML je opačná. Dá vám štrnásť typov diagramov a žiadne vodidlo, ktoré z nich váš systém potrebuje - a tak tímy skončia s diagramom tried všetkého a bez obrázka systému ako celku. Voľba diagramu je skutočnou zručnosťou práve preto, že špecifikácia s ňou nepomáha. Štyri úrovne C4 sú hotovou odpoveďou pre štrukturálnu polovicu.

Po jednom riadku na každé

  1. 01C4 rozhoduje, ktoré diagramy existujú; UML rozhoduje, čo na nich tvary znamenajú.
  2. 02Diagram kontajnerov v notácii UML komponentov je správny v oboch naraz.
  3. 03UML použite tam, kde záleží na presnosti alebo výmene medzi nástrojmi, obyčajné boxy tam, kde publikum notáciu nečíta.
  4. 04C4 nemá diagramy správania a UML nemá názor na rozsah - preto väčšina tímov skončí pri oboch.

04Časté otázky#

Je C4 lepšie ako UML?

Otázka sa nedá rozhodnúť, lebo nejde o rovnaký druh veci. C4 predpisuje štyri diagramy a to, čo na ktorý patrí; UML predpisuje tvary a ich význam. Môžete sa držať C4 a kresliť ho v UML, držať sa C4 a kresliť obyčajné boxy, alebo používať UML úplne bez štruktúry C4.

Dá sa C4 diagram nakresliť v UML?

Áno a často je to lepšia voľba. Diagram kontajnerov sa čisto mapuje na UML komponenty s rozhraniami, kontextový diagram na aktérov a hranicu subjektu. Výsledok je súčasne legálne UML aj správne C4 - a dá sa exportovať do XMI, čo obyčajné boxy nikdy nedokážu.

Nahrádza C4 typy diagramov UML?

Nie. C4 pokrýva statickú štruktúru na štyroch úrovniach priblíženia a o správaní nehovorí nič. Sekvenčné diagramy, stavové automaty a diagramy aktivít nemajú v C4 obdobu, takže systém zdokumentovaný len v C4 nemá žiadny popis toho, ako sa veci v čase naozaj dejú.

Čím má začať nový tím?

Úrovňami 1 a 2 modelu C4, nakreslenými v čomkoľvek, čo už tím vie čítať. Hodnota prvého mesiaca je v zhode na tom, z čoho systém pozostáva, a spor o notáciu v tom bode stojí viac, než prinesie. Presnosť UML pridajte tam, kde sa ukáže, že ju diagram potrebuje.

V tejto sérii

Súvisiace články

Všetky články