وبلاگ بلیان

Best Practice Software-Engineering: Eine praxiserprobte Zusammenstellung von komponentenorientierten Konzepten, Methoden und Werkzeugen (German Edition)

معرفی کتاب «Best Practice Software-Engineering: Eine praxiserprobte Zusammenstellung von komponentenorientierten Konzepten, Methoden und Werkzeugen (German Edition)» نوشتهٔ Alexander Schatten, Stefan Biffl, Markus Demolsky, Erik Gostischa-Franta, Thomas Östreicher, Dietmar Winkler، منتشرشده توسط نشر Spektrum Akademischer Verlag. in Springer-Verlag GmbH در سال 2010. این کتاب در فرمت pdf، زبان آلمانی ارائه شده است.

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 in 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 Sourcecode sowie umfangreiche Fallbeispiele zu Artefakten aus dem Projektverlauf auf der Webseite zum Buch (http://bpse.ifs.tuwien.ac.at). . Best Practice Software-Engineering ......Page 2 Inhaltsverzeichnis......Page 4 1 Einleitung......Page 7 1.1 Projektarten und -aspekte......Page 8 1.2 Überblick zu Kapiteln und Themen......Page 11 1.3 Empfohlene Vorkenntnisse......Page 13 1.4 Weitere Ressourcen im Web......Page 14 1.5 Die Autoren......Page 15 1.6 Danksagung......Page 16 2 Lebenszyklus eines Software-Produkts......Page 17 2.1 Grundlegende Phasen des SoftwareLebenszyklusses......Page 18 2.2.1 Projektmanagement......Page 19 2.2.2 Qualitätsmanagement......Page 20 2.3 Anforderungen und Spezifikation......Page 23 2.3.1 Arten von Anforderungen......Page 26 2.3.2 Anforderungsprozess......Page 28 2.3.3 Wesentliche Artefakte der Anforderungsphase......Page 30 2.4.1 Projektplanung......Page 31 2.4.3 Wesentliche Artefakte der Planungsphase......Page 32 2.5 Entwurf und Design......Page 33 2.5.1 Designprinzipien......Page 35 2.5.2 Wesentliche Artefakte der Entwurfsund Designphase......Page 37 2.6 Implementierung und Integration......Page 38 2.6.1 Standardisierung......Page 39 2.6.2 Dokumentation......Page 40 2.6.3 Integration von Software-Komponenten......Page 42 2.7 Betrieb und Wartung......Page 45 2.7.2 Wartungskategorien......Page 46 2.7.4 Außerbetriebnahme und Stilllegung......Page 48 2.8 Vom Software-Lebenszyklus zum Vorgehensmodell......Page 49 2.9 Zusammenfassung......Page 50 3 Vorgehensmodelle......Page 52 3.2 Wasserfallmodell......Page 53 3.3 Das V-Modell......Page 54 3.4 V-Modell XT......Page 57 3.5 Inkrementelles Vorgehen......Page 61 3.6 Spiralmodell......Page 62 3.7 Rational Unified Process......Page 63 3.8 Agile Software-Entwicklung......Page 67 3.9 Anpassung von Vorgehensmodellen......Page 70 3.10 Zusammenfassung......Page 73 Übersicht......Page 75 4.1 Einführung ins Projektmanagement......Page 76 4.1.1 Rollen im Projekt......Page 77 4.1.2 Projektorganisation......Page 79 4.1.3 Phasen im Projektmanagement......Page 80 4.2.1 Projektvorschlag......Page 81 4.2.2 Projektentscheidung (Kick-off)......Page 84 4.2.3 Projektauftrag......Page 85 4.3 Projektplanung......Page 89 4.3.1 Strukturierung eines Projekts......Page 91 4.3.2 Aufwandsschätzung......Page 94 4.3.3 Technische und wirtschaftliche Planung......Page 97 4.3.4 Netzplan (PERT-Diagramm)......Page 102 4.3.5 Balkenoder GANTT-Diagramm......Page 105 4.3.6 Burn-down-Charts......Page 106 4.4 Projektverfolgung......Page 108 4.4.1 Aufwandserfassung mit dem PSP......Page 110 4.4.2 Meilenstein-Trendanalyse......Page 111 4.4.3 Aufwandserfassung mit Burn-down-Charts......Page 113 4.5 Projektabschluss......Page 114 4.6 Zusammenfassung......Page 115 Übersicht......Page 117 5.1 Der Qualitätsbegriff......Page 118 5.2 Verifikation und Validierung......Page 119 5.3.1 Reviewtypen......Page 121 5.3.2 Rollen in einem Review......Page 124 5.3.3 Ablauf eines Reviews......Page 125 5.4.1 Inspektionstypen und Ablauf......Page 127 5.4.2 Lesetechniken......Page 129 5.5 Architekturevaluierung......Page 133 5.6 Software-Testen......Page 137 5.6.1 Rollen im Software-Testen......Page 138 5.6.2 Der traditionelle Testprozess......Page 139 5.6.3 Testebenen......Page 142 5.6.4 Testmethoden......Page 144 5.6.5 Testfalldokumentation......Page 148 5.6.6 Testintensität und Überdeckungsgrade......Page 150 5.7 Test-Driven Development......Page 154 5.7.1 Test-Driven Development im V-Modell Umfeld......Page 155 5.7.2 Ablauf von Test-Driven Development......Page 157 5.8 Automatische Codeprüfung......Page 158 5.8.1 Testautomatisierung......Page 159 5.8.2 Code Coverage Analyse......Page 162 5.8.3 Code Quality Checks......Page 163 5.9 Zusammenfassung......Page 164 Übersicht......Page 167 6.1 UML-Diagrammfamilie......Page 169 6.1.1 UML-Paketdiagramm......Page 171 6.1.2 UML-Anwendungsfälle......Page 173 6.1.3 UML-Klassendiagramme......Page 176 6.1.4 UML-Komponentendiagramm......Page 181 6.1.5 UML-Aktivitätsdiagramme......Page 183 6.1.6 UML-Sequenzdiagramme und Kommunikationsdiagramme......Page 185 6.1.7 UML-Verteilungsdiagramm......Page 187 6.1.8 UML-Zustandsdiagramme......Page 188 6.2.1 Entity-Relationship-Modell......Page 190 6.2.2 Schichtendiagramme......Page 194 6.3.1 Projektstrukturplan......Page 195 6.3.2 Netzplan, PERT......Page 197 6.3.3 Balkendiagramm (GANTT-Diagramm)......Page 198 6.3.4 Burn-Charts......Page 199 6.4 Zusammenfassung......Page 201 Übersicht......Page 203 7.1 Was ist eine Software-Architektur......Page 204 7.2 Wie entstehen Architekturen......Page 206 7.3 Sichten auf eine Software-Architektur......Page 210 7.4 Separation of Concerns......Page 213 7.5 Schichtenarchitektur......Page 215 7.5.1 2-Schichtenarchitektur......Page 217 7.5.3 5-Schichtenarchitektur......Page 218 7.6.1 Ein neues Architekturparadigma......Page 219 7.6.2 SOA und Schichten......Page 222 7.6.3 SOA und Geschäftsprozesse......Page 224 7.7 Ereignisgetriebene Architektur......Page 225 7.8 Zusammenfassung......Page 230 Übersicht......Page 232 8.1 Was ist ein Muster......Page 233 8.2.1 Interface (Schnittstelle)......Page 236 8.2.2 Delegation......Page 239 8.2.3 Strategy (Strategie)......Page 242 8.2.5 Marker (Markieren eines Objekts)......Page 246 8.2.6 Annotations (Metadaten für Objekte)......Page 247 8.3.1 Singleton......Page 250 8.3.2 Factory (Fabrik)......Page 253 8.3.3 Objekt-Pool......Page 255 8.4.1 Fassade (Facade)......Page 256 8.4.2 Iterator......Page 257 8.4.3 Adapter......Page 258 8.4.4 Proxy (Stellvertreter)......Page 259 8.4.5 Data Access Object......Page 266 8.4.6 Generisches DAO......Page 270 8.5.1 Observer......Page 272 8.5.2 Decorator......Page 277 8.5.3 Interceptor......Page 281 8.6 Integration......Page 284 8.6.1 Integrations-Stile......Page 287 8.6.2 Messaging......Page 292 8.6.3 Pipes and Filters......Page 296 8.6.4 Routing......Page 297 8.6.5 Transformation......Page 299 8.6.6 System-Management und Testen......Page 300 9 Komponentenorientierte Software-Entwicklung......Page 302 9.1.1 Objekte und Schnittstellen (Interfaces......Page 305 9.1.2 Erste Schritte der Entkopplung......Page 307 9.1.3 Software-Komponenten......Page 308 9.1.4 Software-Services......Page 310 9.1.5 Vor- und Nachteile verschiedener Stufen der Entkopplung......Page 312 9.2 Software-Frameworks als Basis für die Komponentenbildung......Page 314 9.3 Dependency-Injection......Page 318 9.4.1 Anforderungen an eine Persistenzschicht......Page 325 9.4.2 Transaktionen......Page 328 9.4.3 Architektur und Modellierung......Page 330 9.4.4 Abhängigkeiten zwischen Domänenmodell und Persistenzschicht......Page 331 9.4.6 Objektorientierte Datenbanken......Page 338 9.4.7 Relationale Datenbanken und objektorientierte Programmierung......Page 340 9.4.8 Objektrelationales Mapping......Page 343 9.4.9 XML-Persistenz......Page 349 9.4.11 Abstraktion über Services......Page 353 9.5.1 Cross Cutting Concerns......Page 354 9.5.2 Grundlagen der aspektorientierten Programmierung......Page 355 9.5.3 Sicherheit mit AOP......Page 358 9.5.4 Deklaratives Transaktionsmanagement mit AOP......Page 361 9.6.1 Überblick......Page 363 9.6.2 Model View Controller......Page 365 9.6.3 Kommunikation mit dem Backend......Page 366 9.7.1 Serviceorientierte Architekturen und deren Bestandteile......Page 368 9.7.2 Middleware als Lösung für die lose Koppelung......Page 371 9.8 Logging: Protokollieren von Systemzuständen......Page 374 9.9 Zusammenfassung......Page 377 10 Techniken und Werkzeuge......Page 379 10.1 Konvention oder Konfiguration?......Page 380 10.2.1 Die Entwicklung von Sourcecode-Management-Systemen......Page 383 10.2.2 Versionierung......Page 384 10.2.3 Parallele Entwicklungspfade......Page 385 10.2.4 Unterstützung kollaborativer Arbeit......Page 386 10.2.6 Integration in den Arbeitsalltag......Page 388 10.2.7 Die Zukunft? Verteilte und zentralisierte Systeme......Page 389 10.2.8 Patches und Diffs......Page 390 10.3.1 Warum Automatisierung?......Page 394 10.3.2 Der Build-Lifecycle: Best-Practices......Page 395 10.3.4 Dependency-Management......Page 398 10.3.5 Reporting und Dokumentation......Page 401 10.3.6 Continuous Integration......Page 402 10.4 Die integrierte Entwicklungsumgebung......Page 404 10.5 Virtualisierung von Hard- und Software......Page 405 10.6 Projektplanung und Steuerung......Page 407 10.7 Dokumentation......Page 408 10.8 Kommunikation im (global verteilten) Team......Page 415 10.9 Zusammenfassung......Page 424 11 Epilog......Page 426 Literaturverzeichnis......Page 429 Index......Page 433 Spektrum Akademischer Verlag Best Practice Software-Engineering 2 Inhaltsverzeichnis 4 1 Einleitung 7 1.1 Projektarten und -aspekte 8 1.2 Überblick zu Kapiteln und Themen 11 1.3 Empfohlene Vorkenntnisse 13 1.4 Weitere Ressourcen im Web 14 1.5 Die Autoren 15 1.6 Danksagung 16 2 Lebenszyklus eines Software-Produkts 17 2.1 Grundlegende Phasen des SoftwareLebenszyklusses 18 2.2 Übergreifende Aktivitäten 19 2.2.1 Projektmanagement 19 2.2.2 Qualitätsmanagement 20 2.2.3 Reviews und Inspektionen 23 2.2.4 Software-Tests 23 2.3 Anforderungen und Spezifikation 23 2.3.1 Arten von Anforderungen 26 2.3.2 Anforderungsprozess 28 2.3.3 Wesentliche Artefakte der Anforderungsphase 30 2.4 Projektplanung und -steuerung 31 2.4.1 Projektplanung 31 2.4.2 Projektmonitoring und -controlling 32 2.4.3 Wesentliche Artefakte der Planungsphase 32 2.5 Entwurf und Design 33 2.5.1 Designprinzipien 35 2.5.2 Wesentliche Artefakte der Entwurfsund Designphase 37 2.6 Implementierung und Integration 38 2.6.1 Standardisierung 39 2.6.2 Dokumentation 40 2.6.3 Integration von Software-Komponenten 42 2.6.4 Artefakte der Implementierungsund Integrationsphase 45 2.7 Betrieb und Wartung 45 2.7.1 Abnahmeund Einführungsphase 46 2.7.2 Wartungskategorien 46 2.7.3 Vorgehensweise bei Wartungsprojekten 48 2.7.4 Außerbetriebnahme und Stilllegung 48 2.7.5 Wesentliche Artefakte der Betriebsund Wartungsphase 49 2.8 Vom Software-Lebenszyklus zum Vorgehensmodell 49 2.9 Zusammenfassung 50 3 Vorgehensmodelle 52 3.1 Strategie für die Projektdurchführung 53 3.2 Wasserfallmodell 53 3.3 Das V-Modell 54 3.4 V-Modell XT 57 3.5 Inkrementelles Vorgehen 61 3.6 Spiralmodell 62 3.7 Rational Unified Process 63 3.8 Agile Software-Entwicklung 67 3.9 Anpassung von Vorgehensmodellen 70 3.10 Zusammenfassung 73 4 Software-Projektmanagement 75 Übersicht 75 4.1 Einführung ins Projektmanagement 76 4.1.1 Rollen im Projekt 77 4.1.2 Projektorganisation 79 4.1.3 Phasen im Projektmanagement 80 4.2 Projektdefinition 81 4.2.1 Projektvorschlag 81 4.2.2 Projektentscheidung (Kick-off) 84 4.2.3 Projektauftrag 85 4.3 Projektplanung 89 4.3.1 Strukturierung eines Projekts 91 4.3.2 Aufwandsschätzung 94 4.3.3 Technische und wirtschaftliche Planung 97 4.3.4 Netzplan (PERT-Diagramm) 102 4.3.5 Balkenoder GANTT-Diagramm 105 4.3.6 Burn-down-Charts 106 4.4 Projektverfolgung 108 4.4.1 Aufwandserfassung mit dem PSP 110 4.4.2 Meilenstein-Trendanalyse 111 4.4.3 Aufwandserfassung mit Burn-down-Charts 113 4.5 Projektabschluss 114 4.6 Zusammenfassung 115 5 Qualitätssicherung und Test-Driven Development 117 Übersicht 117 5.1 Der Qualitätsbegriff 118 5.2 Verifikation und Validierung 119 5.3 Software-Reviews 121 5.3.1 Reviewtypen 121 5.3.2 Rollen in einem Review 124 5.3.3 Ablauf eines Reviews 125 5.4 Software-Inspektionen 127 5.4.1 Inspektionstypen und Ablauf 127 5.4.2 Lesetechniken 129 5.5 Architekturevaluierung 133 5.6 Software-Testen 137 5.6.1 Rollen im Software-Testen 138 5.6.2 Der traditionelle Testprozess 139 5.6.3 Testebenen 142 5.6.4 Testmethoden 144 5.6.5 Testfalldokumentation 148 5.6.6 Testintensität und Überdeckungsgrade 150 5.7 Test-Driven Development 154 5.7.1 Test-Driven Development im V-Modell Umfeld 155 5.7.2 Ablauf von Test-Driven Development 157 5.8 Automatische Codeprüfung 158 5.8.1 Testautomatisierung 159 5.8.2 Code Coverage Analyse 162 5.8.3 Code Quality Checks 163 5.9 Zusammenfassung 164 6 Notationen, Methoden der Modellierung 167 Übersicht 167 6.1 UML-Diagrammfamilie 169 6.1.1 UML-Paketdiagramm 171 6.1.2 UML-Anwendungsfälle 173 6.1.3 UML-Klassendiagramme 176 6.1.4 UML-Komponentendiagramm 181 6.1.5 UML-Aktivitätsdiagramme 183 6.1.6 UML-Sequenzdiagramme und Kommunikationsdiagramme 185 6.1.7 UML-Verteilungsdiagramm 187 6.1.8 UML-Zustandsdiagramme 188 6.2 Modellierung von Daten und System-schichten 190 6.2.1 Entity-Relationship-Modell 190 6.2.2 Schichtendiagramme 194 6.3 Projektmanagement-Artefakte 195 6.3.1 Projektstrukturplan 195 6.3.2 Netzplan, PERT 197 6.3.3 Balkendiagramm (GANTT-Diagramm) 198 6.3.4 Burn-Charts 199 6.4 Zusammenfassung 201 7 Software-Architektur 203 Übersicht 203 7.1 Was ist eine Software-Architektur 204 7.2 Wie entstehen Architekturen 206 7.3 Sichten auf eine Software-Architektur 210 7.4 Separation of Concerns 213 7.5 Schichtenarchitektur 215 7.5.1 2-Schichtenarchitektur 217 7.5.2 3-Schichtenarchitektur 218 7.5.3 5-Schichtenarchitektur 218 7.6 Serviceorientierte Architekturen 219 7.6.1 Ein neues Architekturparadigma 219 7.6.2 SOA und Schichten 222 7.6.3 SOA und Geschäftsprozesse 224 7.7 Ereignisgetriebene Architektur 225 7.8 Zusammenfassung 230 8 Entwurfs-, Architekturund Integrationsmuster 232 Übersicht 232 8.1 Was ist ein Muster 233 8.2 Grundlegende Muster 236 8.2.1 Interface (Schnittstelle) 236 8.2.2 Delegation 239 8.2.3 Strategy (Strategie) 242 8.2.4 Immutable (Nicht veränderbares Object) 246 8.2.5 Marker (Markieren eines Objekts) 246 8.2.6 Annotations (Metadaten für Objekte) 247 8.3 Erzeugung 250 8.3.1 Singleton 250 8.3.2 Factory (Fabrik) 253 8.3.3 Objekt-Pool 255 8.4 Struktur 256 8.4.1 Fassade (Facade) 256 8.4.2 Iterator 257 8.4.3 Adapter 258 8.4.4 Proxy (Stellvertreter) 259 8.4.5 Data Access Object 266 8.4.6 Generisches DAO 270 8.5 Verhalten 272 8.5.1 Observer 272 8.5.2 Decorator 277 8.5.3 Interceptor 281 8.6 Integration 284 8.6.1 Integrations-Stile 287 8.6.2 Messaging 292 8.6.3 Pipes and Filters 296 8.6.4 Routing 297 8.6.5 Transformation 299 8.6.6 System-Management und Testen 300 8.7 Zusammenfassung 302 9 Komponentenorientierte Software-Entwicklung 302 9.1 Vom Objekt zum Service: Schritte der Entkopplung 305 9.1.1 Objekte und Schnittstellen (Interfaces 305 9.1.2 Erste Schritte der Entkopplung 307 9.1.3 Software-Komponenten 308 9.1.4 Software-Services 310 9.1.5 Vor- und Nachteile verschiedener Stufen der Entkopplung 312 9.2 Software-Frameworks als Basis für die Komponentenbildung 314 9.3 Dependency-Injection 318 9.4 Persistente Datenhaltung in komponentenbasierten Systemen 325 9.4.1 Anforderungen an eine Persistenzschicht 325 9.4.2 Transaktionen 328 9.4.3 Architektur und Modellierung 330 9.4.4 Abhängigkeiten zwischen Domänenmodell und Persistenzschicht 331 9.4.5 Proprietäre binäre Datenformate 338 9.4.6 Objektorientierte Datenbanken 338 9.4.7 Relationale Datenbanken und objektorientierte Programmierung 340 9.4.8 Objektrelationales Mapping 343 9.4.9 XML-Persistenz 349 9.4.10 Dateisysteme mit Indexing-Mechanismen 353 9.4.11 Abstraktion über Services 353 9.5 Querschnittsfunktionen in Aspekte auslagern 354 9.5.1 Cross Cutting Concerns 354 9.5.2 Grundlagen der aspektorientierten Programmierung 355 9.5.3 Sicherheit mit AOP 358 9.5.4 Deklaratives Transaktionsmanagement mit AOP 361 9.6 Benutzerschnittstellen in komponentenbasierten Systemen 363 9.6.1 Überblick 363 9.6.2 Model View Controller 365 9.6.3 Kommunikation mit dem Backend 366 9.7 Lose Koppelung von Systemen 368 9.7.1 Serviceorientierte Architekturen und deren Bestandteile 368 9.7.2 Middleware als Lösung für die lose Koppelung 371 9.8 Logging: Protokollieren von Systemzuständen 374 9.9 Zusammenfassung 377 10 Techniken und Werkzeuge 379 10.1 Konvention oder Konfiguration? 380 10.2 Sourcecode-Management 383 10.2.1 Die Entwicklung von Sourcecode-Management-Systemen 383 10.2.2 Versionierung 384 10.2.3 Parallele Entwicklungspfade 385 10.2.4 Unterstützung kollaborativer Arbeit 386 10.2.5 Refactoring und Sourcecode-Management 388 10.2.6 Integration in den Arbeitsalltag 388 10.2.7 Die Zukunft? Verteilte und zentralisierte Systeme 389 10.2.8 Patches und Diffs 390 10.3 Build-Management und Automatisierung 394 10.3.1 Warum Automatisierung? 394 10.3.2 Der Build-Lifecycle: Best-Practices 395 10.3.3 Scaffolding und Archetypen 398 10.3.4 Dependency-Management 398 10.3.5 Reporting und Dokumentation 401 10.3.6 Continuous Integration 402 10.4 Die integrierte Entwicklungsumgebung 404 10.5 Virtualisierung von Hard- und Software 405 10.6 Projektplanung und Steuerung 407 10.7 Dokumentation 408 10.8 Kommunikation im (global verteilten) Team 415 10.9 Zusammenfassung 424 11 Epilog 426 Literaturverzeichnis 429 Index 433 ISBN-13:,9783827424860 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. 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.
دانلود کتاب Best Practice Software-Engineering: Eine praxiserprobte Zusammenstellung von komponentenorientierten Konzepten, Methoden und Werkzeugen (German Edition)