Lebendige Architektur- Dokumentation - kontinuierlich und ......• UML-Diagramme mit PlantUML,...

Post on 17-Feb-2020

8 views 0 download

Transcript of Lebendige Architektur- Dokumentation - kontinuierlich und ......• UML-Diagramme mit PlantUML,...

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.deVersion:

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, falk.sippach@oio.de

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

PDF

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

info@oio.de

? ?

??

?Fragen ?

80

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.de

Vielen Dank für Ihre

Aufmerksamkeit !