Sie sind hier
E-Book

Best Practice Software-Engineering

Eine praxiserprobte Zusammenstellung von komponentenorientierten Konzepten, Methoden und Werkzeugen

AutorAlexander Schatten, Dietmar, Erik Gostischa-Franta, Markus Demolsky, Stefan Biffl, Thomas Östreicher
VerlagSpektrum Akademischer Verlag
Erscheinungsjahr2010
Seitenanzahl440 Seiten
ISBN9783827424877
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis62,99 EUR

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.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Inhaltsverzeichnis6
1 Einleitung9
1.1 Projektarten und -aspekte10
1.2 Überblick zu Kapiteln und Themen13
1.3 Empfohlene Vorkenntnisse15
1.4 Weitere Ressourcen im Web16
1.5 Die Autoren17
1.6 Danksagung18
2 Lebenszyklus eines Software-Produkts19
2.1 Grundlegende Phasen des SoftwareLebenszyklusses20
2.2 Übergreifende Aktivitäten21
2.2.1 Projektmanagement21
2.2.2 Qualitätsmanagement22
2.2.3 Reviews und Inspektionen25
2.2.4 Software-Tests25
2.3 Anforderungen und Spezifikation25
2.3.1 Arten von Anforderungen28
2.3.2 Anforderungsprozess30
2.3.3 Wesentliche Artefakte der Anforderungsphase32
2.4 Projektplanung und -steuerung33
2.4.1 Projektplanung33
2.4.2 Projektmonitoring und -controlling34
2.4.3 Wesentliche Artefakte der Planungsphase34
2.5 Entwurf und Design35
2.5.1 Designprinzipien37
2.5.2 Wesentliche Artefakte der Entwurfsund Designphase39
2.6 Implementierung und Integration40
2.6.1 Standardisierung41
2.6.2 Dokumentation42
2.6.3 Integration von Software-Komponenten44
2.6.4 Artefakte der Implementierungsund Integrationsphase47
2.7 Betrieb und Wartung47
2.7.1 Abnahmeund Einführungsphase48
2.7.2 Wartungskategorien48
2.7.3 Vorgehensweise bei Wartungsprojekten50
2.7.4 Außerbetriebnahme und Stilllegung50
2.7.5 Wesentliche Artefakte der Betriebsund Wartungsphase51
2.8 Vom Software-Lebenszyklus zum Vorgehensmodell51
2.9 Zusammenfassung52
3 Vorgehensmodelle54
Übersicht54
3.1 Strategie für die Projektdurchführung55
3.2 Wasserfallmodell55
3.3 Das V-Modell56
3.4 V-Modell XT59
3.5 Inkrementelles Vorgehen63
3.6 Spiralmodell64
3.7 Rational Unified Process65
3.8 Agile Software-Entwicklung69
3.9 Anpassung von Vorgehensmodellen72
3.10 Zusammenfassung75
4 Software-Projektmanagement77
Übersicht77
4.1 Einführung ins Projektmanagement78
4.1.1 Rollen im Projekt79
4.1.2 Projektorganisation81
4.1.3 Phasen im Projektmanagement82
4.2 Projektdefinition83
4.2.1 Projektvorschlag83
4.2.2 Projektentscheidung (Kick-off)86
4.2.3 Projektauftrag87
4.3 Projektplanung91
4.3.1 Strukturierung eines Projekts93
4.3.2 Aufwandsschätzung96
4.3.3 Technische und wirtschaftliche Planung99
4.3.4 Netzplan (PERT-Diagramm)104
4.3.5 Balkenoder GANTT-Diagramm107
4.3.6 Burn-down-Charts108
4.4 Projektverfolgung110
4.4.1 Aufwandserfassung mit dem PSP112
4.4.2 Meilenstein-Trendanalyse113
4.4.3 Aufwandserfassung mit Burn-down-Charts115
4.5 Projektabschluss116
4.6 Zusammenfassung117
5 Qualitätssicherung und Test-Driven Development119
Übersicht119
5.1 Der Qualitätsbegriff120
5.2 Verifikation und Validierung121
5.3 Software-Reviews123
5.3.1 Reviewtypen123
5.3.2 Rollen in einem Review126
5.3.3 Ablauf eines Reviews127
5.4 Software-Inspektionen129
5.4.1 Inspektionstypen und Ablauf129
5.4.2 Lesetechniken131
5.5 Architekturevaluierung135
5.6 Software-Testen139
5.6.1 Rollen im Software-Testen140
5.6.2 Der traditionelle Testprozess141
5.6.3 Testebenen144
5.6.4 Testmethoden146
5.6.5 Testfalldokumentation150
5.6.6 Testintensität und Überdeckungsgrade152
5.7 Test-Driven Development156
5.7.1 Test-Driven Development im V-Modell Umfeld157
5.7.2 Ablauf von Test-Driven Development159
5.8 Automatische Codeprüfung160
5.8.1 Testautomatisierung161
5.8.2 Code Coverage Analyse164
5.8.3 Code Quality Checks165
5.9 Zusammenfassung166
6 Notationen, Methoden der Modellierung169
Übersicht169
6.1 UML-Diagrammfamilie171
6.1.1 UML-Paketdiagramm173
6.1.2 UML-Anwendungsfälle175
6.1.3 UML-Klassendiagramme178
6.1.4 UML-Komponentendiagramm183
6.1.5 UML-Aktivitätsdiagramme185
6.1.6 UML-Sequenzdiagramme und Kommunikationsdiagramme187
6.1.7 UML-Verteilungsdiagramm189
6.1.8 UML-Zustandsdiagramme190
6.2 Modellierung von Daten und System-schichten192
6.2.1 Entity-Relationship-Modell192
6.2.2 Schichtendiagramme196
6.3 Projektmanagement-Artefakte197
6.3.1 Projektstrukturplan197
6.3.2 Netzplan, PERT199
6.3.3 Balkendiagramm (GANTT-Diagramm)200
6.3.4 Burn-Charts201
6.4 Zusammenfassung203
7 Software-Architektur205
Übersicht205
7.1 Was ist eine Software-Architektur206
7.2 Wie entstehen Architekturen208
7.3 Sichten auf eine Software-Architektur212
7.4 Separation of Concerns215
7.5 Schichtenarchitektur217
7.5.1 2-Schichtenarchitektur219
7.5.2 3-Schichtenarchitektur220
7.5.3 5-Schichtenarchitektur220
7.6 Serviceorientierte Architekturen221
7.6.1 Ein neues Architekturparadigma221
7.6.2 SOA und Schichten224
7.6.3 SOA und Geschäftsprozesse226
7.7 Ereignisgetriebene Architektur227
7.8 Zusammenfassung232
8 Entwurfs-, Architekturund Integrationsmuster234
Übersicht234
8.1 Was ist ein Muster235
8.2 Grundlegende Muster238
8.2.1 Interface (Schnittstelle)238
8.2.2 Delegation241
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 Erzeugung252
8.3.1 Singleton252
8.3.2 Factory (Fabrik)255
8.3.3 Objekt-Pool257
8.4 Struktur258
8.4.1 Fassade (Facade)258
8.4.2 Iterator259
8.4.3 Adapter260
8.4.4 Proxy (Stellvertreter)261
8.4.5 Data Access Object268
8.4.6 Generisches DAO272
8.5 Verhalten274
8.5.1 Observer274
8.5.2 Decorator279
8.5.3 Interceptor283
8.6 Integration286
8.6.1 Integrations-Stile289
8.6.2 Messaging294
8.6.3 Pipes and Filters298
8.6.4 Routing299
8.6.5 Transformation301
8.6.6 System-Management und Testen302
8.7 Zusammenfassung304
9 Komponentenorientierte Software-Entwicklung306
Übersicht306
9.1 Vom Objekt zum Service: Schritte der Entkopplung307
9.1.1 Objekte und Schnittstellen (Interfaces)307
9.1.2 Erste Schritte der Entkopplung309
9.1.3 Software-Komponenten310
9.1.4 Software-Services312
9.1.5 Vorund Nachteile verschiedener Stufen der Entkopplung314
9.2 Software-Frameworks als Basis für die Komponentenbildung316
9.3 Dependency-Injection320
9.4 Persistente Datenhaltung in komponen-tenbasierten Systemen327
9.4.1 Anforderungen an eine Persistenzschicht327
9.4.2 Transaktionen330
9.4.3 Architektur und Modellierung332
9.4.4 Abhängigkeiten zwischen Domänenmodell und Persistenzschicht333
9.4.5 Proprietäre binäre Datenformate340
9.4.6 Objektorientierte Datenbanken340
9.4.7 Relationale Datenbanken und objektorientierte Programmierung342
9.4.8 Objektrelationales Mapping345
9.4.9 XML-Persistenz351
9.4.10 Dateisysteme mit Indexing-Mechanismen355
9.4.11 Abstraktion über Services355
9.5 Querschnittsfunktionen in Aspekte aus-lagern356
9.5.1 Cross Cutting Concerns356
9.5.2 Grundlagen der aspektorientierten Program-mierung357
9.5.3 Sicherheit mit AOP360
9.5.4 Deklaratives Transaktionsmanagement mit AOP363
9.6 Benutzerschnittstellen in komponenten-basierten Systemen365
9.6.1 Überblick365
9.6.2 Model View Controller367
9.6.3 Kommunikation mit dem Backend368
9.7 Lose Koppelung von Systemen370
9.7.1 Serviceorientierte Architekturen und deren Be-standteile370
9.7.2 Middleware als Lösung für die lose Koppelung373
9.8 Logging: Protokollieren von Systemzu-ständen376
9.9 Zusammenfassung379
10 Techniken und Werkzeuge381
Übersicht381
10.1 Konvention oder Konfiguration?382
10.2 Sourcecode-Management385
10.2.1 Die Entwicklung von Sourcecode-Manage-mentSystemen385
10.2.2 Versionierung386
10.2.3 Parallele Entwicklungspfade387
10.2.4 Unterstützung kollaborativer Arbeit388
10.2.5 Refactoring und Sourcecode-Management390
10.2.6 Integration in den Arbeitsalltag390
10.2.7 Die Zukunft? Verteilte und zentralisierte Systeme391
10.2.8 Patches und Diffs392
10.3 Build-Management und Automatisie-rung396
10.3.1 Warum Automatisierung?396
10.3.2 Der Build-Lifecycle: Best-Practices397
10.3.3 Scaffolding und Archetypen400
10.3.4 Dependency-Management400
10.3.5 Reporting und Dokumentation403
10.3.6 Continuous Integration404
10.4 Die integrierte Entwicklungsumgebung406
10.5 Virtualisierung von Hardund Software407
10.6 Projektplanung und Steuerung409
10.7 Dokumentation410
10.8 Kommunikation im (global verteilten) Team417
10.9 Zusammenfassung426
11 Epilog428
Literaturverzeichnis431
Index435

Weitere E-Books zum Thema: Software-Design - Softwareentwicklung

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

SAP für Java-Entwickler

E-Book SAP für Java-Entwickler
Konzepte, Schnittstellen, Technologien Format: PDF

Seit kurzem forciert SAP die Verbreitung der Netweaver-Technologie und initiiert damit eine Gleichstellung von Java und ABAP als Sprachen zur SAP-Programmierung. Dieses Buch leistet einem erfahrenen…

Weitere Zeitschriften

FREIE WERKSTATT

FREIE WERKSTATT

Die Fachzeitschrift FREIE WERKSTATT berichtet seit der ersten Ausgaben 1994 über die Entwicklungen des Independent Aftermarkets (IAM). Hauptzielgruppe sind Inhaberinnen und Inhaber, Kfz-Meisterinnen ...

BEHINDERTEPÄDAGOGIK

BEHINDERTEPÄDAGOGIK

Für diese Fachzeitschrift arbeiten namhafte Persönlichkeiten aus den verschiedenen Fotschungs-, Lehr- und Praxisbereichen zusammen. Zu ihren Aufgaben gehören Prävention, Früherkennung, ...

CE-Markt

CE-Markt

CE-Markt ist Pflichtlektüre in der Unterhaltungselektronik-Branche. Die Vermarktung von Home und Mobile Electronics mit den besten Verkaufsargumenten und Verkaufsstrategien gehören ebenso zum ...

rfe-Elektrohändler

rfe-Elektrohändler

rfe-Elektrohändler ist die Fachzeitschrift für die CE- und Hausgeräte-Branche. Wichtige Themen sind: Aktuelle Entwicklungen in beiden Branchen, Waren- und Verkaufskunde, Reportagen über ...

EineWelt

EineWelt

Lebendige Reportagen, spannende Interviews, interessante Meldungen, informative Hintergrundberichte. Lesen Sie in der Zeitschrift „EineWelt“, was Menschen in Mission und Kirche bewegt Man kann ...

Euro am Sonntag

Euro am Sonntag

Deutschlands aktuelleste Finanz-Wochenzeitung Jede Woche neu bietet €uro am Sonntag Antworten auf die wichtigsten Fragen zu den Themen Geldanlage und Vermögensaufbau. Auch komplexe Sachverhalte ...