Schatten / Biffl / Demolsky | Best Practice Software-Engineering | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 440 Seiten

Schatten / Biffl / Demolsky Best Practice Software-Engineering

Eine praxiserprobte Zusammenstellung von komponentenorientierten Konzepten, Methoden und Werkzeugen
1. Auflage 2010
ISBN: 978-3-8274-2487-7
Verlag: Spektrum Akademischer Verlag
Format: PDF
Kopierschutz: 1 - PDF Watermark

Eine praxiserprobte Zusammenstellung von komponentenorientierten Konzepten, Methoden und Werkzeugen

E-Book, Deutsch, 440 Seiten

ISBN: 978-3-8274-2487-7
Verlag: Spektrum Akademischer Verlag
Format: PDF
Kopierschutz: 1 - PDF Watermark



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.

Schatten / Biffl / Demolsky Best Practice Software-Engineering jetzt bestellen!

Weitere Infos & Material


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



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.