verunfallte softwarearchitektur. erfolgreiche lösungen höchstens per zufall?
DESCRIPTION
Folien zum Vortrag von Stefan Zörner (embarc GmbH) auf der JAX 2014 in Mainz. Abstract: Mitunter gelingt ein Entwicklungsvorhaben, und alle sind zufrieden. Oder es scheitert am Ende kläglich. Manchmal auch irgendwas dazwischen. Alles nur Zufall? Der Begriff "Zufällige Architektur" (engl. Accidental Architecture) ist als Anti-Pattern durchaus gebräuchlich, der Ausspruch "Historisch gewachsen" passt ebenfalls prima in diesen Kontext. Wie kann Softwarearchitektur zum Erfolg beitragen? Was genau macht eine gute Architektur aus? Wie erreicht oder erkennt man sie? Müssen am Ende alle glücklich sein? Oder sind Kompromisse sogar zwingend erforderlich? Dieser Vortrag ordnet Projektsituationen zwischen zufälliger und wirkungsvoller Softwarearchitektur ein. Er stellt bewährte Praktiken zum Kurs setzen vor und gibt konkrete Tipps rund um Entwurf und Bewertung für Ihr eigenes Vorgehen. Werfen Sie Ballast ab und erhöhen Sie gleichzeitig die Wirksamkeit der Architekturarbeit in ihrem Projekt.TRANSCRIPT
![Page 1: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/1.jpg)
Stefan Zörner | embarc GmbH
Verunfallte SoftwarearchitekturErfolgreiche Lösungen höchstens per Zufall?
![Page 2: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/2.jpg)
@StefanZoerner
xing.to/szr
Über mich (Stefan Zörner) Softwareentwickler, -architekt, Coach bei embarc in Hamburg Vorher oose, IBM, Mummert + Partner, Bayer AG, …
Schwerpunkte: Softwarearchitektur (Entwurf,
Bewertung, Dokumentation) Java-Technologien
![Page 3: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/3.jpg)
1 Einstieg
2 (Gute) Softwarearchitektur
3 Qualitätsmerkmale meistern
4 Entscheidungen treffen und festhalten
5 Die Realität im Auge behalten
6 Ein Selbsttest
7 Fazit und Weitere Informationen1
![Page 4: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/4.jpg)
???
Aufgabe (Teil 1) Erstellt eine Karte für ein Architektur-Quartett!
Wählt ein System aus, dass Ihr gut kennt, z.B. Eurer aktuelles
Projekt!
Füllt für dieses System die Vorlage aus!
Wenn Ihr Bezeichnungen und Stärken erfasst habt: Visualisiert das System: Architekturüberblick oder Avatar
Zeit: 5 Minuten
![Page 5: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/5.jpg)
Aufgabe (Teil 2) Tauscht Euch mit Eurem Nachbarn / Rückbarn aus!
Lasst die Karten gegeneinander „antreten“
Welches System hat gewonnen?
Tauscht Euch über die Architektur Eurer Systeme aus!
Zeit: 5 Minuten
![Page 6: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/6.jpg)
Äpfel mit Birnen vergleichen?
vs.
![Page 7: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/7.jpg)
1 Einstieg
2 (Gute) Softwarearchitektur
3 Qualitätsmerkmale meistern
4 Entscheidungen treffen und festhalten
5 Die Realität im Auge behalten
6 Ein Selbsttest
7 Fazit und Weitere Informationen2
![Page 8: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/8.jpg)
Was ist Softwarearchitektur?
?
![Page 9: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/9.jpg)
Expertenmeinungen
“Softwarearchitecture is about the important stuff, whatever that is.”
(Martin Fowler)
“… not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.”
(Grady Booch)
“Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled.”
(Eoin Woods)
![Page 10: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/10.jpg)
Auf den Punkt gebracht …
Softwarearchitektur :=
wichtige Entscheidungen
wichtige Entscheidungen := fundamental im weiteren Verlauf nur schwer zu ändern
![Page 11: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/11.jpg)
„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.“
![Page 12: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/12.jpg)
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.
? ?
![Page 13: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/13.jpg)
Was ist Architekturbewertung?
Architektur / Entwurf(Modelle, Entscheidungen)
Architekturrelevante Anforderungen
Umsetzungsüberprüfung
Architekturbewertung
Umsetzung(Lauffähiger Code)
![Page 14: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/14.jpg)
Architektur / Entwurf(Modelle, Entscheidungen)
Architekturrelevante Anforderungen
Umsetzungsüberprüfung
Architekturbewertung
Umsetzung(Lauffähiger Code)
Was ist Architekturbewertung?
![Page 15: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/15.jpg)
1 Einstieg
2 (Gute) Softwarearchitektur
3 Qualitätsmerkmale meistern
4 Entscheidungen treffen und festhalten
5 Die Realität im Auge behalten
6 Ein Selbsttest
7 Fazit und Weitere Informationen3
![Page 16: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/16.jpg)
Beispiel: Ein Schach-Programm
Zentrale Features Vollständige Umsetzung der offiziellen
FIDE-Schachregeln Quelltext lädt zum Experimentieren und
zum Erweitern ein Spiel gegen menschliche und
Computergegner Beherrscht taktische Elemente wie
Gabel und Spieß Anbindung von
Eröffnungsbibliotheken
![Page 17: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/17.jpg)
Konkrete Fragestellung
Wie stellt man die Spielsituation als Datenstruktur dar?
Figuren auf dem Brett
Spieler am Zug …
?
![Page 18: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/18.jpg)
Option 1: 2-dimensionales Array
![Page 19: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/19.jpg)
Option 2: Bitfelder
![Page 20: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/20.jpg)
Wartbarkeit Effizienz
Qualitätsmerkmale ausbalancieren
![Page 21: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/21.jpg)
Expertenmeinung
“Bei Shredder ist die Effizienz klar im Vordergrund, die Wartbarkeit des Quelltextes muss da leider manchmal hinten anstehen.”
Stefan Meyer-Kahlen (Autor von Shredder)
![Page 22: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/22.jpg)
![Page 23: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/23.jpg)
Qualitätsziele
Die wichtigsten geforderten Qualitätsmerkmale für ein Softwaresystem heißen Qualitätsziele (oder Architekturziele).
Typischerweise werden als Qualitätsziele im Rahmen eines Architekturüberblicks die Top-3 bis Top-5 genannt.
![Page 24: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/24.jpg)
Beispiel: Qualitätsziele DokChess
Qualitätsmerkmal Ziel
Analysierbarkeit Da DokChess in erster Linie als Anschauungsmaterial für Architekten und Entwickler dient, erschließen sich Entwurf und Implementierung schnell.
Änderbarkeit Alternative Algorithmen und Strategien, etwa zur Bewertung einer Schachstellung, können leicht implementiert und in die Lösung integriert werden.
Interoperabilität Die Engine kann mit angemessenem Aufwand in bestehende grafische Schach-Frontends eingebunden werden.
Attraktivität Die Engine spielt stark genug, um schwache Gegner sicher zu schlagen und Gelegenheitsspieler zumindest zu fordern.
Effizienz Da die Engine in Seminaren und Vorträgen live demonstriert wird, erfolgt die Berechnung der Spielzüge rasch.
Wartbarkeit:
Alternative Algorithmen und Strategien, etwa zur
Bewertung einer Schachstellung, können leicht
implementiert und in die Lösung integriert werden.Effizienz:Da die Engine in Seminaren und Vorträgen live demonstriert wird, erfolgt die Berechnung der Spielzüge
rasch.
Attraktivität:
Die Engine spielt stark genug, um schwache Gegner
sicher zu schlagen und Gelegenheitsspieler zumindest zu
fordern.
![Page 25: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/25.jpg)
Konkretisierung durch Szenarien
Ein Szenario ist ein Beispiel für die Verwendung des Systems, bei dem ein Qualitätsmerkmal die Hauptrolle spielt.
Ein Entwickler implementiert eine figurenzentrierte
Bitboard-Repräsentation der Spielsituation. Der Aufwand
dazu beträgt inklusive Austauschs der bestehenden
Darstellung durch die neue maximal eine Woche.
Während einer Partie antwortet die Engine auf gegnerische Züge innerhalb von 5 Sekunden mit einem Zug.
![Page 26: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/26.jpg)
Konkretisierung durch Szenarien
Antwort-MaßUmgebung
Artefakt Antwort
Quelle
Auslöser
Typische Bestandteile eines Qualitätsszenarios:
In einer Partie ergibt sich für die Engine ein Matt in 3 Zügen. Die Engine zieht sicher zum Sieg.
![Page 27: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/27.jpg)
Bezug zu Architekturbewertung
Qualitätsziele geben einen Hinweis, welche Kriterien auf Euren Quartettkarten wichtig sind.
ATAMArchitecture tradeoff analysis method
verbreitetste Methode zur Bewertung von Softwarearchitektur
früh anwendbar szenarienbasiert
Szenarien konkretisieren die Ziele und helfen dabei zu bewerten, wie gut sie erreicht werden (bzw. wurden).
![Page 28: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/28.jpg)
1 Einstieg
2 (Gute) Softwarearchitektur
3 Qualitätsmerkmale meistern
4 Entscheidungen treffen und festhalten
5 Die Realität im Auge behalten
6 Ein Selbsttest
7 Fazit und Weitere Informationen4
![Page 29: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/29.jpg)
Beispiel: Ein Schach-Programm
Zentrale Features Vollständige Umsetzung der offiziellen
FIDE-Schachregeln Quelltext lädt zum Experimentieren und
zum Erweitern ein Spiel gegen menschliche und
Computergegner Beherrscht taktische Elemente wie
Gabel und Spieß Anbindung von
Eröffnungsbibliotheken
![Page 30: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/30.jpg)
Systemkontext
?
![Page 31: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/31.jpg)
Protokolle für Schachprogramme 2 Lösungen etabliert/dokumentiert beide ASCII-basiert, beide via stdin/stdout
Universal Chess Interface (UCI)
http://wbec-ridderkerk.nl/html/UCIProtocol.html
Chess Engine Communication Protocol („Xboard/WinBoard“)
http://home.hccnet.nl/h.g.muller/engine-intf.html
stdin
stdoutEngine
Frontend
![Page 32: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/32.jpg)
Wann eine Entscheidung treffen?
Ich habe eine Fragestellung, und 2 Optionen
Unterschiedlich, z.B. unterschiedliche Implementierungsdauer
Lösung muss implementiert sein
LRM
Lernfenster
Frage identifiziert
t
![Page 33: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/33.jpg)
Lese-Tipp
Vorgehensmuster für Softwarearchitektur. Kombinierbare Praktiken in Zeiten von Agile und Lean
von Stefan TothVerlag: Hanser Fachbuch 2013Sprache: Deutsch (240 Seiten)ISBN-13: 978-3446436152 http://www.swamuster.de
„Wann sollte eine architekturelle Fragestellung idealerweise entschieden werden, um (1) das Risiko einer Fehlentscheidung zu minimieren und (2) eine optimale Entscheidung für das Projekt zu treffen?“
Vorgehensmuster „Der letzte vernünftige Moment“
![Page 34: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/34.jpg)
Entscheidungen treffen (und festhalten)
![Page 35: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/35.jpg)
1 Einstieg
2 (Gute) Softwarearchitektur
3 Qualitätsmerkmale meistern
4 Entscheidungen treffen und festhalten
5 Die Realität im Auge behalten
6 Ein Selbsttest
7 Fazit und Weitere Informationen
5
![Page 36: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/36.jpg)
Was ist Architekturbewertung?
Architektur / Entwurf(Modelle, Entscheidungen)
Architekturrelevante Anforderungen
Umsetzungsüberprüfung
Architekturbewertung
Umsetzung(Lauffähiger Code)
![Page 37: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/37.jpg)
Architektur / Entwurf(Modelle, Entscheidungen)
Architekturrelevante Anforderungen
Umsetzungsüberprüfung
Architekturbewertung
Umsetzung(Lauffähiger Code)
Umsetzungsüberprüfung
![Page 38: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/38.jpg)
Beispiel: Ein Schach-Programm
Zentrale Features Vollständige Umsetzung der offiziellen
FIDE-Schachregeln Quelltext lädt zum Experimentieren und
zum Erweitern ein Spiel gegen menschliche und
Computergegner Beherrscht taktische Elemente wie
Gabel und Spieß Anbindung von
Eröffnungsbibliotheken
![Page 39: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/39.jpg)
BeispielZerlegung von DokChess nach Verantwortlichkeiten:
![Page 40: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/40.jpg)
Spannende Fragen …
Finde ich die Struktur so im Quelltext wieder?
Sind die Verantwortlichkeiten so wie gedacht?
Sind die Abhängigkeiten so, wie dargestellt?
?
![Page 41: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/41.jpg)
Beispieltool: Sonargraph
![Page 42: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/42.jpg)
Logische Architektur definieren
![Page 43: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/43.jpg)
„Verstöße“ aufdecken
![Page 44: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/44.jpg)
Expertenmeinungen
Je stärker die Wirklichkeit von unseren Wünschen abweicht, desto identischer ist sie mit sich.
(Michael Rumpf)
Architekturkonzepte sind edle Wünsche, solange sie nicht in harter Arbeit implementiert, getestet und verändert wurden.
(Stefan Toth)
![Page 45: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/45.jpg)
1 Einstieg
2 (Gute) Softwarearchitektur
3 Qualitätsmerkmale meistern
4 Entscheidungen treffen und festhalten
5 Die Realität im Auge behalten
6 Ein Selbsttest
7 Fazit und Weitere Informationen
6
![Page 46: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/46.jpg)
Stufen der Softwarearchitektur
zufällig0explizit1
nachvollziehbar2wirkungsvoll3
![Page 47: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/47.jpg)
Kommunikation
Wie werden Fragen nach Architekturentscheidungen, -ansätzen, -konzepten beantwortet?
„Historisch gewachsen …“
Es findet ein Austausch über die Architektur über Projekt-/Teamgrenzen hinweg statt.
Architekturansätze sind im Team bekannt und können neuen Mitarbeitern nachvollziehbar erklärt werden.
„Da musst Du Rene fragen …“
![Page 48: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/48.jpg)
StrukturWo finde ich die Struktur der Lösung?
nur im Quelltext
Teile/Komponenten werden wo sinnvoll über Projektgrenzen wiederverwendet
die Strukturen (z.B. Schichten, fachliche Zerlegung) sind nachvollziehbar an den Anforderungen ausgerichtet
in Diagrammen / Modellen und konsistent dazu im Quelltext
![Page 49: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/49.jpg)
Übergreifende KonzepteWie wird mit übergreifenden Aspekten und Fragestellungen umgegangen?
Tendenziell gibt es keine. Die Lösung ist inkonsistent.
Es gibt einzelne Konzepte, die durchgängig eingehalten werden.
Die Konzepte sind an den Qualitätszielen und architekturrelevanten Anforderungen ausgerichtet.
Die Auswahl der Themen für einheitlichen Konzepte ist nachvollziehbar (inkl. bewusstes Weglassen)
Lösungen für einheitliche Konzepte werden, wo sinnvoll, über Projektgrenzen geteilt.
![Page 50: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/50.jpg)
Stufen der Softwarearchitektur
0 (zufällig)Softwarearchitektur ist implizit, Erfolg Zufall.
1 (explizit)Architekturansätze sind explizit vorhanden und benennbar(Beispiele: Verwendung von Mustern, Entscheidungen für Frameworks)
2 (nachvollziehbar)Die Lösung ist an Zielen und Anforderungen nachvollziehbar ausgerichtet. Umsetzung und Architektur entsprechen sich.
3 (wirkungsvoll)Die Lösung und das Vorgehen der Architekturarbeit sind reflektiert und angemessen. Die Architektur wirkt über Projektgrenzen hinaus.
![Page 51: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/51.jpg)
„The Accidental Architecture“
Grady Booch:„The Accidental Architecture“IEEE Software 2006
„Accidental architectures are not evil things; indeed, they are inevitable in the growth of systems. It’s only whenwe begin to turn these accidental architectures into intentional ones that we advance our understanding of software architecture. “
![Page 52: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/52.jpg)
1 Einstieg
2 (Gute) Softwarearchitektur
3 Qualitätsmerkmale meistern
4 Entscheidungen treffen und festhalten
5 Die Realität im Auge behalten
6 Ein Selbsttest
7 Fazit und Weitere Informationen
7
![Page 53: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/53.jpg)
Äpfel mit Birnen vergleichen?
vs.
![Page 54: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/54.jpg)
Äpfel mit Birnen vergleichen?
Toll Collect Super Mario Bros.
8D 2C
vs.
![Page 55: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/55.jpg)
Fazit
zufällig0explizit1
nachvollziehbar2wirkungsvoll3
Ich kann auch hier unten gute Lösungen produzieren.Ich kann auch hier unten gute Lösungen produzieren. Zufällig.
Die Vorstellung erfolgreiche Lösungen nur dem Zufall zu überlassen, macht mir Angst.
Ich investiere lieber in Architekturarbeit, …Ich investiere lieber in Architekturarbeit, zumindest wenn Scheitern keine Option ist.
![Page 56: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/56.jpg)
Drei Dinge
Qualitätsmerkmale meistern
Entscheidungen treffen und festhalten
Die Realität im Auge behalten3
![Page 57: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/57.jpg)
Softwarearchitekturen dokumentieren und kommunizieren
Entwürfe, Entscheidungen und Lösungen nachvollziehbar und wirkungsvoll festhaltenAutor: Stefan Zörner
Umfang: ca. 280 Seiten
Verlag: Carl Hanser Verlag, 2012Sprache: DeutschISBN: 978-3-446-42924-6
www.swadok.de
27
![Page 58: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/58.jpg)
![Page 59: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/59.jpg)
Blog-Serie bei Hanser Update
update.hanser-fachbuch.de/tag/arc42-starschnitt/
![Page 60: Verunfallte Softwarearchitektur. Erfolgreiche Lösungen höchstens per Zufall?](https://reader035.vdocuments.mx/reader035/viewer/2022062319/5562192ad8b42acb1e8b52d0/html5/thumbnails/60.jpg)
xing.to/szr
@StefanZoerner
Vielen Dank.Ich freue mich auf Eure Fragen!
DOWNLOAD FOLIEN:http://www.embarc.de/blog/