Stefan Zörner, oose Innovative Informatik GmbH

Ähnliche Dokumente
Stefan Zörner, oose Innovative Informatik GmbH

Softwarearchitekturen dokumentieren - voll unagil? Stefan Zörner, oose Innovative Informatik GmbH Stefan.Zoerner@oose.de

Stefan Zörner Wiki ausgedruckt? 10 praxistaugliche Tipps für Ihre Architekturdokumentation

DokChess Beispiel für einen Architekturüberblick. Stefan Zörner :: ::

Softwarearchitektur Speed-Dating Wer einsam bleibt ist selber schuld... Stefan Zörner embarc GmbH, Hamburg

arc42 Der pragmatische Leitfaden zur Architekturdokumentation

Historisch gewachsen? Java-Architekturen angemessen dokumentieren

Experts in agile software engineering. Software Architektur andrena objects ag

oose. oose. Impulsvortrag: Steht alles im Wiki? Das kleine 1x1 der Architekturdokumentation Stefan Zörner, oose Innovative Informatik GmbH, Hamburg

Risikogetriebene Softwarearchitektur. STEFAN TOTH Agile Bodensee

Matt in drei Iterationen. Lebendiger Architekturentwurf am Beispiel einer Schach-Engine. Stefan Zörner

Architekturdokumentation leicht gemacht

Verunfallte Softwarearchitektur

Verunfallte Softwarearchitektur

Kleines Einmaleins der Architekturdokumentation. Teil 1: Einflüsse und Entscheidungen Historisch gewachsen?

SOFTWARE- ARCHITEKTUREN

Matt in drei Iterationen.

Matt in drei Iterationen. Stefan Zörner oose Innovative Informatik GmbH

Matt in drei Iterationen. Lebendiger Architekturentwurf am Beispiel einer Schach-Engine. Stefan Zörner

Effektive Software-Architekturen Ein praktischer Leitfaden

Umsichtig planen, robust bauen

ARCHITEKTUR KATA als Trainingsform für agile Teams

Schliemanns Erben. Schliemanns Erben Systemlandschaften wirkungsvoll (nach-)dokumentieren. Stefan Zörner

Beschreibung und Kommunikation. von Software-Architekturen

Softwarearchitektur en passant. Schritt für Schritt eine Schach-Engine entwerfen und ihre Architektur bewerten. Stefan Zörner

Das Märchen vom Agilen Architekten

Stefan Zörner. Softwarearchitekturen dokumentieren und kommunizieren

Inhaltsverzeichnis. Gernot Starke. Effektive Softwarearchitekturen. Ein praktischer Leitfaden ISBN:

Requirements Engineering I

Gernot Starke. Effektive Softwarearchitekturen. Ein praktischer Leitfaden ISBN: Weitere Informationen oder Bestellungen unter

AGILE BODENSEE ARCHITEKTUR KATA. Auf dem Weg zu agiler Softwarearchitektur

IT Architektur. Pragmatische Architektur

Inhaltsverzeichnis. Effektive Softwarearchitekturen (6. Auflage)

Requirements Engineering I

oose. Abhängigkeiten: Die Wurzel allen Übels im Softwareentwurf. Und wie Sie sie in der Java-Entwicklung behandeln...

Das Entwicklungsteam im agilen Prozess. Aufgaben der Software Architektur. Best Practices & Scrum Integration. Zusammenfassung & Ausblick

Effektive Architekturdokumentation mit arc42

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur

Kapitel 1 Applikations-Architektur VIII

2 Softwarearchitektur in der Organisationsstruktur 25

Arc42 Strukturierungshilfe für Architekturdokumentation

Modul Software Komponenten 01 Komponenten

Softwarearchitekten. Basiswissen für. dpunkt.verlag. Foundation Level

Tamagotchi-Spezifikation in UML

2. Ganztagesworkshop des IIBA Germany Chapters 2011

Certified Professional for Software Architecture (CPSA) Advanced Level

Stichwortverzeichnis. Symbole 4+1 Sichten (RUP) 132

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

SOFTWAREARCHITEKTUREN

Curriculum für. CPSA Certified Professional for Software Architecture. Advanced Level. Modul: Architekturdokumentation

vii Inhaltsverzeichnis 1 Einleitung 1

Die Unified Modeling Language UML

Software Engineering

Qualität als Treiber: Wie Qualitätsanforderungen die Architektur steuern

Vorlesung Programmieren

Programmieren 2 - Java

Kapitel 1 Applikations-Architektur VI

Konzeptionelle Integrität im Scrum Prozess

Konzept und Umsetzung

Gliederung des Vortrages

Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen

Glossar. Softwarearchitekturen dokumentieren und kommunizieren downloaded from by on February 12, 2017

SOFTWARE- ARCHITEKTUREN

Systemdenken und Gestaltungsmethodik Dokumentation

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

Do 8.3. Schwarzweiss. Peter Hruschka. January 21-25, 2008, Munich, Germany ICM - International Congress Centre Munich

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg

Herzlich willkommen DevDay Zürich 2016

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Softwarearchitektur als Mittel für Qualitätssicherung und SOA Governance

Software- /Systemarchitektur

Ziele und Tätigkeiten von Architekten

Apache Directory Studio. Ihre Eintrittskarte in die Verzeichniswelt. Über mich

Entwicklungsoptimierung mit einem ALM Tool Positionierung mit Fallstudie

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

Effektive Software- Architekturen

Modellgetriebene Softwareentwicklung

Kapitel 1 Applikations-Architektur VI

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

Software-Engineering

Ein standardisiertes Aus- und Weiterbildungsschema für Software-Architekten: der isaqb CPSA-F Lehrplan

07. November, Zürich-Oerlikon

V-Modell mit UML. Max Kleiner

Quantität für Qualität

Unified Modeling Language 2

Level 2 German, 2013

Agile Architektur. Abstract. Version: 1.0. Orientation in Objects GmbH. Weinheimer Str Mannheim.

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Certified Quacksalber? Zertifizierungen für IT-Architekten. Stefan Zörner

Rhapsody in J Modellierung von Echtzeitsystemen

1.1 Spezifikation und Entwurf im Software-Lebenslauf Lineares Prozessmodell:

Leseprobe. Stefan Zörner. Softwarearchitekturen dokumentieren und kommunizieren

Analyse und Modellierung von Informationssystemen

Objektorientiertes Programmieren

Übung 3: VHDL Darstellungen (Blockdiagramme)

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Was ist Software-Architektur?

Assertions (Zusicherungen)

Proseminar. 7 Laws of Identity by Kim Cameron. Max Marquardt Dresden,

Transkript:

Historisch gewachsen? Architekturdokumentation: Warum sie wichtig ist. Und wie man sie macht. Stefan Zörner, oose GmbH Stefan.Zoerner@de Nordic Coding Kiel, den 7. Dezember 2012 Stefan Zörner :: sz@de seit 2006 Berater und Trainer bei oose Vorher IBM, Mummert + Partner, Bayer AG, Schwerpunkte: Softwarearchitektur (Entwurf, Bewertung, Dokumentation) Java Technologien sz@de ::@StefanZoerner :: szoerner@apache.org 1

1 Warum Softwarearchitekturen dokumentieren? 1 Agenda 2 Die Aufgabe beschreiben 3 Die Lösung festhalten und kommunizieren 4 Lochen und abheften 5 Fazit und weitere Informationen Fragen, die neue Mitarbeiter so stellen (1)? Wo soll ich sitzen? Was brauche ich für Tools? Wie checke ich die Quelltexte aus, und wie baue ich die Software? Warum sind bei mir die Tests rot? 2

Fragen, die neue Mitarbeiter so stellen (2)? Ich finde mich nicht zurecht. Wie finde ich einen Einstieg? Diese Teile hier wie arbeiten die zusammen? Ich soll hier neue Funktionalität hinzufügen, wie stelle ich das an? Ich habe hier etwas Ähnliches gefunden, kann ich das wiederverwenden? Fragen, die neue Mitarbeiter so stellen (3)? Diese Software, an der wir hier arbeiten, was macht die überhaupt? Warum benutzen wir eigentlich noch Java 1.4? Wieso habt Ihr das so gemacht? Ist das nicht viel zu kompliziert? Würde man das nicht eigentlich so machen? 3

4

Antworten, die neue Mitarbeiter erhalten! 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. Was ist Softwarearchitektur?? 5

Definitionen zu Softwarearchitektur 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 Eine (!) Definition. Unsere. Softwarearchitektur := wichtige Entscheidungen wichtige Entscheidungen := fundamental im weiteren Verlauf nur schwer zu ändern 6

Idealbild: Architekturüberblick auf < 30 Seiten Implementierung des Idealbildes? arc42 -- Vorschlag für ein Template (Gernot Starke, Peter Hruschka) http://www.arc42.de/ 7

Sieben Regeln für gute Dokumentation 1. Schreibe aus Sicht des Lesers 2. Vermeide unnötige Wiederholungen 3. Vermeide Mehrdeutigkeiten 3. a) Erkläre Deine Notation 4. Verwende eine Standardstrukturierung 5. Halte Begründungen für Entscheidungen fest 6. Halte Dokumentation aktuell, aber auch nicht zu aktuell 7. Überprüfe Dokumentation auf ihre Gebrauchstauglichkeit Documenting Software Architectures: Views and Beyond Clements, et.al, 2. Auflage 2010 Vor dem! Anfertigen jeglicher Dokumentation stehen die Fragen Für wen? und Weshalb?. Wer sind unsere Zielgruppen? Welchen Zweck verfolgen wir mit der Dokumentation? 8

Drei mögliche Ziele von Architekturdokumentation Beim Entwurf der Architektur unterstützen Die Umsetzung und Weiterentwicklung des Systems leiten Die Architektur nachvollziehbar und bewertbar machen by oose innovative Informatik GmbH 1 Warum Softwarearchitekturen dokumentieren? 2 Agenda 2 Die Aufgabe beschreiben 3 Die Lösung festhalten und kommunizieren 4 Lochen und abheften 5 Fazit und weitere Informationen 9

Homepage Active Camel 10

Architekturziele als Produktkarton Was entwickeln wir eigentlich? Was ist das zentrale Verkaufs- oder Nutzungsargument ("Claim", "Slogan")? Wem nützt es? Was sind die wesentlichen Features des Systems? Wie unterscheidet es sich von Produkten der Mitbewerber, oder der Vorgängerversion? Speziell für die Architektur Welche Qualitätsmerkmale (= Ziele) sind besonders wichtig? Welche Randbedingungen sind interessant? Beispiel: Schach-Engine DokChess 11

Beispiel: Ziele von DokChess DokChess ist eine voll funktionsfähige Schach-Engine. http://www.dokchess.de Sie dient als einfach zugängliches und zugleich ungemein attraktives Fallbeispiel für Architekturentwurf, -bewertung und -dokumentation. Der verständliche Aufbau lädt zum Experimentieren und zum Erweitern der Engine ein. Ziel ist nicht die höchstmögliche Spielstärke dennoch gelingen Partien, die Gelegenheitsspielern Freude bereiten. 12

node.js? Systemkontext einer Online-Plattform 13

Systemkontext DokChess Die Kontextsicht zeigt das Umfeld, d.h. alle außerhalb des eigenen Systems liegenden Benutzer und Fremdsysteme, mit denen direkt kommuniziert wird. 1 Warum Softwarearchitekturen dokumentieren? 3 Agenda 2 Die Aufgabe beschreiben 3 Die Lösung festhalten und kommunizieren 4 Lochen und abheften 5 Fazit und weitere Informationen 14

Was ist Softwarearchitektur? (Reloaded) Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled. (Eoin Woods) Architekturentscheidungen sind fundamental. Diejenigen, die sich im weiteren Verlauf nur sehr schwer revidieren lassen. Konsequenzen: höhere Kosten, Zeitverlust, ggf. scheitert das Vorhaben Entscheidungen treffen und festhalten. Ein Werkzeug 15

Leitfragen Zwei zentrale Entscheidungen in DokChess Wie kommuniziert die Engine mit der Außenwelt? (den Gegnern) Sind Stellungsobjekte veränderlich oder nicht? http://www.dokchess.de/ 16

Entscheidungen treffen + festhalten Probekapitel auf http://www.swadok.de/ Analogie: Sichten (Views) auf Softwarearchitektur 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: Sichten in arc42 Kontextsicht Bausteinsicht (= Struktur) Laufzeitsicht (= Verhalten, Dynamik) Verteilungssicht (= Deployment auf die Zielumgebung) 17

Zusammenspiel Systemkontext und Zerlegung Blackbox Whitebox Zerlegung von DokChess in Subsysteme 18

Beispiel eines Ablaufes in DokChess 1 Warum Softwarearchitekturen dokumentieren? 4 Agenda 2 Die Aufgabe beschreiben 3 Die Lösung festhalten und kommunizieren 4 Lochen und abheften 5 Fazit und weitere Informationen 19

Dokumentation als Fremdwort Do ku men ta ti on [ zion] [lat.] die; -, -en: 1. a) Zusammenstellung u. Ordnung von Dokumenten und Materialien jeder Art, durch die das Benutzen und Auswerten ermöglicht oder erleichtert wird Beispiele für Zutaten Stellung Figur Zug Feld «enumeration» Farbe «enumeration» FigurenArt 20

arc42 Vorschlag für eine Gliederung (Gernot Starke, Peter Hruschka) http://www.arc42.de/ arc42 21

Beispiel für einen Architekturüberblick http://www.dokchess.de/ UML = Unified Modeling Language etablierte, standardisierte Notation im Bereich Software-Engineering Primäre Disziplinen: Analyse Entwurf / Architektur umfangreich, 14 Diagrammtypen http://www.uml.org/ 22

Simplified Chinese Simplified UML Verwende nur wenige unterschiedliche Modellelemente in Deinen UML- Diagrammen, die aber korrekt. Idee hinter Simplified UML Leser ohne UML-Kenntnisse wird nicht von einer Symbolflut erschlagen Leser mit UML-Kenntnissen finden sich auch zurecht Sie profitieren trotzdem noch von wichtigen UML-Vorteilen Rückendeckung: "One needs about 20% of the UML to attend to 80% of most modeling problems. So, there is value in spending energy on what you can remove from the UML rather than what you can add." (Grady Booch 2011, im persönlichen E-Mail-Austausch) 23

Diagramme == Sichten auf ein Modell Und im Wiki? 24

1 Warum Softwarearchitekturen dokumentieren? 5 Agenda 2 Die Aufgabe beschreiben 3 Die Lösung festhalten und kommunizieren 4 Lochen und abheften 5 Fazit und weitere Informationen Sieben Regeln für gute Dokumentation 1. Schreibe aus Sicht des Lesers 2. Vermeide unnötige Wiederholungen 3. Vermeide Mehrdeutigkeiten 3. a) Erkläre Deine Notation 4. Verwende eine Standardstrukturierung 5. Halte Begründungen für Entscheidungen fest 6. Halte Dokumentation aktuell, aber auch nicht zu aktuell 7. Überprüfe Dokumentation auf ihre Gebrauchstauglichkeit Documenting Software Architectures: Views and Beyond Clements, et.al, 2. Auflage 2010 25

26

Bücher zum Thema Documenting Software Architectures: Views and Beyond Len Bass, Paul Clements, et al. Addison Wesley, 2. Auflage Oktober 2010 Sprache: English (608 Seiten) ISBN-13: 978-0321552686 Softwarearchitekturen dokumentieren und kommunizieren Entwürfe, Entscheidungen und Lösungen nachvollziehbar und wirkungsvoll festhalten Stefan Zörner, Geleitwort von Gernot Starke Hanser Fachbuch, Mai 2012 Sprache: Deutsch (ca. 280 Seiten) ISBN-13: 978-3446429246 Beispiel für einen Architekturüberblick http://www.dokchess.de/ 27

! Beginnt bereits während des Entwurfs damit, Eure Lösungsideen und Entscheidungen festzuhalten. (anstatt sie zu vergessen) Vielen Dank!?? Ich freue mich auf Eure Fragen! Stefan.Zoerner@de 28