MDG Technology for C4

Einleitung

Es wurden viele Architekturdefinitionssprachen entwickelt, die zur formalen Definition der Architektur eines Systems verwendet werden können. Für manche ist es jedoch eine größere Herausforderung als erwartet, mit der Modellierung zu beginnen und sich dabei strikt an eine Modellierungssprache zu halten, wenn sie wenig oder gar keine Erfahrung mit der Modellierung haben.

Die Gründe dafür sind vielfältig und reichen von den typischen Zeit- und Budgetproblemen in der Praxis bis hin zum fehlenden Nutzen einer formalen Beschreibung eines Systems, die nicht unbedingt den Quellcode widerspiegelt oder mit diesem verbunden ist.

Bekannte Notationen wie UML, SysML oder ArchiMate stellen eine ähnliche Herausforderung dar. Sie sind leistungsfähig und erfüllen alle relevanten Aspekte von Software, Systemen oder IT-Infrastruktur, aber die Teams kennen diese Notationen oft nicht gut genug und halten sie daher für zu kompliziert oder inkompatibel mit agilen Ansätzen… und sie verfügen möglicherweise nicht über die erforderlichen Werkzeuge.

Das C4-Modell

Das C4-Modell ist ein leichtgewichtiger Ansatz, der von Simon Brown entwickelt wurde, um Softwareentwicklungsteams dabei zu helfen, die Softwarearchitektur zu beschreiben und zu kommunizieren, und zwar sowohl während der Entwurfssitzungen im Vorfeld als auch bei der nachträglichen Dokumentation einer bestehenden Code-Basis. Es ist ein Weg, um Karten Ihres Codes auf verschiedenen Detailebenen zu erstellen, so wie Sie etwas wie Google Maps verwenden würden, um ein Gebiet, das Sie interessiert, zu vergrößern oder zu verkleinern.

Um diese Karten Ihres Codes zu erstellen, benötigen wir zunächst eine gemeinsame Reihe von Abstraktionen, um eine Sprache zu schaffen, die wir zur Beschreibung der statischen Struktur eines Softwaresystems verwenden können.

C4-Diagramme

Das C4-Modell betrachtet die statischen Strukturen eines Softwaresystems in Form von Containern, Komponenten und Klassen (oder Code). Die Visualisierung dieser Abstraktionshierarchie erfolgt durch die Erstellung einer Sammlung von Kerndiagrammen, nämlich Context, Container, Component und optional Class. Daher hat das C4-Modell auch seinen Namen. Darüber hinaus können Sie die C4-Kerndiagramme durch andere Diagramme ergänzen, um auch andere Aspekte darzustellen.

Der Ansatz von LieberLieber kombiniert die Vorteile der Modellierung in Enterprise Architect mit dem einfach eleganten Konzept des C4-Modells. Die Stärke eines Modells kommt dann zum Tragen, wenn Sie das Softwaresystem umbenennen müssen. Sie müssen es nur im Modell umbenennen und alle Vorkommen des Softwaresystems in allen Diagrammen werden ebenfalls umbenannt.

Hauptmerkmale der MDG Technology for C4

R

Vordefinierte Modellstruktur

R

Einfache Notation

R

C4-Diagramme mit entsprechenden Toolboxen

R

Verschiedene Ansätze für Traceability-Abhängigkeiten

LieberLieber MDG Technology for C4 basiert auf C4 und bietet eine vordefinierte Modellstruktur mit Kern- und ergänzenden C4-Diagrammen und relevanten Elementen. Damit können Sie Diagramme auf verschiedenen Abstraktionsebenen erstellen, um die statische Struktur und das Verhalten Ihres Systems zu visualisieren.

C4 und andere Modelle 

Eine gute Nachricht für alle, die ihr C4-Modell mit Modellierungsstandards wie der UML kombinieren möchten. Durch die Aktivierung einer bestimmten MDG-Technologie in Enterprise Architect ist es möglich, verschiedene Modelltypen miteinander zu verknüpfen und so eine umfassende Nachvollziehbarkeit zu schaffen, die es Ihnen ermöglicht, die Beziehungen und Abhängigkeiten zwischen C4-Modellen und anderen Modellierungssprachen zu verfolgen.

Spezifische Diagrammtypen

Beim Hinzufügen von Diagrammen zu Ihren Modellen im Projekt über die Schaltfläche „Neues Diagramm“ in der Symbolleiste oder den Kontextmenüeintrag „Hinzufügen -> Diagramm hinzufügen …“ gelangen Sie zum Dialogfeld „Neues Diagramm“, das nun einen neuen Typ „C4“ enthält.

C4 Strukturelle Diagramme

R

Ein Kontextdiagramm hilft Ihnen, die folgenden Fragen zu beantworten. Was ist das Softwaresystem, das wir bauen (oder gebaut haben)? Von wem wird es benutzt? Wie fügt es sich in die bestehende Umgebung ein?

R

Ein Containerdiagramm zeigt den Aufbau der Softwarearchitektur und die Verteilung der Zuständigkeiten auf. Es zeigt auch die wichtigsten Technologien, wie sie verwendet werden und wie die Container miteinander kommunizieren.

R

Ein Komponentendiagramm zeigt die Komponenten, die sich in jedem der im Containerdiagramm definierten Container befinden.

R

Ein Klassendiagramm zeigt die Interna einer einzelnen, im Komponentendiagramm definierten Komponente.

C4 Context

C4 Container

C4 Component

C4 Class

C4-Modell ist kompatibel mit arc42

Das C4-Modell ist mit der arc42-Dokumentationsvorlage wie folgt kompatibel:

– Kontext und Umfang => Systemkontextdiagramm
– Baukastensicht (Ebene 1) => Container-Diagramm
– Baukastensicht (Ebene 2) => Komponentendiagramm
– Bausteinansicht (Ebene 3) => Klassendiagramm