Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Lire en français

Kapitel 4 von 12 · Mittelstufe

Architektur dokumentieren und kommunizieren

Dieses Kapitel zeigt, wie man eine Softwarearchitektur so beschreibt und kommuniziert, dass die richtigen Menschen sie verstehen und die Beschreibung zutreffend bleibt. Es behandelt, für wen Dokumentation gedacht ist und wie viel man schreiben sollte, Sichten und Blickwinkel nach ISO/IEC/IEEE 42010, 4+1 und Rozanski und Woods, das C4-Modell, die UML-Diagramme, die Architekten noch verwenden, Architecture Decision Records, arc42, Diagrams as Code und die Präsentation von Architektur für verschiedene Zielgruppen. Es ist durchgehend praxisnah, nutzt eine Essenslieferplattform als durchgängiges Beispiel und richtet sich an Entwickler, Architekten und technische Leitungen.

Videoeinführung in Kapitel 4

6 Min. · auf Englisch gesprochen, mit Untertiteln
Nur anhören (Audio)
Transkript lesen

Willkommen zu Kapitel 4: Architektur dokumentieren und kommunizieren. Dieses Kapitel zeigt, wie man eine Softwarearchitektur so beschreibt, dass die richtigen Menschen sie verstehen und die Beschreibung zutreffend bleibt. Es ist durchgehend praxisnah und nutzt eine Essenslieferplattform als durchgängiges Beispiel, sodass Sie jede Technik am selben System vergleichen können.

Eine Architektur, die nur in den Köpfen weniger Menschen existiert, ist fragil. Niemand außerhalb des Raums kann sie prüfen, Neue im Team können sie nicht erlernen, ein Prüfer kann sie nicht kontrollieren, und sie geht mit den Menschen, die sie kennen. Bei Dokumentation kann man leicht in beide Richtungen danebenliegen. Teams, die zu wenig schreiben, verlieren die Gründe hinter ihrer Struktur und führen immer wieder dieselben Diskussionen. Teams, die zu viel schreiben, produzieren Wikis, denen niemand traut. Der Leitgedanke des Kapitels ist also einfach: Schreiben Sie für den Leser. Entscheiden Sie, wer jedes Stück Dokumentation nutzt und was diese Person braucht, schreiben Sie das knapp und präzise auf, und schreiben Sie nichts anderes.

Das Kapitel richtet sich an Entwickler, Architekten und technische Leitungen. Es baut auf Kapitel 1 bis 3 auf: auf den Entscheidungen und Strukturen, die nun beschrieben werden müssen. Die Abschnitte eins Punkt fünf zu Stakeholdern und Anliegen und eins Punkt sechs zu Entscheidungen und Abwägungen sind besonders nützliche Grundlagen. Und es führt zu Kapitel 5, das den Katalog der Architekturstile beginnt, beschrieben mit den Werkzeugen, die Sie hier lernen.

Das Kapitel hat acht Abschnitte. Abschnitt vier Punkt eins fragt, für wen Dokumentation gedacht ist und wie man entscheidet, was es verdient, aufgeschrieben zu werden. Die kurze Antwort: Schreiben Sie von Hand auf, was der Code nicht sagen kann, und generieren Sie, was der Code bereits aussagt. Abschnitt vier Punkt zwei führt den zentralen Gedanken ein, dass ein einzelnes Diagramm nie genügt. Eine Architektur wird durch mehrere Sichten beschrieben, von denen jede die Anliegen bestimmter Stakeholder beantwortet. Abschnitt vier Punkt drei macht daraus den am weitesten verbreiteten praktischen Ansatz, Simon Browns C4-Modell, mit vier Zoomstufen und einigen Notationsregeln, die Diagramme selbsterklärend machen. Abschnitt vier Punkt vier behandelt die Teile der Unified Modeling Language, kurz UML, die Architekten noch verwenden, etwa Sequenz- und Zustandsdiagramme, und wann sich ihre Präzision lohnt.

Dieses Diagramm aus Abschnitt vier Punkt eins hilft Ihnen zu entscheiden, wie Sie eine Information dokumentieren. Die senkrechte Achse fragt, ob sie sich aus dem Code ableiten lässt. Die Achse unten fragt, wie oft sie sich ändert. Oben links: Dinge, die der Code nicht sagen kann und die sich selten ändern. Kontext und Abgrenzung, Qualitätsziele und Entscheidungen mit ihren Gründen. Schreiben Sie diese von Hand auf, und bewahren Sie sie auf. Oben rechts: Dinge, die sich öfter ändern, etwa Container- und Deployment-Sichten. Halten Sie sie neben dem Code, und prüfen Sie sie bei jeder Änderung. Unten rechts: was der Code bereits aussagt und sich oft ändert, etwa Klassendiagramme und API-Referenzen. Generieren Sie diese in der Pipeline. Schreiben Sie sie nie von Hand. Und unten links: Dinge, die man im Code lesen kann und die sich selten ändern, wie der Technologie-Stack oder die Build-Befehle. Ein kurzer Verweis in einer README-Datei genügt.

Hier ist die erste Ebene des C4-Modells aus Abschnitt vier Punkt drei: ein Systemkontextdiagramm für die Essenslieferplattform. Oben stehen die drei Arten von Menschen, die sie nutzen: Kunden, Restaurantpersonal und Kuriere. Jeder Pfeil ist mit dem beschriftet, was sie tun. In der Mitte steht die Plattform selbst, als ein einziger Kasten. Sie nimmt Bestellungen an, kassiert die Zahlung, weist Kuriere zu und hält alle auf dem Laufenden. Darunter stehen die externen Systeme, von denen sie abhängt: ein Zahlungsanbieter, ein Kartendienst und Push-Dienste. Auf dieser Ebene gibt es keine Technologien oder Protokolle. Die kommen erst auf der nächsten Zoomstufe, den Containern. Und beachten Sie die Legende. Jedes C4-Diagramm hat einen Titel und eine Legende, damit es sich selbst erklärt.

Diagramme zeigen Struktur, aber sie zeigen selten das Warum. Abschnitt vier Punkt fünf behandelt Architecture Decision Records, kurz ADRs: kurze, datierte Aufzeichnungen zu je einer Entscheidung, mit einem vollständig ausgearbeiteten Record für die Lieferplattform. Abschnitt vier Punkt sechs zeigt, wie eine Vorlage wie arc zweiundvierzig der ganzen Beschreibung eine Standardgliederung gibt, sodass Schreibende wissen, was sie abdecken, und Lesende, wo sie nachsehen. Abschnitt vier Punkt sieben geht das Problem an, an dem die meiste Dokumentation scheitert: das Veralten. Er behandelt Diagramme als Text, das Veröffentlichen von Dokumentation aus der Build-Pipeline und die Gewohnheiten der Verantwortung, die sie zutreffend halten. Abschnitt vier Punkt acht wendet sich von Dokumenten den Menschen zu: die Botschaft auf Führungskräfte, Entwickler, Betrieb, Sicherheitsfachleute und Prüfer zuschneiden, Abwägungen erklären und Konsens herstellen, wenn Menschen uneins sind.

Jede Technik in diesem Kapitel dient einem Ziel: einem gemeinsamen, zutreffenden Verständnis des Systems unter den Menschen, die es bauen, betreiben, bezahlen und von ihm abhängen. Kleine, aktuelle Dokumentation mit klarer Verantwortung, die neben dem Code liegt, schlägt ein umfassendes Dokument, dem niemand traut. Wenn Sie sich also eine Frage aus diesem Kapitel merken, dann diese: Wer wird das lesen, und was wird er damit tun?

Sie können die Abschnitte der Reihe nach lesen oder gezielt die Technik aufschlagen, die Sie heute brauchen. Das ganze Kapitel zu lesen dauert etwa drei Stunden. Vergleichen Sie dabei, wie jede Technik dieselbe Essenslieferplattform beschreibt: als Kontextdiagramm, Containerdiagramm, Sequenz- und Zustandsdiagramme, Entscheidungsdokument und einseitige Zusammenfassung. Jeder Abschnitt endet mit einigen Fragen zur Selbstkontrolle. Beantworten Sie sie im Kopf, bevor Sie nachsehen. Wenn Sie so weit sind, machen Sie den freiwilligen Kapiteltest: zwanzig Multiple-Choice-Fragen und zwei schriftliche Antworten, in etwa fünfundvierzig Minuten. Die Bestehensgrenze liegt bei achtzig Prozent.

Das ist die Übersicht über Kapitel 4. Beginnen Sie mit Abschnitt vier Punkt eins, in dem wir uns ansehen, für wen Dokumentation gedacht ist und wie viel davon sich zu schreiben lohnt. Bis gleich.

Kapitel herunterladen (PDF)In der App lesen

Auf einen Blick

Das lernen Sie

  • Erklären, wer Architekturdokumentation liest, was jede Leserin und jeder Leser braucht und wie man entscheidet, was sich festzuhalten lohnt.
  • Stakeholder, Anliegen, Blickwinkel, Sichten und Modellarten nach ISO/IEC/IEEE 42010:2022 unterscheiden.
  • Vergleichen Sie das 4+1-Sichtenmodell, die Blickwinkel und Perspektiven von Rozanski und Woods und die drei Sichtkategorien des SEI.
  • Zeichnen Sie Systemkontext-, Container- und Komponentendiagramme, die den Notationsregeln von C4 folgen.
  • Lesen und zeichnen Sie die UML-Sequenz-, Zustands-, Komponenten-, Deployment-, Aktivitäts- und Klassendiagramme, die Architekten verwenden.
  • Schreiben Sie Architecture Decision Records und verwalten Sie ihren Lebenszyklus in einem Entscheidungsprotokoll.
  • Wenden Sie arc42 und Diagrams-as-Code-Praktiken an, damit die Dokumentation nützlich und aktuell bleibt.
  • Passen Sie eine Architekturerklärung an Führungskräfte, Entwickler, Betrieb, Sicherheitsfachleute und Prüfer an.

Bevor Sie beginnen

Kapitel 1 bis 3, insbesondere Stakeholder und Anliegen (Abschnitt 1.5) sowie Entscheidungen und Abwägungen (Abschnitt 1.6).

Zeit

Etwa 3 Stunden Lesezeit; 45 Minuten für den Test.

Schlüsselbegriffe

Architekturbeschreibung · Sicht · Blickwinkel (Viewpoint) · Anliegen · 4+1-Sichtenmodell · C4-Modell · Container (C4) · UML · Sequenzdiagramm · Zustandsdiagramm · Architecture Decision Record · arc42 · Diagrams as Code · Docs as Code

Warum das Dokumentieren von Architektur zur Arbeit gehört

Eine Architektur, die nur in den Köpfen weniger Menschen existiert, ist fragil. Niemand außerhalb des Raums kann sie prüfen, die nächste Person im Team kann sie nicht erlernen, ein Prüfer kann sie nicht kontrollieren, und sie geht mit den Menschen, die sie im Kopf haben. Kapitel 1 hat eine Architektur (was das System tatsächlich ist) von einer Architekturbeschreibung unterschieden (den Dokumenten, Diagrammen und Aufzeichnungen, über die Menschen sie teilen). In diesem Kapitel geht es um Letztere: wie man Beschreibungen erstellt, die tatsächlich gelesen werden, die zutreffend bleiben, während sich das System ändert, und die helfen, Entscheidungen zu treffen.

Das ist eher eine praktische als eine theoretische Fähigkeit, und man kann leicht in beide Richtungen danebenliegen. Teams, die zu wenig schreiben, verlieren die Gründe hinter ihrer Struktur und führen immer wieder dieselben Diskussionen. Teams, die zu viel schreiben, produzieren Wikis, denen niemand traut. Der Leitgedanke des Kapitels stammt aus Documenting Software Architectures: Views and Beyond des SEI: Schreiben Sie für den Leser. Entscheiden Sie, wer jedes Stück Dokumentation nutzen wird und was diese Person daraus braucht, schreiben Sie genau das knapp und präzise auf, und schreiben Sie nichts anderes.

Ein durchgängiges Beispiel zieht sich durch das ganze Kapitel: eine Essenslieferplattform mit einer Kunden-App, einer Restaurant-App und einer Kurier-App, Services für Bestellungen, Disposition und Benachrichtigungen sowie Kartenzahlungen über einen externen Anbieter. Sie sehen sie als Kontextdiagramm, als Containerdiagramm, als Komponentendiagramm, als UML-Sequenz- und Zustandsdiagramme, als Entscheidungsdokument und als einseitige arc42-Zusammenfassung, sodass Sie jede Technik am selben System vergleichen können.

Beschreiben und zeichnen: Abschnitte 4.1 bis 4.4

Die ersten vier Abschnitte behandeln, was zu beschreiben ist und wie man es zeichnet. Abschnitt 4.1 fragt, für wen Dokumentation gedacht ist, was das Agile Manifest darüber sagt und was nicht, wie man entscheidet, was es verdient, aufgeschrieben zu werden, und welche Anti-Patterns man vermeiden sollte. Die kurze Antwort: Schreiben Sie von Hand auf, was der Code Ihnen nicht sagen kann (Kontext, Qualitätsziele, Entscheidungen und ihre Gründe), und generieren Sie, was der Code bereits aussagt.

Abschnitt 4.2 führt den zentralen Gedanken ein, dass ein einzelnes Diagramm nie genügt. Eine Architektur wird durch mehrere Sichten beschrieben, von denen jede die Anliegen bestimmter Stakeholder beantwortet und jede nach einem Blickwinkel aufgebaut ist. Der Abschnitt behandelt das konzeptionelle Modell von ISO/IEC/IEEE 42010:2022, Kruchtens 4+1-Sichtenmodell, die Blickwinkel und Perspektiven von Rozanski und Woods sowie die Kategorien Modul, Komponenten und Konnektoren und Zuordnung des SEI und zeigt, wie man die minimale Menge an Sichten wählt, die ein System braucht.

Abschnitt 4.3 macht aus dieser Theorie den am weitesten verbreiteten praktischen Ansatz, Simon Browns C4-Modell: vier Zoomstufen (Systemkontext, Container, Komponente, Code), einige ergänzende Diagramme und eine kurze Reihe von Notationsregeln, die Diagramme selbsterklärend machen. Abschnitt 4.4 behandelt die Teile der UML, die Architekten noch verwenden, vor allem Sequenz-, Zustands-, Komponenten-, Deployment-, Aktivitäts- und kleine Klassendiagramme, und wann sich die Präzision der UML lohnt.

Entscheidungen, Vorlagen, Werkzeuge und Menschen: Abschnitte 4.5 bis 4.8

Diagramme zeigen Struktur; sie zeigen selten das Warum. Abschnitt 4.5 behandelt Architecture Decision Records: Michael Nygards Format von 2011, Alternativen wie MADR und Y-Statements, den Lebenszyklus eines Records von „vorgeschlagen“ bis „ersetzt“ und einen vollständig ausgearbeiteten Record für die Lieferplattform. Abschnitt 4.6 zeigt, wie eine Vorlage wie arc42 der gesamten Beschreibung eine Standardgliederung gibt, sodass Schreibende wissen, was sie abdecken müssen, und Lesende wissen, wo sie nachsehen müssen, und wie man sie für ein kleines System schlank einsetzt.

Abschnitt 4.7 befasst sich mit dem Problem, an dem die meiste Dokumentation scheitert: dem Veralten. Er behandelt das Schreiben von Diagrammen als Text mit PlantUML, Mermaid, Structurizr DSL und D2, den Unterschied zwischen Zeichen- und Modellierungswerkzeugen, das Veröffentlichen von Dokumentation aus der Build-Pipeline sowie die Gewohnheiten bei Verantwortung und Review, die Dokumentation zutreffend halten. Abschnitt 4.8 weitet den Blick von Dokumenten auf Menschen: die Botschaft auf Führungskräfte, Entwickler, Betriebsfachleute, Sicherheitsteams und Prüfer zuschneiden, Abwägungen erklären, einer Anfrage durch ein System folgen, Designdokumente und RFC-Prozesse, in einem Review präsentieren und Konsens herstellen, wenn Menschen unterschiedlicher Meinung sind.

Der eine Gedanke zum Mitnehmen

Jede Technik in diesem Kapitel dient einem Ziel: einem gemeinsamen, zutreffenden Verständnis des Systems unter den Menschen, die es bauen, betreiben, bezahlen und von ihm abhängen. Ein Diagramm, ein Entscheidungsdokument oder eine Vorlage lohnt sich nur, wenn ein echter Leser es braucht, und nur so lange, wie jemand es aktuell hält. Kleine, aktuelle Dokumentation mit klarer Verantwortung, die neben dem Code liegt, schlägt ein umfassendes Dokument, dem niemand traut. Wenn Sie sich eine einzige Frage aus diesem Kapitel merken, dann diese: Wer wird das lesen, und was wird er damit tun?

Die 8 Abschnitte

4.1 · Mittelstufe · 18 Min.Warum dokumentierenWer Architekturdokumentation liest und was jeder Leser braucht, was das Agile Manifest wirklich über Dokumente sagt, wie man entscheidet, was es wert ist, aufgeschrieben zu werden, und die Regeln, die Dokumentation nützlich halten.Lesen →4.2 · Mittelstufe · 20 Min.Sichten und BlickwinkelWarum ein Diagramm nie genügt: das Modell aus Stakeholdern, Anliegen, Blickwinkeln und Sichten nach ISO/IEC/IEEE 42010, Kruchtens 4+1, die Blickwinkel und Perspektiven von Rozanski und Woods und wie man die Sichten wählt, die ein System braucht.Lesen →4.3 · Mittelstufe · 20 Min.Das C4-ModellSimon Browns C4-Modell in der Praxis: die vier Zoomstufen, was ein Container wirklich ist, die Notationsregeln, die Diagramme selbsterklärend machen, und eine Essenslieferplattform, gezeichnet auf Kontext-, Container- und Komponentenebene.Lesen →4.4 · Mittelstufe · 22 Min.UML-GrundlagenDer heutige Stellenwert der UML, Fowlers Modi Skizze, Bauplan und Programmiersprache und die Notationsgrundlagen der sechs Diagramme, die Architekten noch verwenden, jeweils für die Essenslieferplattform gezeichnet.Lesen →4.5 · Mittelstufe · 22 Min.EntscheidungsdokumentationWie man bedeutsame Entscheidungen so festhält, dass ihre Gründe erhalten bleiben: Nygards Format, MADR und Y-Statements, Status und Ablösung, wo man die Aufzeichnungen aufbewahrt, was eine verdient, Review und Anti-Patterns.Lesen →4.6 · Mittelstufe · 20 Min.arc42 und VorlagenDie zwölf Abschnitte von arc42, was in jeden gehört und wie viel man für kleine und große Systeme schreibt, ein einseitiges arc42-lite-Beispiel, die Vorlagen des SEI und nach IEEE 1016 und die Konformität mit ISO/IEC/IEEE 42010.Lesen →4.7 · Mittelstufe · 22 Min.Diagrams as CodeDiagramme als Text schreiben mit PlantUML, Mermaid, Structurizr DSL und D2, Zeichen- gegenüber Modellierungswerkzeugen, Dokumentation in der Pipeline bauen und die Gewohnheiten, die sie zutreffend halten.Lesen →4.8 · Mittelstufe · 22 Min.KommunizierenArchitektur auf Führungskräfte, Produktmanager, Entwickler, Betrieb, Sicherheit und Prüfer zuschneiden: Abwägungen erklären, einseitige Zusammenfassungen, einer Anfrage folgen, Designdokumente und RFCs, Reviews, Diagrammgestaltung und Konsensbildung.Lesen →

Kapiteltest

Prüfen Sie Ihr Verständnis von Kapitel 4

Optional: 20 Multiple-Choice-Fragen und 2 kurze schriftliche Antworten, jedes Mal neu aus einem Pool von 72 Fragen gezogen. Bestehensgrenze 80 %. Wer jeden Kapiteltest und anschließend die Abschlussbewertung besteht, erhält das Be Wise Abschlusszertifikat.

Den Test zu Kapitel 4 in der App ablegen

Weiterführende Literatur