C4 vs UML
Porovnání se klade jako buď-anebo a není jím: C4 říká, které diagramy kreslit, UML říká jak, a užitečná odpověď bývá obojí.
6 min čteníC4 model3 z 3
Krátká odpověď
- C4 je konvence o tom, co kreslit na čtyřech úrovních přiblížení. UML je notace s definovanou sémantikou. Odpovídají na různé otázky.
- C4 diagram kontejnerů nakreslený notací UML komponent je současně správným C4 diagramem i legálním UML diagramem.
- UML volte, když má být diagram přesný nebo se má vyměňovat mezi nástroji; obyčejné C4 boxy volte, když jsou v publiku lidé, kteří notaci nečtou.
- Skutečným selháním není ani jedno: je jím diagram, jehož boxy znamenají různé věci, protože nikdo neřekl, o kterou úroveň či notaci jde.
01Nejsou to věci téhož druhu#
Tohle srovnání se obvykle rámuje jako volba, a proto zřídka přinese použitelnou odpověď. Jedno z těch dvou je konvence o tom, jaké diagramy má systém mít; druhé je jazyk s definovanou sémantikou prvků a vztahů. Srovnávat je má blíž ke srovnávání obsahu knihy s písmem než ke srovnávání dvou notací.
| Prvek | Notace | Co znamená |
|---|---|---|
| C4 | Čtyři úrovně, žádné předepsané tvary | Říká, co kreslit na které úrovni přiblížení a pro koho to je. Nedefinuje sémantiku prvků, takže není co formálně pokazit. |
| UML 2.5.1 | Čtrnáct typů diagramů, definované tvary | Říká, jak nakreslit strukturu nebo chování, s metamodelem, který dělá některé diagramy legální a jiné neplatné. O tom, jaké diagramy váš systém potřebuje, neříká nic. |
Právě tenhle rozdíl je důvod, proč se ty dva skládají místo toho, aby si konkurovaly. C4 nechává notaci otevřenou; UML je notace. Vyplnit jednu mezeru tou druhou je zamýšlené použití obou.
02Kreslení C4 úrovně v UML#
Mapování je natolik přímé, že to většina týmů dělá, aniž by si toho všimla. Kontextový diagram jsou aktéři a externí systémy kolem hranice subjektu, což je přesně rám diagramu případů užití. Diagram kontejnerů jsou UML komponenty s rozhraními mezi nimi. Diagram komponent je tatáž notace o úroveň níž.
Odměna za použití skutečné notace není estetická. UML model se exportuje do XMI a dá se zkontrolovat na legálnost; sada obdélníků ani jedno. Pokud se diagram bude předávat jinému týmu, jinému nástroji nebo auditorovi, záleží na tom. Pokud jde na wiki stránku pro lidi, kteří modelovací nástroj nikdy neotevřou, nezáleží.
03Co každý z nich vynechává#
C4 je celý o statické struktuře. Neexistuje C4 diagram pro sled zpráv, stavový automat ani obchodní proces - takže systém zdokumentovaný jen v C4 má čtyři obrázky toho, co existuje, a žádný o tom, co se děje. Tuhle mezeru vyplňují diagramy chování v UML a je to mezera skutečná: většina incidentů je o chování.
Mezera UML je opačná. Dá vám čtrnáct typů diagramů a žádné vodítko, který z nich váš systém potřebuje - a tak týmy skončí s diagramem tříd všeho a bez obrázku systému jako celku. Volba diagramu je skutečnou dovedností právě proto, že specifikace s ní nepomáhá. Čtyři úrovně C4 jsou hotovou odpovědí pro strukturní polovinu.
Po jednom řádku na každé
- 01C4 rozhoduje, které diagramy existují; UML rozhoduje, co na nich tvary znamenají.
- 02Diagram kontejnerů v notaci UML komponent je správný v obou zároveň.
- 03UML použijte tam, kde záleží na přesnosti nebo výměně mezi nástroji, obyčejné boxy tam, kde publikum notaci nečte.
- 04C4 nemá diagramy chování a UML nemá názor na rozsah - proto většina týmů skončí u obou.
04Časté dotazy#
Je C4 lepší než UML?
Otázka se nedá rozhodnout, protože nejde o stejný druh věci. C4 předepisuje čtyři diagramy a to, co na který patří; UML předepisuje tvary a jejich význam. Můžete se držet C4 a kreslit ho v UML, držet se C4 a kreslit obyčejné boxy, nebo používat UML úplně bez struktury C4.
Dá se C4 diagram nakreslit v UML?
Ano a často je to lepší volba. Diagram kontejnerů se čistě mapuje na UML komponenty s rozhraními, kontextový diagram na aktéry a hranici subjektu. Výsledek je současně legální UML i správné C4 - a dá se exportovat do XMI, což obyčejné boxy nikdy nedokážou.
Nahrazuje C4 typy diagramů UML?
Ne. C4 pokrývá statickou strukturu na čtyřech úrovních přiblížení a o chování neříká nic. Sekvenční diagramy, stavové automaty a diagramy aktivit nemají v C4 obdobu, takže systém zdokumentovaný jen v C4 nemá žádný popis toho, jak se věci v čase opravdu dějí.
Čím má začít nový tým?
Úrovněmi 1 a 2 modelu C4, nakreslenými v čemkoli, co už tým umí číst. Hodnota prvního měsíce je ve shodě na tom, z čeho systém sestává, a spor o notaci v tom bodě stojí víc, než přinese. Přesnost UML přidejte tam, kde se ukáže, že ji diagram potřebuje.
V této sérii
- 01Co je C4?
- 02Diagram kontejnerů
- 03C4 vs UML
Související články
Základy
Diagramy struktury
Základy
Základy
Praxe modelování