Kontinuierliche Architekturdokumentation im agilen Umfeld · 4 © Orientation in Objects GmbH...

Post on 23-Sep-2020

1 views 0 download

transcript

1

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.deVersion:

Kontinuierliche

Architekturdokumentation

im agilen Umfeld

1.0

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Ihr Sprecher

Architektur

Agile Softwareentwicklung

Codequalität

Trainer, Berater, Entwickler

Falk Sippach (@sippsack)

2

Feedback gern an: @sippsack, falk.sippach@oio.de

Co-Organisator

2

Kontinuierliche Architekturdokumentation im agilen Umfeld© 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

Kontinuierliche Architekturdokumentation im agilen Umfeld© 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.

3

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 5

Die 7 Sünden der

Architekturdokumentation

Doku-Smells

Foto von jesperbkskov: https://pixabay.com/en/fish-newspaper-food-russian-salted-224097/ (CC0 Public Domain Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 6

Anforderungen

klären

Architektur

entwerfen

Architektur

bewerten

aus: Effektive

Softwarearchitekturen

(G. Starke + P. Hruschka)

Architektur

kommunizieren

War

um

dok

um

entier

en?

4

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Gründe für eine Architektur-Dokumentation

7

Neue Mitarbeiter

Entwurfsunterstützung

Frage nach Warum

Bewertbarkeit

Kommunikation

Grafik von The Practical Dev: https://github.com/thepracticaldev/orly-full-res/blob/master/notwritingdocs-big.png (CC0 Public Domain Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 8

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

5

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 9

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 10

Foto von Antranias: https://pixabay.com/en/telescope-view-distant-binoculars-1201497/ (CC0 Public Domain Lizenz)

Textverarbeitung

Visio

Powerpoint

UML-Tools

6

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Alternative Datenformate zu Textverarbeitung

11

Wikis

Mindmaps

Plain-Text

LaTex/DocBook

Richtext

Plain-Text, leicht lesbar, einfach

editierbar, automatisiert verarbeitbar

eingeschränkte Lesbarkeitkollaborativ

visuell,

kurz & knappAustauschformat

Kontinuierliche Architekturdokumentation im agilen Umfeld© 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

12

7

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

AsciiDoc

13

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Welcher Markup-Typ bin ich?

14

8

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Einheitliche Dokumentenstruktur (z. B. arc42)

15

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

arc42 Templates

16

9

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 17

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 18

Foto von UliSchu: https://pixabay.com/en/organization-register-folder-files-1205171/ (CC0 Public Domain Lizenz)

10

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 19

• Plain-Text

• Entwicklungs-

umgebung

• Kommandozeilen-

werkzeuge

• Versions-

verwaltung

Unser täglich Entwickler-Brot:

Foto von geralt: https://pixabay.com/de/unternehmer-start-start-up-karriere-696976/ (CC0 Public Domain Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 20

Documentation as Code

Code-Nähe

Ablage im Repo

Versionier-/diffbar

Synchrone Auslieferung

Offlinefähig

Teil des Build-Prozess

Generierung

Automatisierung

Flexible Ausgabeformate

Foto von ahobbit: https://pixabay.com/en/vault-business-bank-vault-bank-1144249/ (CC0 Public Domain Lizenz)

11

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 21

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 22

Single Source

of Truth

Includes

Quellcode verlinken

Platzhalter einbetten

Foto von pcdazero: https://pixabay.com/en/umbrellas-sea-holiday-summer-beach-921501/ (CC0 Public Domain Lizenz)

12

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 23

Inhalte

generieren

WSDL, Swagger

DB-Schema

Annotationen

JavaDoc

Markup generieren

Foto von ClassicallyPrinted: https://pixabay.com/en/wind-turbine-energy-electricity-937715/ (CC0 Public Domain Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 24

Schnittstellenbeschreibung generieren

13

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 25

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 26

Ein Bild sagt mehr als tausend Worte!

14

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 27

Tools

… und Enterprise Architect, Magic Draw, …

yEd ist ein kostenloses

Visualisierungsprogramm

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Quelle für Bilder/Grafiken

• Export aus UML-Modellen

• Manuelle Erstellung (Bildverarbeitung/Visualisierungsprogramme)

• Einbetten/Verlinken in Markup:

28

![Alternativtext](bild.png "Bildtitel hier")

image::bild.png[Alternativtext]

15

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Diagramme als textuelle Beschreibung

29

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 30

"AsciiArt"

16

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 31

Online-

Tools

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 32

Generation Plain-Text-Diagramme

Quellen:

Sourcecode

DB-Schema

XML-ModellFoto von herbert2512: https://pixabay.com/en/fish-newspaper-food-russian-salted-224097/ (CC0 Public Domain Lizenz)

17

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 33

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 34

Agile Projekte

iterativ

kontinuierlichFoto von Unsplash: https://pixabay.com/de/fluss-bachlauf-bach-l%C3%A4ndlich-768654/ (CC0 Public Domain Lizenz)

18

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 35

Continuous

Documentation

Automatisiert erstellen

Regelmässig ergänzen

Reviewen

Nachbessern

Foto von Ted Van Pelt: https://www.flickr.com/photos/bantam10/5209157298 (CC BY 2.0 Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 36

HTML

PDF

Leser

EntwicklerWorkflow

19

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Ausrichtung auf Zielgruppen

37

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Video, Podcast

Präsentation

Blog/Wiki

Dokument

PDFHTML

E-ReaderPapier

Single Sourceof Truth

20

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 39

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 40

Pragmatik/Effektivität

nur so viel wie nötig

geringe Änderungsrate

Zielgruppenbedürfnisse

Feedback einpflegen

Foto von Devanath: https://pixabay.com/de/bleistift-b%C3%BCro-design-kreative-1209544/ (CC0 Public Domain Lizenz)

Foto von PublicDomainPictures: https://pixabay.com/de/ansager-audio-schwarz-kassette-316584/ (CC0 Public Domain Lizenz)

21

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 41

Validierung

SanityChecks

Broken Links

PDFUnitFoto von skeeze: https://pixabay.com/en/military-honor-guard-inspection-642639/ (CC0 Public Domain Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 42

Ausführbare Dokumentation

Ausführbare Tests

Einbettung in Dokument

Reportgenerierung

Foto von Wikimedia: https://commons.wikimedia.org/wiki/File%3A2014_W6N_-_France_vs_Italy_-_Christelle_Le_Duff_5780.jpg ( Creative Commons Attribution 3.0 Unported)

22

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 43

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 44

23

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 45

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 46

24

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 47

[[architecture:DefinedDependencies]

[plantuml,role=concept]

----

[artifactId:xo.impl] as impl <<:Maven:Project>>

[artifactId:xo.api] as api <<:Maven:Project>>

[artifactId:xo.spi] as spi <<:Maven:Project>>

impl -> api : Defines Dependency

impl -> spi : Defines Dependency

spi -> api : Defines Dependency

----

[[architecture:UndefinedDependencies]]

[source,cypher,role=constraint,requiresConcepts="archit

ecture:DefinedDependencies"]

.There must not be dependencies between Maven

project which have not been defined.

----

MATCH

(p1:Maven:Project)-[:CREATES]->(:Artifact)-

[:CONTAINS]->(t1:Type),

(p2:Maven:Project)-[:CREATES]->(:Artifact)-

[:CONTAINS]->(t2:Type),

(t2)-[:DEPENDS_ON]->(t1)

WHERE NOT

(p1)-[:DEFINES_DEPENDENCY]->(p2)

RETURN

*

----

Architekturdefinition in PlantUML,

eingebettet in Asciidoc

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 48

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

25

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 49

Klassische

Architekten

Rolle

Foto von scottwebb: https://pixabay.com/en/toronto-architecture-skyscraper-1594940/ (CC0 Public Domain Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 50

Architekt/Senior Developer als

Ratgeber/Mentor

und ModeratorFoto von JESHOOTS: https://pixabay.com/de/warten-termin-zeitplan-zeit-eile-410328/ (CC0 Public Domain Lizenz)

26

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 51

Dokumentation braucht einen

Kümmerer

Vorbereiten

Planen

Erinnern

Delegieren

Integrieren

Prüfen

Foto von Berzin: https://pixabay.com/en/ambulance-doctor-students-game-2166079/ (CC0 Public Domain Lizenz)

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 52

Dok

u-Sm

ells

WYSIWYG

REDUNDANZEN

HANDARBEIT

ABLAGE

TOTE DOKU

ELFENBEINTURM

TEXTWÜSTE

27

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 53

Zusa

mm

enfa

ssung

WYSIWYG Plain Text

REDUNDANZEN Generierung

HANDARBEIT Automatisierung

ABLAGE Documentation as Code

TOTE DOKU Lebendige Dokument.

ELFENBEINTURM Kümmerer

TEXTWÜSTE Mehr Grafiken

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH 54

Verschiedene SzenarienFoto von nikidinov: https://pixabay.com/en/ballet-swan-lake-ballerina-dance-2124652/ (CC0 Public Domain Lizenz)

28

Kontinuierliche Architekturdokumentation im agilen Umfeld© 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

55

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Szenario 2: AsciiDoctor, Maven, PlantUML

• Erstellen AsciiDoc und PlantUML in IDE mit Preview

• Maven-Plugin zum Erzeugen des HTML/PDF

56

29

Kontinuierliche Architekturdokumentation im agilen Umfeld© 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

57

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Szenario 4: Schnittstellenbeschreibung

• Generierung aus WSDL, WADL, Swagger

• Einbindung in Build-Prozess

• Swagger2Markup

• JAX-RS Analyzer

• Spring REST Docs

58

30

Kontinuierliche Architekturdokumentation im agilen Umfeld© Orientation in Objects GmbH

Szenario 5: Ausführbare Dokumentation

• Quellcode-Struktur in Graph-Datenbank importieren

• Architektur-Regeln als Graph-Abfragen in AsciiDoc einbetten

59

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.de

??

? ?

????

Fragen ?

60

31

Orientation in Objects GmbH

Weinheimer Str. 68

68309 Mannheim

www.oio.de

info@oio.de

Vielen Dank für Ihre

Aufmerksamkeit !