Software in Zahlen - Die Vermessung von Applikationen

Die Wartung oder Weiterentwicklung eines Softwaresystems können Sie nur gut planen, wenn Sie Ihr System genau kennen, in Zahlen erfassen und bewerten können. Das ist nur ein Beispiel für den Nutzen von Metriken. Eine gute Inventarisierung und Bewertung Ihrer Software - in Bezug auf Quantität, Qualität und Komplexität - ist eine wichtige Voraussetzung für so gut wie alle Arten von Softwareprojekten. In diesem Praxisbuch finden Sie Methoden und Metriken, wie Sie Software messen und dabei die drei Dimensionen Quantität, Komplexität und Qualität berücksichtigen. Alle Messansätze, die präsentiert werden, sind in der Praxis erprobt und basieren auf jahrzehntelanger Erfahrung mit der Messung von Softwareprodukten und Softwareprozessen (einschließlich Entwicklung, Wartung, Evolution und Migration). Die vorgestellten Metriken und Ansätze helfen Ihnen dabei, Projekte planbarer zu machen, einen Überblick über Produkte und Altsysteme zu bekommen und den Projektverlauf besser zu steuern.

Autoren: Harry Sneed, Richard Seidl, Manfred Baumgartner

Verlag: Carl Hanser Verlag

ISBN: 978-3-446-42175-2

Edition: 1. Auflage

Erhältlich im Buchhandel und bei Amazon

Inhaltsverzeichnis

1.1 Das Wesen von Software 1.2 Sinn und Zweck der Softwaremessung   1.2.1 Zum Verständnis (Comprehension) der Software   1.2.2 Zum Vergleich der Software   1.2.3 Zur Vorhersage   1.2.4 Zur Projektsteuerung   1.2.5 Zur zwischenmenschlichen Verständigung 1.3 Dimensionen der Substanz Software   1.3.1 Quantitätsmetrik von Software   1.3.2 Komplexitätsmetrik von Software   1.3.3 Qualitätsmetrik von Software 1.4 Sichten auf die Substanz Software 1.5 Objekte der Softwaremessung 1.6 Ziele einer Softwaremessung 1.7 Zur Gliederung dieses Buches

2.1 Quantitätsmaße 2.2 Codegrößen   2.2.1 Codedateien   2.2.2 Codezeilen   2.2.3 Anweisungen   2.2.4 Prozeduren bzw. Methoden   2.2.5 Module bzw. Klassen   2.2.6 Entscheidungen   2.2.7 Logikzweige   2.2.8 Aufrufe   2.2.9 Vereinbarte Datenelemente   2.2.10 Benutzte Datenelemente bzw. Operanden   2.2.11 Datenobjekte   2.2.12 Datenzugriffe   2.2.13 Benutzeroberflächen   2.2.14 Systemnachrichten 2.3 Entwurfsgrößen   2.3.1 Strukturierte Entwurfsgrößen   2.3.2 Datenmodellgrößen   2.3.3 Objektmodellgrößen 2.4 Anforderungsgrößen   2.4.1 Anforderungen   2.4.2 Abnahmekriterien   2.4.3 Anwendungsfälle   2.4.4 Verarbeitungsschritte   2.4.5 Oberflächen   2.4.6 Systemschnittstellen   2.4.7 Systemakteure   2.4.8 Relevante Objekte   2.4.9 Objektzustände   2.4.10 Bedingungen   2.4.11 Aktionen   2.4.12 Testfälle 2.5 Testgrößen   2.5.1 Testfälle   2.5.2 Testfallattribute   2.5.3 Testläufe   2.5.4 Testskriptebzw. Testprozeduren   2.5.5 Testskriptzeilen   2.5.6 Testskriptanweisungen   2.5.7 Fehlermeldungen 2.6 Abgeleitete Größenmaße   2.6.1 Function-Points   2.6.2 Data-Points   2.6.3 Object-Points   2.6.4 Use-Case-Points   2.6.5 Testfall-Points

3.1 Komplexität in der Softwaremetrik   3.1.1 Software Komplexität nach dem IEEE-Standard   3.1.2 Softwarekomplexität aus der Sicht von Zuse   3.1.3 Softwarekomplexität nach Fenton   3.1.4 Komplexität als Krankheit der Softwareentwicklung   3.1.5 Komplexitätsmessung nach Ebert und Dumke   3.1.6 Die Alpha-Komplexitätsmetrik 3.2 Steigende Softwarekomplexität   3.2.1 Codekomplexität – Warum Java komplexer als COBOL ist   3.2.2 Entwurfskomplexität – Warum verschiedene Entwurfsansätze im Endeffekt gleich komplex sind   3.2.3 Anforderungskomplexität – Warum die zu lösenden Aufgaben immer komplexer werden 3.3 Allgemeingültige Maße für die Softwarekomplexität   3.3.1 Sprachkomplexität   3.3.2 Strukturkomplexität   3.3.3 Algorithmische Komplexität

4.1 Qualitätseigenschaften nach Boehm   4.1.1 Verständlichkeit nach Boehm   4.1.2 Vollständigkeit nach Boehm   4.1.3 Portabilität nach Boehm   4.1.4 Änderbarkeit nach Boehm   4.1.5 Testbarkeit nach Boehm   4.1.6 Benutzbarkeit nach Boehm   4.1.7 Zuverlässigkeit nach Boehm   4.1.8 Effizienz nach Boehm 4.2 Gilb und die Quantifizierung der Qualität   4.2.1 Funktionalitätsmessung nach Gilb   4.2.2 Performance-Messung nach Gilb   4.2.3 Zuverlässigkeitsmessung nach Gilb   4.2.4 Datensicherungsmessung nach Gilb   4.2.5 Effizienzmessung nach Gilb   4.2.6 Verfügbarkeitsmessung nach Gilb   4.2.7 Wartbarkeitsmessung nach Gilb 4.3 McCalls Qualitätsbaum 4.4 Eine deutsche Sicht auf Softwarequalität   4.4.1 Qualitätsbegriff   4.4.2 Qualitätsklassifizierung   4.4.3 Qualitätsmaße   4.4.4 Qualitätsgrößen 4.5 Automatisierte Softwarequalitätssicherung   4.5.1 Automatisierte Messung der Anforderungsqualität   4.5.2 Automatisierte Messung der Entwurfsqualität   4.5.3 Automatisierte Messung der Codequalität   4.5.4 Automatisierte Messung der Testqualität 4.6 Zielgerichtete Softwarequalitätssicherung   4.6.1 Qualitätszielbestimmung   4.6.2 Qualitätszielbefragung   4.6.3 Qualitätszielbemessung 4.7 IEEE- und ISO-Standards für Softwarequalität   4.7.1 Funktionalität nach ISO 9126   4.7.2 Zuverlässigkeit nach ISO 9126   4.7.3 Benutzbarkeit nach ISO 9126   4.7.4 Effizienz nach ISO 9126   4.7.5 Wartbarkeit nach ISO 9126   4.7.6 Portabilität nach ISO 9126 4.8 Folgen fehlender Qualitätsmessung

5.1 Tom Gilbs Anstoß der Anforderungsmessung 5.2 Weitere Ansätze zur Anforderungsmessung   5.2.1 Der Boehm-Ansatz   5.2.2 N-Fold Inspektion   5.2.3 Parnas & Weis Anforderungsprüfung   5.2.4 Abgleich der Anforderungen nach Fraser und Vaishnavi (Anforderungsprüfung)   5.2.5 Verfolgung der Anforderungen nach Hayes   5.2.6 Bewertung der Anforderungen nach Glinz   5.2.7 ISO-Standard 25030   5.2.8 Das V-Modell-XT als Referenzmodell für die Anforderungsmessung 5.3 Eine Metrik für Anforderungen von C. Ebert   5.3.1 Zahl aller Anforderungen in einem Projekt   5.3.2 Fertigstellungsgrad der Anforderungen   5.3.3 Änderungsrate der Anforderungen   5.3.4 Zahl der Änderungsursachen   5.3.5 Vollständigkeit des Anforderungsmodells   5.3.6 Anzahl der Anforderungsmängel   5.3.7 Anzahl der Mängelarten   5.3.8 Nutzwert der Anforderungen 5.4 Die Sophist-Anforderungsmetrik   5.4.1 Eindeutigkeit der Anforderungen   5.4.2 Ausschluss der Passivform bei den Anforderungen   5.4.3 Klassifizierbarkeit der Anforderungen   5.4.4 Identifizierbarkeit der Anforderungen   5.4.5 Lesbarkeit   5.4.6 Selektierbarkeit 5.5 Werkzeuge für die Anforderungsmessung   5.5.1 Anforderungsmessung in den früheren CASE-Werkzeugen   5.5.2 Anforderungsmessung im CASE-Tool SoftSpec   5.5.3 Anforderungsmessung in den gegenwärtigen Requirements Management Tools   5.5.4 Anforderungsmetrik aus dem Werkzeug TextAudit   5.5.5 Darstellung der Anforderungsmetrik 5.6 Gründe für die Anforderungsmessung

6.1 Erste Ansätze zu einer Entwurfsmetrik   6.1.1 Der MECCA-Ansatz von Tom Gilb   6.1.2 Der Structured-Design-Ansatz von Yourdon und Constantine   6.1.3 Der Datenflussansatz von Henry und Kafura   6.1.4 Der Systemgliederungsansatz von Belady und Evangelisti 6.2 Entwurfsmessung nach Card und Glass   6.2.1 Entwurfsqualitätsmaße   6.2.2 Entwurfskomplexitätsmaße   6.2.3 Erfahrung mit der ersten Entwurfsmetrik 6.3 Die SOFTCON Entwurfsmetrik   6.3.1 Formale Vollständigkeits- und Konsistenzprüfung   6.3.2 Technische Qualitätsmaße für den Systementwurf 6.4 Objektorientierte Entwurfsmetrik   6.4.1 Die OO-Metrik von Chidamer und Kemerer   6.4.2 MOOD-Entwurfsmetrik 6.5 Entwurfsmetrik in UMLAudit   6.5.1 Entwurfsquantitätsmetrik   6.5.2 Entwurfskomplexitätsmetrik   6.5.3 Entwurfsqualitätsmetrik   6.5.4 Entwurfsgrößenmetrik 6.6 Entwurfsmetrik für Webapplikationen

7.1 Programmaufbau 7.2 Ansätze zur Messung von Codekomplexität   7.2.1 Halsteads Software Science   7.2.2 McCabe‘s Zyklomatische Komplexität   7.2.3 Chapins Q-Komplexität   7.2.4 Elshofs Referenzkomplexität   7.2.5 Prathers Verschachtelungskomplexität   7.2.6 Weitere Codekomplexitätsmaße 7.3 Ansätze zur Messung von Codequalität   7.3.1 Der Codequalitätsindex von Simon   7.3.2 Der Maintainability-Index von Oman   7.3.3 Zielorientierte Codequalitätsmessung 7.4 Codemetrik im SoftAudit-System   7.4.1 Codequantitätsmetrik   7.4.2 Codekomplexität   7.4.3 Codequalität 7.5 Werkzeuge für die Codemessung   7.5.1 Die ersten Codemessungswerkzeuge   7.5.2 Codemessungswerkzeuge der 90er Jahre   7.5.3 Heutige Codemessungswerkzeuge 7.6 Beispiel einer Codemessung

8.1 Testmessung in der früheren Projektpraxis   8.1.1 Das ITS-Projekt bei Siemens   8.1.2 Das Wella-Migrationsprojekt 8.2 Testmetrik nach Hetzel 8.3 Testmetrik bei IBM Rochester 8.4 Maßzahlen für den Systemtest   8.4.1 Testzeit   8.4.2 Testkosten   8.4.3 Testfälle   8.4.4 Fehlermeldungen   8.4.5 Systemtestüberdeckung   8.4.6 Empfehlungen von Hutcheson   8.4.7 Test-Points 8.5 Testmetrik im GEOS-Projekt   8.5.1 Messung der Testfälle   8.5.2 Messung der Testüberdeckung   8.5.3 Messung der Fehlerfindung   8.5.4 Auswertung der Testmetrik 8.6 Testmetrik nach Sneed und Jungmayr   8.6.1 Testbarkeitsmetrik   8.6.2 Testplanungsmetrik   8.6.3 Testfortschrittsmetrik   8.6.4 Testqualitätsmetrik

9.1 Produktivitätsmessung – Ein umstrittenes Thema 9.2 Softwareproduktivität im Rückblick   9.2.1 Dokumentenmessung mit dem Fog-Index   9.2.2 Produktivitätsmessung bei der Standard Bank of South Africa   9.2.3 Die Entstehung der Function-Point-Methode   9.2.4 Das COCOMO-I-Modell von Boehm   9.2.5 Putnams Softwaregleichung   9.2.6 Die Data-Point-Methode   9.2.7 Die Object-Point-Methode   9.2.8 Die Use-Case-Point-Methode 9.3 Alternative Produktivitätsmaße 9.4 Produktivitätsberechnung anhand der Softwaregröße 9.5 Aufwandserfassung 9.6 Softwareproduktivitätsarten   9.6.1 Programmierproduktivität   9.6.2 Designproduktivität   9.6.3 Analyseproduktivität   9.6.4 Testproduktivität   9.6.5 Gesamtproduktivität 9.7 Produktivitätsstudien   9.7.1 Studien über Softwareproduktivität in den USA   9.7.2 Studien über Softwareproduktivität in Europa   9.7.3 Probleme beim Produktivitätsvergleich 9.8 Produktivitätsmessung nach Wertbeitrag

10.1 Frühere Ansätze zur Messung der Wartbarkeit von Software   10.1.1 Stabilitätsmaße von Yau und Collofello   10.1.2 Maintenance-Umfrage bei der U.S. Air Force   10.1.3 Die Wartbarkeitsstudie von Vessey und Weber   10.1.4 Bewertung der Softwarewartbarkeit nach Berns   10.1.5 Die Wartungsuntersuchung von Gremillion   10.1.6 Wartungsmetrik bei Hewlett-Packard   10.1.7 Wartungsmessung nach Rombach   10.1.8 Messung der Wartbarkeit kommerzieller COBOL Systeme   10.1.9 Der Wartbarkeitsindex von Oman 10.2 Ansätze zur Messung der Wartbarkeit objektorientierter Software   10.2.1 Erste Untersuchung der Wartbarkeit objektorientierter Programme   10.2.2 Chidamer/Kemerers OO-Metrik für Wartbarkeit   10.2.3 MOOD-Metrik als Indikator der Wartbarkeit   10.2.4 Eine empirische Validation der OO-Metrik für die Schätzung des Wartungsaufwands   10.2.5 Der Einfluss einer zentralen Steuerung auf die Wartbarkeit eines OO-Systems   10.2.6 Kalkulation vom Wartungsaufwand aufgrund der Programmkomplexität   10.2.7 Vergleich der Wartbarkeit objektorientierter und prozeduraler Software   10.2.8 Zur Änderung der Wartbarkeit im Laufe der Softwareevolution 10.3 Wartungsproduktivitätsmessung   10.3.1 Erste Ansätze zur Messung von Wartungsproduktivität   10.3.2 Messung von Programmwartbarkeit im ESPRIT-Projekt MetKit   10.3.3 Wartungsproduktivitätsmessung in der US-Marine   10.3.4 Messung der Wartungsproduktivität bei Martin-Marietta   10.3.5 Vergleich der Wartungsproduktivität repräsentativer Schweizer Anwender

11.1 Dauerhafte Messverfahren   11.1.1 Beteiligung der Betroffenen   11.1.2 Aufbauen auf vorhandener Metrik   11.1.3 Transparenz des Verfahrens 11.2 Beispiele dauerhafter Messverfahren   11.2.1 Die Initiative von Hewlett-Packard zur Softwaremessung   11.2.2 Prozess- und Produktmessung in der Siemens AG   11.2.3 Die eingebaute Softwaremessung im GEOS-Projekt 11.3 Übergreifende Software-Cockpits und Dashboards   11.3.1 Aufbau und Funktionalität des Software-Cockpits   11.3.2 Dashboard   11.3.3 Scorecard   11.3.4 Interaktive Analysen und Berichte 11.4 Einmalige Messverfahren   11.4.1 Vereinbarung der Messziele   11.4.2 Auswahl der Metrik   11.4.3 Bereitstellung der Messwerkzeuge   11.4.4 Übernahme der Messobjekte   11.4.5 Durchführung der Messung   11.4.6 Auswertung der Messergebnisse 11.5 Beispiel einer einmaligen Messung

Autor

Datum

ISBN

Auflage