lehrerbibliothek.deDatenschutzerklärung
Basiswissen Softwarearchitektur: Verstehen, entwerfen, wiederverwenden  3., aktualisierte und erweiterte Auflage
Basiswissen Softwarearchitektur: Verstehen, entwerfen, wiederverwenden


3., aktualisierte und erweiterte Auflage

Thosten Posch, Klaus Birken, Michael Gerdom

dpunkt.verlag
EAN: 9783898647366 (ISBN: 3-89864-736-6)
380 Seiten, paperback, 16 x 24cm, April, 2011

EUR 41,90
alle Angaben ohne Gewähr

Umschlagtext
Thema:

# Software-Engineering

# Softwaretechnik

# Softwareentwicklung



Ansonsten entsprechend der Verlagsinfo
Rezension
Ohne Software ist unser Leben nicht mehr vorstellbar. Autos, sind kleine Rechenzentren, die sich nebenbei auch noch bewegen können, ohne Software sind die meisten Kommunikationskanäle undenkbar, selbst die Schulverwaltung würde ohne Software zusammenbrechen. Und die Softwaresysteme werden immer umfassender und komplexer. Lösten früher einzelne Programme einzelne Probleme, müssen heute große Programmsysteme entwickelt werden, die den gesamten Arbeitsablauf von Unternehmen und Behörden begleiten. Und dann sollen die Programme noch so aufgebaut sein, dass sie sich leicht an neue Problemstellungen anpassen lassen.
Es erstaunt nicht, dass die dafür zu entwickelnden Programme eine enorme Komplexität aufweisen. Diese Komplexität in den Griff zu bekommen; das ist die Aufgabe des Softwarearchitekten. Erst wenn die Softwarearchitektur erstellt und so die wesentlichen Strukturen und Mechanismen beschrieben sind und der Softwarearchitekt die Informationen an die Entwickler weitergegeben hat, können diese ihre eigentlichen Arbeit beginnen.
In diese Arbeit wird in diesem Band, der jetzt seine dritte Neuauflage erlebt - in der schnelllebigen IT-Welt ist schon das ein Zeichen für Qualität - fundiert und praxisnah beschrieben. Wer den Band oder einzelne Kapitel durchgearbeitet hat, wird die Wege moderner Softwareentwicklung gut verstehen und vermitteln können.
V.Pfueller, lehrerbibliothek.de
Verlagsinfo
Torsten Posch / Klaus Birken / Michael Gerdom
Basiswissen Softwarearchitektur
Verstehen, entwerfen, wiederverwenden

Dieses Buch gibt einen umfassenden Überblick über alle Themen, die für
die Erstellung und den Einsatz von Softwarearchitektur in der Praxis relevant sind. Damit richtet sich das Buch an Softwareentwickler und Projektleiter. Es eignet sich zum Einstieg in das Tätigkeitsfeld des Softwarearchitekten und vermittelt dem Leser das notwendige Wissen, um Softwarearchitektur in seinen eigenen Entwicklungsprojekten zu etablieren.

Insbesondere beantwortet das Buch die folgenden Fragen:

- Was ist Softwarearchitektur?
- Welche Aufgaben hat ein Softwarearchitekt?
- Wie wird Softwarearchitektur geplant, entworfen, dokumentiert und bewertet?
- Welche Methoden und Werkzeuge stehen dafür zur Verfügung?
- Was sind Architekturstile, Architekturmuster und Designmuster?
- Was macht eine gute Softwarearchitektur aus?
Darüber hinaus werden die Schnittstellen zwischen Softwarearchitekt und Projektleiter sowie zum weiteren Unternehmensumfeld behandelt. EinSchwerpunkt widmet sich der Frage, wie UML 2 für die Dokumentation von
Softwarearchitekturen eingesetzt werden kann.
Ein eigener Teil des Buches beschäftigt sich mit dem Einsatz von Softwarearchitektur im industriellen Maßstab und den damit verbundenen Technologien: Softwareproduktlinien, modellbasierte Entwicklung mit MDA und – neu in der 3. Auflage – domänenspezifische Sprachen.

Zielgruppe:
* Softwareentwickler
* Projektleiter
* Studenten

Autoren:

Torsten Posch studierte technische Informatik an der Berufsakademie Ravensburg als Student der DaimlerChrysler Aerospace AG. Bevor er im Management und der Geschäftsleitung mittelständischer Softwareunternehmen tätig war, arbeitete er als Entwickler, Berater und Projektleiter mit Fokus auf UML und Objektorientierung. Lange Zeit war er Vorsitzender des iSQI German Software Architecture Board. Seit 2004 ist Torsten Posch bei Continental Automotive als Programm-Manager schwerpunktmäßig für die
Definition und Einführung neuer Elektronik- und Softwareplattformen tätig.
Seine E-Mail-Adresse lautet swa@torsten-posch.de.

Dr. Klaus Birken studierte Informatik in Erlangen und promovierte über die Themen High Performance Computing und Numerische Simulation an der Universität Stuttgart. In zahlreichen Embedded-Projekten brachte er sein Wissen über Architekturen und Entwicklungsmethodik ein. Dr. Birken ist Autor zahlreicher Veröffentlichungen und Vortragender auf internationalen Konferenzen, auch zum Thema Softwarearchitektur. Seit mehreren Jahren ist er Senior Software Architect bei Harman/Bekker Automotive Systems im Bereich Research & Development für Infotainmentsysteme.
Seine E-Mail-Adresse lautet swa@birken.info.

Michael Gerdom studierte Informatik an der Universität Erlangen-Nürnberg. Er besitzt langjährige, praktische Erfahrung im Einsatz von objektorientierten Technologien und UML in Engineering-Projekten sowie in der Schulung und Beratung zu den Themen Requirements Engineering, Softwarearchitektur und Prozessverbesserung. Bei Method Park leitete er zuletzt mehrere Jahre den Bereich Training & Consulting. Aktuell ist er als Managing Consultant bei Capgemini im Bereich Business Technology mit Schwerpunkt Projektmanagement und Prozessberatung tätig.
Seine E-Mail-Adresse lautet swa@michael-gerdom.de.

Rezensionen:

Stimmen zur ersten Auflage:
"Das Buch „Basiswissen Softwarearchitektur“ vermittelt dem Leser einen sehr guten Überblick über das komplexe Thema. Es beschreibt umfassend und praxisnah und der Leser erhält eine hervorragende Unterstützung für das Seminar „iSQI Certified Professional for Software Architecture“. Darüber hinaus ist es hilfreiche und nützliche Literatur für alle, die in der Software-Entwicklung als Projektleiter, Architekt oder Entwickler tätig sind."
Prof. Dr. Bernd Hindel, Wissenschaftlicher Leiter iSQI


"Preparing for a role as a software architect is difficult; this book overcomes that difficulty, teaching the required knowledge in a complete yet concise form. With a strong eye to practical use, the authors of this book show how to rapidly and successfully use UML 2.0 for describing application architectures."
Richard Mark Soley, CEO OMG
Inhaltsverzeichnis
Teil I Grundlagen und Organisation 1
1 Grundlagen 3
1.1 Warum Softwarearchitektur? 4
1.2 Was ist Softwarearchitektur? 6
1.2.1 Definition von Softwarearchitektur 6
1.2.2 Ziele und Aufgaben von Softwarearchitektur 13
1.2.3 Wodurch wird Softwarearchitektur beeinflusst? 18
1.3 Bedeutung von Softwarearchitektur 20
1.3.1 Symptome bei fehlender Softwarearchitektur 22
1.4 Zusammenfassung 23
2 Softwarearchitektur in der Organisationsstruktur 25
2.1 Wechselwirkungen zwischen Architektur und Unternehmen 25
2.2 Die Rolle des Softwarearchitekten 27
2.2.1 Allgemeine Eigenschaften und Aufgaben 29
2.2.2 Aufgaben im Entwicklungsprojekt 31
2.2.3 Das Architekturteam 39
2.3 Zusammenspiel von Softwarearchitektur und Projektmanagement 43
2.3.1 Bedeutung von Softwarearchitektur für das Projektmanagement 43
2.3.2 Das Führungsteam aus Projektleiter und Softwarearchitekt 50
2.4 Zusammenfassung 53
Teil II Erstellung der Softwarearchitektur 55
3 Vorgehen 57
3.1 Überblick 58
3.2 Vorbereitungen für den Entwurf 60
3.2.1 Anforderungsanalyse 61
3.2.2 Einflussfaktoren 64
3.3 Iterativ, inkrementeller Entwurf, Dokumentation und Bewertung 65
3.3.1 Der erste Architekturentwurf 66
3.3.2 Iterativ, inkrementelles Ausbauen des Entwurfs 68
3.4 Die Umsetzung der Architektur 69
3.5 Zusammenfassung 70
4 Einflussfaktoren 71
4.1 Bedeutung von Einflussfaktoren 71
4.2 Arten von Einflussfaktoren 74
4.2.1 Organisatorische Faktoren 74
4.2.2 Technologische Faktoren 75
4.2.3 Produktfaktoren 76
4.2.4 Flexibilität, Veränderbarkeit und Einfluss 79
4.3 Spezifikation von Einflussfaktoren 79
4.3.1 Identifizieren und Präzisieren der Faktoren 80
4.3.2 Analyse der Faktoren 84
4.3.3 Identifizieren von Architekturthemen und Entwickeln
von Strategien 86
4.4 Zusammenfassung 89
5 Entwurf von Softwarearchitekturen 91
5.1 Entwurfsumfeld und wichtige Begriffe 92
5.1.1 Entwurfsziele 92
5.1.2 Entwurf und Komplexität 94
5.1.3 Vorleistungen 95
5.1.4 Allgemeine Aktivitäten beim Entwurf 97
5.1.5 Fünf Kriterien für einen korrekten Entwurf 99
5.2 Fundamentale Entwurfsprinzipien 102
5.2.1 Abstraktion 103
5.2.2 Kapselung 104
5.2.3 Modularität 105
5.2.4 Hierarchie 106
5.2.5 Konzeptuelle Integrität 107
5.3 Komponenten und Schnittstellen 108
5.3.1 Komponenten – Grundbausteine der Architektur 108
5.3.2 Schnittstellen – Vertragswerk der Softwarearchitektur 112
5.3.3 Techniken zur Adaption von Komponenten 113
5.4 Entwurfsschritte und Heuristiken 114
5.4.1 Konkrete Entwurfsschritte 115
5.4.2 Heuristiken 120
5.5 Zusammenfassung 125
6 Dokumentation 127
6.1 Bedeutung der Dokumentation 128
6.2 Anforderungen an eine Dokumentation 129
6.2.1 Allgemeine Anforderungen an eine
Projektdokumentation 130
6.2.2 Anforderungen an Architekturbeschreibungen 132
6.3 Bestandteile einer Architekturdokumentation 134
6.3.1 Sichten eines Systems 134
6.3.2 Zusammenspiel der Sichten 136
6.3.3 Beschreibung des Aufbaus und Hilfestellungen 136
6.3.4 Zusammenfassung 137
6.4 Architektursichten 137
6.4.1 Kontextsicht 139
6.4.2 Struktursicht 140
6.4.3 Verhaltenssicht 141
6.4.4 Abbildungssicht 141
6.4.5 Sichten in der Literatur 142
6.5 UML 2 als Notation für Architektursichten 145
6.5.1 UML-Überblick 145
6.5.2 Darstellungsmöglichkeiten für die Kontextsicht 148
6.5.3 Darstellungsmöglichkeiten für die Struktursicht 153
6.5.4 Darstellungsmöglichkeiten für die Verhaltenssicht 156
6.5.5 Darstellungsmöglichkeiten für die Abbildungssicht 166
6.5.6 Beschreibungsmöglichkeiten für weitere Architekturaspekte 168
6.5.7 UML Erweiterungsmechanismen zur Konsistenzsicherung 172
6.6 Zusammenfassung 174
7 Bewertung 175
7.1 Grundlagen der Architekturbewertung 175
7.1.1 Allgemeines Vorgehen und Ergebnis 177
7.1.2 Arten von Bewertungen und Zeitpunkt 178
7.1.3 Der Faktor Erfahrung 180
7.2 Bewertungsmethoden 181
7.2.1 Fragetechniken 182
7.2.2 Messtechniken 183
7.2.3 Auf Erfahrung basierende Argumentation 184
7.2.4 Kategorisierung der Bewertungsmethoden 184
7.3 Szenariobasierte Bewertung 186
7.3.1 ATAM 186
7.3.2 ATAM-Phasen 187
7.3.3 ATAM-Schritte 192
7.4 Kosten und Nutzen 197
7.4.1 Kosten 198
7.4.2 Nutzen 199
7.5 Zusammenfassung 201
8 Die Toolbox des Softwarearchitekten 203
8.1 Einführung 203
8.1.1 Historie und derzeitiger Stand 204
8.1.2 Vorteile und Aufbau unserer Toolbox 205
8.1.3 Wie erwirbt der Architekt sein Wissen? 207
8.2 Lösungsvorlagen und Methoden 207
8.2.1 Anwendung von Architekturstilen 208
8.2.2 Anwendung von Architekturmustern 213
8.2.3 Anwendung von Entwurfsmustern 219
8.3 Technologien und Werkzeuge 227
8.3.1 Betriebssysteme und Programmiersprachen 228
8.3.2 Bibliotheken, Komponenten und Frameworks 229
8.3.3 Modellierung und Generierung 232
8.3.4 Analyse und Rekonstruktion 234
8.4 Zusammenfassung 236
9 Fallbeispiel 239
9.1 Projektbeschreibung 239
9.2 Schrittweises Vorgehen zur Erstellung der Architektur 240
9.3 Ausgangssituation 242
9.4 Anforderungen und Use Cases 243
9.5 Analysemodell 245
9.6 Aufbau der Architekturdokumentation 246
9.7 Architekturerstellung 247
9.7.1 Spezifikation der Einflussfaktoren 247
9.7.2 Entwurf und Dokumentation 253
9.7.3 Umfangreiches Assessment 260
9.8 Umsetzung der Architektur 262
9.9 Zusammenfassung 263
Teil III Industrielle Softwareentwicklung 265
10 Softwarearchitektur im industriellen Maßstab 267
10.1 Chronische Probleme der heutigen Softwareentwicklung 268
10.1.1 Unnötige Freiheitsgrade bei Sprachen und Tools 268
10.1.2 Schwerpunkt auf Einzelprojekten 270
10.1.3 Ungenügendes Zusammenspiel von Komponenten 270
10.2 Bahnbrechende Innovationen 273
10.2.1 Innovationsfeld 1: Systematische Wiederverwendung 273
10.2.2 Innovationsfeld 2: Modellgetriebene Entwicklung 274
10.3 Komplexität und die Abstraktionslücke 276
10.3.1 Arten von Komplexität in der Softwareentwicklung 276
10.3.2 Die Abstraktionslücke 277
10.3.3 Verkleinern der Abstraktionslücke 278
10.4 Zusammenfassung 279
11 Produktlinien für Software 281
11.1 Was sind Produktlinien? 281
11.1.1 Vom Softwaresystem zur Standardplattform 282
11.1.2 Grundlegende Begriffe 284
11.1.3 Wann sind Softwareproduktlinien sinnvoll? 287
11.1.4 Softwareproduktlinien in drei Dimensionen 293
11.1.5 Wiederverwendung als treibende Kraft 294
11.2 Aktivitäten und Vorgehen 297
11.2.1 Wesentliche Aktivitäten zum Betrieb einer Produktlinie 297
11.2.2 Tätigkeiten des Softwarearchitekten 299
11.2.3 Allgemeine Schritte zum Produktlinienentwurf 301
11.2.4 Softwarebezogene Schritte zur Einführung 302
11.3 Architektur und Software Engineering 303
11.3.1 Aufgaben für Architekt und Softwareingenieur 303
11.3.2 Komponenten – Grundbausteine der Produktlinie 307
11.3.3 Objektorientierte Frameworks 309
11.4 Technische und organisatorische Aufgaben 312
11.4.1 Technische Aufgaben 312
11.4.2 Organisatorische Aufgaben 314
11.5 Zusammenfassung 314
12 Modellbasierte Entwicklung mit MDA und DSLs 317
12.1 Grundidee von MDA 318
12.2 Konzepte 320
12.2.1 Modelle 320
12.2.2 Transformationen 323
12.3 Metamodellierung 325
12.3.1 Vier-Schichten-Modell der Metamodellierung 326
12.4 Fallstudie 328
12.4.1 Plattformunabhängiges Modell (PIM) 328
12.4.2 Technische Lösung und Markierungen 329
12.4.3 Transformation PIM zu PSM 330
12.4.4 Plattformabhängiges Modell (PSM) 331
12.4.5 Transformation PSM zu Code 332
12.5 Alternative: Domänenspezifische Sprachen 334
12.5.1 Grundidee der domänenspezifischen Sprachen 334
12.5.2 Werkzeugunterstützung für DSLs 336
12.5.3 Anwendungsfelder 338
12.6 Zusammenfassung 339
Anhang 341
Literatur 343
Index 349