Best Practice Software-Engineering (eBook)

Eine praxiserprobte Zusammenstellung von komponentenorientierten Konzepten, Methoden und Werkzeugen
eBook Download: PDF
2010 | 2010
VII, 440 Seiten
Spektrum Akademischer Verlag
978-3-8274-2487-7 (ISBN)

Lese- und Medienproben

Best Practice Software-Engineering - Alexander Schatten, Stefan Biffl, Markus Demolsky, Erik Gostischa-Franta, Thomas Östreicher, Dietmar Winkler
Systemvoraussetzungen
62,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Software-Komponenten tragen durch einen hohen Grad an Wiederverwendbarkeit, bessere Testbarkeit und Wartbarkeit zur effizienten Herstellung komplexer Software-Anwendungen bei. Diese Vorteile bedingen jedoch oft eine aufwendigere Einarbeitung beim Einstieg in diese Materie durch die Vielzahl an komplexen Komponenten-Frameworks, Werkzeugen und Entwurfsansätzen.

Das vorliegende Buch 'Best-Practice Software Engineering' bietet Neu- und Wiedereinsteigern in die komponentenorientierte Software-Entwicklung eine Einführung in die Materie durch eine abgestimmte Zusammenstellung von praxiserprobten Konzepten, Techniken und Werkzeugen für alle Aspekte eines erfolgreichen Projekts.

Für moderne Software-Entwicklung sind eine Vielzahl von unterschiedlichen Fähigkeiten erforderlich, die nur im richtiger Kombination zu einem erfolgreichen Ergebnis führen. Daher wird in diesem Buch besonderer Wert darauf gelegt, nicht einzelne Techniken des Software Engineerings isoliert zu betrachten, sondern das effiziente Zusammenspiel verschiedener Aspekte darzustellen.  

Schwerpunkte liegen auf Vorgehensstrategien im Software-Lebenszyklus, Projektmanagement, Qualitätssicherung, UML-Modellierung, Entwurfsmustern und Architekturen, komponentenorientierter Software-Entwicklung sowie ausgewählten Techniken und Werkzeugen.

Zu den Beispielen im Buch finden Sie den vollständigen Source Code sowie umfangreiche Fallbeispiele zu Artefakten aus dem Projektverlauf auf der Webseite zum Buch.



Alexander Schatten befasst sich als Fachautor und Forscher mit komponentenorierter Software-Entwicklung. Er ist Berater im Bereich von Software-Architekturen und Software-Engineering mit Schwerpunkt auf Open-Source-Systemen.

Markus Demolsky ist Spezialist für Architektur- und Integrationsthemen mit langjähriger Erfahrung in der Analyse und Umsetzung internationaler Software-Projekte. Sein besonderes Interesse gilt komponentenorientierten Open-Source-Technologien im Java-EE-Umfeld.

Dietmar Winkler ist Lehrbeauftragter und Forscher an der TU Wien und selbstständiger Berater mit Schwerpunkt auf komponentenorientierten Software- und Systementwicklung, Projekt-, Prozess- und Qualitätsmanagement sowie empirische Software-Technik.

Stefan Biffl lehrt und forscht an der Fakultät für Informatik der TU Wien in den Bereichen Software-Engineering, Qualitätssicherung und Projektmanagement, um im Praxiskontext erfolgreiche 'Best Practices' für Studierende und Praktiker zugänglich zu machen.

Erik Gostischa-Franta hat jahrelange Industrieerfahrung in der Software-Entwicklung und als Tutor an der TU Wien. Sein besonderes Interesse gilt agilen Methoden sowie strukturiertem Vorgehen in der komponentenorientierten Software-Entwicklung.

Thomas Östreicher studiert und forscht an der TU Wien im Bereich der Modellierung software-intensiver Systeme und testgetriebener agiler Methoden.

Alexander Schatten befasst sich als Fachautor und Forscher mit komponentenorierter Software-Entwicklung. Er ist Berater im Bereich von Software-Architekturen und Software-Engineering mit Schwerpunkt auf Open-Source-Systemen.Markus Demolsky ist Spezialist für Architektur- und Integrationsthemen mit langjähriger Erfahrung in der Analyse und Umsetzung internationaler Software-Projekte. Sein besonderes Interesse gilt komponentenorientierten Open-Source-Technologien im Java-EE-Umfeld.Dietmar Winkler ist Lehrbeauftragter und Forscher an der TU Wien und selbstständiger Berater mit Schwerpunkt auf komponentenorientierten Software- und Systementwicklung, Projekt-, Prozess- und Qualitätsmanagement sowie empirische Software-Technik. Stefan Biffl lehrt und forscht an der Fakultät für Informatik der TU Wien in den Bereichen Software-Engineering, Qualitätssicherung und Projektmanagement, um im Praxiskontext erfolgreiche „Best Practices" für Studierende und Praktiker zugänglich zu machen.Erik Gostischa-Franta hat jahrelange Industrieerfahrung in der Software-Entwicklung und als Tutor an der TU Wien. Sein besonderes Interesse gilt agilen Methoden sowie strukturiertem Vorgehen in der komponentenorientierten Software-Entwicklung.Thomas Östreicher studiert und forscht an der TU Wien im Bereich der Modellierung software-intensiver Systeme und testgetriebener agiler Methoden.

Inhaltsverzeichnis 6
1 Einleitung 9
1.1 Projektarten und -aspekte 10
1.2 Überblick zu Kapiteln und Themen 13
1.3 Empfohlene Vorkenntnisse 15
1.4 Weitere Ressourcen im Web 16
1.5 Die Autoren 17
1.6 Danksagung 18
2 Lebenszyklus eines Software-Produkts 19
2.1 Grundlegende Phasen des SoftwareLebenszyklusses 20
2.2 Übergreifende Aktivitäten 21
2.2.1 Projektmanagement 21
2.2.2 Qualitätsmanagement 22
2.2.3 Reviews und Inspektionen 25
2.2.4 Software-Tests 25
2.3 Anforderungen und Spezifikation 25
2.3.1 Arten von Anforderungen 28
2.3.2 Anforderungsprozess 30
2.3.3 Wesentliche Artefakte der Anforderungsphase 32
2.4 Projektplanung und -steuerung 33
2.4.1 Projektplanung 33
2.4.2 Projektmonitoring und -controlling 34
2.4.3 Wesentliche Artefakte der Planungsphase 34
2.5 Entwurf und Design 35
2.5.1 Designprinzipien 37
2.5.2 Wesentliche Artefakte der Entwurfsund Designphase 39
2.6 Implementierung und Integration 40
2.6.1 Standardisierung 41
2.6.2 Dokumentation 42
2.6.3 Integration von Software-Komponenten 44
2.6.4 Artefakte der Implementierungsund Integrationsphase 47
2.7 Betrieb und Wartung 47
2.7.1 Abnahmeund Einführungsphase 48
2.7.2 Wartungskategorien 48
2.7.3 Vorgehensweise bei Wartungsprojekten 50
2.7.4 Außerbetriebnahme und Stilllegung 50
2.7.5 Wesentliche Artefakte der Betriebsund Wartungsphase 51
2.8 Vom Software-Lebenszyklus zum Vorgehensmodell 51
2.9 Zusammenfassung 52
3 Vorgehensmodelle 54
Übersicht 54
3.1 Strategie für die Projektdurchführung 55
3.2 Wasserfallmodell 55
3.3 Das V-Modell 56
3.4 V-Modell XT 59
3.5 Inkrementelles Vorgehen 63
3.6 Spiralmodell 64
3.7 Rational Unified Process 65
3.8 Agile Software-Entwicklung 69
3.9 Anpassung von Vorgehensmodellen 72
3.10 Zusammenfassung 75
4 Software-Projektmanagement 77
Übersicht 77
4.1 Einführung ins Projektmanagement 78
4.1.1 Rollen im Projekt 79
4.1.2 Projektorganisation 81
4.1.3 Phasen im Projektmanagement 82
4.2 Projektdefinition 83
4.2.1 Projektvorschlag 83
4.2.2 Projektentscheidung (Kick-off) 86
4.2.3 Projektauftrag 87
4.3 Projektplanung 91
4.3.1 Strukturierung eines Projekts 93
4.3.2 Aufwandsschätzung 96
4.3.3 Technische und wirtschaftliche Planung 99
4.3.4 Netzplan (PERT-Diagramm) 104
4.3.5 Balkenoder GANTT-Diagramm 107
4.3.6 Burn-down-Charts 108
4.4 Projektverfolgung 110
4.4.1 Aufwandserfassung mit dem PSP 112
4.4.2 Meilenstein-Trendanalyse 113
4.4.3 Aufwandserfassung mit Burn-down-Charts 115
4.5 Projektabschluss 116
4.6 Zusammenfassung 117
5 Qualitätssicherung und Test-Driven Development 119
Übersicht 119
5.1 Der Qualitätsbegriff 120
5.2 Verifikation und Validierung 121
5.3 Software-Reviews 123
5.3.1 Reviewtypen 123
5.3.2 Rollen in einem Review 126
5.3.3 Ablauf eines Reviews 127
5.4 Software-Inspektionen 129
5.4.1 Inspektionstypen und Ablauf 129
5.4.2 Lesetechniken 131
5.5 Architekturevaluierung 135
5.6 Software-Testen 139
5.6.1 Rollen im Software-Testen 140
5.6.2 Der traditionelle Testprozess 141
5.6.3 Testebenen 144
5.6.4 Testmethoden 146
5.6.5 Testfalldokumentation 150
5.6.6 Testintensität und Überdeckungsgrade 152
5.7 Test-Driven Development 156
5.7.1 Test-Driven Development im V-Modell Umfeld 157
5.7.2 Ablauf von Test-Driven Development 159
5.8 Automatische Codeprüfung 160
5.8.1 Testautomatisierung 161
5.8.2 Code Coverage Analyse 164
5.8.3 Code Quality Checks 165
5.9 Zusammenfassung 166
6 Notationen, Methoden der Modellierung 169
Übersicht 169
6.1 UML-Diagrammfamilie 171
6.1.1 UML-Paketdiagramm 173
6.1.2 UML-Anwendungsfälle 175
6.1.3 UML-Klassendiagramme 178
6.1.4 UML-Komponentendiagramm 183
6.1.5 UML-Aktivitätsdiagramme 185
6.1.6 UML-Sequenzdiagramme und Kommunikationsdiagramme 187
6.1.7 UML-Verteilungsdiagramm 189
6.1.8 UML-Zustandsdiagramme 190
6.2 Modellierung von Daten und System-schichten 192
6.2.1 Entity-Relationship-Modell 192
6.2.2 Schichtendiagramme 196
6.3 Projektmanagement-Artefakte 197
6.3.1 Projektstrukturplan 197
6.3.2 Netzplan, PERT 199
6.3.3 Balkendiagramm (GANTT-Diagramm) 200
6.3.4 Burn-Charts 201
6.4 Zusammenfassung 203
7 Software-Architektur 205
Übersicht 205
7.1 Was ist eine Software-Architektur 206
7.2 Wie entstehen Architekturen 208
7.3 Sichten auf eine Software-Architektur 212
7.4 Separation of Concerns 215
7.5 Schichtenarchitektur 217
7.5.1 2-Schichtenarchitektur 219
7.5.2 3-Schichtenarchitektur 220
7.5.3 5-Schichtenarchitektur 220
7.6 Serviceorientierte Architekturen 221
7.6.1 Ein neues Architekturparadigma 221
7.6.2 SOA und Schichten 224
7.6.3 SOA und Geschäftsprozesse 226
7.7 Ereignisgetriebene Architektur 227
7.8 Zusammenfassung 232
8 Entwurfs-, Architekturund Integrationsmuster 234
Übersicht 234
8.1 Was ist ein Muster 235
8.2 Grundlegende Muster 238
8.2.1 Interface (Schnittstelle) 238
8.2.2 Delegation 241
8.2.3 Strategy (Strategie) 244
8.2.4 Immutable (Nicht veränderbares Object) 248
8.2.5 Marker (Markieren eines Objekts) 248
8.2.6 Annotations (Metadaten für Objekte) 249
8.3 Erzeugung 252
8.3.1 Singleton 252
8.3.2 Factory (Fabrik) 255
8.3.3 Objekt-Pool 257
8.4 Struktur 258
8.4.1 Fassade (Facade) 258
8.4.2 Iterator 259
8.4.3 Adapter 260
8.4.4 Proxy (Stellvertreter) 261
8.4.5 Data Access Object 268
8.4.6 Generisches DAO 272
8.5 Verhalten 274
8.5.1 Observer 274
8.5.2 Decorator 279
8.5.3 Interceptor 283
8.6 Integration 286
8.6.1 Integrations-Stile 289
8.6.2 Messaging 294
8.6.3 Pipes and Filters 298
8.6.4 Routing 299
8.6.5 Transformation 301
8.6.6 System-Management und Testen 302
8.7 Zusammenfassung 304
9 Komponentenorientierte Software-Entwicklung 306
Übersicht 306
9.1 Vom Objekt zum Service: Schritte der Entkopplung 307
9.1.1 Objekte und Schnittstellen (Interfaces) 307
9.1.2 Erste Schritte der Entkopplung 309
9.1.3 Software-Komponenten 310
9.1.4 Software-Services 312
9.1.5 Vorund Nachteile verschiedener Stufen der Entkopplung 314
9.2 Software-Frameworks als Basis für die Komponentenbildung 316
9.3 Dependency-Injection 320
9.4 Persistente Datenhaltung in komponen-tenbasierten Systemen 327
9.4.1 Anforderungen an eine Persistenzschicht 327
9.4.2 Transaktionen 330
9.4.3 Architektur und Modellierung 332
9.4.4 Abhängigkeiten zwischen Domänenmodell und Persistenzschicht 333
9.4.5 Proprietäre binäre Datenformate 340
9.4.6 Objektorientierte Datenbanken 340
9.4.7 Relationale Datenbanken und objektorientierte Programmierung 342
9.4.8 Objektrelationales Mapping 345
9.4.9 XML-Persistenz 351
9.4.10 Dateisysteme mit Indexing-Mechanismen 355
9.4.11 Abstraktion über Services 355
9.5 Querschnittsfunktionen in Aspekte aus-lagern 356
9.5.1 Cross Cutting Concerns 356
9.5.2 Grundlagen der aspektorientierten Program-mierung 357
9.5.3 Sicherheit mit AOP 360
9.5.4 Deklaratives Transaktionsmanagement mit AOP 363
9.6 Benutzerschnittstellen in komponenten-basierten Systemen 365
9.6.1 Überblick 365
9.6.2 Model View Controller 367
9.6.3 Kommunikation mit dem Backend 368
9.7 Lose Koppelung von Systemen 370
9.7.1 Serviceorientierte Architekturen und deren Be-standteile 370
9.7.2 Middleware als Lösung für die lose Koppelung 373
9.8 Logging: Protokollieren von Systemzu-ständen 376
9.9 Zusammenfassung 379
10 Techniken und Werkzeuge 381
Übersicht 381
10.1 Konvention oder Konfiguration? 382
10.2 Sourcecode-Management 385
10.2.1 Die Entwicklung von Sourcecode-Manage-mentSystemen 385
10.2.2 Versionierung 386
10.2.3 Parallele Entwicklungspfade 387
10.2.4 Unterstützung kollaborativer Arbeit 388
10.2.5 Refactoring und Sourcecode-Management 390
10.2.6 Integration in den Arbeitsalltag 390
10.2.7 Die Zukunft? Verteilte und zentralisierte Systeme 391
10.2.8 Patches und Diffs 392
10.3 Build-Management und Automatisie-rung 396
10.3.1 Warum Automatisierung? 396
10.3.2 Der Build-Lifecycle: Best-Practices 397
10.3.3 Scaffolding und Archetypen 400
10.3.4 Dependency-Management 400
10.3.5 Reporting und Dokumentation 403
10.3.6 Continuous Integration 404
10.4 Die integrierte Entwicklungsumgebung 406
10.5 Virtualisierung von Hardund Software 407
10.6 Projektplanung und Steuerung 409
10.7 Dokumentation 410
10.8 Kommunikation im (global verteilten) Team 417
10.9 Zusammenfassung 426
11 Epilog 428
Literaturverzeichnis 431
Index 435

Erscheint lt. Verlag 28.1.2010
Zusatzinfo VII, 440 S.
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Software Entwicklung
Schlagworte Architektur • Entwicklung • Entwurf • Entwurfsmuster • Framework • Komponente • Komponentenorientierung • Modellierung • Programmierung • Projektmanagement • Qualitätssicherung • Software • Softwarearchitektur • Software-Architektur • Software engineering • Software-Entwicklung • Software-Projektmanagement • Software-Qualitätssicherung • Software-Technik • Software-Test • unified modeling language (UML) • Vorgehensmodell
ISBN-10 3-8274-2487-9 / 3827424879
ISBN-13 978-3-8274-2487-7 / 9783827424877
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 4,7 MB

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: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder 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 einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

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
Das umfassende Handbuch

von Jürgen Sieben

eBook Download (2023)
Rheinwerk Computing (Verlag)
89,90
Eine kompakte Einführung

von Brendan Burns; Joe Beda; Kelsey Hightower; Lachlan Evenson

eBook Download (2023)
dpunkt (Verlag)
39,90
Grundlagen, Menschen, Prozesse, Techniken

von Jochen Ludewig; Horst Lichter

eBook Download (2023)
dpunkt (Verlag)
49,90