Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Effektive Softwarearchitekturen (eBook)

ein praktischer Leitfaden
eBook Download: EPUB
2024 | 10., überarbeitete Auflage
372 Seiten
Carl Hanser Fachbuchverlag
978-3-446-48277-7 (ISBN)

Lese- und Medienproben

Effektive Softwarearchitekturen -  Gernot Starke
Systemvoraussetzungen
49,99 inkl. MwSt
(CHF 48,80)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Softwarearchitekt*innen müssen komplexe fachliche und technische Anforderungen an IT-Systeme umsetzen und sie müssen diese Systeme durch nachvollziehbare Strukturen flexibel und erweiterbar gestalten.

Dieser Praxisleitfaden zeigt Ihnen, wie Sie Softwarearchitekturen effektiv und systematisch entwickeln können. Gernot Starke unterstützt Sie mit konkreten praktischen Tipps aus seiner Erfahrung.

Sie finden Antworten auf zentrale Fragen:

  • Welche Aufgaben gehören zur Softwarearchitektur?
  • Wie kann ich beim Entwurf vorgehen?
  • Wie kommuniziere und dokumentiere ich Softwarearchitekturen?
  • Wie helfen Architekturmuster?
  • Wie analysiere und bewerte ich Softwarearchitekturen?
  • Wie setze ich Persistenz, grafische Benutzeroberflächen, Geschäftsregeln, Integration, Verteilung, Fehlerbehandlung und andere Konzepte ein?
  • Was muss ich über Domain-Driven Design, arc42, Microservices, C4 und die Cloud wissen?
  • Wie verbessere ich bestehende Systeme?

Dr. Gernot Starke stellt sich seit vielen Jahren der Herausforderung, die Architektur großer Systeme effektiv zu gestalten. Zu seinen Kunden zählen mittlere und große Unternehmen aus den Branchen Finanzdienstleistung, Logistik, Handel, Telekommunikation und dem öffentlichen Bereich. Er ist Mitgründer von arc42 und iSAQB sowie Fellow der innoQ. Gernot lebt in Köln.

Inhalt 7
1Einleitung 13
1.1?Softwarearchitekt:innen 17
1.2?Effektiv, agil und pragmatisch 18
1.3?Wer sollte dieses Buch lesen? 21
1.4?Wegweiser durch das Buch 22
1.5?Webseite zum Buch 23
1.6?Weiterführende Literatur 23
1.7?Danksagung 24
2Softwarearchitektur: Grundlagen und?Aufgaben 25
2.1?Was ist Softwarearchitektur? 26
2.1.1?System 26
2.1.2?Komponenten 27
2.1.3?Beziehungen 27
2.1.4?Umgebung 28
2.1.5?Komponenten + Beziehungen = Strukturen 28
2.1.6?Prinzipien (synonym: Konzepte) 29
2.1.7?Entwurf und Evolution 30
2.2?Architekturentscheidungen 31
2.3?Die Aufgaben von Softwarearchitekt:innen 34
2.3.1?Anforderungen klären 35
2.3.2?Drei Kategorien von Entwurfsentscheidungen 36
2.3.3?Architektur kommunizieren und dokumentieren 36
2.3.4?Umsetzung begleiten: Von Goldstücken und Missverständnissen 37
2.3.5?Architektur analysieren und bewerten 37
2.4?Rolle von Softwarearchitekt:innen: Wer?macht’s? 38
2.4.1?Monarchie 39
2.4.2?Architekt:in im Team 40
2.4.3?Architekturagent:innen 41
2.4.4?Demokratie oder: Team-Architektur 43
2.5?Architekturen entstehen (meist) iterativ 44
2.6?Weiterführende Literatur 46
3Anforderungen klären 47
3.1?Was ist Kernaufgabe oder Ziel des?Systems? 47
3.2?Relevante Stakeholder ermitteln 48
3.3?Welche Kategorie von System? 49
3.4?Fachdomäne klären 50
3.5?Qualitätsanforderungen klären 51
3.6?Externe Nachbarsysteme: Kontextabgrenzung 56
3.7?Einflussfaktoren und Randbedingungen ermitteln 57
4Entwurf: Grundlagen, Methoden und Muster 59
4.1?Grundlagen, Prinzipien und Heuristiken 60
4.1.1?Grundlagen des Entwurfs 60
4.1.2?Prinzipien 63
4.1.2.1?Lose (geringe) Kopplung 63
4.1.2.2?Hohe Kohäsion 65
4.1.2.3?Trenne Verantwortlichkeiten/Belange 66
4.1.2.4?Modularisierung 67
4.1.2.5?Abstraktion, Kapselung und das Geheimnisprinzip 67
4.1.2.6?Hohe Konsistenz 67
4.1.2.7?Keine zyklischen Abhängigkeiten 68
4.1.2.8?SOLID-Prinzipien des objektorientierten Entwurfs 69
4.1.3?Heuristiken 74
4.2?Entwurfsmethoden 78
4.2.1?Domain-Driven Design (Entwurf nach Fachlichkeit) 79
4.2.2?Quality-Driven Software Architecture 84
4.2.3?Top-down und Bottom-up 91
4.2.4?Sichtenbasierter Entwurf 92
4.2.4.1?Sichten in der Softwarearchitektur 93
4.2.4.2?Entwurf der Kontextabgrenzung 94
4.2.4.3?Entwurf der Bausteinsicht 95
4.2.4.4?Entwurf der Laufzeitsicht 95
4.2.4.5?Entwurf der Verteilungssicht 96
4.3?Schnittstellen entwerfen 96
4.3.1?Anforderungen an Schnittstellen 98
4.3.2?Worauf müssen Sie achten? 98
4.3.3?Tipps zum Entwurf von Schnittstellen 99
4.4?Architekturmuster (Patterns) 100
4.4.1?Schichten (Layer) 100
4.4.2?Ports-und-Adapter 103
4.4.3?Client-Server 106
4.4.4?Microservices 106
4.4.5?Pipes und Filter 114
4.4.6?Batch-Pattern 116
4.4.7?Repository 117
4.4.8?Blackboard 118
4.4.9?Command Query Responsibility Segregation (CQRS) 119
4.4.10?Broker 121
4.4.11?Peer-to-Peer 122
4.4.12?Ereignisbasierte Systeme – Event Systems 123
4.4.12.1?Ungepufferte Event Systems 124
4.4.12.2?Message- oder Event-Queues 124
4.4.12.3?Message-Service 125
4.4.13?Model-View-Controller 126
4.4.14?Presentation Model 127
4.4.15?REST-Architektur 129
4.4.16?Adapter 131
4.4.17?Stellvertreter (Proxy) 132
4.4.18?Fassade 133
4.4.19?Beobachter (Observer) 134
4.5?Weiterführende Literatur 135
5Architekturen kommunizieren, dokumentieren und?modellieren 137
5.1?Warum kommunizieren und?dokumentieren 138
5.2?Anforderungen an Architekturdokumentation 140
5.3?Effektiv dokumentieren 141
5.3.1?Tipps für bessere Architekturdiagramme 143
5.4?Bestandteile von Architekturdokumentation 150
5.4.1?Kontextabgrenzung: Vogelperspektive 150
5.4.2?Bausteinsicht: Code-im-Großen 152
5.4.3?Schnittstellen: Die Brücken zwischen Welten 155
5.4.4?Laufzeitsicht: Was geschieht wann? 156
5.4.5?Verteilungssicht: Zusammenhang zur technischen Infrastruktur 157
5.4.6?Querschnittliche Konzepte 158
5.4.7?Entscheidungen 160
5.5?Architekturdokumentation mit arc42 162
5.5.1?Aufbau von arc42 162
5.5.2?arc42 Canvas: Dokumentation kompakt 164
5.6?Notationen zur Modellierung: UML,?C4?und?andere 166
5.6.1?UML Kurzeinführung 167
5.6.2?C4 Kurzeinführung 171
5.6.3?Weitere Notationen für Softwarearchitektur 176
5.7?Werkzeuge zur Dokumentation 177
5.8?Weiterführende Literatur 180
6Analyse und Bewertung von Softwarearchitekturen 181
6.1?Qualitative Architekturbewertung 184
6.2?Quantitative Bewertung durch Metriken 191
6.3?Werkzeuge zur Bewertung 193
7 Technische und querschnittliche Konzepte 195
7.1?Persistenz 198
7.1.1?Motivation 198
7.1.2?Einflussfaktoren und Entscheidungskriterien 201
7.1.2.1?Art der zu speichernden Daten 202
7.1.2.2?Konsistenz und Verfügbarkeit (ACID, BASE oder CAP) 203
7.1.2.3?Zugriff und Navigation 204
7.1.2.4?Deployment und Betrieb 205
7.1.3?Lösungsmuster 205
7.1.3.1?Persistenzschicht 205
7.1.3.2?DAO: Eine Miniatur-Persistenzschicht 208
7.1.4?Bekannte Risiken und Probleme 209
7.1.5?Weitere Themen zu Persistenz 210
7.1.6?Data Contracts: Daten als Schnittstelle 214
7.1.7?Zusammenhang zu anderen Themen 216
7.1.8?Praktische Vertiefung 218
7.1.9?Weiterführende Literatur 219
7.2?Geschäftsregeln 219
7.2.1?Motivation 219
7.2.2?Funktionsweise von Regelmaschinen 222
7.2.3?Kriterien pro & kontra Regelmaschinen
7.2.4?Mögliche Probleme 225
7.2.5?Weiterführende Literatur 226
7.3?Integration 227
7.3.1?Motivation 227
7.3.2?Typische Probleme 229
7.3.3?Lösungskonzepte 230
7.3.4?Entwurfsmuster zur Integration 234
7.3.5?Zusammenhang mit anderen Themen 234
7.3.6?Weiterführende Literatur 235
7.4?Verteilung 236
7.4.1?Motivation 236
7.4.2?Typische Probleme 236
7.4.3?Lösungskonzept 236
7.4.4?Konsequenzen und Risiken 237
7.4.5?Zusammenhang mit anderen Themen 238
7.4.6?Weiterführende Literatur 238
7.5?Kommunikation 238
7.5.1?Motivation 239
7.5.2?Entscheidungsalternativen 239
7.5.3?Grundbegriffe der Kommunikation 239
7.5.4?Weiterführende Literatur 243
7.6?Grafische Oberflächen (GUI) 243
7.6.1?Motivation 243
7.6.2?Einflussfaktoren und Entscheidungskriterien 243
7.6.3?GUI-relevante Architekturmuster 246
7.6.4?Struktur und Ergonomie von Benutzeroberflächen 246
7.6.5?Bekannte Risiken und Probleme 248
7.6.6?Zusammenhang zu anderen Themen 250
7.7?Sicherheit 250
7.7.1?Motivation – Was ist IT-Sicherheit? 250
7.7.2?Sicherheitsziele 251
7.7.3?Lösungskonzepte 253
7.7.4?Security Engineering mit Patterns 260
7.7.5?Weiterführende Literatur 261
7.8?Protokollierung 261
7.8.1?Typische Probleme 262
7.8.2?Lösungskonzept 263
7.8.3?Zusammenhang mit anderen Themen 263
7.9?Ausnahme- und Fehlerbehandlung 264
7.9.1?Motivation 264
7.9.2?Fehlerkategorien schaffen Klarheit 266
7.9.3?Muster zur Fehlerbehandlung 268
7.9.4?Mögliche Probleme 269
7.9.5?Zusammenhang mit anderen Themen 270
7.9.6?Weiterführende Literatur 271
7.10?Skalierbarkeit 271
7.10.1?Skalierungsstrategien 271
7.10.2?Elastizität 272
7.10.3?Scale-Up-Strategie 272
7.10.4?Vertikale Scale-Out-Strategie 272
7.10.5?Horizontale Scale-Out-Strategie 273
7.10.6?Der Strategiemix 273
7.10.7?Allgemeine Daumenregeln 274
7.10.8?CPU-Power 274
7.10.9?GPU-Power 274
7.10.10?RAIDs, SANs und andere Speichersysteme 275
7.10.11?Bussysteme für die Speicheranbindung 275
7.10.12?Geringere Bandbreite im Netz 276
7.11?Container und die Cloud 276
7.11.1?Was bedeutet „Cloud“? 277
7.11.2?Virtuelle Maschinen (VMs) und Container 279
7.11.3?Von Monolithen in die Cloud 281
7.11.4?Was Sie noch über die Cloud wissen sollten… 284
7.11.5?Weiterführende Literatur 286
7.12?Weitere spannende Themen 286
8Systematische Verbesserung und?Evolution 289
8.1?Wege in den Abgrund 291
8.2?Systematisch verbessern 292
8.3?Bewährte Praktiken und Muster 296
8.4?Analyse: Probleme identifizieren 297
8.5?Evaluate: Probleme und Maßnahmen bewerten 299
8.6?Improve: Verbesserungsmaßnahmen planen und durchführen 300
8.6.1?Maxime für Verbesserungsprojekte 300
8.6.2?Kategorien von Verbesserungsmaßnahmen 300
8.7?Crosscutting: phasenübergreifende?Praktiken 304
8.8?Mehr zu aim42? 305
8.9?Weiterführende Literatur 305
9Beispiele von Softwarearchitekturen 307
9.1?Beispiel: Datenmigration im Finanzwesen 308
9.2?Beispiel: Kampagnenmanagement im CRM 325
10iSAQB Curriculum 351
10.1?Standardisierte Lehrpläne für?Softwarearchitektur 352
10.1.1?Grundlagenausbildung und Zertifizierung Foundation-Level 352
10.1.2?Fortgeschrittene Aus- und Weiterbildung (Advanced-Level) 353
10.2?iSAQB-Foundation-Level-Lehrplan 353
10.2.1?Können, Wissen und Verstehen 354
10.2.2?Voraussetzungen und Abgrenzungen 354
10.2.3?Struktur des iSAQB-Foundation-Lehrplans 355
10.2.4?Zertifizierung gemäß iSAQB 355
10.3?Beispielfragen zur Foundation-Level-Prüfung 356
Literatur 361
Stichwortverzeichnis 365

Erscheint lt. Verlag 5.8.2024
Zusatzinfo Illustrationen
Verlagsort München
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Netzwerke
Informatik Software Entwicklung Software Architektur
Mathematik / Informatik Informatik Weitere Themen
Schlagworte software architecture • Software-Architekt • Softwarearchitektur • Software-Architektur • Softwareentwicklung • Software-Entwicklung
ISBN-10 3-446-48277-6 / 3446482776
ISBN-13 978-3-446-48277-7 / 9783446482777
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich