Be Software Architecture Wise
Be Wise Apps

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

Abschnitt 4.2 von 4.8 · Mittelstufe · 20 Min. Lesezeit

Sichten und Blickwinkel: ISO/IEC/IEEE 42010, 4+1 und Rozanski und Woods

Videolektion

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

Kein einzelnes Diagramm kann ein reales System beschreiben. In dieser Lektion lernen Sie, wie Architekten ein System durch mehrere Sichten beschreiben und wie man nur die Sichten wählt, die tatsächlich gebraucht werden.

Denken Sie noch einmal an ein Haus. Wer kauft, sieht sich den Grundriss an. Die Elektrikerin sieht sich den Schaltplan an, der Installateur den Rohrleitungsplan. Das Bauamt sieht sich die Zeichnung der Hausfront an. Jede Zeichnung lässt das meiste absichtlich weg, damit sie die Fragen einer Person klar beantworten kann. Bringt man alles auf eine Seite, erhält man das bekannte Architekturposter: Dutzende Kästen und Linien mit sechs verschiedenen Bedeutungen.

Zwei Begriffe sind hier wichtig. Eine Sicht stellt ein System aus der Perspektive bestimmter Anliegen dar. Ein Blickwinkel ist die wiederverwendbare Menge von Konventionen für eine Art von Sicht: die Anliegen, die er erfasst, seine typischen Stakeholder und die zu verwendenden Notationen. Ein Blickwinkel ist wie eine Kartenart. Eine Straßenkarte ist durch ihre Konventionen und ihre Nutzer definiert, die Autofahrer. Eine Sicht ist eine bestimmte Karte nach diesen Konventionen, etwa die Straßenkarte von Schottland.

Die internationale Norm für Architekturbeschreibung, ISO/IEC/IEEE 42010, gibt diesen Begriffen präzise Bedeutungen. Oben hat ein Betrachtungsgegenstand, etwa die Lieferplattform, eine Architektur, und eine Architekturbeschreibung drückt sie aus. Innerhalb der Beschreibung haben Stakeholder Anliegen. Anliegen sind das Scharnier des ganzen Modells. Ein Blickwinkel erfasst Anliegen und regelt eine Sicht. Die Sicht behandelt diese Anliegen für dieses bestimmte System. Eine Sicht besteht aus Sichtkomponenten wie Diagrammen, Tabellen und Modellen. Jede wird von einer Modellart geregelt, etwa einem Sequenzdiagramm, die der Blickwinkel vorschreibt. Auch Entscheidungen und ihre Begründung gehören zur Beschreibung und betreffen Anliegen. Und Korrespondenzen verbinden Elemente über Sichten hinweg: Dieser Container läuft auf jenem Cluster in der Deployment-Sicht.

Der erste weit verbreitete Ansatz mit mehreren Sichten war Philippe Kruchtens Vier-plus-eins-Sichtenmodell, veröffentlicht 1995. Die logische Sicht beschreibt die Funktionalität, die das System Endnutzern bietet: seine Kernabstraktionen und ihre Beziehungen. Die Entwicklungssicht zeigt, wie die Software für Programmierer organisiert ist: Module, Schichten und Subsysteme. Die Prozesssicht behandelt Laufzeitanliegen: Prozesse, Threads, Nebenläufigkeit und Performance. Die physische Sicht bildet die Software auf Rechner und Netzwerke ab. Und das Plus eins sind die Szenarien: einige wichtige Anwendungsfälle, jeder durch alle vier Sichten verfolgt. Sie sind der am häufigsten vergessene und wohl wertvollste Teil, denn ein echtes Szenario durchzugehen deckt Lücken auf, die ordentliche Sichten verbergen können.

Rozanski und Woods bieten einen Katalog von sieben Blickwinkeln für große Informationssysteme, vom Kontext bis zum Betrieb: wie das System in der Produktion installiert, überwacht und unterstützt wird. Sie ergänzen Perspektiven. Sicherheit oder Performance ist keine weitere Sicht zum Zeichnen. Sie ist eine Menge von Fragen und Prüfungen, angewendet auf jede Sicht, denn Qualitäten entstehen aus dem ganzen System. Das Software Engineering Institute, kurz SEI, gruppiert Sichten in drei Kategorien. Modulsichten zeigen Codeeinheiten. Komponenten-und-Konnektoren-Sichten zeigen, was läuft und wie es interagiert. Zuordnungssichten bilden Software auf Infrastruktur, Dateien und Teams ab. Jede Kategorie beantwortet Fragen, die die anderen nicht beantworten können, also enthält ein vollständiger Dokumentationssatz mindestens eine Sicht aus jeder.

Wie wählt man aus? Listen Sie Ihre Stakeholder und ihre Anliegen auf, und bilden Sie jedes Anliegen auf eine Sicht ab. Behalten Sie dann die kleinste Menge, die sie beantwortet, denn jede Sicht muss aktuell gehalten werden. Für die Essenslieferplattform dient eine Kontextsicht allen. Ein Containerdiagramm deckt die Laufzeitstruktur ab, mit Komponentendiagrammen nur für den Bestell- und den Dispositionsservice, die am komplexesten sind und sich am meisten ändern. Eine Informationssicht kam nur hinzu, weil die Tabelle zeigte, dass die Anliegen des Datenschutzbeauftragten sonst unbehandelt geblieben wären. Ohne die Tabelle wäre sie übersehen worden. Ein Deployment-Diagramm für die Produktion markiert die Kartendatengrenze und die Netzwerkzonen. Die Modulsicht wird überhaupt nicht von Hand gezeichnet. Sie wird aus dem Code generiert. Und vier Sequenzdiagramme dienen als Szenarien, während Sicherheit und Verfügbarkeit in jeder Sicht geprüft werden. Sieben Artefakte, die meisten davon einzelne Diagramme, beantworten die Anliegen aller sieben Stakeholder-Gruppen.

Achten Sie auf drei häufige Fehler. Der erste ist das Vermischen von Kategorien: Codepakete, laufende Services und Server auf einer Fläche, mit Linien, die Verschiedenes bedeuten. Der zweite ist, Sichten zu zeichnen, weil ein Framework sie auflistet, während die eine Sicht fehlt, die das Betriebsteam braucht. Der dritte sind Sichten, die einander widersprechen: Die Containersicht zeigt sechs Services, die Deployment-Sicht aber fünf. Korrespondenzen festzuhalten und Reviews fangen das ab.

Der vollständige Abschnitt vergleicht die Ansätze nebeneinander und gibt ein schrittweises Vorgehen zur Wahl von Sichten. Als Nächstes machen wir daraus in Abschnitt vier Punkt drei den am weitesten verbreiteten praktischen Ansatz: das C4-Modell. Bis gleich.

Was Sie wissen müssen

Ein System, viele Sichten

Kein einzelnes Diagramm kann ein reales System beschreiben. Eine Zeichnung, die zeigt, wie der Code der Essenslieferplattform in Module aufgeteilt ist, sagt nichts darüber, auf welchen Servern sie laufen; eine Zeichnung von Servern und Netzwerken sagt nichts darüber, was Schritt für Schritt passiert, wenn ein Kurier einen Auftrag annimmt. Wer all das auf eine Seite bringen will, erhält das bekannte Architekturposter: Dutzende Kästen, Linien mit sechs verschiedenen Bedeutungen, und niemand kann daraus eine präzise Frage beantworten.

Der Gedanke, der das löst, ist alt und einfach. Beschreiben Sie das System durch mehrere Sichten, von denen jede eine Menge von Strukturen für eine Menge von Anliegen zeigt, so wie ein Gebäude durch einen Grundriss, eine Ansicht, einen Elektroplan und einen Sanitärplan beschrieben wird. Jede ist eine Teilbeschreibung; zusammen beschreiben sie das Ganze. Dieser Gedanke liegt der internationalen Norm zugrunde, Kruchtens 4+1-Modell, dem Blickwinkel-Katalog von Rozanski und Woods, dem Ansatz Views and Beyond des SEI und, in schlanker Form, dem C4-Modell im nächsten Abschnitt. Dieser Abschnitt erklärt das gemeinsame Vokabular und wie man die Sichten wählt, die ein bestimmtes System braucht.

Erinnern Sie sich an Abschnitt 1.5: Ein Stakeholder ist jeder, der ein Interesse am System hat, und ein Anliegen ist jede Angelegenheit, die für einen Stakeholder wichtig ist. Sichten existieren, um Anliegen zu beantworten. Eine Sicht, die niemandes Anliegen beantwortet, ist Dekoration.

Das konzeptionelle Modell von ISO/IEC/IEEE 42010:2022

ISO/IEC/IEEE 42010 ist die internationale Norm für Architekturbeschreibung. Ihre aktuelle Ausgabe erschien 2022 und ersetzte die Ausgabe von 2011. Sie sagt Ihnen nicht, wie Sie entwerfen, welche Notation Sie verwenden oder welche Sichten Sie zeichnen sollen; sie definiert die Konzepte, die eine Architekturbeschreibung enthalten sollte, und wie sie zusammenhängen, damit sich Beschreibungen, die mit verschiedenen Methoden erstellt wurden, vergleichen und prüfen lassen. Ihr konzeptionelles Modell ist das gemeinsame Gerüst fast aller Dokumentationsansätze in diesem Kapitel.

Das Modell beginnt mit dem Betrachtungsgegenstand: dem Ding, dessen Architektur beschrieben wird; das kann ein Softwaresystem, ein System von Systemen, eine Produktlinie oder ein Unternehmen sein (die Ausgabe von 2011 nannte es „system of interest“). Der Betrachtungsgegenstand hat eine Architektur, und eine Architekturbeschreibung drückt sie aus. Innerhalb der Beschreibung haben Stakeholder Anliegen. Ein Blickwinkel ist eine wiederverwendbare Spezifikation von Konventionen zur Erstellung und Nutzung einer Art von Sicht: Er benennt die Anliegen, die er erfasst, die typischen Stakeholder und die zu verwendenden Modellarten (Notationen und Modellierungskonventionen). Eine Sicht wendet einen Blickwinkel auf einen bestimmten Betrachtungsgegenstand an: Sie behandelt diese Anliegen für dieses System und besteht aus Sichtkomponenten wie Diagrammen, Tabellen und Modellen, die jeweils von einer Modellart geregelt werden (die Ausgabe von 2011 nannte Sichtkomponenten „architecture models“).

Zwei weitere Elemente zählen in der Praxis. Korrespondenzen halten Beziehungen zwischen Elementen der Beschreibung fest, am nützlichsten zwischen Sichten: Dieser Container in der Containersicht läuft auf jenem Cluster in der Deployment-Sicht; diese Anforderung wird durch jene Entscheidung adressiert. Und Architekturentscheidungen und ihre Begründung sind Teil der Beschreibung, verknüpft mit den Anliegen, die sie adressieren. Die Ausgabe von 2022 definiert außerdem zwei Konzepte genauer, die schon die Ausgabe von 2011 erwähnte, Stakeholder-Perspektiven (Arten, Anliegen zu gruppieren) und Architekturaspekte (Merkmale des Betrachtungsgegenstands, die quer zu den Sichten liegen), benennt „architecture framework“ in „architecture description framework“ (Architekturbeschreibungsrahmen) um und legt fest, was konforme Architekturbeschreibungsrahmen, etwa die eigene Dokumentationsvorlage eines Unternehmens, enthalten müssen.

Das konzeptionelle Modell von 42010, vereinfacht

Vereinfachte Fassung des konzeptionellen Modells von ISO/IEC/IEEE 42010:2022, die Stakeholder, Anliegen, Blickwinkel, Sichten, Modellarten und Sichtkomponenten verbindetBetrachtungsgegenst.z. B. die LieferplattformhatArchitekturwas sie wirklich istausgedrückt inArchitektur-beschreibungIn der ArchitekturbeschreibungStakeholderRolle oder PersonengruppeAnliegenwas ihnen wichtig istEntscheidung,BegründungBlickwinkelKonventionen für SichtSichteine je BlickwinkelWeitere Sichtz. B. DeploymentModellartz. B. SequenzdiagrammSichtkomponenteModell, Diagramm, Tabellehatbetriffterfasstbehandeltregeltentsprechennutztbesteht ausregelt
Anliegen sind das Scharnier: Blickwinkel erfassen sie, Sichten behandeln sie, und Entscheidungen betreffen sie.

Kruchtens 4+1-Sichtenmodell

Philippe Kruchten, damals bei Rational Software, veröffentlichte Architectural Blueprints: The „4+1“ View Model of Software Architecture im November 1995 in IEEE Software. Das 4+1-Sichtenmodell war der erste weit verbreitete Ansatz mit mehreren Sichten und wurde Teil des Rational Unified Process. Kruchtens Argument war, dass die Einzeldiagramme jener Zeit zu viel auf einmal erfassen wollten und dass verschiedene Stakeholder (Endnutzer, Entwickler, Systemingenieure, Projektleiter) verschiedene Sichten brauchen.

Die vier Sichten sind diese. Die logische Sicht beschreibt die Funktionalität, die das System Endnutzern bietet, typischerweise als die wichtigsten Abstraktionen und ihre Beziehungen (in UML als Klassen- und Zustandsdiagramme). Die Prozesssicht behandelt Laufzeitanliegen: Prozesse und Threads, Nebenläufigkeit, Verteilung, Performance, Skalierbarkeit und Fehlertoleranz. Die Entwicklungssicht (auch Implementierungssicht genannt) beschreibt die Organisation der Software in ihrer Entwicklungsumgebung: Module, Subsysteme, Schichten und ihre Abhängigkeiten, die für Programmierer und für die Planung der Arbeit durch das Management zählen. Die physische Sicht (oder Deployment-Sicht) bildet die Software auf Hardware und Netzwerke ab. Das „+1“ sind die Szenarien: eine kleine Menge wichtiger Anwendungsfälle, jeder durch alle vier Sichten verfolgt, die die Architektur veranschaulichen und zugleich validieren, dass die Sichten zusammenpassen.

Die Szenarien sind der am häufigsten vergessene und wohl wertvollste Teil. Eine Sicht für sich allein kann ordentlich aussehen und dabei eine Lücke verbergen; ein echtes Szenario wie „Kunde gibt eine Bestellung auf“ durch die logische, die Prozess-, die Entwicklungs- und die physische Sicht durchzugehen, deckt fehlende Elemente und widersprüchliche Annahmen auf. Derselbe Gedanke taucht in der Laufzeitsicht von arc42 wieder auf, in dynamischen C4-Diagrammen und in Abschnitt 4.8 im Rat, ein System zu erklären, indem man einer Anfrage folgt.

Das 4+1-Sichtenmodell

Kruchtens 4+1-Sichtenmodell: logische, Entwicklungs-, Prozess- und physische Sicht, verbunden durch SzenarienLogische SichtFunktionalität für NutzerKernabstraktionen, Klassenund ihre BeziehungenEntwicklungssichtProgrammierer, SoftwaremanagementModule, Schichten, Subsystemein der Build-UmgebungProzesssichtIntegratoren: Performance, SkalierungProzesse, Threads, Nebenläufigkeitund ihre KommunikationPhysische SichtSystemingenieure: TopologieAbbildung der Software aufRechner und NetzwerkeSzenarien (+1)Anwendungsfälle verbindendie SichtenJedes Szenario läuft durchalle vier Sichten
Vier Sichten für vier Gruppen von Stakeholdern, zusammengehalten durch eine kleine Menge von Szenarien.

Rozanski und Woods: Blickwinkel und Perspektiven

Nick Rozanskis und Eóin Woods’ Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives (2. Auflage, Addison-Wesley, 2012) bietet einen Katalog von sieben Blickwinkeln für große Informationssysteme, zusammen mit einem zweiten, ergänzenden Gedanken: Perspektiven.

Ihre sieben Blickwinkel sind: Kontext (die Beziehungen des Systems zu Menschen, Systemen und externen Einheiten in seinem Umfeld), funktional (die funktionalen Laufzeitelemente, ihre Verantwortlichkeiten, Schnittstellen und wichtigsten Interaktionen), Information (wie Daten gespeichert, verwaltet, verantwortet und verteilt werden), Nebenläufigkeit (welche Teile nebenläufig laufen und wie sie koordiniert werden), Entwicklung (was Entwickler, Tester und Build-Verantwortliche brauchen: Modulstruktur, gemeinsame Verarbeitung, Standards und Organisation der Codeline), Deployment (die Laufzeitumgebung und wie die Software darauf abgebildet wird) und Betrieb (wie das System in der Produktion installiert, migriert, administriert, überwacht und unterstützt wird).

Eine Perspektive ist ihre Bezeichnung für ein Qualitätsanliegen, das quer durch alle Sichten verläuft, etwa Sicherheit, Performance und Skalierbarkeit, Verfügbarkeit und Resilienz oder Evolution (ihr Katalog umfasst außerdem Barrierefreiheit, Entwicklungsressourcen, Internationalisierung, Standort, Regulierung und Benutzbarkeit). Eine Perspektive ist keine weitere Sicht zum Zeichnen. Sie ist eine Menge von Fragen, Taktiken und Prüfungen, die auf jede Sicht angewendet werden: Für Sicherheit untersuchen Sie die Kontextsicht auf externe Akteure und Vertrauensgrenzen, die Informationssicht auf sensible Daten, die Deployment-Sicht auf Netzwerkzonen und so weiter. Das erfasst etwas, was einzelne Sichten nicht können: Qualitäten entstehen aus dem ganzen System, also müssen sie überall geprüft werden (vergleichen Sie die Qualitätsmodelle aus Kapitel 2).

Der Betriebsblickwinkel verdient besondere Aufmerksamkeit, weil viele Ansätze ihn unterschätzen. Wer das System installiert, wie Daten aus dem Altsystem migriert werden, wie die Konfiguration verwaltet wird, was der Betrieb überwacht und wie er alarmiert wird: Das sind Architekturfragen, deren Antworten das System prägen, und sie bis kurz vor dem Go-live aufzuschieben, ist eine klassische Ursache für gescheiterte Starts.

Die drei Kategorien des SEI: Modul, Komponenten und Konnektoren, Zuordnung

Kapitel 1 hat die Gruppierung von Strukturen in drei Arten durch das SEI eingeführt (siehe Abschnitt 1.1). Documenting Software Architectures: Views and Beyond verwendet dieselbe Gruppierung, um Sichten zu ordnen, und sie ist der nützlichste Weg, um zu prüfen, ob eine Menge von Sichten vollständig ist.

Modulsichten zeigen Implementierungseinheiten (Pakete, Bibliotheken, Namensräume) und Beziehungen wie ist Teil von, hängt ab von und ist ein. Typische Stile sind Zerlegungs-, Nutzungs-, Generalisierungs-, Schichten- und Datenmodellsichten. Komponenten-und-Konnektoren-Sichten (C&C) zeigen die zur Laufzeit vorhandenen Elemente (Services, Clients, Datenbanken, Queues) und die Konnektoren, über die sie interagieren (HTTP-Aufrufe, Nachrichten, gemeinsame Daten); typische Stile sind Client-Server, Publish-Subscribe, Pipe-and-Filter, Shared Data und Multi-Tier. Zuordnungssichten bilden Softwareelemente auf Dinge ab, die keine Software sind: auf Hardware und Cloud-Infrastruktur (Deployment), auf das Dateisystem und Build-Artefakte (Implementierung und Installation) und auf Teams (Arbeitszuordnung).

Die drei Kategorien lassen sich natürlich auf die anderen Ansätze abbilden. Kruchtens Entwicklungssicht ist eine Modulsicht, seine Prozesssicht eine C&C-Sicht und seine physische Sicht eine Zuordnungssicht. Die funktionalen und Nebenläufigkeits-Blickwinkel von Rozanski und Woods sind überwiegend C&C, ihr Entwicklungsblickwinkel ist Modul, und ihre Deployment- und Betriebsblickwinkel sind Zuordnung. Die C4-Container- und Komponentendiagramme des nächsten Abschnitts sind C&C-Sichten mit etwas Modulcharakter, und C4-Deployment-Diagramme sind Zuordnungssichten. Wenn Sie einen Dokumentationssatz zusammenstellen, prüfen Sie, ob er mindestens eine Sicht aus jeder Kategorie enthält, denn jede beantwortet Fragen, die die anderen nicht beantworten können.

Ansätze im Vergleich

Anliegenbereich4+1 (Kruchten)Rozanski und WoodsSEI-KategorieC4-Diagramm
Systemgrenze, Nutzer, externe Systeme(implizit in Szenarien)KontextC&C (Kontext)Systemkontext
Laufzeitelemente und InteraktionenProzess (und logisch)Funktional, NebenläufigkeitKomponenten und KonnektorenContainer, Komponente, dynamisch
Datenhoheit und Datenfluss(nicht separat)InformationModul (Datenmodell) und C&C(nicht separat)
CodeorganisationEntwicklungEntwicklungModulKomponente, Code
Abbildung auf InfrastrukturPhysischDeploymentZuordnungDeployment
Betrieb des Systems in der Produktion(nicht abgedeckt)BetriebZuordnung (teilweise)(nicht abgedeckt)
Validierung durch AnwendungsfälleSzenarien (+1)(auf jede Sicht angewendet)VerhaltensdokumentationDynamisch

Stakeholder und Anliegen auf Sichten abbilden

Das praktischste Werkzeug aus der Norm ist eine einfache Tabelle: Listen Sie die Stakeholder und ihre wichtigsten Anliegen auf, und benennen Sie dann die Sicht oder die Sichten, die jedes Anliegen behandeln. Lücken (ein Anliegen, das keine Sicht behandelt) zeigen, wo die Beschreibung unvollständig ist; Sichten, die niemand braucht, sind Kandidaten zum Löschen. Die folgende Tabelle ist ein erster Entwurf für die Essenslieferplattform.

Stakeholder, Anliegen und Sichten für die Essenslieferplattform

StakeholderWichtigste AnliegenSichten, die sie behandeln
Produktmanagement und AuftraggeberUmfang, externe Partner, Zukauf oder Eigenbau, KostenKontextsicht; einseitige Übersicht mit Qualitätszielen und den größten Risiken
Entwickler in jedem TeamWohin Code gehört, Schnittstellen zwischen Services, KonventionenContainersicht; Komponentensicht für komplexe Services; querschnittliche Konzepte; Entscheidungen
Betrieb und SREWo was läuft, Failover, Kapazität, Abhängigkeiten, WiederherstellungDeployment-Sicht je Umgebung; Betriebssicht (Monitoring, Runbooks, Backup und Wiederherstellung)
SicherheitsteamVertrauensgrenzen, Authentifizierung, Kartendaten, SecretsKontext- und Deployment-Sichten mit eingezeichneten Vertrauenszonen; Sicherheitskonzept (eine auf jede Sicht angewandte Perspektive)
DatenschutzbeauftragterPersonenbezogene Daten von Kunden und Kurieren: wohin sie fließen, wie lange sie aufbewahrt werdenInformationssicht mit einem Datenflussdiagramm und einer Aufbewahrungstabelle
Integrationsteam des ZahlungsanbietersWelche Aufrufe Sie machen, Webhooks, Idempotenz, VersionenSchnittstellenspezifikation und ein Sequenzdiagramm des Zahlungsablaufs
Prüfer für Kartenzahlungen (Auditor)Umfang der Kartendatenumgebung, Kontrollen, ÄnderungshistorieDeployment-Sicht mit der Kartendatengrenze; Entscheidungsprotokoll; Versionshistorie

Die minimale Menge an Sichten wählen

Wenn man weiß, dass es viele Blickwinkel gibt, ist die Versuchung groß, alle zu erstellen. Widerstehen Sie ihr. Jede Sicht muss mit dem System und mit den anderen Sichten konsistent gehalten werden, also erhöht jede die Wartungskosten. Das Ziel ist die kleinste Menge an Sichten, die die wichtigen Anliegen der wichtigen Stakeholder beantwortet, gemäß der Regel aus Abschnitt 4.1, für den Leser zu schreiben. Views and Beyond beschreibt ein ähnliches Vorgehen: eine Tabelle aus Stakeholdern und Sichten erstellen, Sichten zusammenlegen, wo ein Diagramm mehrere Bedürfnisse bedienen kann, und dann priorisieren.

Ein Vorgehen zur Wahl von Sichten

  1. 1. Stakeholder und Anliegen auflistenVerwenden Sie die Stakeholder-Analyse aus Kapitel 1. Notieren Sie zu jedem Anliegen, wie wichtig es ist und wie viel auf dem Spiel steht, wenn es missverstanden wird.
  2. 2. Anliegen auf mögliche Sichten abbildenVerwenden Sie einen Katalog (4+1, Rozanski und Woods oder die SEI-Kategorien) als Checkliste, damit ganze Bereiche, typischerweise Information und Betrieb, nicht vergessen werden.
  3. 3. Zusammenlegen, wo möglichEin Containerdiagramm mit eingetragenen Technologien und Protokollen bedient oft Entwickler und Betrieb zugleich; ein Deployment-Diagramm mit Vertrauenszonen bedient Betrieb und Sicherheit. Das Zusammenlegen verringert die Zahl der zu pflegenden Artefakte.
  4. 4. Abdeckung der drei Kategorien prüfenStellen Sie sicher, dass die Menge mindestens eine Modulsicht, eine Komponenten-und-Konnektoren-Sicht und eine Zuordnungssicht enthält, dazu einige Szenarien, die sie durchlaufen.
  5. 5. Die Tiefe jeder Sicht festlegenNicht jede Sicht braucht denselben Detailgrad. Dokumentieren Sie die riskanten oder komplexen Teile ausführlich und die Routineteile knapp.
  6. 6. Korrespondenzen festhaltenGeben Sie an, wie Elemente einer Sicht mit Elementen einer anderen zusammenhängen (Container zu Deployment-Knoten, Modul zu Container), damit Leser zwischen den Sichten wechseln können. In Unstimmigkeiten zwischen Sichten verstecken sich viele Designfehler.

Ausgearbeitetes Beispiel

Ausgearbeitetes Beispiel: die minimale Sichtenmenge für die Essenslieferplattform

Wendet man das Vorgehen auf die in Abschnitt 4.1 beschriebene Plattform an (fünf Teams, Kartenzahlungen über einen externen Anbieter, eine bevorstehende Prüfung der Zahlungssicherheit), ergibt sich folgende Menge.

KontextsichtEin C4-Systemkontextdiagramm: Kunden, Restaurantpersonal, Kuriere, Support-Mitarbeitende, der Zahlungsanbieter, der Kartendienst, die Push-Benachrichtigungsdienste. Dient allen; das Erste, was ein Neuling liest.
C&C-SichtEin C4-Containerdiagramm für die gesamte Plattform, dazu Komponentendiagramme nur für den Bestell- und den Dispositionsservice, die am komplexesten sind und sich am meisten ändern.
InformationssichtEine Tabelle der wichtigsten Datenentitäten, welcher Service jede verantwortet, wohin personenbezogene Daten fließen und welche Aufbewahrungsfristen gelten; ein Datenflussdiagramm für Kundendaten. Hinzugefügt, weil die Anliegen des Datenschutzbeauftragten sonst unbehandelt geblieben wären.
ZuordnungssichtEin C4-Deployment-Diagramm für die Produktion mit eingezeichneter Kartendatengrenze und Netzwerkzonen und eine kurze Tabelle der Unterschiede in der Staging-Umgebung.
ModulsichtNicht von Hand gezeichnet. Die interne Modulstruktur jedes Service wird aus dem Code generiert und durch Architekturtests geprüft.
SzenarienVier Sequenzdiagramme: Bestellung aufgeben, Restaurant lehnt Bestellung ab, Kurierzuweisung, Erstattung. Jedes wird gegen die Container- und Deployment-Sichten geprüft.
PerspektivenSicherheit und Verfügbarkeit werden beim Review als Checklisten auf jede Sicht angewendet, statt als eigene Sichten gezeichnet zu werden.

Sieben Artefakte, die meisten davon einzelne Diagramme, beantworten die Anliegen aller sieben Stakeholder-Gruppen aus der Tabelle oben.

Die Informationssicht wurde nur hinzugefügt, weil die Tabelle aus Stakeholdern und Sichten eine Lücke aufgedeckt hat. Ohne die Tabelle wäre sie übersehen worden, was häufig vorkommt.

Die Modulsicht wird generiert, nicht gezeichnet, weil sie sich aus dem Code ableiten lässt und sich oft ändert (Abschnitt 4.1).

Prüfen Sie Ihr Verständnis

Was ist der Unterschied zwischen einem Blickwinkel und einer Sicht?

Ein Blickwinkel ist eine wiederverwendbare Spezifikation von Konventionen für eine Art von Sicht (erfasste Anliegen, Stakeholder, Modellarten). Eine Sicht wendet einen Blickwinkel auf ein bestimmtes System an und behandelt diese Anliegen dafür.

Welche Rolle spielen Szenarien im 4+1-Modell?

Sie sind eine kleine Menge wichtiger Anwendungsfälle, die durch alle vier Sichten verfolgt werden; sie veranschaulichen die Architektur und validieren, dass die Sichten konsistent und vollständig sind.

Wie unterscheidet sich eine Perspektive bei Rozanski und Woods von einem Blickwinkel?

Ein Blickwinkel bringt eine Sicht hervor. Eine Perspektive ist ein querschnittliches Qualitätsanliegen wie Sicherheit, das als Fragen und Taktiken auf jede Sicht angewendet wird, statt als eigene Sicht gezeichnet zu werden.

Zu welcher SEI-Kategorie gehört ein Deployment-Diagramm, und warum?

Zur Zuordnung, weil es Softwareelemente auf Dinge abbildet, die keine Software sind, in diesem Fall Hardware und Cloud-Infrastruktur.

Weiter · 4.3Das 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.Weiter →

Quellen und weiterführende Literatur

Haben Sie eine Frage zu diesem Abschnitt? ArchitectBot, der KI-Lernassistent des Kurses, antwortet zuerst aus dem Kurs.

Fragen: „Wie entscheide ich, welche Architektursichten mein Team tatsächlich braucht, und wie halte ich sie untereinander konsistent?“