02.12.2014 ARCHITEKTUR KATA als Trainingsform für agile Teams Roland Mast Sybit GmbH Software Architekt Scrum Master roland.mast@sybit.de 1
02.12.2014 Ich Du Wir Ihr Architektur Kata Architektur Vision 2
Software-Architektur-Aufgaben Anforderungen und Randbedingungen klären Strukturen entwerfen Technische Konzepte entwerfen Architektur kommunizieren Umsetzung überwachen Architektur bewerten Was ist eine Kata? 3
Architektur Kata 1. Durchgang 50 Minuten für Architekturentwurf Beantworte die wichtigsten Architektur- und Design-Fragen Berücksichtige die wichtigen Qualitätsziele und Randbedingungen Dokumentiere mit Hilfe von Diagrammen, Tabellen, Listen 30 Minuten Präsentation Pause 4
System im Kontext BR-online Content Management System Subsysteme 5
Komponenten Legende Abhängigkeit Sichten / blackbox whitebox System im Kontext SYS Subsysteme SUSY-1 SUSY-2 Komponenten KOMP-1 KOMP-2 KOMP-3 6
Architektur-Entwicklung Kontext Sichten Umsetzung Architektur-Kontext Qualitätsziele Randbedingungen Kontext Lösungsstrategie Risiken 7
Qualitätsmerkmale (ISO 9126) Funktionalität Benutzbarkeit Wartbarkeit Angemessenheit Richtigkeit Interoperabilität Sicherheit Ordnungsmäßigkeit Konformität Verständlichkeit Erlernbarkeit Bedienbarkeit Attraktivität Konformität Analysierbarkeit Modifizierbarkeit Stabilität Testbarkeit Konformität Zuverlässigkeit Effizienz Übertragbarkeit Reife Fehlertoleranz Wiederherstellbarkeit Konformität Zeitverhalten Verbrauchsverhalten Konformität Anpassbarkeit Installierbarkeit Koexistenz Austauschbarkeit Konformität Architektur-Sichten Bausteinsicht Laufzeitsicht Verteilungssicht 8
Architektur-Umsetzung Technische Konzepte Entwurfsentscheidungen Qualitätsszenarien für Architekturbewertung Architektur Dokumentation 9
Tipps für effektive Diagramme Titel + Beschriftungen Kurz, verständlich nummeriert falls hilfreich Vorsicht mit Abkürzungen Orientierung Benutzer oben und Datenbank unten? Material Am besten mit Karten und Postits beginnen Flipcharts für den Teamraum Elektronisch für Dokumentation Linien-Farben-Formen Bewusste und konsistente Verwendung Annotationen zur Verständlichkeit Rahmen Zur Hervorhebung und zur Gruppierung sinnvoll Legende Für Formen, Linien, Farben, Rahmen, Abkürzungen Diagramm Checkliste Struktur Geschachtelte Abstraktionsebenen Darstellung des System-Kontexts Wesentliche Komponenten für die Umsetzung der wichtigsten Anforderungen Qualitätsziele Layout Verständliche Verwendung von Notation, Formen, Farben usw. Legende 10
Architektur-Kata - 2. Durchgang 15 Minuten für Systemkontext Abgrenzung zu Umsystemen Verantwortlichkeiten Geschachtelte Abstraktionsebenen Verbesserte Diagramme Architektur-Kata - 3. Durchgang 15 Minuten für Ziele und Lösungsansätze Qualitätsziele Randbedingungen Lösungsansätze passend zu den Qualitätszielen 30 Minuten Präsentation (2. + 3. Durchgang) 11
System-Kontext Subsysteme 12
Subsystem TravelService Architektur-Vision in Phase Null Kürze Systemkontext Priorisierte Qualitätsziele Komponenten der obersten Ebene Randbedingungen und Risiken Architektur- Vision Verständlichkeit Akzeptanz 13
Software-Architektur ist die Menge der Designentscheidungen deren Änderung hohe Kosten verursachen (Booch) muss flexibel genug sein, um spätere Anforderungen aufnehmen zu können muss einfach sein, um unnötigen Aufwand und Komplexität zu vermeiden Was für die Architektur gilt, gilt auch für deren Dokumentation! Architektur Kata Trainiert die Umsetzung von Anforderungen in eine passende Softwarearchitektur die richtigen Fragen an die Stakeholder stellen, um die Anforderungen zu verstehen das Erkennen und Priorisieren von architekturrelevanten Anforderungen die Dokumentation in Form von aussagekräftigen Diagrammen und kann hervorragend bei der Erarbeitung einer Architektur Vision eingesetzt werden 14
Quellen Ted NewardsTechnical Blog: ArchitecturalKatas blogs.tedneward.com/2010/06/17/architectural+katas.aspx Gernot Starke: Effektive Software-Architekturen -Ein praktischer Leitfaden, Hanser 2011 Gernot Starke: Softwarearchitekten: Die Zehnkämpfer der IT dl.dropbox.com/u/45486/arc42-downloads/02-zehnkaempfer.pdf Template für Architekturdokumentation www.arc42.de/template/template.html Roock, Pichler: Die Architekturvision in Scrum www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2011/04/pichler_roock_os_04_11.pdf Stefan Toth: Vorgehensmuster für Softwarearchitektur, Hanser 2014 isaqb-zertifizierung www.isaqb.de Gemälde und Fotos von Lisa und Theresa Roland Mast Sybit GmbH Software-Architekt Scrum Master roland.mast@sybit.de 15
Relaunch von Columbus Reisen Zweck des Systems Columbus-Reisen ist ein etabliertes Portal für die Bewertung und Buchung von Reisen. Die aktuelle web-basierte Applikation stammt noch aus der Gründerzeit und ist den heutigen Anforderungen nicht mehr gewachsen. Der Kundenstamm ist auf über 10 Millionen registrierte Benutzer angewachsen. Die Reiseangebote stammen momentan von mehreren verschiedenen Anbietern. Die Benutzer haben insgesamt 2,5 Millionen Bewertungen zu ca. 20.000 Hotels abgegeben. Der Relaunch soll anfänglich die bestehende Funktionalität in neuem Layout darstellen und gleichzeitig flexibel gestaltet werden, für weitere Expansion in europäische Länder und neue Märkte. Anforderungen Registrierte Benutzer können nach Pauschal- und Individualreisen in Europa suchen und diese beim preiswertesten Anbieter buchen. Benutzer können Bewertungen von Hotels abgeben in Form von Text, Bildern und Videos. Die Manipulation von Bewertungen anderer Benutzer muss verhindert werden. Die Bewertungen werden nach einem komplizierten Regelwerk überprüft, um Missbrauch weitestgehend einzuschränken Columbus-Mitarbeiter bereiten die Einstiegsseiten für die Reiseangebote redaktionell auf Batch-Läufe während der Nacht zur Aktualisierung der Reiseangebote sollen nach und nach durch online-anfragen ersetzt werden Die Ladezeit einer Webseite soll maximal 10 Sekunden betragen Stakeholder 10 Millionen Benutzer von Columbus-Reisen Reisecenter das Teile des Webauftritts manuell pflegt Die Strategie des Managements ist eine weitere Expansion des Unternehmens. Externe Berater haben das Management davon überzeugt, dass dies mit den aktuellen System nicht zu meistern ist, eine Neuimplementierung jedoch alle Probleme löst Der Betrieb wünscht sich eine einfache und zuverlässige Deployment-Strategie, um dem Wunsch des Produkt-Managements nach häufigen Aktualisierungen (1x täglich) nachkommen zu können. Rahmenbedingungen Das Altsystem ist eine PHP-Anwendung Das Regelwerk zur Überprüfung der Bewertungen soll ohne Änderung übernommen werden Alle Daten befinden sich in verschiedenen MySQL Datenbanken und müssen übernommen werden Das Entwicklungsteam besitzt sehr gute PHP und etwas Java-Kenntnisse Das neue System soll pünktlich zur wichtigsten Reisemesse (in 18 Monaten) online gehen.