Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WJAX 2015: arc42 Reality Check

WJAX 2015: arc42 Reality Check

Seit über 10 Jahren gibt es arc42 - die pragmatische Vorlage/Arbeitshilfe für
Architekturdokumentation. Im Vortrag stelle ich diverse Optionen für den Praxiseinsatz
von arc42 vor - von Werkzeugen bis hin zur Organisation von Dokumentation im Projekt.

Anhand von Beispielen zeige ich auf, wie Architektur- und Codedokumentation
zusammenspielt - und wie wir eine pragmatische und nützliche
(technische) Projektdokumentation aufsetzen können.

Insbesondere sehen Sie textbasierte (AsciiDoc)-Dokumentation im Zusammenspiel
mit Modellierungswerkzeugen wie Enterprise-Architect (tm) und VisualParadigm (tm)
im Einsatz - und wie das zusammen mit git auch entwicklerfreundlich funktioniert.

Dr. Gernot Starke

November 05, 2015
Tweet

More Decks by Dr. Gernot Starke

Other Decks in Programming

Transcript

  1. Dr. Gernot Starke innoQ Fellow   Softwarearchitekturen Entwurf, Entwicklung, Management

    Evolution & Modernisierung Dokumentation Training   Mentoring und Coaching Analyse und Optimierung von Entwicklungsprozessen   Reviews +49 177 – 728 2570 [email protected] www.arc42.de
  2. AuYau von arc42, Version 6, Stand März 2012. © Dr.

    Peter Hruschka und Dr. Gernot Starke. Frei für kommerzielle und private Nutzung. 1. Einführung und Ziele 1.1 Aufgabenstellung 1.2 Qualitätsziele 1.3 Stakeholder 7.Verteilungssicht 7.1 Infrastruktur Ebene 1 7.2 Infrastruktur Ebene 2 …. 2. Randbedingungen 2.1 Technische Randbedingungen 2.2 Organisatorische Randbedingungen 2.3 Konventionen 3. Kontextabgrenzung 3.1 Fachlicher Kontext 3.2 Technischer- oder Verteilungskontext 4. Lösungsstrategie 5. Bausteinsicht 5.1 Ebene 1 5.2 Ebene 2 …. 6. Laufzeitsicht 6.1 Laufzeitszenario 1 6.2 Laufzeitszenario 2 …. 8. Konzepte 8.1 Fachliche Struktur und Modelle 8.2 Typische Muster und Strukturen 8.3 Persistenz 8.4 Benutzeroberfläche …. 9. Entwurfsentscheidungen 9.1 Entwurfsentscheidung 1 9.2 Entwurfsentscheidung 2 …. 10. Qualitätsszenarien 10.1 Qualitätsbaum 10.2 Qualitäts-/Bewertungsszenarien 11. Risiken 12. Glossar
  3. Mit arc42 starten (Tag 1) Beispiele! Pragmatische Hilfe für Softwarearchitekten

    gernot STARKE peter HRUSCHKA hQp://aim42.github.io/htmlSanityCheck/
  4. Mit arc42 starten (Tag 1, 13:30h)... neue Systeme 1.  Kontext

    2.  Qualitätsziele 3.  Lösungsstrategie 4.  Konzepte 1.  Domäne 2.  Persistenz, UI etc. bestehende Systeme 1.  Bausteine (Code-Struktur) Level 1 2.  Konzepte + typische Lösungsmuster 3.  Externe SchniQstellen (= Kontext)
  5. Mit arc42 im Projekt... Projektdokumenta\on ~arc42 „locker“ Diskussionen Implementa\on-Guide, Tasks

    / Issues Systemdokumenta\on Weitere relevante Infos... (Betrieb/Admin, Test, Release...) 11. Risiken ARC42 Architektur-Dokumentation 1. Einführung und Ziele 2. Randbedingungen 3. Kontextabgrenzung 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Konzepte 10. Qualitätsszenarien 9. Entwurfsentscheidungen 4. Lösungsstrategie 12. Glossar Team „Gärtner“
  6. arc42 und größere Systeme Gesamtsystem Kontextabgrenzung (externe SchniQstellen) Bausteinsicht L1

    Ablauf System-UseCases Zentrale Entscheidungen Zentrale Konzepte Subsystem #1 Bausteinsicht Lokale Abläufe Subsystem #2 Bausteinsicht Lokale Abläufe Subsystem #3 Bausteinsicht Lokale Abläufe 11. Risiken ARC42 Architektur-Dokumentation 1. Einführung und Ziele 2. Randbedingungen 3. Kontextabgrenzung 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Konzepte 10. Qualitätsszenarien 9. Entwurfsentscheidungen 4. Lösungsstrategie 12. Glossar 11. Risiken ARC42 Architektur-Dokumentation 1. Einführung und Ziele 2. Randbedingungen 3. Kontextabgrenzung 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Konzepte 10. Qualitätsszenarien 9. Entwurfsentscheidungen 4. Lösungsstrategie 12. Glossar 11. Risiken ARC42 Architektur-Dokumentation 1. Einführung und Ziele 2. Randbedingungen 3. Kontextabgrenzung 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Konzepte 10. Qualitätsszenarien 9. Entwurfsentscheidungen 4. Lösungsstrategie 12. Glossar 11. Risiken ARC42 Architektur-Dokumentation 1. Einführung und Ziele 2. Randbedingungen 3. Kontextabgrenzung 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Konzepte 10. Qualitätsszenarien 9. Entwurfsentscheidungen 4. Lösungsstrategie 12. Glossar Link Link Link
  7. Kleine Systeme... Leeres Template == 26 Seiten Übertrieben für kleine

    Projekte, oder? arc42 == Schrank, nicht Formular SUPER für kleine Projekte: •  !meboxed verwenden •  essen\elle Dinge einbringen
  8. Building Blocks Hierarchy Kontext Level 1 Level 2 Level 3

    H t ml S a n it y Check use r Bu ild sy st em (e.g . G r adle, m ake) loc al ht ml file(s) loc al i m ages exter n al websites & resources * Risk * references « p ost po n ed » checks checks checks references H t ml S a n it y Check loc al - ht ml loc al -i m ages user build - syste m exter n al websites local - resources HS C Co re AllChecksRun ner local file syste m Results ht t p (exter n al) HS C G r a d le Plu gin HSC Com m a n d Lin e In t erfa ce HS C G r a phic al In t erfac e done pla n n ed L egend via shell HS C Co re AllChecksRun ner local file syste m Results ht t p (exter n al) «li br a r y » H t ml P a rser Results Collect o r Fin d in g s A ll Checks R un n e r done pla n n ed L egend Ch ecker Su ggest er Re po r t e r fin d suggestions crea te / execu te 1.. a d d Fin d in g pa rse Results Results Collect o r Results Re po r t e r Pe r - Ru n Results Sin gle C heck Resu lts w h a tIsC heck ed : St rin g sourceIte m :St ring t a r getIt em :St ri n g n r OfIte msChecked :in t Sin gle P age Resu lts pageN a m e :St ring pa geTit le :S t rin g m et aInfo :PageMet aInfo Fin d in g it e m :S t rin g sug gest ion :St rin g Fin d in g s a d d - Fin d in g 1.. * 0.. * 1 unused i m ages 1 Gradle sub-projects: •  core: org.aim42.htmlsanitycheck •  gradle-plugin: org.aim42.htmlsanitycheck
  9. Building Blocks Hierarchy Kontext Level 1 Level 2 Level 3

    H t ml S a n it y Check use r Bu ild sy st em (e.g . G r adle, m ake) loc al ht ml file(s) loc al i m ages exter n al websites & resources * Risk * references « p ost po n ed » checks checks checks references H t ml S a n it y Check loc al - ht ml loc al -i m ages user build - syste m exter n al websites local - resources HS C Co re AllChecksRun ner local file syste m Results ht t p (exter n al) HS C G r a d le Plu gin HSC Com m a n d Lin e In t erfa ce HS C G r a phic al In t erfac e done pla n n ed L egend via shell HS C Co re AllChecksRun ner local file syste m Results ht t p (exter n al) «li br a r y » H t ml P a rser Results Collect o r Fin d in g s A ll Checks R un n e r done pla n n ed L egend Ch ecker Su ggest er Re po r t e r fin d suggestions crea te / execu te 1.. a d d Fin d in g pa rse Results Results Collect o r Results Re po r t e r Pe r - Ru n Results Sin gle C heck Resu lts w h a tIsC heck ed : St rin g sourceIte m :St ring t a r getIt em :St ri n g n r OfIte msChecked :in t Sin gle P age Resu lts pageN a m e :St ring pa geTit le :S t rin g m et aInfo :PageMet aInfo Fin d in g it e m :S t rin g sug gest ion :St rin g Fin d in g s a d d - Fin d in g 1.. * 0.. * 1 unused i m ages 1 Gradle sub-projects: •  core: org.aim42.htmlsanitycheck •  gradle-plugin: org.aim42.htmlsanitycheck Classes: AllChecksRunner MissingConfigException Packages: o.a.h.check o.a.h.collect o.a.h.html o.a.h.report Classes: Checker.groovy ImageMapChecker MissingImageFilesChecker
  10. Was ist ein Konzept? Beispiele im Bauwesen: •  Fenster und

    –griffe •  Heizung / Klima •  Flach-/Walm-/Spitzdach
  11. Was ist ein Konzept? Beispiele: ‣  Persistenz ‣  Repor\ng ‣ 

    Batch ‣  Validierung ‣  .... Plan zur Lösung von •  mehrfach auuretenden, •  übergreifenden Problemen.
  12. Themen finden Gliederung nach S. Zörner ‣  Architekturmuster ‣  Entwicklung

    / Weiterentwicklung –  Codegenerierung, Buildmanagment, Tests, Migra\on, Konfigura\on, Modellierung ‣  Unter-der-Haube –  Persistenz, Verteilung, Sicherheit, Transak\onen, Sessions, Caching, Parallelisierung, Threading, Geschäusregeln, Batchverarbeitung ‣  Interak\on –  UI, i18n, Ergonomie, Validierung, Barrierefreiheit, Plausibilisierung, Ausnahme-/Fehlerbehandlung, Ablaufsteuerung, Kommunika\on, Integra\on, Repor\ng ‣  Betrieb ---------------- ----------- --------------- -------------------- ---------- ----------------- ------- -------------- --------------------- Iden\fizieren ----------- ---------- ----------------------- ----- Priorisieren --------------- -------------------------- ------------------------------ -------------- ---------- ------------------------------ -------------------- --------------------------- ------------------------- ----------------------------- ausführen
  13. Konzepte anwenden... Bausteinsicht: -  Zeigt Stereotypen (=> Verweise auf Konzepte)

    Konzepte: –  erklären Implemen\erung, mit Beispielen someWhitebox «Entity» Customer «Web-UI» Planning «REST» Foo-IF «RelationalDB» MySQL «Batch» Adress- validierung «Report» Sales FooApp «Entity» Competition
  14. Anforderungen an Tools •  Text + Tabellen •  Diagramme • 

    Verweise •  Mul\-User •  Änderungshistorie •  Versioniert
  15. Variante 1: plain-Wiki •  Text + Tabellen •  Diagramme • 

    Verweise •  Mul\-User •  Änderungshistorie •  Versioniert
  16. Variante 1b: plain-Wiki++ •  Text + Tabellen •  Diagramme • 

    Verweise •  Mul\-User •  Änderungshistorie •  Versioniert Zeichen-Tool (Visio, Graffle & Co)
  17. Variante 1c: Wiki + Grafik-Plugin •  Text + Tabellen • 

    Diagramme •  Verweise •  Mul\-User •  Änderungshistorie •  Versioniert Etwa: Gliffy (für Confluence)
  18. Variante 2: Wiki + UML-Tool •  Text + Tabellen • 

    Diagramme •  Verweise •  Mul\-User •  Änderungshistorie •  Versioniert UML-Tool (Enterprise-Architect, MagicDraw, Visual-Paradigm & Co) •  Usability •  Akzeptanz
  19. Variante 2: Plaintext + UML-Tool •  Text + Tabellen • 

    Diagramme •  Verweise •  Mul\-User •  Änderungshistorie •  Versioniert AsciiDoc, Markdown •  Geek-Faktor
  20. Variante 3: UML-Tool •  Text + Tabellen •  Diagramme • 

    Verweise •  Mul\-User •  Änderungshistorie •  Versioniert Enterprise-Architect, Visual Paradigm etc. •  Geek-Faktor Modelle
  21. UML-Tool + Export-Automa\sierung •  Export aus Enterprise-Architect™ – Skript in github.com/arc42

    vorhanden •  Export aus VisualParadigm™ – Export möglich •  bislang kein OpenSource Skript verfügbar
  22. Wohin mit Domain-Model? 1.  (gut) QuerschniQliche Konzepte 2.  (ok) Bausteinsicht

    („Domain-Component“) 3.  (hhm) Eigenes (neues) Kapitel
  23. Beispiele für Q-Anforderungen •  Q-Szenarien – Etwa 60 praxisnahe Qualitätsziele (aus

    konkreten Projekten/Systemen abstrahiert) •  Defini\onen für typische Q-Anforderungen – 70+ häufig vorkommende Begriffe rund um Qualität – pragma\sch definiert