Vorwort | 12 |
Vorwort zur fünften Auflage | 13 |
1 Einleitung | 14 |
1.1?Software-Architekten | 18 |
1.2?Effektiv, agil und pragmatisch | 19 |
1.3?Wer sollte dieses Buch lesen? | 22 |
1.4?Wegweiser durch das Buch | 23 |
1.5?Webseite zum Buch | 24 |
1.6?Weiterführende Literatur | 25 |
1.7?Danksagung | 25 |
2 Architektur und Architekten | 26 |
2.1?Was ist Architektur? | 27 |
2.2?Die Aufgaben von Software-Architekten | 32 |
2.3?Wie entstehen Architekturen? | 38 |
2.4?In welchem Kontext steht Architektur? | 40 |
2.5?Weiterführende Literatur | 44 |
3 Vorgehen bei der Architekturentwicklung | 46 |
3.1?Informationen sammeln | 50 |
3.2?Lösungsidee entwickeln | 50 |
3.3? Was sind Einflussfaktoren und Randbedingungen? | 57 |
3.4?Einflussfaktoren finden | 60 |
3.5?Risiken identifizieren | 66 |
3.6?Qualität explizit beschreiben | 69 |
3.6.1?Qualitätsmerkmale von Software-Systemen | 70 |
3.6.2?Szenarien konkretisieren Qualität | 72 |
3.7?Lösungsstrategien entwickeln | 77 |
3.7.1?Strategien gegen organisatorische Risiken | 78 |
3.7.2?Strategien für hohe Performance | 79 |
3.7.3?Strategien für Anpassbarkeit und Flexibilität | 81 |
3.7.4?Strategien für hohe Verfügbarkeit | 83 |
3.8?Weiterführende Literatur | 84 |
4 Architektursichten zur Kommunikation und Dokumentation | 86 |
4.1 Architekten müssen kommunizieren und dokumtentieren | 87 |
4.2?Sichten | 88 |
4.2.1?Sichten in der Software-Architektur | 90 |
4.2.2?Vier Arten von Sichten | 91 |
4.2.3?Entwurf der Sichten | 93 |
4.3?Kontextabgrenzung | 95 |
4.3.1?Elemente der Kontextabgrenzung | 96 |
4.3.2?Notation der Kontextabgrenzung | 96 |
4.3.3?Entwurf der Kontextabgrenzung | 96 |
4.4.1?Elemente der Bausteinsicht | 101 |
4.4.2?Notation der Bausteinsicht | 103 |
4.4.3?Entwurf der Bausteinsicht | 103 |
4.5?Laufzeitsicht | 104 |
4.5.1?Elemente der Laufzeitsicht | 106 |
4.5.2?Notation der Laufzeitsicht | 106 |
4.5.3?Entwurf der Laufzeitsicht | 107 |
4.6?Verteilungssicht | 108 |
4.6.1?Elemente der Verteilungssicht | 108 |
4.6.2?Notation der Verteilungssicht | 108 |
4.6.3?Entwurf der Verteilungssicht | 109 |
4.7?Dokumentation von Schnittstellen | 110 |
4.8?Datensicht | 113 |
4.9?Typische Architekturdokumente | 115 |
4.9.1?Zentrale Architekturbeschreibung | 116 |
4.9.2?Architekturüberblick | 118 |
4.9.3?Dokumentationsübersicht | 119 |
4.9.4?Übersichtspräsentation der Architektur | 119 |
4.9.5?Architekturtapete | 120 |
4.10?Effektive Architekturdokumentation | 120 |
4.10.1?Anforderungen an Architekturdokumentation | 120 |
4.10.2?Regeln für gute Architekturdokumentation | 123 |
4.11?Andere Ansätze zur Architekturdokumentation | 126 |
4.11.1?TOGAF | 126 |
4.11.2?xADL (Extendable Architecture Description Language) | 127 |
4.12?Weiterführende Literatur | 128 |
5 UML 2 für Architekten | 130 |
5.1?Die Diagrammarten der UML 2 | 131 |
5.2?Die Bausteine von Architekturen | 133 |
5.4?Die Bausteinsicht | 136 |
5.5?Die Verteilungssicht | 139 |
5.6?Die Laufzeitsicht | 141 |
5.7?Darum UML | 146 |
5.8?Weiterführende Literatur | 147 |
6 Strukturentwurf, Architektur- und Designmuster | 148 |
6.1?Von der Idee zur Struktur | 150 |
6.1.1?Komplexität beherrschen | 150 |
6.1.2?Zerlegen – aber wie? | 151 |
6.1.3?Fachmodelle als Basis der Entwürfe | 152 |
6.1.4?Die Fachdomäne strukturieren | 155 |
6.2?Architekturmuster | 156 |
6.2.1?Schichten (Layer) | 156 |
6.2.2?Pipes & Filter | 160 |
Pipes entkoppeln Filter | 161 |
6.2.3?Weitere Architekturmuster | 162 |
6.3?Heuristiken zum Entwurf | 164 |
6.3.1?Das So-einfach-wie-möglich-Prinzip | 164 |
6.3.2?Entwerfen Sie nach Verantwortlichkeiten | 165 |
6.3.3?Konzentrieren Sie sich auf Schnittstellen | 166 |
6.3.4?Berücksichtigen Sie Fehler | 167 |
6.4?Optimieren von Abhängigkeiten | 167 |
6.4.1?Streben Sie nach loser Kopplung | 170 |
6.4.2Hohe Kohäsion | 170 |
6.4.3?Offen für Erweiterungen, geschlossen für Änderungen | 171 |
6.4.4?Abhängigkeit nur von Abstraktionen | 172 |
6.4.5?Abtrennung von Schnittstellen | 174 |
6.4.6?Zyklische Abhängigkeiten vermeiden | 176 |
6.4.7?Liskov-Substitutionsprinzip (LSP) | 177 |
6.4.8?Dependency Injection (DI) | 178 |
6.5?Entwurfsmuster | 180 |
6.5.1?Entwurf mit Mustern | 180 |
6.5.2?Adapter | 181 |
6.5.3?Beobachter (Observer) | 182 |
6.5.4?Dekorierer (Decorator) | 183 |
6.5.5?Stellvertreter (Proxy) | 184 |
6.5.6?Fassade | 185 |
6.5.7?Zustand (State) | 186 |
6.6?Entwurf, Test, Qualitätssicherung | 187 |
6.7?Weiterführende Literatur | 187 |
7 Technische Konzepte und typische Architekturaspekte | 190 |
7.1?Persistenz | 194 |
7.1.1?Motivation | 194 |
7.1.2?Einflussfaktoren und Entscheidungskriterien | 197 |
7.1.3?Lösungsmuster | 200 |
7.1.4?Bekannte Risiken und Probleme | 205 |
7.1.5?Weitere Themen zu Persistenz | 207 |
7.1.6?Zusammenhang mit anderen Aspekten | 211 |
7.1.7?Praktische Vertiefung | 213 |
7.1.8?Weiterführende Literatur | 214 |
7.2?Geschäftsregeln | 215 |
7.2.1?Motivation | 215 |
7.2.2?Funktionsweise von Regelmaschinen | 217 |
7.2.3?Kriterien pro & kontra Regelmaschinen | 220 |
7.2.4?Mögliche Probleme | 220 |
7.2.5?Weiterführende Literatur | 221 |
7.3?Integration | 222 |
7.3.1?Motivation | 222 |
7.3.2?Typische Probleme | 223 |
7.3.3?Lösungskonzepte | 224 |
7.3.4?Entwurfsmuster zur Integration | 229 |
7.3.6?Zusammenhang mit anderen Aspekten | 233 |
7.3.7?Weiterführende Literatur | 235 |
7.4?Verteilung | 235 |
7.4.1?Motivation | 235 |
7.4.2?Typische Probleme | 236 |
7.4.3?Lösungskonzept | 236 |
7.4.4?Konsequenzen und Risiken | 238 |
7.4.5?Zusammenhang mit anderen Aspekten | 238 |
7.4.6?Weiterführende Literatur | 239 |
7.5?Kommunikation | 239 |
7.5.1?Motivation | 239 |
7.5.2?Entscheidungsalternativen | 239 |
7.5.3?Grundbegriffe der Kommunikation | 240 |
7.5.4?Weiterführende Literatur | 245 |
7.6?Ablaufsteuerung grafischer Oberflächen | 245 |
7.6.1?Model-View-Controller (MVC) | 248 |
7.6.2?Weiterführende Literatur | 255 |
7.7?Ergonomie grafischer Oberflächen | 255 |
7.7.1?Arbeitsmetaphern | 255 |
7.7.2?Interaktionsstile | 258 |
7.7.3?Ergonomische Gestaltung | 262 |
7.7.4?Heuristiken zur GUI-Gestaltung | 263 |
7.7.5?Weiterführende Literatur | 266 |
7.8?Internationalisierung | 267 |
7.8.1?Globale Märkte erfordern neue Prozesse | 268 |
7.8.2?Dimensionen der Internationalisierung | 268 |
7.8.3?Lösungskonzepte | 269 |
7.8.4?Weiterführende Literatur | 275 |
7.9?Workflow-Management: Ablaufsteuerung im Großen | 276 |
7.9.1?Zweck der Ablaufsteuerung | 276 |
7.9.2?Lösungsansätze | 278 |
7.9.3?Integration von Workflow-Systemen | 281 |
7.9.4?Mächtigkeit von WMS | 283 |
7.9.5?Weiterführende Literatur | 284 |
7.10?Sicherheit | 285 |
7.10.1?Motivation | 285 |
7.10.2?Typische Probleme | 285 |
7.10.3?Sicherheitsziele | 286 |
7.10.4?Lösungskonzepte | 288 |
7.10.5?Zusammenhang mit anderen Aspekten | 293 |
7.10.6?Weiterführende Literatur | 294 |
7.11?Protokollierung | 295 |
7.11.1?Typische Probleme | 295 |
7.11.2?Lösungskonzept | 296 |
7.11.3?Zusammenhang mit anderen Aspekten | 297 |
7.11.4?Weiterführende Literatur | 297 |
7.12?Ausnahme- und Fehlerbehandlung | 298 |
7.12.1?Motivation | 298 |
7.12.2?Fehlerkategorien schaffen Klarheit | 300 |
7.12.3?Muster zur Fehlerbehandlung | 302 |
7.12.4?Mögliche Probleme | 304 |
7.12.5?Zusammenhang mit anderen Aspekten | 304 |
7.12.6?Weiterführende Literatur | 305 |
8 Model Driven Architecture (MDA) | 306 |
8.1?Architekten entwickeln Generierungsvorlagen | 309 |
8.2?Modellierung | 310 |
8.3?Modellbasiert entwickeln | 311 |
8.4?Weiterführende Literatur | 312 |
9 Bewertung von Software-Architekturen | 314 |
9.1? Was Sie an Architekturen bewerten können | 318 |
9.2?Vorgehen bei der Bewertung | 319 |
9.3?Weiterführende Literatur | 325 |
10 Service-Orientierte Architektur (SOA) | 326 |
10.1?Was ist SOA? | 327 |
10.2?So funktionieren Services | 332 |
10.3?Was gehört (noch) zu SOA? | 333 |
10.4?SOA und Software-Architektur | 336 |
10.5?Weiterführende Literatur | 337 |
11 Enterprise-IT-Architektur | 338 |
11.1?Wozu Architekturebenen? | 340 |
11.2?Aufgaben von Enterprise-Architekten | 341 |
11.2.1?Management der Infrastrukturkosten | 341 |
11.2.2?Management des IS-Portfolios | 341 |
11.2.3?Definition von Referenzarchitekturen | 343 |
11.2.4?Weitere Aufgaben | 345 |
11.3?Weiterführende Literatur | 346 |
12 Beispiele von Software-Architekturen | 348 |
12.1? Beispiel: Datenmigration im Finanzwesen | 349 |
12.2? Beispiel: Kampagnenmanagement im CRM | 368 |
13 iSAQB Curriculum | 398 |
13.1? Standardisierter Lehrplan für Software-Architekten | 399 |
13.2?Können, Wissen und Verstehen | 400 |
13.3?Voraussetzungen und Abgrenzungen | 401 |
13.4?Struktur des iSAQB-Lehrplans | 401 |
I.?Grundbegriffe von Software-Architekturen | 402 |
II.?Beschreibung und Kommunikation von Software-Architekturen | 403 |
III.?Entwicklung von Software-Architekturen | 404 |
IV.?Software-Architekturen und Qualität | 405 |
V.?Werkzeuge für Software-Architekten | 406 |
VI.?Beispiele von Software-Achitekturen | 406 |
13.5?Zertifizierung nach dem iSAQB-Lehrplan | 407 |
14 Nachwort: Architektonien | 408 |
14.1?In sechs Stationen um die (IT-)Welt | 408 |
14.2?Ratschläge aus dem architektonischen Manifest | 411 |
Literatur | 416 |