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

Spieglein, Spieglein an der Wand ... Softwarearchitektur reflektieren (Java Forum Nord 2015)

Spieglein, Spieglein an der Wand ... Softwarearchitektur reflektieren (Java Forum Nord 2015)

Softwarearchitektur ist die Summe fundamentaler Entscheidungen, etwa zu den verwendeten Technologien oder zur Struktur der Lösung. Eine Bewertung Ihrer Architekturentscheidungen zur rechten Zeit und die Überprüfung ihrer Einhaltung im Quelltext bringen Ihnen Erkenntnis und Sicherheit. Aber auf sehr unterschiedliche Art und Weise. 
Diese Session führt in Architekturbewertung und Umsetzungsüberprüfung ein und grenzt die beiden Ansätze voneinander ab: Welchen nutzen Sie wann, wo und wie? Weiterhin platziert Stefan Zörner prominente Methoden wie z.B. ATAM im Bild, zeigt Best Practices und Werkzeuge. Und er entzaubert Architekturmärchen. Denn mitunter hat die Realität, also die Umsetzung im Quelltext, mehr Plan.

Stefan Zörner

October 06, 2015
Tweet

More Decks by Stefan Zörner

Other Decks in Programming

Transcript

  1. STEFAN ZÖRNER, EMBARC Java Forum Nord Hannover, 06.10.2015 0 Spieglein,

    Spieglein an der Wand ... Softwarearchitektur reflektieren
  2. 2 Architektur reflektieren embarc.de Spieglein, Spieglein an der Wand …

    Softwarearchitektur reflektieren Softwarearchitektur ist die Summe fundamentaler Entscheidungen, etwa zu den verwendeten Technologien oder zur Struktur der Lösung. Eine Bewertung Ihrer Architekturentscheidungen zur rechten Zeit und die Überprüfung ihrer Einhaltung im Quelltext bringen Ihnen Erkenntnis und Sicherheit. Aber auf sehr unterschiedliche Art und Weise. Diese Session führt in Architekturbewertung und Umsetzungsüberprüfung ein und grenzt die beiden Ansätze voneinander ab: Welchen nutzen Sie wann, wo und wie? Weiterhin platziert Stefan Zörner prominente Methoden wie z.B. ATAM im Bild, zeigt Best Practices und Werkzeuge. Und er entzaubert Architekturmärchen. Denn mitunter hat die Realität, also die Umsetzung im Quelltext, mehr Plan.
  3. 3 Architektur reflektieren embarc.de 1 Intro 2 Was ist (gute)

    Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen. Agenda
  4. 4 Architektur reflektieren embarc.de Stefan Zörner n  Softwareentwickler + -architekt

    bei embarc in Hamburg n  Vorher oose, IBM, Mummert + Partner, Bayer AG, … Schwerpunkte: n  Softwarearchitektur (Entwurf, Bewertung, Dokumentation) n  Java Technologien [email protected] @StefanZoerner xing.to/szr
  5. 5 Architektur reflektieren embarc.de Agenda 1 Intro 2 Was ist

    (gute) Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen.
  6. 6 Architektur reflektieren embarc.de Agenda 1 1 Intro 2 Was

    ist (gute) Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen.
  7. 7 Architektur reflektieren embarc.de Aufgabe (Teil 1) ? ? ?

    Erstellt eine Karte für ein Architektur-Quartett! n  Wählt ein System aus, dass Ihr gut kennt, z.B. Eurer aktuelles Projekt! n  Füllt für dieses System die Vorlage aus! n  Fokus: Erfasst die Stärken ... n  Zeit: 5 Minuten
  8. 8 Architektur reflektieren embarc.de Aufgabe (Teil 2) Tauscht Euch mit

    Eurem Nachbarn aus! n  Lasst die Karten gegeneinander „antreten“ n  Welches System hat gewonnen? n  Tauscht Euch über die Architektur Eurer Systeme aus! n  Zeit: 5 Minuten
  9. 10 Architektur reflektieren embarc.de Agenda 2 1 Intro 2 Was

    ist (gute) Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen.
  10. 12 Architektur reflektieren embarc.de Auf den Punkt gebracht … Softwarearchitektur

    := ∑ wichtige Entscheidungen wichtige Entscheidungen := n  fundamental, weitreichend n  im weiteren Verlauf nur schwer zu ändern
  11. 13 Architektur reflektieren embarc.de „Verunfallte“ Softwarearchitektur? aus Grady Booch: „The

    Accidental Architecture“ IEEE Software 2006 „Every interesting software-intensive system has an architecture. While some of these architectures are intentional, most appear to be accidental.“ „Every interesting software-intensive system has an architecture. While some of these architectures are intentional, most appear to be accidental.“
  12. 14 Architektur reflektieren embarc.de Was ist gute Softwarearchitektur? Gute Softwarearchitektur

    == Entscheidungen wurden explizit getroffen. ? Nein. Zufällige Architektur muss nicht schlecht sein. Aber: -  Sie lässt sich schwer vermitteln. -  Sie lässt sich schwer bewerten.
  13. 15 Architektur reflektieren embarc.de Was ist Architekturbewertung? Umsetzung (Lauffähiger Code,

    laufendes System) Best Practices (Vorgaben, Muster, Stile, Vorgehen ...) Quantitative Analyse, Metriken Umsetzungsprüfung Architekturbewertung Architekturrelevante Anforderungen Architektur / Entwurf (Entscheidungen, Modelle, Konzepte, ...)
  14. 16 Architektur reflektieren embarc.de Agenda 3 1 Intro 2 Was

    ist (gute) Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen.
  15. 20 Architektur reflektieren embarc.de Wichtig: Der wichtigste Einflussfaktur beim Treffen

    von Architekturentscheidungen ist die geforderte Qualität. !
  16. 23 Architektur reflektieren embarc.de Doch nicht so toll? Kritik von

    Elliot Williams: Bestimmte Entscheidungen bei der Konzeption von Arduino schränken den “Maker” stark ein, oder behindern ihn zumindest. Make: AVR Programming — Learning to Write Software for Hardware
  17. 27 Architektur reflektieren embarc.de Arduino is an Open-Source electronics prototyping

    platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments.
  18. 29 Architektur reflektieren embarc.de Wechselwirkungen Die Erreichung von Qualitätsmerkmalen ist

    oft nicht unabhängig voneinander. Typische Beeinflussungen: Effizienz çè Wartbarkeit Sicherheit çè Benutzbarkeit Portierbarkeit çè Effizienz Zuverlässigkeit çè Kosten
  19. 30 Architektur reflektieren embarc.de Bezug zu Architekturbewertung Qualitätsziele geben einen

    Hinweis, welche Kriterien auf Euren Quartettkarten wichtig sind. ATAM Architecture tradeoff analysis method n  verbreitetste Methode zur Bewertung von Softwarearchitektur n  früh anwendbar
  20. 31 Architektur reflektieren embarc.de Agenda 4 1 Intro 2 Was

    ist (gute) Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen.
  21. 32 Architektur reflektieren embarc.de Was ist Architekturbewertung? Umsetzung (Lauffähiger Code,

    laufendes System) Best Practices (Vorgaben, Muster, Stile, Vorgehen ...) Quantitative Analyse, Metriken Umsetzungsprüfung Architekturbewertung Architekturrelevante Anforderungen Architektur / Entwurf (Entscheidungen, Modelle, Konzepte, ...)
  22. 33 Architektur reflektieren embarc.de Die Umsetzung überprüfen ... Umsetzung (Lauffähiger

    Code, laufendes System) Best Practices (Vorgaben, Muster, Stile, Vorgehen ...) Architekturrelevante Anforderungen Architektur / Entwurf (Entscheidungen, Modelle, Konzepte, ...)
  23. 34 Architektur reflektieren embarc.de Die Umsetzung überprüfen ... Umsetzung (Lauffähiger

    Code, laufendes System) Best Practices (Vorgaben, Muster, Stile, Vorgehen ...) Architekturrelevante Anforderungen Architektur / Entwurf (Entscheidungen, Modelle, Konzepte, ...)
  24. 35 Architektur reflektieren embarc.de Umsetzung çè Best Practices Beispiele n 

    Metriken zu Sourcecode-Qualität n  Design-Metriken und -Prinzipien n  Zyklische Abhängigkeiten n  Normierte Distanz n  Testüberdeckung Voraussetzungen n  Zu „unserem“ Projekt passende Best Practices finden n  „Was“ zum messen (Quelltext, lauffähiges System)
  25. 37 Architektur reflektieren embarc.de Die Umsetzung überprüfen ... Umsetzung (Lauffähiger

    Code, laufendes System) Best Practices (Vorgaben, Muster, Stile, Vorgehen ...) Architekturrelevante Anforderungen Architektur / Entwurf (Entscheidungen, Modelle, Konzepte, ...)
  26. 39 Architektur reflektieren embarc.de Spannende Fragen … Finde ich die

    Struktur so im Quelltext wieder? Sind die Verantwortlichkeiten so wie gedacht? Sind die Abhängigkeiten so, wie dargestellt? ?
  27. 43 Architektur reflektieren embarc.de Die Umsetzung überprüfen ... Umsetzung (Lauffähiger

    Code, laufendes System) Best Practices (Vorgaben, Muster, Stile, Vorgehen ...) Architekturrelevante Anforderungen Architektur / Entwurf (Entscheidungen, Modelle, Konzepte, ...)
  28. 45 Architektur reflektieren embarc.de Umsetzung çè Anforderungen Beispiele n  Lasttests

    (Performance, Skalierbarkeit) n  Simulation von Fehlersituationen (Zuverlässigkeit) n  (Kritische) Auswahl von Metriken (Wartbarkeit) Problem n  Um hier Messungen durchführen zu können wird zumindest ein Prototyp benötigt, oder Teile des Quellcodes ➜ Risiken motivieren Prototypen
  29. 46 Architektur reflektieren embarc.de Agenda 5 1 Intro 2 Was

    ist (gute) Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen.
  30. 48 Architektur reflektieren embarc.de Was ist ein Szenario? Ein (Qualitäts-)Szenario

    ... n  ... ist ein kurzer Text (1-3 Sätze). n  ... beschreibt beispielhaft die Verwendung des Systems, und zwar so dass ein Qualitätsmerkmal die Hauptrolle spielt. Man muss sinnvoll drüber reden können. Man muss es (theoretisch) überprüfen können. (Kein Abnahmekriterium, kein Testfall!) ! Wie konkret?
  31. 49 Architektur reflektieren embarc.de Verwendungsszenarien (oder auch: Use Case-Szenarien) n 

    „Normale“ Verwendung des Systeme durch einen Akteur n  Beispiel-Quelle: Ein Benutzer im Systemkontext Ein Spieler setzt seinen Gegner bei einer Online-Partie matt. Beide werden darüber maximal 2 Sekunden später informiert. Beispiel-Szenario für eine Online-Schachplattform
  32. 50 Architektur reflektieren embarc.de Änderungsszenarien (oder auch: Wachstumsszenarien) n  Es

    kommt etwas hinzu oder ändert sich n  Beispiel-Auslöser: Mehr Benutzer, neues UI Ein Entwickler will eine neue Sprache (z.B. Spanisch) für die Weboberfläche unterstützen. Sein Aufwand liegt (bei vorliegender Übersetzung) unter einem Personentag. Beispiel-Szenario für eine Online-Schachplattform
  33. 51 Architektur reflektieren embarc.de Fehlerszenarien (oder auch: Katastrophen- oder Stress-

    Szenarien) n  Wie verhält sich das System bei etwas Unerwartetem? n  Beispiel-Auslöser: Verbindungsabbruch Fremdsystem Ein Spieler schließt während einer laufenden Online-Partie seinen Webbrowser. Nach Neustart des Browsers und Anmeldung kann er das Spiel fortsetzen. Beispiel-Szenario für eine Online-Schachplattform
  34. 52 Architektur reflektieren embarc.de Bestandteile eines Szenarios Antwort-Maß Quelle Typische

    Bestandteile eines Qualitätsszenarios: Ein angemeldeter Schach-Polizist ruft über das Internet den Bericht zu verdächtigen Spielern auf und erhält das Ergebnis innerhalb von 5 Sekunden.
  35. 53 Architektur reflektieren embarc.de Bezug zu Architekturbewertung Qualitätsziele geben einen

    Hinweis, welche Kriterien auf Euren Quartettkarten wichtig sind. ATAM Architecture tradeoff analysis method n  verbreitetste Methode zur Bewertung von Softwarearchitektur n  früh anwendbar n  szenarienbasiert Szenarien konkretisieren die Ziele und helfen dabei zu bewerten, wie gut sie erreicht werden (bzw. wurden).
  36. 55 Architektur reflektieren embarc.de Agenda 6 1 Intro 2 Was

    ist (gute) Softwarearchitektur? 3 Einflüsse und Entscheidungen 4 Die Umsetzung überprüfen 5 Risiken und Kompromisse 6 Fazit und weitere Informationen.
  37. 58 Architektur reflektieren embarc.de tl;dr Softwarearchitektur beschäftigt sich mit grundlegenden,

    später schwer änderbaren Entscheidungen. Um eine Architektur bewerten zu können muss man sie gegen die Anforderungen halten. Das geht qualitativ (Durchsprache) und quantitativ (Tools, Messen). ATAM ist eine szenarienbasierte, qualitative Methode, die vor allem Kompromisse und Risiken aufzeigt. Konzepte und Ideen daraus passen auch in einen modernen Kontext.
  38. 59 Architektur reflektieren embarc.de Buch: Vorgehensmuster für Softwarearchitekturen 27 Kombinierbare

    Praktiken in Zeiten von Agile und Lean Autor: Stefan Toth Umfang: ca. 270 Seiten Verlag: Hanser Verlag, 2. Aufl., 06/2015 Sprache: Deutsch ISBN: 978-3-446-44395-2 www.swamuster.de
  39. Vielen Dank. Ich freue mich auf Eure Fragen! [email protected] xing.to/szr

    @StefanZoerner DOWNLOAD FOLIEN: http://www.embarc.de/blog/
  40. 61 Architektur reflektieren embarc.de Spicken erlaubt! è  http://architektur-spicker.de Unsere Architektur-Spicker

    beleuchten die konzeptionelle Seite der Softwareentwicklung. Spicker #1: „Der Architekturüberblick“ •  Welche Zutaten gehören in einen Architekturüberblick? •  Welche Formen bewähren sich in welchen Situationen? •  Wie fertigen Sie einen Architekturüberblick an? PDF, 4 Seiten Kostenloser Download. ç
  41. Wir teilen unser Wissen gerne mit Ihnen... und auch bei

    Ihnen! Sie haben eine Community of Practice und suchen inhaltliche Anregungen oder Abgleich? Sie planen ein Team-Event und wollen es neben der sozialen Komponente auch fachlich ausrichten? LASSEN SIE UNS NEUE THEMEN AUFZEIGEN UND IMPULSE SETZEN! è  http://www.embarc.de/leistungen/impulsvortraege/