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

Architekturdokumentation in der Praxis

Architekturdokumentation in der Praxis

Über den (armseligen) Zustand der Dokumentation von Softwarearchitekturen in der Praxis - und was Sie mit einfachen, pragmatischen Mitteln dagegen tun können.

(Vorlesung an der FH Rhein Sieg vom April 2013)

Dr. Gernot Starke

April 25, 2013
Tweet

More Decks by Dr. Gernot Starke

Other Decks in Programming

Transcript

  1. Dr. Gernot Starke performant flexibel integriert geboren in Prograland, lebt

    in Architektonien, Visa für Analytistan und LaTesta, lange Aufenthalte in Bisi-Ness, Schwimmabzeichen im Service-Ozean aktiv
  2. Projektbeispiel „HSQLDB“ Steckbrief Inhalt Java-basierte Datenbank, Bestandteil von OpenOffice (d.h.

    sehr hohe Verbreitung) Unterstützt SQL-1992 Advanced-Level, embedded-mode, (Architektur-) Dokumentation Praktisch keine verfügbar. Open-Source Datenbanksystem, kleine Entwicklergruppe, hohe Kontinuität.
  3. Arc-Doku These: Hier ist „keine Arc-Doku“ angemessen, weil: Kontinuität im

    Entwicklungsteam > 5Jahre Massives Know-How über Codestruktur und Laufzeitverhalten - Team kann System warten und erweitern! Kaum Bedarf an Arc-Doku (sondern: User-Doku!)
  4. ohne Arc-Doku... Wednesday, July 29, 2009, posted by Grady (Booch)

    Linux Institutional Memory A post today in Slashdot reports on the maintainer of the TTY subsystem of the Linux kernel stepping away from his role. <...> loss of intellectual capital. As I've often said, the code is the truth, but it's not the whole truth, and there's considerable architectural knowledge retained in tribal memory. <...> This is yet another reason why, <...> having a reasonably well-understood and accessible statement of a system's significant design decisions - in short, it's architecture - is important. shit happens!
  5. arc42 Big-Picture ARC42 Architektur- Dokumentation 1. Einführung und Ziele 2.

    Randbedingungen 3. Kontextabgrenzung 4. Bausteinsicht 5. Laufzeitsicht 6. Verteilungssicht 7. Typische Muster 8. Technische Konzepte ... ... ... Logging Sicherheit Transaktionen Ergonomie Persistenz ... ... ... Logging Sicherheit Transaktionen Sessions Replikation 10. Bewertungsszenarien 9. Entwurfsentscheidungen Stakeholder- tabelle Wer? Interesse? ... ... Architektur- ziele Ziel Erklärung ... ... Verteilungssicht Laufzeitsicht Kontextabgrenzung download: www.arc42.de
  6. arc42 - etwas detaillierter Anforderungsbezogene Informationen Strukturen des Systems (Sichten,

    Muster) Übergreifende (technische) Konzepte Entwurfsentscheidungen und Risiken
  7. und noch mehr... 1. Einführung und Ziele 2. Randbedingungen 3.

    Kontextabgrenzung 5. Bausteinsicht 6. Laufzeitsicht 7. Verteilungssicht 8. Typische Muster und Strukturen 9. Technische Konzepte 12. Risiken 11. Qualitätsszenarien 4. Lösungsstrategie 10. Entwurfsentscheidungen 13. Glossar
  8. arc42 Anwender Logistik Pharma Medizintechnik Elektrotechnik Robotik div. Finanzbehörden div.

    Versicherungen div. TelCo-Provider div. Bauspar-Träger Eisenbahntechnik Int. Flughafen Air Trafic sonst. Behörden in D, CH, A TÜV
  9. Projektbeispiel „Migration“ Einführung Datenmigration, Finanzwesen, von Mainframe, (VSAM) zu Java-EE

    Steckbrief Einmalige Big-Bang Migration, 15-30 MA, Gesamtaufwand ca. 4500 PT sehr hohe Volatilität der Anforderungen (Architektur-) Dokumentation Praktisch keine benötigt!
  10. Beispiel „Migration“ Einführung und Architekturziele Finanzdaten, höchste Anforderungen an Fehlerfreiheit

    und Performance Randbedingungen > 100 Millionen Datensätze, Big-Bang Migration, 24h max. Laufzeit
  11. Migration (fast) ohne Arc-Doku Für‘s Projekt angemessen - in time

    & budget erfolgreich beendet. Team sofort in neue Projekte verschwunden! Auftraggehmer erhielt sehr ähnlichen Auftrag von anderer Behörde :-(
  12. Projektbeispiel „CRM“ Inhalt RZ betreibt CRM für Massenmarkt- Anbieter (Branchen:

    TelCo, Finance, Energie) Steckbrief SW als Grundlage einer Hosting-CRM- Lösung, 4-7 MA, Laufzeit >24M Auftraggeber: Rechenzentrum (Architektur-) Dokumentation arc42-Struktur, Wiki+UML (+MDSD), Bestandteil der Auslieferungen!
  13. Arc-Doku in CRM: Werkzeuge Ein Verantwortlicher für Doku (und Qualität!)

    TWiki + MagicDraw + CVS + (ant/maven) BugZilla für Anforderungen & „Tasks“
  14. Arc-Doku in CRM: Prozesse Ein Verantwortlicher für Doku (und Qualität!)

    TWiki + MagicDraw + CVS + (ant/maven) BugZilla für Anforderungen & „Tasks“ Aus (einem kleinen Teil des) Architektur-Modell wird Code generiert. Modell nicht aktuell => Code läuft nicht
  15. Arc-Doku CRM: Big-Picture MaMa Druckerei Scanner Callcenter Versender Markt- teilnehmer

    1 Telefon- anbieter MoF 2 4 6 7 7 9 8 3 MaMa Input Output Reporting Configuration Operations- Monitoring Campaign Data Management Campaign Process Control Kundenstamm- & Kampagnendaten Ergebnis- daten Marktteilnehmer- daten Rohergebnis- daten Input Receiver Campaign Data Management File Filter UnMarshaller File Archiver Validator Input ErrorHandler Kundenstamm-, Kampagnen- & Rohergebnisdaten validate file archive file decrypt, unzip file create object from record read/write domain objects read file validation rules Campaign Process Control execute CampaignRules schedule Receivers CampaignProcess Control Campaign Rule Processor Campaign Data Management InOut Scheduler Process ErrorHandler determine input schedule Output Configuration read campaign rules read/write domain objects (Rete) Rule Engine Input schedule receivers Campaign Activities Controller notify init Activities fire Rules prepare Session invoke «interface» IMarkt- Teilnehmer getPrimaryKey() name vorname gebdat anrede titel «abstract» BaseMarkt- Teilnehmer «interface» IKontakt strasse nummer strZusatz etage wohnung postleitzahl ort ortsZusatz land AdresseKontakt rufnummer1 rufnummer2 stammnummer durchwahl mobilnummer1 mobilnummer2 faxnummer land erreichbarVon erreichbarBis TelefonKontakt email1 email2 homepageUrl skypeId icqId OnlineKontakt dueDate dueTime maxRepeat NextAction actionName kindOf CampaignActionType 1 * * 1 {ordered list} Markt- Teilnehmer: name: Billy Beispiel vertrag: <empty> Next ActionList: <empty> Markt- Teilnehmer: name: Billy Beispiel vertrag: T-2000 Next ActionList: <empty> Markt- Teilnehmer: name: Billy Beispiel vertrag: T-2000 Next ActionList: 1: DruckeBrief 2: InfoAnFilialen 3: InfoAnCallCenter Importiere Vertragsdaten von Mandant Schritt 1: Input- Aktivität Schritt 2: Bestimme Folgeaktivität Wenn Vertragstyp == "T-2000" Dann DruckeBrief, InfoAnFilialen und InfoAnCallCenter Entwurfsentscheidungen sind wichtig, und sollten als Grundlage der weiteren Entwickulng dem gesamten Team zur Verfügung stehen.Entwurfsentscheidungen sind wichtig, und sollten als Grundlage der weiteren Entwickulng dem gesamten Team zur Verfügung stehen.Entwurfsentscheidungen sind wichtig, und sollten als Grundlage der weiteren Entwickulng dem gesamten Team zur V erfügung stehen. Entwurfsentscheidungen sind wichtig, und sollten als Grundlage der weiteren Entwickulng dem gesamten Team zur Verfügung stehen.
  16. Arc-Doku in CRM: Erfolgsmuster Einfachheit (Strukturen, Werkzeuge, Prozesse) Klare Verantwortlichkeit

    Doku als Bestandteil der Definition-of-Done Single-Point-of-Truth (redundanzfrei) Strukturierte Faulheit (geringer Wartungsaufwand)
  17. Projektbeispiel „BigWeb“ Inhalt Webanwendung für hochvolumige finanzielle (teilweise sehr vertrauliche)

    Transaktionen Steckbrief Web-Anwendung mit E-Commerce für Geschäftskunden, hoher Termindruck >>80 MA Entwicklungsteam, >24 Mon. (Architektur-) Dokumentation erst 10 Monate Wiki, dann arc42 & Doku-Tooling.
  18. Arc-Doku in BigWeb: Werkzeuge >8 Teilteams Erste Projektphase: MediaWiki |

    Visio | YEdit | ppt | Paint | MS-Word | Enterprise-Architect | <...> | Subversion | DMS oder oder oder Zweite Projektphase: Enterprise- Architect mit arc42-Struktur + Subversion
  19. Arc-Doku in BigWeb: Prozessmuster Ohne Verantwortlichkeit keine Doku Heterogenität (in

    Werkzeugen und Doku-Prozessen) korreliert negativ mit Einfachheit, Verständlichkeit, Wartbarkeit, Füllstand (von Doku) Zeitdruck beeinträchtigt Doku Doku-Prozesse skalieren nicht Blank-Paper Syndrom behindert Fortschritt
  20. Tipps für Ihre Praxis Verantwortung klären Eine Person (a.k.a. Architekt)

    muss Verantwortung für Qualität und Fertigstellung der Dokumentation tragen.
  21. Tipps für Ihre Praxis Keine Doku => nicht fertig! Machen

    Sie (gute!) Doku zum Bestandteil Ihrer Auslieferungen. Ohne Doku keine Abnahme/Freigabe. Schlechte Doku ist ein Bug!
  22. Tipps für Ihre Praxis Einheitliche Strukturen! Verwenden Sie Gliederungsvorlagen (z.B.

    arc42.de) - das erleichtert Schreiben und Lesen von Dokumentation.
  23. (last and final) Tipp für Ihre Praxis Documenting doesn‘t hurt!

    Verwenden Sie Vorlagen und strukturierte Faulheit.