Wallmüller Software-Qualitätsmanagement in der Praxis Mechatronik im Maschinenbau Technische Universität Darmstadt Prof. Dr.-Ing. Stephan Rinderknecht Petersenstraße 30 64287 Darmstadt Telefon: +49 61 51 16-20 74 Telefax: +49 61 51 16-53 32 TU Darmstadt FB Maschinenbau 699
Inhaltsverzeichnis Vorwort zur 2. Auflage XI 1 Von Software und deren (Un-)Qualität 1 1.1 Das Engineering von Software und Projekten 3 1.2 Grundlagen des Software-Qualitätsmanagements 7 1.2.1 Was ist Software-Qualität? 8 1.2.2 Wo entstehen Software-Qualität bzw. Software-Mängel? 14 1.2.3 Prinzipien des Software-Qualitätsmanagements 17 1.2.4 Begriffe und Definitionen 22 1.2.5 Der Qualitätsplan 25 1.2.6 Klassifikation der Qualitätsmaßnahmen 30 1.3 Zählen, Messen und Verbessern 32 1.3.1 Bedeutung des Messens 32 1.3.2 Software-Messtechnik und deren Einsatz zur Verbesserung 33 1.3.2.1 Goal-Question-Metric-Ansatz (GQM) 35 1.3.2.2 Das Qualitätsverbesserungsparadigma 36 1.3.2.3 Experience Factory 40 1.3.2.4 Beschreibung von Erfahrungswissen mit Quality Patterns 43 1.3.3 Gütekriterien für Software-Qualitätsmaße 44 1.3.4 Maßtheoretische Grundlagen 44 1.3.5 Überblick zu den Qualitätskenngrößen und -maßen 47 1.3.6 Klassische Software-Maße 50 1.3.6.1 MaßvonMcCabe 50 1.3.6.2 Maße von Halstead 54 1.3.7 Erfahrungen bei der Anwendung von Qualitätsmaßen 56 1.4 Qualitätsmodelle 59 1.4.1 Struktur und Inhalt von Qualitätsmodellen 60 1.4.2 Pragmatisches Erstellen eines Qualitätsmodells 69 1.4.3 Bedeutung von Qualitätsmodellen für das Qualitätsmanagement 69 2 Prozessorientiertes Qualitätsmanagement 73 2.1 Grundlagen 74 2.2 Prozessfähigkeit und Prozessreife 81
VI Inhaltsverzeichnis 2.3 Prozessentwicklung und Prozessmanagement 102 2.3.1 Prozessverantwortung festlegen, Prozessdefinition und -implementierung 103 2.3.2 Prozessmessungen 105 2.3.3 Prozesssteuerung und -kontrolle 106 2.3.4 Prozess-Benchmarking 107 2.3.5 Kontinuierlicher Verbesserungsprozess (KVP) 108 2.3.6 Prozessinnovation 111 3 Konstruktive Qualitätsmaßnahmen 115 3.1 Konstruktive Elemente des Software Engineering zur Qualitätsgestaltung... 117 3.1.1 Prinzipien 118 3.1.2 Methoden 119 3.1.3 Formalismen (Notation) 120 3.1.4 Werkzeuge 120 3.1.5 Vermeidung von Fehlschlägen und Überraschungen: Prototyping 121 3.2 Vorgehensmodelle und ihre Bedeutung für die Qualitätsgestaltung 127 3.2.1 Typen von Vorgehensmodellen 130 3.2.2 Anforderungen an Vorgehensmodelle aus der Sicht des Qualitätsmanagements 145 3.3 Die Rolle der Dokumentation in Software-Projekten 149 3.3.1 Probleme des Dokumentationsprozesses 149 3.3.2 Anforderungen an die Dokumentation und deren Erstellung aus der Sicht der Qualitätsgestaltung 150 3.3.3 Dokumentationsarten und-prinzipien 152 3.3.4 Förderungsmaßnahmen zur projektbegleitenden Dokumentation 153 3.4 Qualität durch exzellente Anforderungen 156 3.4.1 Grundlagen und Begriffe 157 3.4.2 Anforderungsfehler und deren Ursachen 158 3.4.2.1 Tilgung 161 3.4.2.2 Generalisierang 161 3.4.2.3 Verzerrung 162 3.4.3 Requirements-Engineering-Prozesse 163 3.4.4 Hilfsmittel für die Anforderungsermittlung 167 3.4.5 Werkzeuge für das Requirements Engineering 167 3.5 Die Bedeutung von Software-Werkzeugen und -Produktionsumgebungen für die Entstehung von Qualität 169 3.5.1 CASE 169 3.5.2 Software-Produktionsumgebung 173
Inhaltsverzeichnis VII 3.6 Software-Konfigurationsmanagement 176 3.6.1 Grundlagendes Software-Konfigurationsmanagements 178 3.6.2 Hilfsmittel und Werkzeuge des Konfigurationsmanagements 185 3.7 Peopleware - Qualitätsbeeinflussung durch menschliches Verhalten 188 3.7.1 Unternehmenskultur 189 3.7.2 Zwischenmenschliche Kommunikation 192 3.7.3 Einfluss der Arbeitsplatzgestaltung 193 4 Analytische Qualitätsmaßnahmen 195 4.1 Statische Prüfungen 197 4.1.1 Audits 198 4.1.2 Reviews 201 4.1.2.1 Ablaufeines Reviews 201 4.1.2.2 Auswahl der Teilnehmer 204 4.1.2.3 Die Rolle des Managements 204 4.1.2.4 Hilfsmittel für Reviews 205 4.1.2.5 Walkthroughs und Inspektionen 206 4.1.2.6 Reviews im Entwicklungsprozess 208 4.1.3 Statische Analyse mit Software-Werkzeugen 216 4.1.4 Korrektheitsbeweise (mathematische Programmverifikation) 218 4.1.5 Symbolische Programmausführung 219 4.2 Dynamische Prüfungen - Testen 221 4.2.1 Methodik des Testens 225 4.2.1.1 Black-Box-Testmethoden 230 4.2.1.2 White-Box-Testmethoden 235 4.2.2 Organisation und Management des Testprozesses 240 4.2.2.1 Testplanung, 242 4.2.2.2 Strukturierung des Testprozesses 247 4.2.2.3 Testorganisation 254 4.2.2.4 Testdokumentation 255 4.2.2.5 Kontrolle des Testprozesses 258 4.2.3 Evaluierung und Verbesserung des Testprozesses 260 5 Software-Qualitätsmanagement in der Wartung 275 5.1 Reduzierung der Wartungskosten 278 5.2 Sicherung der Wartbarkeit '. 279 5.3 Organisation der Wartungsaktivitäten 281
VIII Inhaltsverzeichnis 5.4 Bedeutung des Qualitätsmanagements für die Wartung 286 5.5 Zusammenfassung 289 6 Organisatorische Aspekte des Qualitätsmanagements - das Managementsystem 291 6.1 Aufbauorganisation eines Managementsystems 294 6.2 Ablauforganisation eines Managementsystems 296 6.3 Dokumentation eines Managementsystems 302 6.4 Qualitätsberichtswesen 305 6.5 Aufgaben einer Prozess- und Qualitätsgruppe 308 6.6 Aufbau- und Einführungsmaßnahmen für Managementsysteme 310 6.7 Kosten-Nutzen-Betrachtungen 314 6.8 Die Norm ISO 9001:2000 316 6.8.1 Kundenorientierung 317 6.8.2 Prozessorientierung 317 6.8.3 Einschränkung des Anwendungsbereiches 318 6.8.4 Dokumentation 319 6.8.5 Ständige Verbesserung 320 6.8.6 Forderungen an das Managementsystem 320 6.8.7 Verantwortung der Leitung 320 6.8.8 Management der Ressourcen 321 6.8.9 Produktrealisierung 322 6.8.10 Messung, Analyse und Verbesserung 323 6.9 Umfassende Qualität - Business Excellence 324 6.9.1 Beispiele von Business Excellence 324 6.9.2 Business Excellence durch Prozessmanagement 326 7 Fortgeschrittene Qualitätstechniken 329 7.1 Quality Function Deployment (QFD) 329 7.1.1 Kundenorientierte Herstellung von Software 332 7.1.2 Die Stimme des Kunden oder wer ist der Kunde? 333 7.1.3 Ein Verfahren zur Kundennutzenanalyse 334 7.2 Risikomanagement 343 7.2.1 Motivation 343
Inhaltsverzeichnis IX 7.2.2 Definitionen 343 7.2.3 Beispiele für Risiken 345 7.2.4 Der Risikomanagementprozess 345 7.2.4.1 Der Risikomanagementprozess von Boehm 346 7.2.4.2 Der Risikomanagementprozess nach Wallmüller 347 7.2.4.3 Der Risikomanagementprozess nach Kontio (Riskit) 348 7.2.5 Risikomanagementtechniken 350 7.2.5.1 Techniken zur Identifikation von Risiken 350 7.2.5.2 Techniken zur Analyse von Risiken 350 7.2.5.3 Techniken zur Planung von Kontrollmaßnahmen 352 7.2.5.4 Techniken zur Überwachung von Risiken 353 7.2.6 Die Bedeutung des Risikomanagements für das Qualitätsmanagement 355 7.3 Software-Ergonomie 355 7.3.1 Qualitätskriterien der Software-Ergonomie 356 7.3.1.1 Aufgabenorientierung 357 7.3.1.2 Bedienungsfreundlichkeit 357 7.3.2 Grafische Benutzerschnittstellen 359 7.3.3 Der Design-Prozess von Benutzerschnittstellen (Benutzerzentrierter Design) 363 7.3.4 Auswirkungen des benutzerzentrierten Designs 369 7.4 Gestaltung des Wandels bei Einführung neuer Prozesse, Methoden und Techniken - Organisationsbezogenes Veränderungsmanagement 370 8 Ausblick 381 Anhang 383 Anhang Al: Muster für einen Qualitätsplan 383 Anhang A2: Das SPARDAT-Qualitätsmodell 387 Anhang A3: Fragen zum Software-Prozessreifegrad (CMM Version 1.1) 407 Anhang A4: Review-Checklisten für das Testen 420 AnhangA5: Reviewformulare 423 Anhang A6: Informationsquellen und Standards zum Thema Qualität und Software 426 Anhang A7: Risiko-Checklisten für Software-Entwicklungsprojekte 437 Anhang A8: Glossar 441
X Inhaltsverzeichnis Literaturverzeichnis 447 Der Autor 455 Stichwortverzeichnis 457 Informationen aus der Industrie 463