Suchen und Finden
Vorwort
6
Inhaltsverzeichnis
10
Verzeichnis der Autoren
16
1 Einleitung
18
1.1 Ausgangslage und Zielsetzung des Buches
19
1.2 Was ist Software-Architektur?
25
1.3 Leser-Leitfaden
28
1.3.1 Buchaufbau
28
1.3.2 Zielpublikum
32
1.3.3 Kapitelüberblick
32
1.3.4 Kapitel im Detail
35
2 Architektonischer Ordnungsrahmen
40
2.1 Motivation
41
2.2 Ordnungsrahmen im Überblick
43
2.3 Architekturen und Architektur-Disziplinen ( WAS)
47
2.4 Architektur-Perspektiven (WO)
48
2.5 Architektur-Anforderungen (WARUM)
49
2.6 Architektur-Mittel (WOMIT)
50
2.7 Organisationen und Individuen (WER)
53
2.8 Architektur-Vorgehen (WIE)
54
3 Architekturen und Architektur-Disziplinen (WAS)
56
3.1 Klassische Architektur als Ausgangspunkt
57
3.2 Von der klassischen Architektur zur Software- Architektur
61
3.3 Architektur und der Systemgedanke
69
3.4 Architektur und die Bausteine eines Systems
74
4 Architektur-Perspektiven (WO)
82
4.1 Architektur-Ebenen
83
4.1.1 Organisationsebene
88
4.1.2 Systemebene
90
4.1.3 Bausteinebene im Bereich Makro-Architektur
90
4.1.4 Bausteinebene im Bereich Mikro-Architektur
91
4.2 Architektur-Sichten
92
4.2.1 Zachman-Framework
101
4.2.2 Reference Model for Open Distributed Processing
104
4.2.3 4+1-Sichten-Modell
105
5 Architektur-Anforderungen (WARUM)
108
5.1 Allgemeines
109
5.2 Anforderungen im Überblick
111
5.3 Anforderungen im Detail
116
5.3.1 Organisationsanforderungen
116
5.3.2 Systemanforderungen
117
5.3.3 Bausteinanforderungen
118
5.3.4 Laufzeitanforderungen
119
5.3.5 Entwicklungszeitanforderungen
120
5.3.6 Organisatorische Rahmenbedingungen
122
5.4 Anforderungen im Architektur-Kontext
123
6 Architektur-Mittel (WOMIT)
128
6.1 Architektur-Prinzipien
129
6.1.1 Prinzip der losen Kopplung
131
6.1.2 Prinzip der hohen Kohäsion
134
6.1.3 Prinzip des Entwurfs für Veränderung
136
6.1.4 Separation-of-Concerns-Prinzip
138
6.1.5 Information-Hiding-Prinzip
141
6.1.6 Abstraktionsprinzipien
144
6.1.7 Modularitätsprinzip
146
6.1.8 Rückverfolgbarkeitsprinzip
150
6.1.9 Selbstdokumentationsprinzip
151
6.1.10 Inkrementalitätsprinzip
151
6.1.11 Weitere Architektur-Prinzipien
153
6.2 Grundlegende architektonische Konzepte
153
6.2.1 Prozedurale Ansätze
153
6.2.2 Objektorientierung
156
6.2.3 Komponentenorientierung
163
6.2.4 Meta-Architekturen und Reflection
166
6.2.5 Generative Erzeugung von Systembausteinen
168
6.2.6 Modellgetriebene Software-Entwicklung
170
6.2.7 Aspektorientierung
178
6.2.8 Wartung von Software-Architekturen
182
6.3 Architektur-Stile
186
6.4 Architektur-Muster
190
6.4.1 Was ist ein Software-Muster?
190
6.4.2 Beispiele für Muster
194
6.4.3 Mustersprachen
199
6.5 Referenzarchitekturen
203
6.5.1 Definition und Bestandteile
203
6.5.2 Einsatz und Vorteile von Referenzarchitekturen
205
6.5.3 Anforderungen an Referenzarchitekturen
205
6.5.4 Arten von Referenzarchitekturen
206
6.5.5 Beispiel für eine Referenzarchitektur
207
6.6 Architektur-Dokumentationsmittel
212
6.6.1 Architektur-Metamodelle
213
6.6.2 Unified Modeling Language (UML)
214
6.6.3 Architecture Definition Languages (ADL)
218
6.6.4 Domain Specific Languages (DSL)
223
6.7 Architektur-Strukturen
225
6.7.1 Zentralisierung gegenüber Dezentralisierung
226
6.7.2 n-Tier-Architektur
228
6.7.3 Rich Client gegenüber Thin Client
230
6.7.4 Middleware-Architekturen
232
6.7.5 Komponentenarchitekturen
235
6.7.6 Serviceorientierte Architekturen
238
6.7.7 Enterprise Service Bus
239
6.7.8 P2P-Systeme
240
6.8 Aktuelle Technologien in Software- Architekturen
240
6.8.1 Middleware-Systeme
241
6.8.2 Datenbanken und Persistenz von Geschäftsobjekten
246
6.8.3 Datenaustausch und Datentransformation mit XML
250
6.8.4 Dynamische Web-Seiten und Web-Application-Server
253
6.8.5 Komponentenplattformen
254
6.8.6 Web Services
257
7 Organisationen und Individuen (WER)
260
7.1 Allgemeines
261
7.2 Organisationen
264
7.3 Individuen
270
7.4 Individuen und Gruppen
272
7.5 Architektur und Entscheidungen
276
7.6 Architekt als zentrale Rolle
281
8 Architektur-Vorgehen (WIE)
286
8.1 Architektonisches Vorgehen
287
8.1.1 Entwicklungsprozess
287
8.1.2 Architektonische Tätigkeiten
290
8.1.3 Erstellen des Business Case
293
8.1.4 Verstehen der Anforderungen
295
8.1.5 Entwerfen der Architektur
296
8.1.6 Umsetzen der Architektur
301
8.1.7 Kommunizieren der Architektur
304
8.2 Anwendungsszenario: Product Line Engineering
310
8.2.1 Produktlinien und Software-Systemfamilien
311
8.2.2 Realisierungstechnologien und Zusammenhang zu MDSD
314
8.2.3 Erstellen des Business Case
316
8.2.4 Verstehen der Anforderungen (Domänenanalyse)
316
8.2.5 Entwerfen der Architektur (Domänendesign)
319
8.2.6 Umsetzen der Architektur (Domänenimplementierung)
320
8.2.7 Rollen und Aufgaben
321
8.3 Anwendungsszenario: Enterprise Application Integration
322
8.3.1 Erstellen des Business Case
323
8.3.2 Verstehen der Anforderungen
326
8.3.3 Entwerfen der Architektur
334
8.3.4 Kommunizieren und Umsetzen der Architektur
344
8.4 Anwendungsszenario: Anwendungsdienst
345
8.4.1 Erstellen des Business Case für das System
369
8.4.2 Verstehen der Anforderungen
380
8.4.3 Entwerfen der Architektur
390
8.4.4 Kommunizieren und Umsetzen der Architektur
401
9 Risikofallmanagementsystem
406
9.1 Zusammenfassung
407
9.2 Architektur-Anforderungen (WARUM)
408
9.2.1 Business Case
408
9.2.2 Organisationsanforderungen
409
9.2.3 Systemanforderungen
414
9.2.4 Bausteinanforderungen
418
9.3 Architekturen und Architektur-Disziplinen ( WAS)
424
9.3.1 Disziplinen
424
9.3.2 Entscheidungen zur Software-Architektur
426
9.4 Architektur-Perspektiven (WO)
428
9.4.1 Systemebene
428
9.4.2 Bausteinebene
429
9.5 Architektur-Mittel (WOMIT)
433
9.5.1 Architektur-Prinzipien
433
9.5.2 Grundlegende architektonische Konzepte
435
9.5.3 Generative und generische Verfahren
436
9.6 Organisationen und Individuen (WER)
440
9.6.1 Organisation
441
9.6.2 Individuen
443
9.7 Architektur-Vorgehen (WIE)
444
10 CRM-Kundendatenrepository
446
10.1 Zusammenfassung
447
10.2 Architektur-Anforderungen (WARUM)
448
10.3 Organisationen und Individuen (WER)
450
10.4 Architekturen und Architektur-Disziplinen ( WAS)
452
10.5 Architektur-Perspektiven (WO)
452
10.6 Architektur-Mittel (WOMIT)
453
10.7 Architektur-Vorgehen (WIE)
454
10.8 Ausgangssituation
454
10.9 Anforderungen
456
10.10 Architektonische Entscheidungen
465
10.11 Logische Sicht
469
10.12 Umsetzung ausgewählter Anforderungen
475
10.13 Was hat die Architektur genutzt?
485
11 Eingebettete Komponenteninfrastrukturen
488
11.1 Zusammenfassung
489
11.1.1 Architektur-Anforderungen (WARUM)
490
11.1.2 Organisation und Individuen (WER)
492
11.1.3 Architekturen und Architektur-Disziplinen (WAS)
492
11.1.4 Architektur-Perspektiven (WO)
493
11.1.5 Architektur-Mittel (WOMIT)
493
11.1.6 Architektur-Vorgehen (WIE)
494
11.2 Product Line Engineering
496
11.2.1 Domain Scoping
496
11.2.2 Variabilitätsanalyse und Domänenstrukturierung
497
11.2.3 Kommunikationsparadigmen
498
11.2.4 Container-Services
501
11.2.5 Domänendesign
502
11.2.6 Produktionsprozess
504
11.3 Modelle
506
11.3.1 Definition von Interfaces
507
11.3.2 Definition von Komponenten und Ports
509
11.3.3 Definition eines Systems
510
11.3.4 Gesamtmodell
514
11.3.5 Generator – Überblick
514
11.4 Implementierung von Komponenten
515
11.4.1 Abbildung auf Java
516
11.4.2 Parsen und Zusammenführen des Gesamtmodells
517
11.4.3 Pseudodeklarative Metamodellimplementierung
521
11.5 Codegenerierung
523
11.5.1 Referenzen
523
11.5.2 Umsetzung der Protokollzustandsautomaten
527
11.5.3 Generierung des Build Files
528
11.6 Fachliche Kaskadierung
529
11.6.1 Modellierungssprache
529
11.6.2 Generierung
531
11.7 Erfahrungen aus unserem Unternehmen
531
Literaturverzeichnis
534
Abkürzungsverzeichnis
554
Index
558
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.