Über unsMediaKontaktImpressum
Dr. Gernot Starke 18. April 2017

arc42 – Architekturen effektiv kommunizieren

© arc42
© arc42

Das Open Source-Projekt arc42 beeinhaltet ein pragmatisches und seit mehr als 10 Jahren praxiserprobtes Template. Anfang 2017 erschien arc42 in der siebten Version mit vielen praktischen Verbesserungen. Insbesondere hat das arc42-Team über 130 häufig gestellte Fragen beantwortet und ebenso viele wichtige Tipps zur effektiven und effizienten Verwendung von arc42 im Praxiseinsatz gegeben.

Was ist arc42?

Im Kern besteht arc42 aus einem pragmatischen Template zur Entwicklung, Dokumentation und Kommunikation von Softwarearchitekturen. arc42 ist komplett frei verwendbar (Open Source) und unterstützt Entwicklungsteams und Softwarearchitekten. Es stammt aus der Praxis und basiert auf Erfahrungen internationaler Architekturprojekte und Rückmeldungen vieler Anwender.

arc42 eignet sich für beliebige Technologien und Werkzeuge. Es passt großartig zu agilen Projekten, aber auch andere Organisationsformen profitieren davon. Neben dem Template schlägt arc42 sechs Kernaufgaben zur Entwicklung und Konstruktion effektiver
Softwarearchitekturen vor:

  1. Anforderungen und Randbedingungen klären
  2. Strukturen entwerfen
  3. Querschnittliche Konzepte entwerfen
  4. Architektur kommunizieren
  5. Umsetzung begleiten
  6. Architektur bewerten
Abb.1: Kernaufgaben zur Entwicklung und Konstruktion effektiver Softwarearchitekturen. © Gernot Starke
Abb.1: Kernaufgaben zur Entwicklung und Konstruktion effektiver Softwarearchitekturen. © Gernot Starke

Wir haben um 2002 angefangen, unsere Erfahrungen vieler Entwicklungs- und Architekturprojekte zusammenzutragen und eine flexibel wiederverwendbare Informationsstruktur ("Template") zu entwickeln. Unser Vorbild war Volere [1], ein Template für Software-Requirements, das sich flexibel in beliebigen
Entwicklungsprojekten zur Kommunikation und Dokumentation von Anforderungen (des Problems) einsetzen lässt. Wir wollten mit arc42 das Pendant (die Lösung) entwerfen – von Anfang an unter der Prämisse, arc42 komplett Open Source zu entwickeln.

Ach ja, die 42: Die etwas ältere Generation von Softwerkern kennt vielleicht noch Douglas Adams, einen verschrobenen Science-Fiction-Autor. Adams hat die Trilogie "Per Anhalter durch die Galaxis" geschrieben [2], in der die Zahl 42 als die "Antwort auf alle Fragen – nach dem Leben, dem Universum und dem ganzen Rest“ erscheint. arc42 soll für Ihre Systeme und Softwarearchitekturen die Antworten auf alle – zumindest auf viele – Fragen bereithalten.

Sektion Beschreibung
1. Einführung und Ziele Aufgabenstellung, Qualitätsziele, eine Kurzfassung der architekturrelevanten Anforderungen (insb. die nichtfunktionalen), Stakeholder.
2. Randbedingungen Welche Leitplanken schränken die Entwurfsentscheidungen ein?
3. Kontextabgrenzung In welchem fachlichen und/oder technischen Umfeld arbeitet das System?
4. Lösungsstrategie Wie funktioniert die Lösung? Was sind die fundamentalen Lösungsansätze?
5. Bausteinsicht Die statische Struktur des Systems, der Aufbau aus Implementierungsteilen.
6. Laufzeitsicht Zusammenwirken der Bausteine zur Laufzeit, gezeigt an exemplarischen Abläufen ("Szenarien").
7. Verteilungssicht Deployment: Auf welcher Hardware werden die Bausteine betrieben?
8. Querschnittliche Konzepte und Muster Wiederkehrende Muster und Strukturen. Fachliche Strukturen. Querschnittliche, übergreifende Konzepte, Nutzungs- oder Einsatzanleitungen für Technologien. Oftmals projekt-/systemübergreifend verwendbar!
9. Entwurfsentscheidungen Zentrale, prägende und wichtige Entscheidungen.
10. Qualitätsszenarien Qualitätsbaum sowie dessen Konkretisierung durch Szenarien.
11. Risiken und technische Schulden Bekannte Risiken oder Probleme im System, dessen Architektur und/oder Implementierung.
12. Glossar Wichtige Begriffe.

Warum arc42?

Wenn Sie Systeme arbeitsteilig entwickeln und möglicherweise über mehrere Jahre hinweg erweitern, ändern oder überarbeiten, dann sollten Sie über eine angemessene, effektive Dokumentation verfügen: Entgegen der Meinung (mancher) Entwickler spiegelt der Source-Code eines Systems nämlich keinesfalls die (gesamte) Wahrheit wider: Sowohl Strukturen im Großen, übergreifende Konzepte oder auch die Begründungen für manche Entscheidungen gehören in die Architekturdokumentation (und damit arc42) –
und sollten nicht irgendwo im Code versinken. Diese Informationen sind für Pflege, Weiterentwicklung und auch den Betrieb von Systemen oftmals von essentieller Bedeutung.
Für helloWorld brauchen Sie kein arc42, aber für (fast) alles darüber hinaus kann es Ihnen und Ihrem Team gute Dienste leisten.

Version 6 – und ihre "Issues"

Bei den frühen Versionen von arc42 haben wir als Template-Autoren mehrmals Teile umbenannt und auch die zugrunde liegende Struktur adaptiert. Mit Version 6 hatten sich diese Änderungen stabilisiert. Auch seitens vieler Anwender haben wir zu V6 sehr positive Rückmeldungen bekommen.

Leider war bei V6 immer noch ein binäres (Microsoft-Word-)Dokument unser "Master", aus dem wir (manuell) diverse andere Formate heraus gepflegt haben. Insbesondere in den Hilfe- und Erläuterungstexten haben sich in diese Formatvielfalt über die Zeit und diverse Anpassungen von Formulierungen oder Layout leider viele Inkonsistenzen eingeschlichen. Hinzu kam, dass unser (von vielen Anwendern verwendetes) docx-Format ursprünglich aus dem Jahre 2002 stammt – mit dem entsprechenden Chaos an Formatvorlagen...

Daneben enthielt V6 neben der reinen Struktur noch eine Mischung aus Erklärung und Bedienungshinweisen, die den Umfang des Templates deutlich erhöhten. Zusätzlich war die gesamte Infrastruktur (Website, Download-Bereich, Wiki) fragil und inhomogen: Zwar hat
arc42 bereits 2012 – durch tatkräftige Unterstützung von Ralf D. Müller – auf AsciiDoc und Github als Plattform gesetzt, aber es blieben noch "Altlasten" und eine Menge Issues an diesen Stellen.

Highlights von Version 7

Ende 2016 haben wir die losen Enden von Version 6 zusammengeführt, homogenisiert und mit Ralf Müllers tatkräftiger Hilfe unseren Generator [3] aufgefrischt. Insbesondere
erzeugen wir nunmehr auch das immer häufiger genutzte Confluence-Format direkt aus
unserem AsciiDoc-Master. Abb.2 zeigt die arc42-Generatorkette, die u.a. docx, Confluence, LaTeX und weitere erzeugt.

Abb.2: Generatorkette. © Gernot Starke
Abb.2: Generatorkette. © Gernot Starke

Als Ergebnis finden Sie alle arc42-Downloads an zentraler Stelle [4]. Dazu kommt
seit V7 ein stark erweitertes Ökosystem mit mehreren Websites.

Strukturell bleibt arc42 der bewährten Aufteilung auf 12 Sektionen treu – auch die Namen sind (fast) geblieben: Einzig Teil 11 haben wir auch im Titel zu "Risiken und
technische Schulden" erweitert. Damit bleibt arc42 Version 7 vollständig kompatibel zur Vorgängerversion.

Im Inneren jedoch haben wir aufgeräumt und erneuert: Praktisch alle Hilfe- und Erläuterungstexte haben wir aufgefrischt und kompakter formuliert, sowohl in der deutschen wie auch in der englischen Version. Das betrifft alle 12 Sektionen und sollte arc42 in der Praxis noch besser verständlich und handhabbarer gestalten.

Das neue Ökosystem

Im arc42-Ökosystem gibt es mit Version 7 viele Verbesserungen, die Architekten und Entwicklern zu noch besseren Architekturen verhelfen. Im Überblick:

  • Eine eigene Dokumentations-Website, die zu jeder Sektion des Templates noch zahlreiche passende Tipps zur Anwendung bereithält [5]
  • Eine umfangreiche FAQ-Website, die häufig gestellte Fragen aus allen Gebieten rund um arc42 beantwortet [6]
  • Eine Slack-Gruppe, in der Interessierte fokussiert auf arc42-Themen diskutieren oder Fragen stellen können [7]
  • Eine komplett neue (englische) Community-Website, die insbesondere für unsere internationalen Anwender als Einstieg dient
  • Mittlerweile gibt es mehrere Bücher zum Thema, insbesondere ein eBook mit sechs realen Beispielen [8]
  • Als Open Source-Projekt kam arc42 in den Genuss einer Cloud-basierten Confluence-Instanz [9]. Nunmehr können wir uns auch in diesem Wiki primär um Inhalte kümmern, anstatt uns (wie früher) mit Administration und Tool-Updates herumschlagen zu müssen.

Dokumentation, Tipps und FAQ

In unserer Dokumentation haben wir 139 Tipps und Hinweise zur Nutzung von arc42 zusammengetragen und diese den 12 einzelnen arc42-Sektionen zugeordnet. Am Ende jeder Sektion finden sich dort Verweise auf die jeweiligen Tipps. Alle Tipps haben wir mit Schlagworten versehen, so dass zusammengehörige Ratschläge leichter auffindbar sind. Insbesondere drei dieser Begriffe sollen hier kurz hervorgehoben werden:

  • lean bezeichnet Ratschläge für den besonders sparsamen Einsatz von arc42, etwa für eher risikoarme Systeme. Diese Tipps helfen, Zeit und Aufwand für Dokumentation zu sparen.
  • thorough bezeichnet Tipps, die Ihnen bei kritischen oder besonders großen Systemen helfen können. Oftmals das Gegenteil der Spar-Tipps aus der Lean-Gruppe…
  • essential kennzeichnet Ratschläge, deren Missachtung über kurz oder lang zu üblen Problemen führen könnte.

Die FAQ-Seite stellt die Ergänzung zur Dokumentation dar. Sie finden darauf über 130 Antworten auf Fragen, die uns immer wieder gestellt wurden [6].

Alle org-Websites von arc42 werden mittlerweile vollständig als Github-Pages mit Hilfe
des statischen Site-Generators Jekyll generiert. In den jeweiligen Github-Repositories finden Sie Infos über die verwendeten Themes – natürlich können Sie diese Repositories als Startpunkt für eigene Sites verwenden. Beide Seiten befinden sich immer noch in der Wachstumsphase und Sie können jeden Tipp und jede Frage über unser Kommentarsystem hinterfragen oder ergänzen.

Ausblick

Wir arbeiten auch weiterhin stetig an Verbesserungen von arc42. In unserer täglichen Architekturarbeit finden wir immer noch Kleinigkeiten oder stoßen auf neue Fragen zur Anwendung oder zum angemessenen Einsatz von arc42.

Folgende Punkte stehen in nächster Zeit an

  • In unserem Github-Repository sind noch diverse Issues offen – von neuen CSS-Styles für die arc42-Template-Sektionen der docs-Site, über CSS-Kompression bis hin zu Tipps und Fragen, die immer noch noch nicht online sind.
  • Gerne möchten wir auch noch mehr Beispiele online zeigen, insbesondere zur Anwendung von arc42 in agilen Projekten.
  • Wir arbeiten daran, arc42 auch international weiter bekannt zu machen. Die jetzt verfügbare (englische) Dokumentation sollte das deutlich erleichtern.

Wir bekommen positive Rückmeldung von unseren Anwendern aus großen und kleinen Firmen, Behörden oder auch von Studierenden, daher werden wir auch weiterhin gerne Zeit in arc42 investieren.

nach Oben
Autor

Dr. Gernot Starke

Dr. Gernot Starke unterstützt als innoQ-Fellow Kunden und Projekte in unterschiedlichen Branchen bei Architektur- und Reviewaufgaben. Er ist (Mit-)Gründer und Committer von arc42, Gründer und Committer von aim42.org sowie Autor...
>> Weiterlesen
Bücher des Autors:

botMessage_toctoc_comments_929