oose. Innovative Informatik Kleines 1x1 der Architekturdokumentation Stefan Zörner (Stefan.Zoerner@oose.de) Vortrag in Düsseldorf, 07.05.2009 bei der rheinjug (Düsseldorfer Java User Group) © 2009 by oose.de GmbH Kleines 1x1 der Architekturdokumentation Abstract oose. Innovative Informatik Dokumentieren zählt nicht zu den Lieblingsbeschäftigungen eines JavaEntwicklers. Gerade Architektur und Entwurf einer Softwarelösung werden in vielen Projekten gar nicht oder zumindest nicht angemessen dokumentiert. Dieser Vortrag stellt einige wenige Arbeitsergebnisse vor, mit denen Sie Softwarearchitektur effektiv kommunizieren können. Im Team, und gegenüber dem Auftragsgeber. Welche Notationen und Werkzeuge haben sich in der Praxis bewährt? Was ist Gift? Wie verhindern Sie, dass Ihre Dokumentation veraltet? Oder Sie bei Fragen neuer Mitarbeiter oder im Architekturreview antworten müssen mit ,,das ist historisch gewachsen". Wie viel (oder wenig) Dokumentation hilft wem wann weiter? © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Über mich Stefan Zörner, Dipl.Math. Berater und Trainer bei oose seit Juli 2006, Stefan.Zoerner@oose.de zuvor u.a. 5 Jahre IT Architect bei IBM Veröffentlichungen, Vorträge (Auswahl) Bücher ,,Portlets", 2006 ,,LDAP für Java-Entwickler", 3. Auflage 2007 oose. Innovative Informatik Artikel u.a. in Java Magazin und bei IBM developerWorks Vorträge bei JAX und W-JAX seit 2002, Advisory Board Sonstiges Mitarbeit im Apache Directory Project, seit August 2005 als Committer, seit 2006 im PMC, szoerner@apache.org iSAQB Certified Professional for Software Architecture OMG Certified UML Professional (Intermediate) © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Mission Statement Was erwartet Sie nicht in diesem Vortrag? Quelltext ein umfangreiches Vorgehensmodell viele, viele UML-Diagramme Stattdessen ... oose. Innovative Informatik Anregungen, wie Sie mit dem Thema Architekturdokumentation umgehen können konkrete, in der Praxis bewährte Arbeitsergebnisse © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation oose. Innovative Informatik Agenda 1 2 3 4 5 Montag Morgen Entscheidungen festhalten Sichten auf Architektur Ziele und Visionen Zusammenfassung, Weitere Informationen © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation oose. Innovative Informatik Agenda 1 2 3 4 5 Montag Morgen Entscheidungen festhalten Sichten auf Architektur Ziele und Visionen Zusammenfassung, Weitere Informationen © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Fragen, die neue Mitarbeiter so stellen ... oose. Innovative Informatik Wie checke ich die Sourcen aus, und wie baue ich die Software? Warum sind bei mir Tests rot? Was brauche ich für Tools? Wenn ich neue Funktionalität hinzufügen soll ­ wie stelle ich das an? Hier ist doch schon was Ähnliches, kann ich das wiederverwenden? Was leistet das System überhaupt? Aus welchen Bestandteilen besteht die Software? Wie arbeiten diese zusammen? Ist das irgendwo beschrieben? Warum benutzt ihr noch JDK 1.3? Wieso habt Ihr das denn so gemacht? ... © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Antworten, die neue Mitarbeiter daraufhin erhalten oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Antworten, die neue Mitarbeiter daraufhin erhalten oose. Innovative Informatik Steht alles im Wiki. © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Antworten, die neue Mitarbeiter daraufhin erhalten oose. Innovative Informatik Steht alles im Wiki. Das haben wir nicht dokumentiert ­ wir gehen agil vor. © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Antworten, die neue Mitarbeiter daraufhin erhalten oose. Innovative Informatik Steht alles im Wiki. Das haben wir nicht dokumentiert ­ wir gehen agil vor. Das war schon so, als ich neu war. © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Antworten, die neue Mitarbeiter daraufhin erhalten oose. Innovative Informatik Steht alles im Wiki. Das haben wir nicht dokumentiert ­ wir gehen agil vor. Das war schon so, als ich neu war. Das ist historisch gewachsen. © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Definitionen zu Softwarearchitektur oose. Innovative Informatik Es gibt nicht die eine allgemein akzeptierte Definition für Softwarearchitektur Das Software Engineering Institute (SEI) sammelt sogar Definitionen: http://www.sei.cmu.edu/architecture/definitions.html © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Eine konkrete Definition oose. Innovative Informatik Architektur := wichtige Entscheidungen Softwarearchitektur umfasst die Summe verschiedener wichtiger Entscheidungen über die Auswahl von Strukturelementen und deren Schnittstellen, aus denen das System zusammengesetzt ist das Verhalten und Zusammenspiel dieser Elemente den hierarchischen Aufbau von Subsystemen den zugrunde liegenden Architekturstil ... G. Booch, P. Krutchen, K. Bittner and R. Reitman. The Rational Unified Process -- AnIntroduction. 1999. © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation oose. Innovative Informatik Agenda 1 2 3 4 5 Montag Morgen Entscheidungen festhalten Sichten auf Architektur Ziele und Visionen Zusammenfassung, Weitere Informationen © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Architekturentscheidungen ... oose. Innovative Informatik Zitat zu Architekturentscheidung (Woods) : Die, die wenn falsch "Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled." (Eoin Woods) Architekturentscheidungen sind diejenigen, die sich im weiteren Verlauf nur sehr schwer revidieren lassen. Konsequenzen: höhere Kosten, Zeitverlust, ggf. scheitert das Vorhaben © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Entscheidungen treffen und festhalten. Ein Werkzeug oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Fragestellung, Rahmenbedingungen oose. Innovative Informatik Fragestellung ­ Leitfragen Was genau ist das Problem? Warum ist es für die Architektur relevant? Welche Auswirkung hat die Entscheidung? Rahmenbedingungen ­ Leitfragen Welche festen Randbedingungen haben wir einzuhalten? Welche Einflussfaktoren sind zu beachten? © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Annahmen oose. Innovative Informatik "The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark." (Philippe Kruchten) Annahmen ­ Leitfragen Welche Annahmen haben wir getroffen? Welche Annahmen können wie vorab überprüft werden? Mit welchen Risiken müssen wir rechnen? © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Betrachtete Alternativen, Entscheidung oose. Innovative Informatik Betrachtete Alternativen ­ Leitfragen Welche Lösungsoptionen ziehen wir in die nähere Auswahl? Wie bewerten wir jede einzelne? Welche Optionen schließen wir bewusst aus? Entscheidung ­ Leitfragen Wer hat die Entscheidung getroffen? Wie ist sie begründet? Wann wurde entschieden? © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Gesamtbild. oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation oose. Innovative Informatik Agenda 1 2 3 4 5 Montag Morgen Entscheidungen festhalten Sichten auf Architektur Ziele und Visionen Zusammenfassung, Weitere Informationen © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Schwanensee (1877) oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Beispiel Tanznotation oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Analogie zur Softwarearchitektur: Views (Sichten) oose. Innovative Informatik Es ist sinnvoll, bestimmte Aspekte einer Software mit Bilder statt textuell zu beschreiben Ein einzelnes Bild reicht in der Regel nicht aus Unterschiedliche Sichten für unterschiedliche Aspekte Beispiel: Rational Unified Process (P. Kruchten) 4 + 1 Views: - Logical View Development View Process View Physical View Scenarios © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Literaturtipp zu dem Thema: Effektive Software-Architekturen Ein praktischer Leitfaden von Gernot Starke 383 Seiten, Hanser Fachbuch; 3. Auflage (2008) ISBN 978-3446412156 oose. Innovative Informatik Dort beschriebene Sichten (u.a.) Kontextsicht Bausteinsicht (= Struktur) Laufzeitsicht (= Verhalten, Dynamik) Verteilungssicht © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Die Kontextsicht oose. Innovative Informatik ,,Die Kontextsicht zeigt das Umfeld eines Systems sowie dessen Zusammenhang mit seiner Umwelt." (G. Starke) Software agiert nicht allein ... ... stets gibt es Beteiligte außerhalb des Systems: - Anwendergruppen, die Funktionalität nutzen und erwarten Fremdsysteme, die zur Ausführung erforderlich sind Systemkontextdiagramm: Visualisierung des Umfelds das zu beschreibende System im Mittelpunkt als Blackbox drum herum die direkt beteiligten Benutzer und Fremdsysteme Verbindung zwischen einem solchen Akteur und dem System drückt Interaktion aus. © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Beispiel Kontextsicht (UML) oose. Innovative Informatik 0..* Web Kunde Mail-Server JavaMail SpielplanDB «system» KrimiTicketShop 0..* via Rich Client Telefonische Kartenreservierung PayPal © 2009 by oose GmbH TicketSystem SOAP Wie wird die Kreditkartenbezahlung angebunden? Kreditkarten Abwicklung Kleines 1x1 der Architekturdokumentation Warum ist das so wichtig? Potenzielle Schnittstellen zum Zielsystem finden! Sie Anbindung eines Fremdsystems ist regelmäßig ein technisches Risiko. oose. Innovative Informatik Solche frühzeitig zu erkennen kann entscheidend sein für den Erfolg Ihres Projektes. Architekturentscheidungen ableiten. Startpunkt, um Verantwortlichkeiten zu klären Welche Fremdsysteme müssen wir integrieren? Was leistet unser System, und vor allem: was leistet es nicht? Wo ist die Systemgrenze? © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Was ist was? oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Die Bausteinsicht oose. Innovative Informatik ,,Die Bausteinsicht bildet die Funktionalität des Systems auf Software- oder Implementierungsbausteine ab. Die Sicht macht Struktur und Zusammenhänge zwischen den Bausteinen der Struktur explizit " (G. Starke) Beispiel (UML, Kompositionsstrukturdiagramm) «component» «system» Komponente MenschlicherKörper «delegate» Arbeitskraft «delegate» «subsystem» :Bewegung «subsystem» :HerzKreislauf «subsystem» :Verdauung «delegate» Luft Nahrung «delegate» © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Zusammenspiel Kontextsicht / Bausteinsicht oose. Innovative Informatik System 2 «system» MeinSystem System 3 Blackbox «component» «system» Komponente MeinSystem «delegate» «subsystem» :Subsystem1 «subsystem» :Subsystem3 «subsystem» :Subsystem2 «delegate» «delegate» Whitebox «delegate» © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Es muss nicht immer ein digitales Tool sein ... oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation oose. Innovative Informatik Übungsergebnisse aus einem oose-Seminar zu Softwarearchitektur © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation UML = Unified Modeling Language oose. Innovative Informatik etablierte, standardisierte Notation im Bereich Software-Engineering Primäre Disziplinen: Analyse Entwurf / Architektur umfangreich, 14 Diagrammtypen http://www.uml.org/ © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Diagramme == Sichten auf ein Modell oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation oose. Innovative Informatik Agenda 1 2 3 4 5 Ausgangspunkt Entscheidungen festhalten Sichten auf Architektur Visionen Fazit, Weitere Informationen © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Früher kaufte man Software im Laden in einem Karton ... oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Homepage ActiveMQ oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Projektteams brauchen ein gemeinsames Ziel, eine Vision oose. Innovative Informatik Was entwickeln wir eigentlich? Was ist die Idee des Systems? Wem nützt es? Wie unterscheidet es sich von Produkten der Mitbewerber? Es ist eine Ihrer Aufgaben als Softwarearchitekt, die Idee des Systems im Entwicklungsteamteam zu verankern. © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Mission Statement oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Machen Sie die Systemidee explizit! oose. Innovative Informatik Machen Sie die Systemidee explizit! © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Systemidee auf der Startseite des Projekt-Wikis ... oose. Innovative Informatik © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Virtuellen Produktkarton erstellen oose. Innovative Informatik z.B. http://www.wikihow.com/Create-a-Product-Box-in-Photoshop © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Systemkontext und Systemidee oose. Innovative Informatik 0..* Web Kunde Mail-Server JavaMail SpielplanDB «system» KrimiTicketShop 0..* via Rich Client Telefonische Kartenreservierung PayPal SOAP Wie wird die Kreditkartenbezahlung angebunden? Kreditkarten Abwicklung TicketSystem Was ist drum herum? Was steckt drin? © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation oose. Innovative Informatik Agenda 1 2 3 4 5 Montag Morgen Entscheidungen festhalten Sichten auf Architektur Ziele und Visionen Zusammenfassung, Weitere Informationen © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Zentrale Arbeitsergebnisse zur Architekturdokumentation oose. Innovative Informatik Dokumentation unterstützt die Kommunikation! © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Kolumne ,,Architekturen dokumentieren" oose. Innovative Informatik Java Magazin, 10.2008 ­ 09.2009 http://javamagazin.de/ © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Zeitversetzt auch im Web. oose. Innovative Informatik http://it-republik.de/jaxenter/ © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Seminare bei oose. oose. Innovative Informatik Als öffentliche Veranstaltungen in Hamburg, oder vor Ort bei Ihnen, z.B. [SWA] Praktische Softwarearchitektur - Lebendiger Entwurf mit Methode [OOD2] Fortgeschrittenes Design ­ Entwurfsprinzipien und -muster http://www.oose.de © 2009 by oose GmbH Kleines 1x1 der Architekturdokumentation Zwei weitere Lesetipps ... UML@Work Objektorientierte Modellierung mit UML2 oose. Innovative Informatik M. Hitz, G. Kappel, E. Kapsammer, W. Retschitzegger 422 Seiten, Dpunkt Verlag; 3. Auflage (Juli 2005) ISBN 978-3-89864-261-3 Soft Skills für Software-Entwickler Fragetechniken, Konfliktmanagement, Kommunikationstypen und -modelle von Uwe Vigenschow, Björn Schneider 342 Seiten, Dpunkt Verlag; 1. Auflage (Januar 2007) ISBN 978-3-89864-433-4 © 2009 by oose GmbH oose. Innovative Informatik Vielen Dank! Ich freue mich auf Ihre Fragen ... ? ?? Stefan Zörner :: Stefan.Zoerner@oose.de © 2009 by oose.de GmbH