Zum Inhalt springen

Simon Brown

Schlüsselwerke: Software Architecture for Developers (2012), C4 Model (c4model.com)

Softwarearchitektur ist schwer zu kommunizieren, weil alle unter „Architekturdiagramm” etwas anderes verstehen. Das C4-Modell gibt vier klare Abstraktionsebenen:

  1. Context: Das System und seine externen Akteure
  2. Container: Deploybare Einheiten (Webserver, DB, Message Queue)
  3. Component: Interne Komponenten eines Containers
  4. Code: Klassen/Interfaces (optional, oft automatisch generiert)
  • Context-Diagramm als Gesprächsbasis: Wer nutzt das System? Mit welchen externen Systemen kommuniziert es? Das C4-Kontext-Diagramm beantwortet das in einer Seite.
  • Container-Diagramm für Deployment-Entscheidungen: Wie viele Services gibt es? Wie kommunizieren sie? Wer hostet was?
  • Keine Tool-Abhängigkeit: C4 funktioniert mit PlantUML, Structurizr, Mermaid, oder auf dem Whiteboard.

Architektur muss kommunizierbar sein. Nicht nur für Senior-Entwickler. Auch für Product Owner, neue Teammitglieder, Stakeholder. Das C4-Modell gibt einen gemeinsamen Rahmen, der skaliert — von High-Level bis Detail.

In Taskly: Der Nx-Dependency-Graph ist de facto das Container-Diagramm. Es fehlt nur die explizite C4-Dokumentation.