Sie sind hier
E-Book

Vorgehensmuster für Softwarearchitektur

Kombinierbare Praktiken in Zeiten von Agile und Lean

AutorStefan Toth
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2014
Seitenanzahl249 Seiten
ISBN9783446437623
FormatePUB/PDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis27,99 EUR
VORGEHENSMUSTER FÜR SOFTWAREARCHITEKTURBUCHTITEL //
- Arbeiten Sie durch Anforderungen getrieben an Ihrer Softwarearchitektur
- Passen Sie den Architekturaufwand effektiv an Ihr Projekt an
- Profitieren Sie von aktuellen Erkenntnissen zu Zusammenarbeit und Vorgehen
- Verzahnen Sie Softwarearchitektur wirksam mit der Implementierung
- Integrieren Sie Architekturpraktiken erfolgreich in zeitgemäße Vorgehensmodelle
- Im Internet: www.swamuster.de
Moderne Projekte setzen auf dynamische Zusammenarbeit, hohe Flexibilität und Ergebnisorientierung. Eng verzahnt mit dem Kunden werden qualitativ hochwertige Produkte erstellt. Herangehensweisen für Softwarearchitektur müssen sich weiterentwickeln, um in diesen Umfeldern gut zu funktionieren. In der Praxis ist das bereits beobachtbar: Entwicklungsteams kümmern sich gemeinsam um Architekturaufgaben, Architektur wird 'Just-in-time' entschieden und bettet sich in den üblichen Priorisierungsprozess von Anforderungen und Tätigkeiten. Die Theorie hingegen hat an dieser Stelle noch etwas aufzuholen.
Dieses Buch beschreibt leichtgewichtige Bausteine guter Architekturarbeit, die problemorientiert eingesetzt werden können, um das eigene Projekt zu verbessern. In der bewährten Struktur von Mustern wird ein übliches Problem geschildert und mit einer methodischen Lösung versehen. Die Muster referenzieren aufeinander und sind sowohl einzeln als auch in Kombination einsetzbar. Insgesamt entsteht das Bild einer neuen Architekturdisziplin: Einer Disziplin, die sich nicht um den einen Architekten dreht, die sich gut in agile Projekte bettet, die Zielorientierung fördert und Pragmatismus großschreibt.
AUS DEM INHALT //
Risikogetriebene Softwarearchitektur // Rollen und Verantwortung // Qualitätsszenarien // Technische Schulden // Kanban und Backlogs // Architekturvision // Der letzte vernünftige Moment // Architekturprinzipien // Analoge // Modellierung // Architecture Owner // Architekturcommunities // Umsetzungsprüfung
Systemvoraussetzungen für E-Book inside: Internet-Verbindung und Adobe-Reader

Stefan TOTH unterstützt Projekte und Unternehmen als Softwareentwickler, -architekt und Berater. Der effektive und pragmatische Umgang mit Entwurfsfragen und weitreichenden Entscheidungen ist dabei ein zentrales Thema. Seine Erfahrungen gibt er regelmäßig in Form von Vorträgen und Fachartikeln weiter.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

2Einstieg samt Wegweiser


Auf den nächsten Seiten tauchen Sie in die inhaltliche Vision des Buchs ein. Die übergreifende Idee hinter den 29 Vorgehensmustern für Softwarearchitektur ist in Abschnitt 2.1 detailliert dargestellt und mit den Konzepten der übrigen Kapitel verbunden. Nach diesem vielleicht wichtigsten Abschnitt des gesamten Buchs biete ich Ihnen verschiedene Zugänge zu den enthaltenen Vorgehensmustern:

? ? Für Pragmatiker gibt Abschnitt 2.2 – „Muster im Überblick“ einen sachlichen Überblick: Einer Kapitelzusammenfassung folgt jeweils ein Verzeichnis der enthaltenen Vorgehensmuster, inklusive Problem und Kurzbeschreibung.

? ? Für Methodiker kommt Abschnitt 2.3 – „Muster im Vorgehen einsortiert“ gerade recht: Ich stelle hier ein generisches Entwicklungsvorgehen vor, das beschreibt, wie und wann Softwarearchitekturarbeit sinnvoll ist. In dieses Vorgehen integriere ich anschließend die Vorgehensmuster dieses Buchs.

? ? Für Rollenfreunde bietet Abschnitt 2.4 – „Muster und die Architektenfrage“ eine musterübergreifende Antwort auf die Frage, ob und wenn ja, welche Arten von Architekten, in zeitgemäßen Entwicklungsprojekten gefragt sind.

Zum Abschluss stelle ich kurz das Fallbeispiel vor, das Sie durch alle Vorgehensmuster begleiten wird (Abschnitt 2.5).

? ?2.1 Die inhaltliche Vision


Hinter den Vorgehensmustern dieses Buchs steht eine konsistente Vision zeitgemäßer Softwarearchitekturarbeit. Bereits die in Abschnitt 1.3 genannten Definitionen von Softwarearchitektur scheren nicht alle Softwareentwicklungsprojekte über einen Kamm. Menge und Ausprägung von grundlegenden, risikoreichen Fragestellungen sind von Projekt zu Projekt unterschiedlich. Zeitgemäße Softwarearchitektur erkennt diese Individualität auf vielen Ebenen an und greift aktuelle Strömungen der Softwareentwicklung auf. Zeitgemäße Softwarearchitektur ist:

1.Durch Anforderungen getrieben

2.Vom Aufwand her dem Problem angemessen

? ? In dynamischen Umfeldern nicht behindernd

? ? In architektonisch risikoreichen Projekten ausreichend fundiert

3.Von aktuellen Erkenntnissen zu Zusammenarbeit und Vorgehen beeinflusst

4.Gut mit der Entwicklung verzahnt

5.Einfach in aktuelle Vorgehensmodelle integrierbar

? ? Iterativ leistbar

? ? In aktuellen Konzepten des Vorgehens verankert

? ? Frei von behindernden oder umständlichen Ergänzungen

Ich greife diese Punkte im Folgenden auf, beschreibe sie etwas detaillierter und referenziere auf wichtige Vorgehensmuster.

2.1.1?Durch Anforderungen getrieben


Wenn Sie eine fachliche Methode ausimplementieren oder ein neues Feld im UI vorsehen, orientieren Sie sich an Wünschen und Anforderungen des Kunden. Dasselbe sollten Sie tun, wenn Sie Technologien auswählen oder Fremdsysteme anbinden. Was auch immer die grundlegenden Fragestellungen in Ihrem Projekt sind: Lassen Sie sich von Anforderungen leiten.

Qualitätsanforderungen kommt dabei eine besondere Bedeutung zu. Sie beschreiben die nichtfunktionalen Aspekte der zu erstellenden Lösung, also wie eine Funktionalität bereitgestellt werden soll.1 Soll die Funktionalität ohne Unterbrechung zur Verfügung stehen, sind Zuverlässigkeit und Verfügbarkeit wichtig. Wollen wir in Zukunft mehr Benutzer mit unserer Funktionalität beglücken, ist Skalierbarkeit spannend. Wollen wir verhindern, dass Unbefugte heikle Funktionalität nutzen, ist Sicherheit ein Thema. Diese Qualitätsmerkmale beziehen sich oft auf weite Systemteile oder sogar das Gesamtsystem. Zuverlässigkeit lässt sich nicht durch eine neue Klasse oder Komponente sicherstellen, die gesamte Anwendung und deren Basis müssen entsprechenden Prinzipien gehorchen.

Qualität ist somit meist querschnittlich und betrifft viele Projektmitarbeiter. Wir erreichen Qualitätsmerkmale durch den Einsatz der richtigen Technologien, Plattformen, Frameworks, Muster oder die breite Adaptierung von Arbeitsweisen. Das ist grundlegende Arbeit am Fundament. Entsprechende Entscheidungen sind weitreichend und oft aufwendig in der Umsetzung. Wir sind damit mitten in der Architekturdomäne und es ist wenig überraschend, dass Qualitätsanforderungen als die Architekturanforderungen gesehen werden.

 

Wie dieses Buch hilft

Jedes Projekt, egal wie leichtgewichtig oder agil, muss seine qualitativen Anforderungen kennen. In diesem Buch stelle ich einen leichtgewichtigen Ansatz zur Verankerung und gemeinsamen Bearbeitung dieser Anforderungen vor. Den Start macht Kapitel 3 – „Die Grundlage von Architekturarbeit“.

Die wichtigsten Muster für diesen Teil der Vision:

? ? 3.1 – Initialer Anforderungs-Workshop

? ? 3.3 – Szenarien als Architekturanforderungen

? ? 3.6 – Architekturarbeit im Backlog

? ? 4.4 – Architekturentscheidungen treffen

  

2.1.2?Vom Aufwand her dem Problem angemessen


Stellen Sie sich ein Produktentwicklungsprojekt vor, das auf einem bekannten Technologiestack aufsetzt. Es gibt ein passendes, unternehmensspezifisches Applikationsframework, das einzige Umsetzungsteam hat bereits ähnliche Projekte durchgeführt und kennt die Domäne. Der Projektplan ist realistisch und der Aufwand ist überschaubar. Dieses Projekt kommt wohl mit weniger Architekturaufwänden aus als ein großes Projekt für die Umsetzung einer neuartigen Flugsicherungssoftware. Im ersten Projekt ergeben sich wahrscheinlich weniger risikoreiche Fragestellungen. Das Umfeld ist weniger komplex, das zu lösende Problem und der Lösungsweg sind recht gut verstanden. In Projekt zwei sind einige Komplexitätstreiber zu finden – Architekturarbeit wird spannender. Bild?2.1 zeigt, wie sich Architekturaufwände und Komplexitätstreiber die Waage halten sollten.

Arbeit an der Softwarearchitektur hat das Ziel, gute Entscheidungen zum richtigen Zeitpunkt zu treffen und das Risiko einer falschen Entscheidung zu minimieren. Zu hohe Aufwände machen Projekte schwerfällig, langsam und aufwendiger als nötig. Erstellen Sie etwa einen Prototypen für eine einfach umzusetzende Anforderung, verzögern Sie die Umsetzung und die damit verbundene Rückmeldung. Ihr Aufwand hat zudem wenig bis keinen Nutzen. Solche „Irrwege“ behindern vor allem in weniger komplexen, dynamischen Projekten und machen sie starrer als nötig.

Auf der anderen Seite führt zu wenig Arbeit an der Softwarearchitektur zu zufälliger Architektur und potenziell zur Verfehlung wichtiger Projektziele. In architektonisch risikoreichen Projekten muss folglich ausreichend fundierte Architekturarbeit geleistet werden.

Wichtig ist die richtige Balance, die sich für jedes Projekt anders gestaltet.

Bild?2.1?Das richtige Maß für Softwarearchitekturarbeit

 

Wie dieses Buch hilft

Das richtige Maß an Softwarearchitekturarbeit ist in jeder Projektphase interessant. In diesem Buch bespreche ich einerseits die Menge an vorab zu leistender Architekturarbeit, andererseits zeige ich, wie Sie bei konkreten Fragestellungen entscheiden, ob Architekturarbeit notwendig ist und wann diese Arbeit erfolgen sollte.

Die wichtigsten Muster für diesen Teil der Vision:

? ? 4.1 – Architekturarbeit vom Rest trennen

? ? 4.2 – Der letzte vernünftige Moment

? ? 4.3 – Gerade genug Architektur vorweg

  

2.1.3?Von aktuellen Erkenntnissen zu Zusammenarbeit und Vorgehen beeinflusst


Auch wenn die Wurzeln der Disziplin noch weiter zurückreichen, Softwarearchitektur ist ein Kind der 1990er-Jahre. Im universitären Umfeld und mit großer finanzieller Unterstützung des amerikanischen Verteidigungsministeriums wurden Muster, Sprachen und Methoden erarbeitet2. Weil Rollen- und Prozessmodelle ihre Blütezeit erlebten, konnte man die Disziplin relativ leicht einem „Architekten“ zuschlagen.

Die Softwareentwicklung hat seit den 1990er-Jahren viel gelernt. Agile Softwareentwicklung, Lean Development oder auch die Organisationstheorie beinhalten viele Erkenntnisse zu Zusammenarbeit, Komplexität und Dynamik. Auch Softwarearchitektur kann als Disziplin von diesen Erkenntnissen profitieren.

Wie wäre es mit Praktiken, die es ermöglichen, Architekturaufgaben effektiv auf mehrere Schultern zu verteilen? Praktiken, die dynamische Projekte nicht bremsen? Was...

Blick ins Buch
Inhaltsverzeichnis
Inhalt6
Geleitwort8
1Einleitung12
1.1 Kurze Motivation12
1.2 Vorgehensmuster als Mittel der Wahl13
1.3 Gegenstand: Softwarearchitektur14
1.4 Mission Statement15
1.4.1 Abgrenzung zu anderen Büchern16
1.4.2 Für wen ich dieses Buch geschrieben habe18
1.5 Dieses Buch richtig verwenden19
1.5.1 Ein grober Überblick19
1.5.2 Patterns lesen20
1.5.3 Patterns anwenden20
1.5.4 Agil und Lean sind Fremdwörter?23
1.6 Webseite25
1.7 Danksagung25
2Einstieg samt Wegweiser26
2.1 Die inhaltliche Vision27
2.1.1 Durch Anforderungen getrieben27
2.1.2 Vom Aufwand her dem Problem angemessen28
2.1.3 Von aktuellen Erkenntnissen zu Zusammenarbeit und Vorgehen beeinflusst29
2.1.4 Gut mit der Implementierung verzahnt30
2.1.5 Einfach in aktuelle Vorgehensmodelle integrierbar32
2.1.6 Warum Design alleine nicht hilft33
2.1.7 Warum agiles Vorgehen alleine nicht hilft34
2.2 Muster im Überblick36
2.2.1 Kapitel.3 – die Basis für Architekturarbeit36
2.2.2 Kapitel.4 – richtig entscheiden36
2.2.3 Kapitel.5 – Zusammenarbeit und Interaktion39
2.2.4 Kapitel.6 – Abgleich mit der Realität39
2.2.5 Muster kategorisiert42
2.3 Muster im Vorgehen einsortiert43
2.4 Muster und die Architektenfrage46
2.4.1 Die theoretisch beste Rollenverteilung48
2.4.2 Die praktisch beste Rollenverteilung50
2.5 Kurze Einführung ins Fallbeispiel54
3Die Basis für Architekturarbeit56
3.1 Initialer Anforderungs-Workshop59
3.2 Anforderungspflege-Workshops64
3.3 Szenarien als Architekturanforderungen68
3.4 Szenarien kategorisieren73
3.5 Technische Schulden als Architekturanforderungen77
3.6 Architekturarbeit im Backlog85
3.7 Architekturarbeit auf Kanban88
4Richtig entscheiden94
4.1 Architekturarbeit vom Rest trennen96
4.2 Der letzte vernünftige Moment101
4.3 Gerade genug Architektur vorweg106
4.4 Architekturentscheidungen treffen112
4.5 Release-Planung mit Architekturfragen121
4.6 Risiken aktiv behandeln127
4.7 Im Prinzip entscheiden134
4.8 Ad-hoc-Architekturtreffen138
5Zusammenarbeit und Interaktion144
5.1 Informativer Arbeitsplatz146
5.2 Gemeinsam entscheiden151
5.3 Analog modellieren157
5.4 Stakeholder involvieren163
5.5 Wiederkehrende Reflexion170
5.6 Architecture Owner177
5.7 Architekturcommunities183
6Abgleich mit der Realität190
6.1 Frühes Zeigen192
6.2 Realitätscheck für Architekturziele197
6.3 Qualitative Eigenschaften testen202
6.4 Qualitätsindikatoren nutzen212
6.5 Code und Architektur verbinden223
6.6 Kontinuierlich integrieren und ausliefern231
6.7 Problemen auf den Grund gehen236
Literaturverzeichnis242
Stichwortverzeichnis248

Weitere E-Books zum Thema: Informatik - Algorithmen - Softwaresysteme

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Weitere Zeitschriften

aufstieg

aufstieg

Zeitschrift der NaturFreunde in Württemberg Die Natur ist unser Lebensraum: Ort für Erholung und Bewegung, zum Erleben und Forschen; sie ist ein schützenswertes Gut. Wir sind aktiv in der Natur ...

Computerwoche

Computerwoche

Die COMPUTERWOCHE berichtet schnell und detailliert über alle Belange der Informations- und Kommunikationstechnik in Unternehmen – über Trends, neue Technologien, Produkte und Märkte. IT-Manager ...

Demeter-Gartenrundbrief

Demeter-Gartenrundbrief

Einzige Gartenzeitung mit Anleitungen und Erfahrungsberichten zum biologisch-dynamischen Anbau im Hausgarten (Demeter-Anbau). Mit regelmäßigem Arbeitskalender, Aussaat-/Pflanzzeiten, Neuigkeiten ...

DGIP-intern

DGIP-intern

Mitteilungen der Deutschen Gesellschaft für Individualpsychologie e.V. (DGIP) für ihre Mitglieder Die Mitglieder der DGIP erhalten viermal jährlich das Mitteilungsblatt „DGIP-intern“ ...

DHS

DHS

Die Flugzeuge der NVA Neben unser F-40 Reihe, soll mit der DHS die Geschichte der "anderen" deutschen Luftwaffe, den Luftstreitkräften der Nationalen Volksarmee (NVA-LSK) der ehemaligen DDR ...

Eishockey NEWS

Eishockey NEWS

Eishockey NEWS bringt alles über die DEL, die DEL2, die Oberliga sowie die Regionalligen und Informationen über die NHL. Dazu ausführliche Statistiken, Hintergrundberichte, Personalities ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...