Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
Lebendige Architektur-
Dokumentation -
kontinuierlich und effizient
1.0
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Ihr Sprecher
Architektur
Agile Softwareentwicklung
Codequalität
Trainer, Berater, Entwickler
Falk Sippach (@sippsack)
2
Co-Organisator
Feedback gern an: @sippsack, [email protected]
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Java, XML und Open Source seit 1998
) Competence Center)) Object Rangers )
• Schulungen, Coaching,
Weiterbildungsberatung,
Train & Solve-Programme
• Methoden, Standards und
Tools für die Entwicklung
von offenen, unternehmens-
weiten Systemen
• Unterstützung laufender
Java Projekte
• Perfect Match
• Rent-a-team
• Coaching on the project
• Inhouse Outsourcing
• Schlüsselfertige Realisierung
von Java Software
• Individualsoftware
• Pilot- und Migrationsprojekte
• Sanierung von Software
• Software Wartung
) Software Factory )
3
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Abstract
4
Man kann zwar an vielen Stellen nachlesen, wie man
Architekturdokumentation strukturiert. Aber auf der
Suche nach einer praktikablen Handhabung zur
Erstellung und Pflege enden die meisten Versuche in
der WYSIWYG-Hölle einer Textverarbeitung oder im
tiefen Schlund eines Wikis. In diesem Vortrag wollen wir
uns anschauen, wie aufbauend auf bestehenden Tools
und Textformaten eine möglichst redundanzfreie
Dokumentation erstellt und für verschiedene
Zielgruppen in ansprechenden Formaten ausgeliefert
werden kann. Es wird dabei um Begriffe wie Continuous
Documentation und Documentation as Code gehen.
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 5
Warum? Agil? Was? Wie?
Kontinuierliche Architekturdokumentation
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 6
Warum?
Kontinuierliche Architekturdokumentation
Agil? Was? Wie?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 7
Anforderungenklären
Architekturentwerfen
Architekturbewerten
aus: Effektive
Softwarearchitekturen
Architektur kommunizieren
Waru
m d
okum
entier
en?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 8
"In software, there is always architecture.
You can’t have no architecture."
"But with it’s documentation, there are
two options: you can have one or not."
"If you have one, there are two options:
the documentation matches with the real
architecture or not."
Waru
m d
okum
entier
en?
http://techblog.kontext-e.de/keeping-architecture-and-doc-in-sync/
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 9
Waru
m d
okum
entier
en?
"Die Architektur zu dokumentieren,
ist der kritische, krönende Schritt
zur Erschaffung."
"… dass auch eine perfekte
Architektur nutzlos bleibt,
wenn sie nicht verstanden wird …"
Aus: Software Architecture Documentation in Practice von Bachmann, Bass
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 10
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Gründe für eine Architektur-Dokumentation
11
Neue Mitarbeiter
Entwurfsunterstützung
Frage nach Warum
Bewertbarkeit
Kommunikation
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 12
Warum?
Kontinuierliche Architekturdokumentation
Agil? Was? Wie?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 13
Agi
l dok
um
entier
en?
Scrum ist "murcS"
rückwärts!
"Wenn ein Projekt
den Bach runter geht,
dann nennt man das wohl
Wasserfall."
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 14
Agile Teams brauchen nicht dokumentieren!
Häh?
Endlich ...
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 15http://agilemanifesto.org/background.jpg
Laufende Software
wichtiger als
ausführliche Dokumentation
Wer ist schuld?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Worauf das agile Manifest eigentlich abzielte …
16
Documentation through the
Software Development Lifecycle
http://www.agilemodeling.com/essays/agileDocumentationBestPractices.htm
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 17
Agile Methoden
kennen keinen
Architekten!
"Who needs
an Architect?"
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 18
Architekt als
Ratgeber/Mentor
und Moderator
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 19
Dokumentation braucht einen
Kümmerer
Vorbereiten
Planen
Erinnern
Delegieren
Integrieren
Prüfen
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 20
Agile Projekte
iterativ
kontinuierlich
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 21
Continuous
Documentation
Automatisiert erstellen
Regelmässig ergänzen
Reviewen
Nachbessern
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 22
Redundanzen
vermeiden
Quellcode verlinken
Platzhalter einbetten
Single Source of Truth
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 23
Inhalte
generieren
WSDL, Swagger
DB-Schema
Annotationen
JavaDoc
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 24
Schnittstellenbeschreibung generieren
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 25
Validierung
SanityChecks
Broken Links
PDFUnit
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 26
Ausführbare Dokumentation
Ausführbare Tests
Einbettung in Dokument
Reportgenerierung
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 27
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 28
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 29
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 30
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 31
Warum?
Kontinuierliche Architekturdokumentation
Agil? Was? Wie?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 32
Was
dok
um
entier
en?
Inhalt
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Was ist nochmal Architektur?
33
fundamentale
Strukturen,
Konzepte,
Entscheidungen
und Lösungsansätze
... die wesentlich sind, damit Systeme
ihren Anforderungen genügen!
... die man nicht mehr leicht losbekommt!
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Was gehört in die Architektur-Dokumentation?
34
Bausteine und Schnittstellen
Zusammenarbeit zur Laufzeit
Integration in techn. Infrastruktur
Technische Konzepte
Wichtige Entscheidungen
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 35
Pragmatik/Effektivität
nur so viel wie nötig
geringe Änderungsrate
Zielgruppenbedürfnisse
Feedback einpflegen
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 36
Warum?
Kontinuierliche Architekturdokumentation
Agil? Was? Wie?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 37
Wie
dok
um
entier
en?
Prozess Werkzeugkette
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 38
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 39
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 40
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
arc42 Templates
41
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 42
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Video, Podcast
Präsentation
Blog/Wiki
Dokument
PDFHTML
E-ReaderPapier
Single Sourceof Truth
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 44
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Zielgruppen identifizieren
45
Projektleiter
Produkt-
manager
TesterBetrieb
Fach-
experten
Entwickler
Architekt
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Braucht jeder alles?
• Inhalte pro Zielgruppe festlegen
• möglichst ein zentrales Dokument (Single Source of Truth)
• (automatisiert) verschiedene Ausgabedokumente generieren
46
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 47
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 48
Hauptsache, du machst es
nicht mit Word!
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 49
• Plain-Text
• Entwicklungsumgebung
• Kommandozeilen-
werkzeuge
• Versionsverwaltung
Unser täglich Entwickler-Brot:
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 50
Documentation as Code
Code-Nähe
Ablage im Repo
Versionier-/diffbar
Synchrone Auslieferung
Offlinefähig
Teil des Build-Prozess
Generierung
Automatisierung
Flexible Ausgabeformate
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 51
HTML
Leser
EntwicklerWorkflow
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Alternative Datenformate zu Textverarbeitung
52
Wikis
Mindmaps
Plain-Text
LaTex/DocBook
Richtext
Plain-Text, leicht lesbar, einfach
editierbar, automatisiert verarbeitbar
eingeschränkte Lesbarkeitkollaborativ
visuell,
kurz & knappAustauschformat
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Markdown
Normaler Text wird so dargestellt wie eingegeben.
*Kursiv*, **Fett** und ***Fett kursiv*** bzw. _Kursiv_, __Fett__ und ___Fett kursiv___
Markiert Text als `Inline-Quelltext`
Ein Code-Block
durch Einrückung
mit vier Leerzeichen
* Ein Punkt in einer ungeordneten Liste
* Ein Unterpunkt, um vier Leerzeichen eingerückt
1. Ein Punkt in einer geordneten Liste
2. Ein weiterer Punkt
1. Noch ein Punkt bei mehrfacher Angabe derselben Ziffer
# Überschrift in Ebene 1
#### Überschrift in Ebene 4
53
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
AsciiDoc
54
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Welcher Markup-Typ bin ich?
55
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Tools für Markup-Sprachen
56
… und Sublime, Atom, IntelliJ IDEA, Eclipse, …
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Markup generieren
• aus JavaDoc/Annotations
• aus Enumwerten (Zustandsübergänge)
• Schnittstellenbeschreibung (WSDL, Swagger, WADL)
• DB-Schema (SchemaCrawler)
57
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 58
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 59
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Quelle für Bilder/Grafiken
• Export aus UML-Modellen
• Manuelle Erstellung (Bildverarbeitung/Visualisierungsprogramme)
• Einbetten/Verlinken in Markup:
60
![Alternativtext](bild.png "Bildtitel hier")
image::bild.png[Alternativtext]
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 61
Tools
… und Visio, Enterprise Architect, Magic Draw, …
yEd ist ein kostenloses
Visualisierungsprogramm
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Diagramme als textuelle Beschreibung
• viele Formate (PlantUML, ditaa, …)
• Einbetten in Markup-Dokumente:
62
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 63
"AsciiArt"
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 64
Online-
Tools
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 65
Generation Plain-Text Diagramme
Nie mehr aktuell halten müssen!
Quellen:
Sourcecode
DB-Schema
XML-Modell
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 66
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 67
Verschiedene Szenarien
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Szenario 1: Markdown, Pandoc, PlantUML, yEd
• Schreiben in Markdown in IDE (IntelliJ IDEA) inkl. Preview
• PDF-Erzeugung mit PanDoc über LaTex-Zwischenschritt inkl.
Corporate Design
• UML-Diagramme mit PlantUML, Live-Ansicht/Export aus IDE
• andere Diagramme mit yEd, Export als *.png
• Stash/Bitbucket Server als Repo
– rendert Markdown direkt in Weboberfläche
– readme.md Verlinkungen auf wichtige Dokumente
68
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Szenario 1: User-Feedback
69
"Entwickler finden es
klasse, Leser innerhalb
der Firma: finden das
generierte PDF sehr gut
und hübsch."
"… fast alles ist
leicht versionier-
und diffbar"
"… jeder Entwickler
kann ändern…""Nie wieder anders!
Ich bin voll überzeugt."
"Generiertes PDF
stellt alles bisherige
in den Schatten."
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Szenario 2: AsciiDoctor, Maven, PlantUML
• Erstellen AsciiDoc und PlantUML in IDE mit Preview
• Maven-Plugin zum Erzeugen des HTML/PDF
70
Demo
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Szenario 3: Generierung aus Quellcode
• Quellcode parsen
– Reflection
– Spring Kontext
– …
• in Unit-Test aus Klassen-Strukturen Diagramm-Markup erzeugen
– z. B. PlantUML
– als Text-Datei ablegen und in Markup-Dokumentation verlinken
• im Build-Prozess als Input für Markup-Konvertierung einlesen
71
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Szenario 4: Schnittstellenbeschreibung
• Generierung aus WSDL, WADL, Swagger
• Einbindung in Build-Prozess
• Swagger2Markup
• JAX-RS Analyzer
• Spring REST Docs
72
Demo
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH
Szenario 5: Ausführbare Dokumentation
• Quellcode-Struktur in Graph-Datenbank importieren
• Architektur-Regeln als Graph-Abfragen in AsciiDoc einbetten
73
Demo
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 74
Wie
dok
um
entier
en?
Struktur?Werkzeuge?
Medien?
Doku-Format?Grafiken?
Ziel-gruppen?
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 75
Wiki
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 76
Zusammenarbeit
Verlinkung
Review-/Redaktions-Prozess
Prozess-Unterstützung
Abbildung Workflow
Erweiterung über Plugins
Alles in einer Box!
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 77
Schlund des Wiki
Strukturiert?
Plain-Text?
Offlinefähigkeit?
Versionierung?
Code-Nähe?
Automatisierung?
Druckausgabe?
Zielgruppen?
Kontextwechsel
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 78
TasksMentions
Kommentare Jira
Lebendige Architektur-Dokumentation - kontinuierlich und effizient© Orientation in Objects GmbH 79
Balsamiq Mockups
Gliffy (Diagramme, UML)
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
? ?
??
?Fragen ?
80
Orientation in Objects GmbH
Weinheimer Str. 68
68309 Mannheim
www.oio.de
Vielen Dank für Ihre
Aufmerksamkeit !