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. Architektur-Kata entwerfen – dokumentieren - kommunizieren Andreas Richter ar@anrichter.net @anrichter

    anrichter.net
  2. Agenda Vorstellungsrunde Das arc42-Template Kata-Runden (3 – 4) Retrospektive

  3. Vorstellungsrunde

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

    bringe ich mit? Welche Erwartungen habe ich an den Workshop? Hallo…
  5. Das arc42-Template

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

    entwerfen • Technische Konzepte entwerfen • Architektur kommunizieren • Umsetzung begleiten • Architektur bewerten
  7. Warum überhaupt ein Template? • Projektübergreifend einheitliche Struktur • Schnelles

    Ablegen von Informationen • Schnelles Wiederfinden von Informationen • Umfassend • Kann als eine Art „Checkliste“ dienen
  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/
  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:
  10. Kata-Runden

  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
  12. Iteration 1 Aufgabenstellung und Kontextabgrenzung

  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?
  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
  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:
  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
  17. 3. Kontextabgrenzung 3.1. Fachlicher Kontext • Logischer Informationsfluss mit Nachbarsystemen

    • Fachliches Kontextdiagramm & Textuelle Erläuterung
  18. 3. Kontextabgrenzung 3.2. Technischer Kontext • Technische Kommunikation mit Nachbarsystemen

    • Deploymentdiagramm & Textuelle Erklärung
  19. 3. Kontextabgrenzung 3.3. Externe Schnittstellen • Abhängigkeiten von Drittanbietern •

    Verweise auf externe Dokumentation • Auflistung verwendeter externer Schnittstellen
  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
  21. 12. Glossar • Liste der wichtigsten Begriffe & deren Erklärung

    • Alphabetisch sortiert
  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:
  23. Iteration 2 Randbedingungen, Qualitätsziele & Lösungsstrategie

  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?
  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
  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
  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
  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. … …
  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.
  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 … …
  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
  32. Iteration 3 Lösungsentwurf

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

    Lösungsansatzes • Bausteinsicht • Wichtige Entwurfsentscheidungen treffen • Entwurf im Team kommunizieren und zur Diskussion stellen
  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
  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
  36. 5. Bausteinsicht • Statische Sicht auf Bausteine & deren Abhängigkeiten

    • Hierarchische Darstellung • Whitebox & Blackbox-Templates • Komponentendiagramme & textuelle Erklärungen
  37. 6. Laufzeitsicht • Zusammenarbeit der Bausteine zur Laufzeit • Nur

    die wichtigsten Szenarien • Tabellarisch • Interaktionsdiagramme & textuelle Erklärungen
  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
  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 …
  40. 9. Entwurfsentscheidungen • Wesentliche Entscheidungen und deren Gründe Bildquelle: arc42.de

  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
  42. Iterationen 1-3 Alles zusammen

  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
  44. Retrospektive

  45. Retrospektive • Was habt ihr gelernt? • Sind eure Erwartungen

    erfüllt worden? • Was hat euch gefallen? • Was ist verbesserungswürdig?
  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
  47. Vielen Dank! Andreas Richter ar@anrichter.net @anrichter anrichter.net