Software, Architektur, Dokumentation

Pascal Zumkehr

Das Grundgerüst einer erfolgreichen Applikation ist eine gute Softwarearchitektur. Doch wie wird diese dokumentiert und wo kann das Erstellen von Softwarearchitekturen gelernt werden?

Softwarearchitektur ermöglicht die langfristige Entwicklung und Verwendung von Software. Klare Definitionen von Strukturen und Konzepten bilden einen Rahmen, in welchem Probleme konsistent gelöst werden können und Qualitätsanforderungen erfüllbar sind.

Diese Punkte ergeben sich leider nicht von alleine. Deshalb kümmern sich Softwarearchitektinnen und Softwarearchitekten um das längerfristige Wohl einer Applikation. Sie vereinen die Anforderungen aus verschiedensten Bereichen:

„Softwarearchitekten bilden die Schnittstelle zwischen Analyse, Entwurf, Implementierung, Management und Betrieb von Software“ – Gernot Starke

Dokumentation

Wo so viele Stakeholder zusammentreffen, ist Kommunikation essentiell. Die Architekturdokumentation bildet ein wesentliches Instrument, um die Grundsätze einer Software zu vermitteln.

Dabei helfen folgende Leitideen:

  • Explizite Aussagen statt implizite Annahmen vermeiden Missverständnisse und unerfüllte Erwartungen.
  • Wie die Entwicklung der Software soll auch ihre Dokumentation iterativ voran getrieben werden. Dadurch können Rückmeldungen einfliessen und die wirklichen Brennpunkte werden angegangen.
  • Durch verschiedene Perspektiven lassen sich unterschiedliche Aspekte beleuchten. Komplexe Konstrukte und Zusammenhänge können so aufgeteilt, vereinfacht und schliesslich besser verständlich gemacht werden.

Als Beispiel für eine Perspektive dient hier die Verteilungssicht von hitobito. Der Fokus liegt auf den Servern, Prozessen und Datenspeichern, das Innenleben der jeweiligen Bausteine
wird bewusst ausgeblendet. Eine ausführliche Beschreibung ergänzt in der Dokumentation das Bild.

verteilungssicht

Bei Puzzle verwenden wir als Grundlage für Architekturdokumentationen das Template von Arc42. Als überaus praktisch hat sich erwiesen, die Dokumentation in einem Versionierungssystem wie Git zu führen und daraus täglich von unserem Buildserver Jenkins eine HTML oder PDF Version zu generieren. Damit sind Änderungen leicht nachvollziehbar und eine aktuelle Version ist stets verfügbar.

Ausbildung

Mit der gestiegenen Bedeutung von Softwarearchitektur stellt sich auch die Frage nach der Ausbildung. Neben den regulären universitären Studiengängen kann an der Berner Fachhochschule ein CAS Software Architecture besucht werden. Eine unabhängige Zertifizierung für Softwarearchitektinnen und -architekten bietet das iSAQB an.

Nach einem spannenden Kurs beim iSAQB Mitglied Gernot Starke dürfen sich die beiden Puzzlers Dominic Brügger  und Pascal Zumkehr nun Certified Professional for Software Architecture nennen.

Die wichtigste Ausbildung für Software Architektur ist und bleibt jedoch das tägliche Sammeln von Erfahrung in realen Projekten. Getreu dem Motto:

_sometimes you win, sometimes you learn_.

Kommentare sind geschlossen.