Archyno
C4Modellierungspraxis

C4 vs. UML

Der Vergleich wird als Entweder-oder gestellt und ist keines: C4 sagt, welche Diagramme zu zeichnen sind, UML sagt wie - und die brauchbare Antwort ist meist beides.

6 Min. LesezeitC4 model3 von 3

Die kurze Antwort

  • C4 ist eine Konvention darüber, was auf vier Zoomstufen zu zeichnen ist. UML ist eine Notation mit definierter Semantik. Sie beantworten verschiedene Fragen.
  • Ein C4-Containerdiagramm in UML-Komponentennotation ist gleichzeitig ein korrektes C4-Diagramm und ein legales UML-Diagramm.
  • Wählen Sie UML, wenn das Diagramm präzise sein oder zwischen Werkzeugen ausgetauscht werden muss; wählen Sie schlichte C4-Kästen, wenn im Publikum Menschen sitzen, die keine Notation lesen.
  • Das eigentliche Versagen ist keines von beiden: es ist ein Diagramm, dessen Kästen Verschiedenes bedeuten, weil niemand gesagt hat, welche Ebene oder welche Notation es war.

01Sie sind nicht dieselbe Art von Sache#

Der Vergleich wird meist als Wahl gerahmt, und deshalb liefert er selten eine brauchbare Antwort. Das eine ist eine Konvention darüber, welche Diagramme ein System haben sollte; das andere eine Sprache mit definierter Element- und Beziehungssemantik. Sie zu vergleichen ist näher daran, ein Inhaltsverzeichnis mit einer Schriftart zu vergleichen, als zwei Notationen miteinander.

ElementNotationWas es bedeutet
C4Vier Ebenen, keine vorgeschriebenen FormenSagt, was auf welcher Zoomstufe zu zeichnen ist und für wen. Definiert keine Elementsemantik, es gibt also nichts formal falsch zu machen.
UML 2.5.1Vierzehn Diagrammtypen, definierte FormenSagt, wie eine Struktur oder ein Verhalten zu zeichnen ist, mit einem Metamodell, das manche Diagramme legal und andere ungültig macht. Sagt nichts darüber, welche Diagramme Ihr System braucht.

Dieser Unterschied ist auch der Grund, warum sich die beiden ergänzen statt zu konkurrieren. C4 lässt die Notation offen; UML ist eine Notation. Die eine Lücke mit dem anderen zu füllen ist bei beiden der vorgesehene Gebrauch.

02Eine C4-Ebene in UML zeichnen#

Die Abbildung ist so direkt, dass die meisten Teams sie unbemerkt vornehmen. Ein Kontextdiagramm besteht aus Akteuren und Fremdsystemen um eine Subjektgrenze, also genau dem Rahmen eines Anwendungsfalldiagramms. Ein Containerdiagramm sind UML-Komponenten mit Schnittstellen dazwischen. Ein Komponentendiagramm ist dieselbe Notation eine Ebene tiefer.

Der Gewinn einer echten Notation ist nicht ästhetisch. Ein UML-Modell exportiert nach XMI und lässt sich auf Legalität prüfen; eine Menge Rechtecke kann beides nicht. Wenn das Diagramm an ein anderes Team, ein anderes Werkzeug oder einen Prüfer geht, zählt das. Wenn es auf eine Wiki-Seite für Leute geht, die nie ein Modellierungswerkzeug öffnen, zählt es nicht.

03Was jedes von beiden auslässt#

C4 handelt ausschließlich von statischer Struktur. Es gibt kein C4-Diagramm für eine Nachrichtenfolge, einen Zustandsautomaten oder einen Geschäftsprozess - ein nur in C4 dokumentiertes System hat also vier Bilder davon, was existiert, und keines davon, was geschieht. Diese Lücke füllen UMLs Verhaltensdiagramme, und sie ist real: die meisten Vorfälle drehen sich um Verhalten.

UMLs Lücke ist die umgekehrte. Es gibt Ihnen vierzehn Diagrammtypen und keine Hilfe dabei, welche davon Ihr System braucht - so landen Teams bei einem Klassendiagramm von allem und keinem Bild des Systems als Ganzes. Ein Diagramm zu wählen ist genau deshalb eine echte Fähigkeit, weil die Spezifikation dabei nicht hilft. C4s vier Ebenen sind eine fertige Antwort für die strukturelle Hälfte.

In je einer Zeile

  1. 01C4 entscheidet, welche Diagramme es gibt; UML entscheidet, was die Formen darauf bedeuten.
  2. 02Ein Containerdiagramm in UML-Komponentennotation ist in beidem zugleich korrekt.
  3. 03Nehmen Sie UML, wo Präzision oder Werkzeugaustausch zählt, schlichte Kästen, wo das Publikum keine Notation liest.
  4. 04C4 hat keine Verhaltensdiagramme und UML keine Meinung zum Umfang - deshalb enden die meisten Teams bei beidem.

04Häufige Fragen#

Ist C4 besser als UML?

Die Frage lässt sich nicht beantworten, weil es nicht dieselbe Art von Sache ist. C4 schreibt vier Diagramme vor und was auf welches gehört; UML schreibt Formen und deren Bedeutung vor. Sie können C4 folgen und es in UML zeichnen, C4 folgen und schlichte Kästen zeichnen, oder UML ganz ohne C4-Struktur verwenden.

Kann man ein C4-Diagramm in UML zeichnen?

Ja, und oft ist das die bessere Wahl. Ein Containerdiagramm bildet sauber auf UML-Komponenten mit Schnittstellen ab, ein Kontextdiagramm auf Akteure und eine Systemgrenze. Das Ergebnis ist zugleich legales UML und korrektes C4 - und es lässt sich nach XMI exportieren, was schlichte Kästen nie können.

Ersetzt C4 die UML-Diagrammarten?

Nein. C4 deckt statische Struktur auf vier Zoomstufen ab und sagt nichts über Verhalten. Sequenz-, Zustands- und Aktivitätsdiagramme haben kein C4-Gegenstück, also hat ein nur in C4 dokumentiertes System keine Beschreibung davon, wie irgendetwas über die Zeit tatsächlich abläuft.

Womit sollte ein neues Team anfangen?

Mit den C4-Ebenen 1 und 2, gezeichnet in allem, was das Team bereits lesen kann. Der Wert des ersten Monats liegt in der Einigung darüber, woraus das System besteht, und ein Notationsstreit kostet an diesem Punkt mehr, als er einbringt. UML-Präzision kommt dort dazu, wo ein Diagramm sie nachweislich braucht.

In dieser Reihe

Passend dazu

Alle Artikel