Philippe Kruchten Der Rational Unified Process Eine Einführung Deutsche Übersetzung von Cornelia Versteegen An imprint of Pearson Education München Reading, Massachusetts Menlo Park, California New York Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam
Inhaltsverzeichnis Vorwort xv Teil I Der Prozeß 1 1 Software-Entwicklung Best Practices 3 1.1 Der Wert von Software 3 1.2 Anzeichen und Ursachen von Software-Entwicklungsproblemen 4 1.3 Software Best Practices 5 1.4 Iterative Software-Entwicklung 6 1.5 Anforderungsmanagement 8 1.6 Nutzung komponentenbasierter Architekturen 9 1.7 Visuelle Software-Modelle 11 1.8 Software-Qualität überprüfen 13 1.9 Software-Änderungen kontrollieren 14 1.10 Der Rational Unified Process 15 1.11 Zusammenfassung 16 2 Der Rational Unified Process 17 2.1 Was ist der Rational Unified Process? 17 2.2 Der Rational Unified Process als Produkt 18 2.2.1 Struktur des Prozeßprodukts 19 2.2.2 Die Online-Version des Rational Unified Process 19 2.2.3 Die Handbücher des Rational Unified Process 21 2.3 Die zwei Dimensionen der Prozeßstruktur 22 2.4 Best Practices der Software-Entwicklung 23 2.4.1 Iterative Software-Entwicklung 23 2.4.2 Anforderungsmanagement 25 2.4.3 Verwendung komponentenbasierter Architekturen 26 2.4.4 Modellierung und UML 28 2.4.5 Qualität des Prozesses und des Produkts 29 2.4.6 Konfigurations- und Änderungsmanagement 29 2.5 Weitere wichtige Eigenschaften des Rational Unified Process 30 2.5.1 Use-Case-gesteuerte Software-Entwicklung 30
vi Inhaltsverzeichnis 2.5.2 Konfiguration des Prozesses 31 2.5.3 Werkzeugunterstützung 31 2.6 Geschichtliche Entwicklung des Rational Unified Process 32 2.7 Zusammenfassung 33 3 Statische Struktur: Prozeßbeschreibung 35 3.1 Ein Modell des Rational Unified Process 35 3.2 Worker 36 3.3 Aktivitäten 38 3.3.1 Aktivitäten und Schritte 39 3.4 Artefakte 40 3.4.1 Reports 41 3.4.2 Kategorien von Artefakten 42 3.5 Workflows 44 3.5.1 Core-Workflows 45 3.5.2 Iterations-Workflows 46 3.5.3 Workflow-Details 46 3.6 Ergänzende Prozeßelemente 47 3.6.1 Richtlinien 48 3.6.2 Vorlagen 49 3.6.3 Tool-Mentoren 49 3.6.4 Konzepte 49 3.7 Ein Prozeß-Framework 50 3.8 Zusammenfassung 50 4 Dynamische Struktur: Iterative Entwicklung 51 4.1 Der sequentielle Prozeß 51 4.1.1 Ein vernünftiger Ansatz 52 4.1.2 Erste Fehleinschätzung:»Anforderungen ändern sich nicht«53 4.1.3 Fehlannahme 2:»Es ist möglich, ein korrektes Design auf dem Papier zu entwerfen, bevor dieses umgesetzt wird«55 4.1.4 Risiken durch Bilder ausdrücken 55 4.1.5 Zu lange Zeiträume 56 4.1.6 Erzeugen von Papierbergen 57 4.1.7 Planung anhand Umfang versus Planung anhand Zeit 58
Inhaltsverzeichnis vii 4.2 Iteration zur Bewältigung von Schwierigkeiten 58 4.3 Kontrolle behalten durch Phasen und Meilensteine 60 4.4 Ein Überblick über den Zyklus 63 4.5 Genauere Betrachtung der Phasen 65 4.5.1 Die Konzeptualisierungsphase 65 4.5.2 Meilenstein: LCO 67 4.5.3 Die Entwurfsphase 68 4.5.4 Meilenstein: LCA 70 4.5.5 Die Konstruktionsphase 71 4.5.6 Meilenstein: IOC 72 4.5.7 Die Übergangsphase 73 4.5.8 Meilenstein: Produktrelease 75 4.6 Vorteile des iterativen Ansatzes 75 4.6.1 Eindämmen der Risiken 75 4.6.2 Raum für Änderungen 76 4.6.3 Beim Arbeiten lernen 77 4.6.4 Zunehmende Wiederverwendung 77 4.6.5 Bessere Gesamtqualität 78 4.7 Zusammenfassung 78 5 Der architekturzentrierte Prozeß 79 5.1 Die Bedeutung von Modellen 79 5.2 Architekturen 79 5.3 Die Bedeutung der Architektur 80 5.3.1 Heutiger Stand von Architekturen 81 5.4 Definition der Architektur 82 5.5 Darstellung einer Architektur 83 5.5.1 Verschiedene Sichten 84 5.5.2 Die 4+1-Sicht auf eine Architektur 85 5.5.3 Modelle und Sichten 87 5.5.4 Architektur ist mehr als ein Blueprint 88 5.6 Ein architekturzentrierter Prozeß 89 5.7 Der Zweck einer Architektur 90 5.7.1 Intellektuelle Kontrolle 90 5.7.2 Wiederverwendung 91
viii Inhaltsverzeichnis 5.7.3 Entwicklungsbasis 91 5.8 Komponentenbasierte Entwicklung 91 5.8.1 Definition von Komponenten 92 5.9 Andere Architekturkonzepte 93 5.9.1 Architekturstil 93 5.9.2 Architekturmechanismen 93 5.9.3 Architektur-Patterns 93 5.10 Zusammenfassung 94 6 Der Use-Case-gesteuerte Prozeß 95 6.1 Modellbetrachtungen 95 6.2 Definitonen 96 6.2.1 Beispiel für einen Use Case 97 6.3 Ereignisflüsse eines Use Case 98 6.4 Das Use-Case-Modell 100 6.5 Use Cases im Entwicklungsprozeß 100 6.6 Der Umfang eines Use Case 102 6.7 Wie sich ein Use Case entwickelt 103 6.8 Die Organisation von Use Cases 104 6.9 Nebenläufigkeit 106 6.10 Use Cases in der UML 106 6.11 Zusammenfassung 106 Teil II Prozeß-Workflows 109 7 Der Projektmanagement-Workflow 111 7.1 Zweck 111 7.2 Planung eines iterativen Projekts 112 7.2.1 Zwei Ebenen der Planung 113 7.3 Das Risikokonzept 115 7.3.1 Was ist ein Risiko? 116 7.3.2 Strategien: Wie man mit Risiken umgeht 116 7.4 Das Konzept von Metriken 117 7.5 Was ist eine Metrik? 119 7.6 Worker und Artefakte 120 7.7 Workflows 121
Inhaltsverzeichnis ix 7.7.1 Aufbau eines Phasenplans 121 7.8 Erstellung eines Iterationsplanes 127 7.8.1 Iteration in der Entwurfsphase 128 7.8.2 Iteration in der Konstruktionsphase 130 7.8.3 Iteration in der Übergangsphase 131 7.9 Zusammenfassung 132 8 Der Geschäftsprozeßmodellierungs-Workflow 133 8.1 Zweck 133 8.2 Warum Geschäftsprozeßmodellierung? 133 8.3 Die Nutzung von Techniken des Software-Enginneering zur Geschäftsprozeßmodellierung 134 8.4 Verschiedene Ebenen der Geschäftsprozeßmodellierung 134 8.5 Worker und Artefakte 135 8.6 Workflows 137 8.7 Vom Geschäftsprozeßmodell zum System 138 8.8 Modellierung der Software-Entwicklung als Geschäftsprozeß 139 8.9 Werkzeugunterstützung 140 8.10 Zusammenfassung 140 9 Der Anforderungs-Workflow 141 9.1 Zweck 141 9.2 Was sind Anforderungen? 142 9.2.1 Funktionale Anforderungen 142 9.2.2 Nichtfunktionale Anforderungen 142 9.3 Verschiedene Anforderungstypen 144 9.3.1 Anforderungen der Stakeholder 144 9.3.2 Systemeigenschaften 145 9.3.3 Software-Anforderungen 145 9.3.4 Spezifizierung von Anforderungen durch Use Cases 146 9.4 Erfassen der Anforderungen 146 9.5 Design der Benutzerschnittstelle 148 9.6 Worker und Artefakte 148 9.7 Workflow 150 9.8 Werkzeugunterstützung 152 9.9 Zusammenfassung 152
x Inhaltsverzeichnis 10 Der Analyse- und Design-Workflow 155 10.1 Zweck 155 10.2 Analyse versus Design 155 10.3 Wie weit muß das Design gehen? 156 10.4 Workflows und Artefakte 156 10.5 Das Designmodell 158 10.6 Das Analysemodell 158 10.7 Die Rolle von Schnittstellen 159 10.8 Komponentenbasiertes Design 159 10.9 Workflow 159 10.10 Werkzeugunterstützung 162 10.11 Zusammenfassung 162 11 Der Implementierungs-Workflow 163 11.1 Zweck 163 11.2 Builds 163 11.3 Integration 164 11.4 Prototypen 165 11.4.1 Arten von Prototypen 166 11.5 Worker und Artefakte 167 11.6 Workflow 169 11.7 Werkzeugunterstützung 170 11.8 Zusammenfassung 170 12 Der Test-Workflow 171 12.1 Zweck 171 12.2 Qualität 171 12.2.1 Definition 172 12.2.2 Verantwortlichkeiten 172 12.3 Eine Taxonomie des Testens 173 12.3.1 Qualitätsaspekte 173 12.3.2 Zeitpunkte des Testens 174 12.3.3 Testarten 174 12.3.4 Regressionstests 176 12.4 Das Testmodell 176
Inhaltsverzeichnis xi 12.5 Workers und Artefakte 178 12.6 Workflow 180 12.6.1 Planung 180 12.6.2 Design 180 12.6.3 Implementierung 180 12.6.4 Ausführung 181 12.6.5 Evaluierung 181 12.7 Werkzeugunterstützung 181 12.8 Zusammenfassung 182 13 Der Konfigurations- und der Änderungsmanagement-Workflow 183 13.1 Zweck 183 13.2 Der CCM-Würfel 184 13.2.1 Konfigurationsmanagement 185 13.2.2 Änderungsmanagement 186 13.2.3 Status und Messungen 188 13.3 Worker und Artefakte 189 13.4 Workflow 191 13.5 Werkzeugunterstützung 192 13.6 Zusammenfassung 193 14 Der Umgebungs-Workflow 195 14.1 Zweck 195 14.2 Worker und Aktivitäten 195 14.3 Workflow 197 14.3.1 Konfiguration des Prozesses 197 14.3.2 Einführung des Prozesses 197 14.3.3 Auswahl und Beschaffung von Werkzeugen 197 14.3.4 Werkzeuganpassung 198 14.3.5 Unterstützung der Entwicklung 198 14.3.6 Schulung 198 14.4 Zusammenfassung 199
xii Inhaltsverzeichnis 15 Der Verteilungs-Workflow 201 15.1 Zweck 201 15.2 Worker und Artefakte 201 15.3 Workflows 202 15.3.1 Erstellung der Software 202 15.3.2 Verpackung der Software 203 15.3.3 Verteilung der Software 203 15.3.4 Installation der Software 203 15.3.5 Migration 204 15.3.6 Unterstützung der Endanwender 204 15.3.7 Abnahme 204 15.3.8 Planung und Durchführung von Beta-Tests 204 15.4 Zusammenfassung 205 16 Iterations-Workflows 207 16.1 Zweck 207 16.2 Definition der Produktvision und des geschäftlichen Umfelds 207 16.2.1 Ergebnis 209 16.2.2 Nachfolgende Iterationen in der Konzeptualisierungsphase 210 16.3 Erstellung eines Architekturprototyps 210 16.3.1 Ergebnis 214 16.3.2 Weitere Iterationen in der Entwurfsphase 214 16.4 Implementierung des Systems 215 16.4.1 Ergebnis 218 16.5 Zusammenfassung 218 17 Konfiguration und Einführung des Rational Unified Process 219 17.1 Einführung 219 17.2 Vorteile und Auswirkungen der Einführung des Prozesses 220 17.3 Die Einbeziehung von Mitarbeitern 221 17.4 Schrittweise Einführung des Rational Unified Process 222 17.4.1 Schritt 1: Einschätzung des aktuellen Status 222 17.4.2 Schritt 2: Setzen (oder revidieren) von Zielen 224 17.4.3 Schritt 3: Identifizieren von Risiken 225 17.4.4 Schritt 4: Planung der Prozeßeinführung 226
Inhaltsverzeichnis xiii 17.4.5 Schritt 5: Durchführung der Prozeßeinführung 229 17.4.6 Schritt 6: Evaluation der Prozeßeinführung 229 17.5 Konfiguration des Prozesses 229 17.5.1 Änderung des Produkts Rational Unified Process 230 17.6 Die Einführung eines Prozesses ist ein Projekt 231 17.7 Zusammenfassung 233 A Zusammenfassung der Worker 235 B Zusammenfassung der Artefakte 241 B.1 Die Anforderungskategorie 241 B.2 Designkategorie 242 B.3 Implementierungskategorie 242 B.4 Verteilungskategorie 243 B.5 Managementkategorie 243 C Glossar 245 D Literatur 255 D.1 Allgemein 255 D.2 Software-Entwicklungsprozeß 255 D.3 Objektorientierte Technologie 257 D.4 Modellierung und die Unified Modeling Language 258 D.5 Projektmanagement 259 D.6 Anforderungsmanagement 260 D.7 Konfigurationsmanagement 260 D.8 Testen und Qualität 261 D.9 Softwarearchitektur 261 D.10 Geschäftsprozeßmodellierung 263 D.11 Sonstiges 263 Stichwortverzeichnis 265