Ernest Wallmüller Software- Qualitätssicherung in der Praxis Carl Hanser Verlag München Wien
IX 1 Software-Qualität und Software-Qualitätssicherung 1 1.1 Software Engineering und Software-Qualitätssicherung 3 1.2 Grundlagen der Software-Qualitätssicherung 6 1.2.1 Was ist Software-Qualität? 7 1.2.2 Wo entstehen Software-Qualität bzw. Software-Mängel?... 11 1.2.3 Qualitätssicherungsprinzipien 14 1.2.4 Begriffe und Definitionen 18 1.2.5 Der Qualitätssicherungsplan (QS-Plan) 20 1.2.6 Klassifikation der Qualitätssicherungsmaßnahmen 24 1.3 Zählen und Messen im Software Engineering 26 1.3.1 Bedeutung des Messens in Naturwissenschaft und Technik.. 26 1.3.2 Software-Meßtechnik 27 1.3.3 Gütekriterien für Software-Qualitätsmaße 29 1.3.4 Maßtheoretische Grundlagen 31 1.3.5 Überblick zu den Qualitätsmaßen und -kenngrößen 33 1.3.6 Klassische Software-Maße 36 1.3.6.1 Maß von McCabe 36 1.3.6.2 Maße von Halstead 40 1.3.7 Erfahrungen bei der Anwendung von Qualitätskenngrößen.. 42 1.4 Qualitätsmodelle 46 1.4.1 Struktur und von Qualitätsmodellen 46 1.4.2 Pragmatisches Erstellen eines Qualitätsmodells 53 1.4.3 Bedeutung von Qualitätsmodellen in einem Qualitätssicherungssystem 54 2 Software-Qualität und Produktivität 57 2.1 Was ist Produktivität? 57 2.2 Produktivitätsbeeinflussende Faktoren 60 2.3 Zusammenhang zwischen Qualität und Produktivität 65 2.4 Möglichkeiten zur Produktivitätssteigerung 68 3 Konstruktive Qualitätssicherungsmaßnahmen 73 3.1 Konstruktive Elemente des Software Engineering zur Qualitätssicherung 75
X 3.1.1 Prinzipien 76 3.1.2 Methoden 77 3.1.3 Formalismen (Sprachen) 78 3.1.4 Werkzeuge 79 3.1.5 Die Technik des Prototyping 80 3.2 Vorgehensmodelle und ihre Bedeutung für die Qualitätssicherung 83 3.2.1 Typen von Vorgehensmodellen 84 3.2.2 Anforderungen an Vorgehensmodelle aus der Sicht der Qualitätssicherung und Verbesserungen 88 3.2.3 Forderungen an die Definition und Pflege von Vorgehensmodellen 91 3.2.4 Einführungsstrategie für Software Engineering-Maßnahmen.. 93 3.3 Die Rolle der Dokumentation in der Qualitätssicherung 96 3.3.1 Probleme des Dokumentationsprozesses 97 3.3.2 Anforderungen an die Dokumentation und deren Erstellung aus der Sicht der Qualitätssicherung 98 3.3.3 Dokumentationsarten und -prinzipien 100 3.3.4 Förderungsmaßnahmen zur projektbegleitenden Dokumentation 102 3.4 Die Programmiersprachen und ihr Einfluß auf die Qualität 106 3.4.1 Bedeutung von Programmiersprachen 106 3.4.2 Qualitätssichernde Konzepte von Programmiersprachen... 107 3.4.3 Pragmatische Kriterien zur Auswahl einer Sprache 107 3.5 Die Bedeutung von Software-Werkzeugen und -Produktionsumgebungen für die Qualitätssicherung 108 3.5.1 Die CASE-Werkzeuglandschaft 110 3.5.2 Software-Produktionsumgebung 114 3.5.3 Anforderungen an eine Software-Produktionsumgebung aus der Sicht der Qualitätssicherung 120 3.6 Software-Konfigurationsmanagement 122 3.6.1 Warum überhaupt Software-Konfigurationsmanagement?. 122 3.6.2 Grundlagen des Software-Konfigurationsmanagements... 125 3.6.3 Hilfsmittel und Werkzeuge des Konfigurationsmanagements 131 3.7 Qualitätsbeeinflussung durch menschliches Verhalten 134 3.7.1 Unternehmenskultur 135 3.7.2 Zwischenmenschliche Kommunikation 138 3.7.3 Einfluß der Arbeitsplatzgestaltung 139
XI 4 Analytische Qualitätssicherungsmaßnahmen 141 4.1 Statische Prüfungen 144 4.1.1 Audits 144 4.1.2 Reviews 146 4.1.2.1 Ablauf eines Reviews (Reviewprozeß) 147 4.1.2.2 Auswahl der Teilnehmer 149 4.1.2.3 Die Rolle des Managements 150 4.1.2.4 Hilfsmittel für Reviews 151 4.1.2.5 Walkthroughs und Inspektionen 152 4.1.2.6 Reviews im Entwicklungsprozeß 153 4.1.3 Statische Analyse mit Software-Werkzeugen 162 4.1.4 Korrektheitsbeweise (mathematische Programmverifikation). 163 4.1.5 Symbolische Programmausführung 165 4.2 Dynamische Prüfung Testen 167 4.2.1 Methodik des Testens 171 4.2.1.1 Black-Box-Methoden 175 4.2.1.2 White-Box-Methoden 179 4.2.2 Organisation und Management des Testprozesses 183 4.2.2.1 Testplanung 185 4.2.2.2 Strukturierung des Testprozesses 190 4.2.2.3 Testorganisation 196 4.2.2.4 Testdokumentation 197 4.2.2.5 Kontrolle des Testprozesses 200 5 Software-Qualitätssicherung in der Wartung 203 5.1 Reduzierung der Wartungskosten 205 5.2 Sicherung der Wartbarkeit 206 5.3 Organisation der Wartungsaktivitäten 208 5.4 Bedeutung der Qualitätssicherung für die Wartung 213 6 Organisatorische Aspekte der Qualitätssicherung das Qualitätssicherungssystem 216 6.1 Aufbauorganisation eines Qualitätssicherungssystems 216 6.2 Ablauforganisation eines Qualitätssicherungssystems 220 6.3 Dokumentation des Qualitätssicherungssystems 223 6.4 Qualitätsberichtswesen 225 6.5 Aufgaben einer Software-Qualitätssicherungsstelle 229 6.6 Einführungsmaßnahmen und -Strategien für Qualitätssicherungssysteme 231 6.7 Kosten-Nutzen-Betrachtungen 234
XII 7 Ausblick 237 Anhang 239 AI Das Qualitätsmodell von McCall 239 A2 Das SPARDAT-Qualitätsmodell 249 A 2.1 Eigenschaften und Merkmale 251 A 2.2 Anwendung und Bewertung des Modells 268 A3 Reviewformulare 269 A4 Wartungsdokumente 274 A5 Bedeutende internationale Normungsinstitute und deren Software Engineering-Normen 276 A6 Fachorganisationen der Qualitätssicherung 279 A7 Güteprüfung von Software 280 A8 Glossar 281 Literaturverzeichnis 287 Stichwortverzeichnis 301