Architekturdokumentation leicht gemacht

Architekturdokumentation leicht gemacht

Architektur und Dokumentation. Zwei schwergewichtige Worte in der Softwareentwicklung.

Während man sich bei der Softwareentwicklung schon gern mal Gedanken um eine vernünftige Architektur macht, fällt die Dokumentation oftmals hinten runter. Meist aus Mangel an Wissen, was man wie dokumentieren sollte und wo man die Informationen ablegt, sodass sie leicht wiedergefunden, gelesen und auch verstanden werden.

Doch das muss nicht sein. Dank des arc42 Templates für Architekturbeschreibungen erledigt sich die Frage nach dem Was und nach dem Wo bereits durch die bestehende Struktur. Und die Frage nach dem Wie kann man mit etwas Übung und einigen Tipps und Tricks auch recht schnell beantworten.

Der Vortrag ist eine Einführung in das arc42 Architekturtemplate und gibt jedem Zuhörer das nötige Wissen an die Hand, die Architekturdokumentation ohne große Mühe in seinen bekannten Arbeitsablauf aufzunehmen.

Der Vortrag wurde am 18.05.2016 bei den Magdeburger Developer Days gehalten.

60a656faee10521db1c5052da540a3c8?s=128

Andreas Richter

May 18, 2016
Tweet

Transcript

  1. 4.

    • Was macht die Software eigentlich? • Was benötige ich

    für die Entwicklung? • Wo finde ich die Quellen & Beispieldaten? • Aus welchen Komponenten besteht die Lösung? • Wie arbeiten die Komponenten zusammen? • Warum wurde das so und nicht anders gelöst? • Worauf muss ich beim Entwickeln achten? Typische Fragen
  2. 5.

    • Der Funktionsumfang ist im Handbuch beschrieben • Steht alles

    in den Quellen. • Wie das Sytem arbeitet, sagt dir der Debugger. • Das ist historisch gewachsen. • Das machen wir schon immer so. • Das war schon so, als ich hier angefangen habe. Typische Antworten
  3. 6.

    • Antworten auf häufig gestellte Fragen • Container für Ergebnisse

    aus Architekturarbeit • Anforderungen und Randbedingungen klären • Strukturen entwerfen • Technische Konzepte entwerfen • Architektur kommunizieren • Umsetzung begleiten • Architektur bewerten Ziel einer Architekturdokumentation
  4. 8.

    Warum überhaupt ein Template? • Projektübergreifend einheitliche Struktur • Schnelles

    Ablegen von Informationen • Schnelles Wiederfinden von Informationen • Umfassend • Kann als eine Art „Checkliste“ dienen
  5. 9.

    arc42 - Entstehung • 2005/2006 • Dr. Gernot Starke &

    Peter Hruschka • Reale Projekterfahrungen zusammengetragen • Mindmap-Übersicht architektonisch relevanter Themen • arc42-Template v2.1 (erste öffentliche Version 2006) • Bis heute (v6.0) kaum Änderungen an der Struktur
  6. 10.

    arc42 - Struktur 1. Einführung und Ziele 2. Randbedingungen 3.

    Kontextabgrenzung 4. Lösungsstrategie 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Konzepte 9. Entwurfsentscheidungen 10. Qualitätsszenarien 11. Risiken 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen Legende:
  7. 11.

    1. Einführung und Ziele 1.1. Aufgabenstellung • Kurzbeschreibung der Geschäftsprozesse

    • Funktionale Anforderungen 1.2 Qualitätsziele • 3-5 wichtigste Qualitätsziele • Nichtfunktionale Anforderungen 1.3 Stakeholder • Liste der wichtigsten Personen • Einfluss auf Architektur / System
  8. 12.

    2. Randbedingungen 2.1 Technische Randbedingungen • Hard- und Software-Infrastruktur •

    Programmiersprachen / grafische Oberflächen 2.2 Organisatorische Randbedingungen • Organisation / Struktur • Ressourcen / Budget 2.3 Konventionen • Programmierrichtlinien • Namenskonventionen
  9. 15.

    3. Kontextabgrenzung 3.3 Externe Schnittstellen • Abhängigkeiten von Drittanbietern •

    Verweise auf externe Dokumentation • Auflistung verwendeter externer Schnittstellen
  10. 16.

    4. Lösungsstrategie • Kurzer Überblick über • Grundlegende Entscheidung zum

    Lösungsansatz • Inklusive Begründung • Verweis auf Randbedingungen, Entwurfsentscheidung, …
  11. 17.

    • Statische Sicht auf Bausteine & deren Abhängigkeiten • Hierarchische

    Darstellung • Whitebox & Blackbox-Templates • Component-Diagramme & Textuelle Erklärungen 5. Bausteinsicht
  12. 18.

    6. Laufzeitsicht • Zusammenarbeit der Bausteine zur Laufzeit • Nur

    die wichtigsten Szenarien • Tabellarisch • Interaction Diagramm & Erklärungen
  13. 19.

    7. Verteilungssicht • In welcher Umgebung läuft das System? •

    Wie wird es deployed & betrieben? • Deployment-Diagramm & Erklärungen
  14. 20.

    8. Konzepte • Übergreifende Themen und Konzepte • Auch Projektübergreifend

    • 8.1 Fachliche Strukturen (Domänenmodell) • 8.2 Typische Muster • 8.x Ablaufsteuerung • 8.x Logging • 8.x Fehlerbehandlung • 8.x Persistenz • 8.x …
  15. 22.

    10. Qualitätsszenarien • Verfeinert Qualitätsziele aus Kapitel 1.2 • Hilft

    bei der systematischen Bewertung der Architektur 10.1 Bewertungsszenarien • Nutzungsszenarien • Änderungsszenarien 10.2 Qualitätsbaum • Qualitätsbaum nach ATAM • Qualitätsszenarien an den Blättern
  16. 23.

    11. Risiken • Priorisierte Liste von Risiken der Architektur •

    Hilft dem Projektmanagement • Zeigt eventuelle Probleme des Systems
  17. 26.

    Beispiele ansehen • Pro & Contra für eigene Projekte heraussuchen

    • DokChess – Stefan Zörner http://www.dokchess.de/ • biking2 – Michael Simons http://biking.michael-simons.eu/docs/index.html • arc42 by Example https://leanpub.com/arc42byexample
  18. 27.

    Ziele für Architekturdokumentation festlegen • Benötigen wir überhaupt eine Architekturdokumentation?

    • Worauf liegt der Fokus / Was ist uns wichtig? • Wer erstellt die Dokumentation? • Wer liest die Dokumentation?
  19. 28.

    Empfehlung für den Start • Neues System • 3. Kontextabgrenzung

    • 1.2 Qualitätsziele • 4. Lösungsstrategie • 8. Konzept • Fachliche Strukturen • Persistenz • UI • Verteilung • … • Bestehendes System • 5. Bausteinsicht • 6. Laufzeitsicht • 8.1 Fachliche Strukturen • 8.2 Typische Muster
  20. 29.

    Im laufenden Projekt • Iterativ & Inkrementell • Dokumentation als

    Teil der Definition of Done • Review der Dokumentation • Ausmisten! • Timeboxed • Faul & Sparsam
  21. 30.

    Werkzeuge • Wiki • Markdown / Ascii-Doc Dateien • OneNote

    Notizbuch • Word Dokument im DMS • Diagrammerstellung • Zeichenwerkzeuge vs. Modellierungswerkzeuge • yEd - http://www.yworks.com/products/yed • Enterprise Architect - http://www.sparxsystems.de/
  22. 31.
  23. 32.

    arc42 in großen Systemen • Hierarchie mehrerer arc42 Dokumentationen •

    Systemüberblick • 1. Einführung und Ziele • 2. Randbedingungen • 3. Kontextabgrenzung • 8. Konzepte • Subsystem 1 .. n • 5. Bausteinsicht • 6. Laufzeitsicht • 9. Entwurfsentscheidungen
  24. 33.

    Übung macht den Meister • Bausteinsicht für bestehendes System •

    Zeichen- vs. Modellierungswerkzeug • Kleines Side-Project inklusive Dokumentation • arc42 auf der grünen Wiese ausprobieren • Architektur-Katas • Architektur-Überlegungen in arc42 einsortieren
  25. 34.

    Quellen • arc42 - http://arc42.de/ • arc42 auf GitHub -

    http://arc42.github.io/ • DokChess - http://www.dokchess.de/ • „Softwarearchitekturen dokumentieren und kommunizieren“ Stefan Zörner • „arc42 by Example“ Gernot Starke, Michael Simons, Stefan Zörner