de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Einführung

Das C4-Modell, entwickelt von Simon Brown, bietet einen strukturierten Ansatz für die Darstellung von Software-Architekturen, der aus vier unterschiedlichen Ebenen besteht, die sich schrittweise auf die Architektur eines Software-Systems konzentrieren. Jede Ebene bietet eine einzigartige Perspektive und dient spezifischen Zwecken bei der Dokumentation und Kommunikation von Software-Architekturen. Lassen Sie uns die vier Ebenen des C4-Modells erkunden:

1. Systemkontext-Diagramm

Geltungsbereich: Ein einzelnes Software-System.

Hauptelemente: Das Software-System im Geltungsbereich.

Unterstützende Elemente: Personen (z. B. Benutzer, Akteure, Rollen, Persönlichkeiten) und Software-Systeme (externe Abhängigkeiten), die direkt mit dem Software-System im Geltungsbereich verbunden sind.

Zielgruppe: Alle, sowohl technische als auch nicht-technische Personen, innerhalb und außerhalb des Software-Entwicklungsteams.

Zweck: Ein Systemkontext-Diagramm bietet eine erste, hochgradige Übersicht über die Architektur eines Software-Systems. Es dient als Ausgangspunkt für die architektonische Dokumentation und bietet eine ganzheitliche Perspektive des Systems in seiner umfassenderen Umgebung. In diesem Diagramm wird das Software-System als zentrales Feld dargestellt, das von seinen Benutzern und anderen externen Systemen umgeben ist, mit denen es interagiert. Der Fokus liegt auf Personen und Software-Systemen, nicht auf technischen Details wie Technologien oder Protokollen.

Empfohlen für die meisten Teams: Ja.

Wichtige Merkmale:

  • Bietet einen Überblick über das System.
  • Betont die Interaktionen zwischen dem System und seinen Benutzern/externen Systemen.
  • Ideal zur Kommunikation mit nicht-technischen Stakeholdern.
  • Der Detailgrad wird bewusst niedrig gehalten.

2. Container-Diagramm

Geltungsbereich: Ein einzelnes Software-System.

Hauptelemente: Container innerhalb des Software-Systems im Geltungsbereich (z. B. serverseitige Webanwendungen, Single-Page-Anwendungen, Datenbanken usw.).

Unterstützende Elemente: Personen und Software-Systeme, die direkt mit den Containern verbunden sind.

Zielgruppe:Technische Personen innerhalb und außerhalb des Softwareentwicklungsteams, einschließlich Softwarearchitekten, Entwickler und Betriebs-/Support-Mitarbeiter.

Zweck:Das Container-Diagramm geht tiefer in das Software-System ein und konzentriert sich auf seine hochgradige Struktur und die Verteilung der Verantwortlichkeiten über Container. Container stellen eigenständig ausführbare oder bereitstellbare Einheiten dar, wie beispielsweise Webanwendungen oder Datenbanken. Dieses Diagramm hebt auch die wichtigsten technologischen Entscheidungen hervor und zeigt, wie Container miteinander kommunizieren. Es ist ein wertvolles Werkzeug sowohl für Entwickler als auch für Betriebs-/Support-Mitarbeiter.

Empfohlen für die meisten Teams: Ja.

Wichtige Merkmale:

  • Fokussiert sich auf die Architektur des Software-Systems.
  • Zeigt Container und ihre Interaktionen.
  • Hebt technologische Entscheidungen hervor.
  • Eignet sich für technische Stakeholder.
  • Berücksichtigt keine deployment-spezifischen Details wie Clustering oder Lastverteilung.

3. Komponentendiagramm

Umfang:Ein einzelner Container.

Hauptelemente:Komponenten innerhalb des betrachteten Containers.

Unterstützende Elemente:Container (innerhalb des betrachteten Software-Systems) sowie Personen und Software-Systeme, die direkt mit den Komponenten verbunden sind.

Zielgruppe:Softwarearchitekten und Entwickler.

Zweck:Das Komponentendiagramm bietet einen detaillierten Einblick in die interne Struktur eines Containers. Es zerlegt den Container in seine wichtigsten strukturellen Bausteine, die als Komponenten bezeichnet werden. Diese Komponenten sind für spezifische Aufgaben innerhalb des Containers verantwortlich und sind mit technologischen und Implementierungsdetails verbunden. Dieses Diagramm ist besonders nützlich für Softwarearchitekten und Entwickler, die die feineren Aspekte der Architektur des Containers verstehen müssen.

Empfohlen für die meisten Teams: Nein, erstellen Sie Komponentendiagramme nur, wenn sie einen Wert liefern, und überlegen Sie, ihre Erstellung für langfristige Dokumentation zu automatisieren.

Wichtige Merkmale:

  • Fokussiert sich auf die interne Struktur eines Containers.
  • Identifiziert Komponenten, ihre Verantwortlichkeiten und Implementierungsdetails.
  • Richtet sich an technische Stakeholder.
  • Nicht immer notwendig und sollte nur dann verwendet werden, wenn er Wert für die Dokumentation bringt.

4. Code-Diagramm

Geltungsbereich: Ein einzelner Bestandteil.

Hauptelemente: Der detaillierte Code und technischen Artefakte innerhalb eines bestimmten Bestandteils.

Unterstützende Elemente: Bestandteile (innerhalb des Container im Geltungsbereich), Container (innerhalb des Software-Systems im Geltungsbereich) sowie Personen und Software-Systeme, die direkt mit den Bestandteilen verbunden sind.

Zielgruppe: Hochtechnische Personen, typischerweise Entwickler und Personen, die tief in der Codebasis engagiert sind.

Zweck: Das letzte Level des C4-Modells, das Code-Diagramm, zoomt noch weiter hinein, um einen detaillierten Einblick in die Codebasis eines bestimmten Bestandteils zu bieten. Dieses Diagramm geht auf den tatsächlichen Quellcode, Klassensstrukturen und technischen Implementierungsdetails innerhalb des Bestandteils ein. Es ist besonders nützlich für Entwickler, die an einem bestimmten Bestandteil arbeiten oder dessen inneren Ablauf verstehen müssen.

Empfohlen für die meisten Teams: Selten in der Praxis verwendet. Es ist im Allgemeinen unüblich, Code-Diagramme zu erstellen, da die detaillierte Information in der Regel bereits in der Code-Dokumentation und den Entwicklungsumgebungen enthalten ist.

Wichtige Merkmale:

  • Fokussiert sich auf den tatsächlichen Quellcode und technischen Artefakten.
  • Bietet eine äußerst detaillierte Sicht auf die Implementierung eines Bestandteils.
  • Hauptsächlich für Entwickler gedacht, die am Code arbeiten.
  • Selten in der Praxis verwendet, da der hohe Detailgrad bedeutet, dass diese Informationen in der Regel bereits in der Codebasis selbst verfügbar sind.

Fazit

Die vier Ebenen des C4-Modells bieten eine strukturierte Hierarchie zur Dokumentation und Kommunikation von Softwarearchitekturen, beginnend mit einer übersichtlichen Darstellung im Systemkontext-Diagramm und schrittweise bis hin zum tatsächlichen Code im Code-Diagramm. Diese Diagramme richten sich an verschiedene Zielgruppen, von nicht-technischen Stakeholdern, die vom Überblick profitieren, bis hin zu hochtechnischen Entwicklern, die tiefgehende Einblicke auf Code-Ebene benötigen. Durch die Anwendung des C4-Modells können Softwarearchitekten und Entwicklungsteams komplexe Architekturkonzepte effektiv vermitteln und ein besseres Verständnis sowie eine bessere Zusammenarbeit innerhalb und außerhalb ihrer Organisationen fördern.