Effektive Softwarearchitekturen - Ein praktischer Leitfaden

Gernot Starke

Effektive Softwarearchitekturen - Ein praktischer Leitfaden

2011

434 Seiten

Format: PDF, Online Lesen

E-Book: €  35,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446428515

 

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 Architektur­dokumentation

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.2 Hohe 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 Architektur­aspekte

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

 

© 2009-2024 ciando GmbH