System Architekturen erstellen (Part 2)
Um was geht es hier?
Jeder der in einer Situation war, eine Systemarchitektur definieren zu müssen, ist auf folgende Herausforderungen gestoßen.
- Wie komme ich zu einer System Architektur.
- Wie kann ich meine System-Architektur dokumentieren?
Auf die erste Frage, bin ich in meinem vorherigen Eintrag eingegangen. In diesem Beitrag möchte ich auf die zweite Frage eingehen.
Wie finde ich einen ersten Entwurf einer System-Architektur
Hierfür bieten sich folgende Ansätze an:
Ausgangspunkt | Vorgehen |
---|---|
Ein ähnliches System wurde in der Vergangenheit bereits erstellt | Man startet mit der bereits verwendeten System-Architektur und passt diese an das Projekt an |
Referenz-Architektur | Man startet mit einer Referenzarchitektu,r für die zu unterstützende Platform. Zum Beispiel JAVA2EE |
Architektur Pattern | Man startet mit einem Architektur-Pattern. Ggf werden mehrere Pattern angewendet, die sich ergänzen. |
Wie kann ich die System-Architektur beschreiben
Fachliche Anforderungen sind im Allgemeinen stabiler als technische Anforderungen. Stabil bedeutet, dass diese weniger volatil sind bzw. sich ändern.
Oder mit anderen Worten:
„Technologien ändern sich schneller als die fachlichen Anforderungen“
Für die System-Architektur bedeutet dies, das wir uns auf das High-Level Design beschränken.
Intermediate und Low-Level Design ersparen wir uns bei der Dokumentation.
Für die Definition und Beschreibung der wichtigsten Informationen im High-Level Design haben sich in der Praxis folgende Notation/Visualisierungen bewährt.
Die Fokus-Frage | Notation |
---|---|
Was gehört zum System? | Kontext-Diagramm |
Wie trenne ich fachliche und technische Dienste? | DDD Hexagon Diagramm |
Wie beschreibe ich, wie die Daten verarbeitet werden? | Datenfluss-Diagramm |
Wie beschreibe ich, aus welchen Teilen/Komponenten mein System besteht? | Struktur / Blockdiagramme |
Welche Daten werden gespeicherte | Datenmodelle |
Für die weitere Vertiefung zur Erstellung von System-Modellen empfehle ich die Seite:
Blockdiagramme