Architektur-Kata mit arc42

Architektur-Kata mit arc42

Die Entwicklung einer Softwarearchitektur ist eine komplexe Aufgabe. Es müssen Anforderungen und Randbedingungen geklärt, Strukturen und Konzepte entworfen und die Ergebnisse angemessen dokumentiert sowie verständlich kommuniziert werden. Dieser interaktive Workshop geht auf genau diese Punkte ein.

Anhand des arc42 Templates werden iterativ Teile der Architekturarbeit kurz vorgestellt und in verschiedenen Teams sofort praktisch angewendet. Anschließend präsentieren die Teams ihre Arbeiten und stellen diese zur Diskussion.

So entsteht über den Tag Stück für Stück ein Architekturüberblick mit einer möglichen Lösung für die gestellte Übungsaufgabe.

Das Architektur-Kata war ein ganztages Workshop auf der Spartakiade am 18.03.2017

60a656faee10521db1c5052da540a3c8?s=128

Andreas Richter

March 18, 2017
Tweet

Transcript

  1. 4.

    Wer bin ich? Was mache ich beruflich? Welche (architekturellen) Vorkenntnisse

    bringe ich mit? Welche Erwartungen habe ich an den Workshop? Hallo…
  2. 6.

    Was ist Architekturarbeit? • Anforderungen und Randbedingungen klären • Strukturen

    entwerfen • Technische Konzepte entwerfen • Architektur kommunizieren • Umsetzung begleiten • Architektur bewerten
  3. 7.

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

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

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

    Peter Hruschka • Reale Projekterfahrungen zusammengetragen • Mindmap architektonisch relevanter Themen • arc42-Template v2.1 (erste öffentliche Version 2006) • Bis heute (v7.0) kaum Änderungen an der Struktur • http://arc42.org/
  5. 9.

    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 & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen Legende:
  6. 11.

    Ablauf • 4 Gruppen • Pro Gruppe 1 Kata •

    Iterativ / Inkrementell • Pro Iteration Fokus auf eine Auswahl an arc42-Kapiteln • Vorstellung der betrachteten arc42-Kapitel • Arbeiten in den Gruppen • Vorstellen der Ergebnisse
  7. 13.

    Iteration 1 – Aufgabenstellung und Kontextabgrenzung • Ziel • Verständnis

    der Aufgabenstellung erarbeiten • Wichtigste funktionalen Anforderungen festhalten • Kontextabgrenzung zu Nachbarsystemen identifizieren • Vorstellung der Aufgabe vor den potentiellen Auftraggebern (andere Gruppen) • Hat das Team die Aufgabe verstanden?
  8. 14.

    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 & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  9. 15.

    arc42 – Betrachtete Kapitel 1. Einführung und Ziele 1.1. Aufgabenstellung

    1.3. Stakeholder 3. Kontextabgrenzung 3.1. Fachlicher Kontext 3.2. Technischer Kontext 3.3. Externe Schnittstellen 11. Risiken & technische Schulden 12. Glossar Anforderungsbezogene Informationen Besonders wichtige Entscheidungen Legende:
  10. 16.

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

    • Funktionale Anforderungen 1.3. Stakeholder • Liste der wichtigsten Personen • Einfluss auf Architektur / System
  11. 19.

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

    Verweise auf externe Dokumentation • Auflistung verwendeter externer Schnittstellen
  12. 20.

    11. Risiken & technische Schulden • Priorisierte Liste von Risiken

    der Architektur • Hilft dem Projektmanagement • Zeigt eventuelle Probleme des Systems • Priorisierte Liste von technischen Schulden • Hilft dem Entwicklerteam / Projektmanagement • Zeigt evtl. aufzuarbeitende Schulden auf
  13. 22.

    Iteration 1 - Aufgabenstellung und Kontextabgrenzung 1. Einführung und Ziele

    1.1. Aufgabenstellung 1.3. Stakeholder 3. Kontextabgrenzung 3.1. Fachlicher Kontext 3.2. Technischer Kontext 3.3. Externe Schnittstellen 11. Risiken & technische Schulden 12. Glossar Anforderungsbezogene Informationen Besonders wichtige Entscheidungen Legende:
  14. 24.

    Iteration 2 – Randbedingungen, Qualitätsziele & Lösungsstrategie • Ziel •

    Klären der Randbedingungen Was schränkt die Architektur ein? • Erarbeiten von Qualitätszielen Was sind die nichtfunktionalen Anforderungen / Architekturtreiber? • Zu Qualitätszielen passende Lösungsstrategie erarbeiten Wie können wir die gesetzten Qualitätsziele erreichen?
  15. 25.

    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 & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  16. 26.

    arc42 – Betrachtete Kapitel 1. Einführung und Ziele 1.2 Qualitätsziele

    2. Randbedingungen 2.1 Technische Randbedingungen 2.2 Organisatorische Randbedingungen 2.3 Konventionen 4. Lösungsstrategie 10. Qualitätsszenarien 11. Risiken & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  17. 27.

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

    Programmiersprachen / grafische Oberflächen 2.2. Organisatorische Randbedingungen • Teamzusammensetzung / Struktur • Ressourcen / Budget 2.3. Konventionen • Programmierrichtlinien • Namenskonventionen
  18. 28.

    1. Einführung und Ziele 1.2. Qualitätsziele • 3-5 wichtige Qualitätsziele

    • Nichtfunktionale Anforderungen Qualitätsziel Beschreibung Benutzerbarkeit Die Anwendung soll leicht zu bedienen sein Wandelbarkeit Das System soll so gebaut sein, dass zukünftige neue Anforderungen leicht einzuarbeiten sind Sicherheit Das System arbeitet mit personenbezogenen Daten. Daher ist sehr viel Augenmerk auf Datensicherheit und Datenschutz zu legen. … …
  19. 29.

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

    bei der systematischen Bewertung der Architektur • Wer? -> Was? -> Wie (schnell, aufwändig)? • Verwendungsszenarien • Ein Supportmitarbeiter soll innerhalb von 10 Minuten aus einem gemeldeten Problem einen Bug erstellen können. • Änderungsszenarien • Das System soll um das Anlegen von Change Requests erweitert werden. Der Aufwand soll weniger als 2 Personentage betragen.
  20. 30.

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

    Lösungsansatz • Wie sollen die Qualitätsziele / Qualitätsszenarien erreicht werden? • Verweis auf Randbedingungen, Entwurfsentscheidung, … • Bindeglied zwischen Anforderungen (Kapitel 1-3, 10 und 12) und Lösungen (Kapitel 5–7, 9 und 11) Qualitätsziel Szenario Lösungsansatz Links zu Details QZ A QS A.1 Technologie x Entwurfsentscheidung 9.1 QZ A QS A.2 Vorgehensweise z Link zur Wikipedia QZ B QS B.1 … …
  21. 31.

    Iteration 2 – Randbedingungen, Qualitätsziele & Lösungsstrategie 1. Einführung und

    Ziele 1.2 Qualitätsziele 2. Randbedingungen 2.1 Technische Randbedingungen 2.2 Organisatorische Randbedingungen 2.3 Konventionen 4. Lösungsstrategie 10. Qualitätsszenarien 11. Risiken & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  22. 33.

    Iteration 3 – Lösungsentwurf • Ziel • Erarbeiten eines konkreten

    Lösungsansatzes • Bausteinsicht • Wichtige Entwurfsentscheidungen treffen • Entwurf im Team kommunizieren und zur Diskussion stellen
  23. 34.

    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 & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  24. 35.

    arc42 – Betrachtete Kapitel 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 & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  25. 36.

    5. Bausteinsicht • Statische Sicht auf Bausteine & deren Abhängigkeiten

    • Hierarchische Darstellung • Whitebox & Blackbox-Templates • Komponentendiagramme & textuelle Erklärungen
  26. 37.

    6. Laufzeitsicht • Zusammenarbeit der Bausteine zur Laufzeit • Nur

    die wichtigsten Szenarien • Tabellarisch • Interaktionsdiagramme & textuelle Erklärungen
  27. 38.

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

    Wie wird es deployed & betrieben? • Deployment-Diagramm & textuelle Erklärungen TFS VM OTRS VM «executionEnvironment» IIS «executionEnvironment» IIS Open Ticket Request System (OTRS) OTRS TFS Konnektor Team Foundation Server (TFS) Webservice.yml A Anpassungen WorkItem Bug HTTP / SOAP HTTP / Client Object Model
  28. 39.

    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 …
  29. 41.

    Iteration 3 – Lösungsentwurf 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 & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  30. 43.

    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 & technische Schulden 12. Glossar Anforderungsbezogene Informationen Strukturen der Lösung (Sichten) übergreifende (technische) Informationen Besonders wichtige Entscheidungen
  31. 45.

    Retrospektive • Was habt ihr gelernt? • Sind eure Erwartungen

    erfüllt worden? • Was hat euch gefallen? • Was ist verbesserungswürdig?
  32. 46.

    Quellen • arc42 - http://arc42.org/ • 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