Reiner Dumke Softwareentwicklung nach Maß Schätzen Messen Bewerten Technische Hochschule Darmstadt FACHBEREICH INFORMATIK BIBLIOTHEK Inventar-Nr.:.. Sachgebiete: Standort: Trr.'.rrr. vieweg
xi 1 Einleitung 1 2 Ziele der Software-Messung 3 2.1 Soft wäre-entwicklungskosten 3 2.2 Software-Qualitätssicherung. 4 2.2.1 Der Begriff der Software-Qualität 4 2.2.2 Qualitätsmodelle 6 2.3 Software-Bewertung 8 2.3.1 Bewertung des Leistungsverhalten 8 2.3.2 Zertifikation von Software 9 2.3.3 Eignungstest 9 3 Meßgegenstand 11 3.1 Software-Produkte 12 3.2 Software-Erstellung 14 3.2.1 Software-Entwicklungsmodelle 15 3.2.1.1 Die SA-Methode 16 3.2.1.2 Cleanroom Engineering 16 3.2.1.3 Objektorientierte Analyse und Design... 18 3.2.1.4 Das U-Diagramm 19 3.2.1.5 Das Spiralmodell von Boehm 20
xii 3.2.2 Projektmanagement 22 3.3 Software-Produktion 24 3.4 Der Software-Entwickler 27 3.5 Das Meßpersonal 30 4 Software-Messung 33 4.1 Meßtheoretische Grundlagen 33 4.2 Messungen an Programmen 35 4.3 Messung der Software-Entwicklung 38 4.4 Eigenschaften von Soft wäre-maßen 40 5 Software-Metriken 47 5.1 Metrikarten 47 5.2 Metriken für die Anforderungsanalyse 48 5.2.1 Vollständigkeitsmaße 49 5.2.2 Konformitätsmaße 50 5.2.3 Inkonsistenzmaße 51 5.2.4 Lesbarkeitsmaße 52 5.3 Spezifikations-Metriken 53 5.3.1 Die SLIM-Methode 55 5.3.2 Die Albrechts-Metrik 56 5.3.3 Die Bang-Metrik von DeMarco 61 5.3.4 Das COCOMO-Modell von Boehm 67 5.3.5 Zwei Schätzmaße von DOD 70 5.3.6 Zwei Schätzmaße der NASA 71 5.3.7 Eine Schätzformel für den Personalaufwand 72 5.4 Design-Metriken 74 5.4.1 Die Henry-Kafura-Metrik 74 5.4.2 Die Chapin-Metrik 75 5.4.3 Die Qualitätsmaße von Troy/Zweben 75
xm 5.4.4 Die Entwurfsmaße von Balzert 77 5.4.5 Das Entwurfstabilitätsmaß von Yau/Collofello... 78 5.4.6 Die Systemkomplexität von Yin/Winchester 81 5.4.7 Die Entwurfsstrukturmaße von Blaschek 82 5.4.8 Die Van-Verth-Metrik 83 5.4.9 Die Design-Maße von SOFTCON 83 5.4.10 Die MMC-Metrik von Harrison/Cook 85 5.4.11 Die Design-Komplexität von Card/Agresti 86 5.4.12 Die Programmkomplexität von Shatz 87 5.4.13 Die Design-Metrik von McCabe 87 5.4.14 Design-Metriken für die objektorientierte Software- Entwicklung 88 5.5 Code-Metriken 89 5.5.1 Das LOC-Maß 90 5.5.2 Die Halstead-Metrik 91 5.5.2.1 Die Anwendung der Halstead-Maße für die Modularisierung 95 5.5.2.2 Eine Modifikation von Jensen 96 5.5.2.3 Gordon-Metrik. 96 5.5.2.4 Die Vereinfachung der Halstead-Metrik von Stetter 97 5.5.2.5 Kritiken zur Halstead-Metrik 99 5.5.3 Die McCabe-Metrik 102 5.5.3.1 Die Erweiterung von Myers 106 5.5.3.2 Die Hansen-Metrik 107 5.5.3.3 Die Komplexität von Entscheidungstabellen 108 5.5.4 Die MIN-Metrik von Chen 109 5.5.5 Die Logische Komplexität von Gilb 111 5.5.6 Die Woodward-Metrik 112 5.5.7 Eine Programmkomplexitätsmetrik von Oviedo... 115
xiv 5.5.8 Die Programmkomplexität nach Piwowarski 116 5.5.9 Ein Charakteristisches Polynom für die Komplexität. 118 5.5.10 Eine hybride Metrik von Basili/Hutchens 122 5.5.11 Die Programmaße von Eishoff 123 5.5.12 Die Tai-Metrik 125 5.5.13 Lesbarkeitsmaße für den Programmcode 128 5.5.14 Die Berns-Metrik 129 5.5.15 Ein Komplexitätsmaß von Stetter 131 5.5.16 Die Code-Metriken von Bell 134 5.5.17 Code-Metriken für Bibliothekskonzepte 137 5.5.18 Code-Metriken für nichtprozedurale Programmiersprachen 137 5.5.18.1 Funktionale Programmiersprachen 138 5.5.18.2 Logische Programmiersprachen 138 5.5.19 Code-Metriken für objektorientierte Programmiersprachen 141 5.6 Test-Metriken 144 5.6.1 Metriken zur Bewertung des Testniveaus 145 5.6.2 Metriken für die Software-Zuverlässigkeit 146 5.6.3 Metriken für die Bestimmung der Testfälle 147 5.6.4 Ein allgemeinstes Testmaß von Basili/Selby 148 5.7 Wartungs-Metriken 149 5.7.1 Metriken für die Software-Änderung 151 5.7.2 Metriken für die Zuverlässigkeits 152 5.7.3 Portabilitäts-Metriken 153 5.7.4 Metriken für die Programmiererproduktivität 154 5.7.5 Metriken für den Programmservice 155 5.7.6 Metriken für den Eignungstest 156
xv 6 Validation von Software-Metriken 161 6.1 Theoria cum praxi 161 6.2 Metrik-Anomalien 162 6.3 Validitätsformen 163 6.4 Die Interpretation von Software-Metriken 164 6.4.1 Die Interpretation von Metriken mittels Basiskennzahlenl64 6.4.2 Die Interpretation von Metriken nach Zuse 166 6.5 Korrelationen 167 6.5.1 Einfache Korrelationen 168 6.5.2 Validation durch Korrelation mehrerer Metriken... 169 6.5.3 Mehrerer Korrelationsanalysen für die Metriken- Validation 169 6.6 Metriken-Standards 170 7 Meß-Tools 173 7.1 Arten von Meß-Tools 173 7.2 Experimentier-Tools 173 7.3 Lern-Tools 175 7.4 Tools zur Validationsunterstützung 175 7.4.1 Metrikbasierte Compiler 175 7.4.1.1 Das System ATHENA 175 7.4.1.2 Der Compiler MCOMP 176 7.4.2 Das System METRICS 177 7.4.3 Der Design-Metrikbewerter DEMETER 177 7.5 Analyse-Tools 178 7.5.1 Quellcode-Analyse 178 7.5.2 Einfache Metrikberechnungen 181 7.5.3 Leistungsanalyse 182 7.6 SQA-Tools 183 7.6.1 Das Qualitätssicherungsprogramm QAP 184
xvi 7.6.2 Das Kostenschätzsystem ESTIMACS 185 7.6.3 Automatisierte Qualitätssicherung mittels SOFTDOC 186 7.6.4 Die SQA-Tools von DEC 188 7.6.5 Software-Bewertung mit QUALIGRAPH 189 7.6.6 Das Bewertungsprogramm DATRIX 191 7.6.7 Der Software-Bewertungsplatz SVS 191 7.6.8 Das SQA-System ESQUT 192 7.6.9 Das Analyse- und Bewertungs-Tool LOGISCOPE... 193 7.6.10 Weitere SQA-Tools 194 8 Software-Entwicklung nach Maß 199 8.1 Metrikbasierte Anwendungsprogrammierung 200 8.2 Metrikbasierte Tools 201 8.3 Metrikbasierte Software-Qualitätssicherung 201 9 Zusammenfassung 203 Literaturverzeichnis 205 Sachwortverzeichnis 241