arc42

Julian | Nov 14, 2024 min read

arc42 ist eine bewährte Methode zur Dokumentation von Softwarearchitekturen. Sie hilft dabei, die wichtigsten Aspekte einer Softwarearchitektur zu strukturieren und zu kommunizieren. Als Anfänger solltest du die Kernelemente und Prinzipien der arc42-Methode verstehen, um den größten Nutzen daraus zu ziehen.

Kurzüberblick

  1. Einleitung und Ziele: Verstehen, warum das System existiert und welche Probleme es löst.
  2. Randbedingungen: Kennen der externen Einflüsse und Einschränkungen.
  3. Kontextabgrenzung: Klarheit über die Systemgrenzen und Interaktionen mit der Umgebung.
  4. Lösungskonzept: Die grundlegenden Architekturprinzipien und Technologieentscheidungen verstehen.
  5. Bausteinsicht: Detaillierte Kenntnis der Hauptbausteine und deren Schnittstellen.
  6. Laufzeitsicht: Verständnis der Interaktionen zwischen Bausteinen zur Laufzeit.
  7. Entwurfsentscheidungen: Wichtige Architekturentscheidungen und deren Begründungen dokumentieren.

1. Was ist arc42?

arc42 ist ein Template, das dir eine strukturierte Methode zur Beschreibung und Dokumentation von Softwarearchitektur bietet. Es wurde entwickelt, um sowohl technischen als auch nicht-technischen Stakeholdern einen klaren Überblick über die Architektur eines Systems zu geben.

2. Grundstruktur von arc42

arc42 besteht aus verschiedenen Kapiteln, die jeweils einen bestimmten Aspekt der Softwarearchitektur abdecken. Hier sind die wichtigsten Kapitel, die du kennen solltest:

Kapitel Erklärung
1. Einleitung und Ziele Beschreibt die Zielsetzung und den Kontext des Systems.
2. Randbedingungen Listet alle externen Einflüsse und Restriktionen auf.
3. Kontextabgrenzung Definiert das System im Kontext seiner Umgebung.
4. Lösungskonzept Beschreibt die grundlegende Idee und das Konzept der Architektur.
5. Bausteinsicht Detailliert die internen Bausteine des Systems und deren Zusammenwirken.
6. Laufzeitsicht Zeigt, wie die Bausteine zur Laufzeit interagieren.
7. Verteilungssicht Beschreibt die physische Verteilung des Systems.
8. Querschnittliche Aspekte Behandelt übergreifende Themen wie Sicherheit und Performance.
9. Entwurfsentscheidungen Dokumentiert wichtige Architekturentscheidungen und deren Begründungen.

3. Einleitung und Ziele

  • Zielsetzung: Warum existiert das System? Welche Probleme löst es?
  • Stakeholder: Wer sind die Benutzer und was sind ihre Bedürfnisse?
  • Ziele: Was sind die technischen und nicht-technischen Ziele des Systems?

4. Randbedingungen

  • Technische Randbedingungen: Beschränkungen durch Technologien und Systeme.
  • Organisatorische Randbedingungen: Projektvorgaben, Teamstrukturen.
  • Gesetzliche Randbedingungen: Vorschriften und Standards, die eingehalten werden müssen.

5. Kontextabgrenzung

  • Externes Kontextdiagramm: Zeigt die Interaktionen des Systems mit seiner Umgebung (andere Systeme, User-Gruppen).
  • Kontextabgleich: Stellt sicher, dass alle Schnittstellen und Interaktionen klar definiert sind.

6. Lösungskonzept

  • Architekturprinzipien: Grundlegende Prinzipien, die die Architektur leiten (z.B. Modularität, Wiederverwendbarkeit).
  • Technologieauswahl: Wie und warum wurden bestimmte Technologien ausgewählt?

7. Bausteinsicht

  • Hierarchische Struktur: Unterteilt das System in seine Hauptbausteine und deren Unterbausteine.
  • Bausteinbeschreibung: Jeder Baustein wird detailliert beschrieben, einschließlich seiner Verantwortlichkeiten und Schnittstellen.

8. Laufzeitsicht

  • Laufzeitdiagramme: Zeigt die Interaktion der Bausteine während typischer Anwendungsfälle (z.B. Sequenzdiagramme).
  • Prozessabläufe: Detaillierte Beschreibung der Abläufe und deren Einfluss auf die Architektur.

9. Verteilungssicht

  • Verteilungsdiagramme: Zeigt, wie das System physisch (über verschiedene Hardware und Netzwerke) verteilt ist.
  • Deployment: Beschreibt, wie und wo verschiedene Teile des Systems laufen und wie sie kommunizieren.

10. Querschnittliche Aspekte

  • Sicherheitskonzepte: Ansätze zur Sicherstellung der Systemsicherheit.
  • Leistungsanforderungen: Wie wird die Performance optimiert und gemessen?
  • Fehlerbehandlung: Strategien zur Fehlererkennung und -behandlung.

11. Entwurfsentscheidungen

  • Architekturentscheidungen: Wichtige Entscheidungen, die die Architektur beeinflussen.
  • Begründungen: Warum wurden diese Entscheidungen getroffen und welche Alternativen wurden betrachtet?

Schlüsselprinzipien

  • Einheitlichkeit und Vollständigkeit: arc42 hilft, die Architektur konsistent und vollständig zu dokumentieren.
  • Modularität: Durch klare Unterteilung in Kapitel und Bausteine unterstützt arc42 die Modularität des Systems.
  • Nachvollziehbarkeit: Jede Entscheidung und jedes Design können nachvollzogen und begründet werden.

Mit diesen Erkenntnissen solltest du bestens gerüstet sein, um die arc42-Methode anzuwenden und eine klar strukturierte und gut dokumentierte Softwarearchitektur zu erstellen.