WIR
TS
CH
AF
TS
INF
OR
MA
TIK
WestfälischeWilhelms-Universität Münster
WIRTSCHAFTSINFORMATIK
Metriken im Metriken im QualitätsmanagementQualitätsmanagement
Christian MertensChristian Mertens
SS 2004SS 2004
im Rahmen des Seminarsim Rahmen des Seminars Qualitätsmanagement in der Qualitätsmanagement in der
SoftwaretechnikSoftwaretechnik
2
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metriken
Praxiseinsatz
Zusammenfassung
3
WIRTSCHAFTSINFORMATIK
Grundlagen der Software-Messung Grundlagen der Software-Messung
BegriffsbestimmungBegriffsbestimmung
Metrik = „Funktion, die eine Softwareeinheit in einen Zahlenwert abbildet“ (IEEE-Definition)
Maß = Messwert (Zahlenwert)= Ergebnis der Messung
hier: Metrik = Maß
4
WIRTSCHAFTSINFORMATIK
Grundlagen der Software-Messung Grundlagen der Software-Messung
Ziele des Metrik-Einsatzes im QMZiele des Metrik-Einsatzes im QM
Fehler keine Ausnahme, sondern Regelfall
Quantifizierung durch Metriken „What get's measured get's done.“ „You can't control what you can't measure.“
Ziele: Fehler und Missstände früh erkennen & ausbessern
Vergleichsmöglichkeiten schaffen
Aufwands- & Kostenschätzung
Forderung nach hochwertigen, fehlerfreien Software-Produkten (besonders bei sicherheitskritischer SW)
5
WIRTSCHAFTSINFORMATIK
Grundlagen der Software-MessungGrundlagen der Software-Messung
Forderungen an MetrikenForderungen an Metriken
Objektivität, Reproduzierbarkeit
Vergleichbarkeit
Gültigkeit, Sensitivität, Robustheit
Einfachheit, Nützlichkeit
angemessener Aufwand
Rechtzeitigkeit
Analysierbarkeit
Statistiken, automatisierte Verarbeitung
6
WIRTSCHAFTSINFORMATIK
Grundlagen der Software-MessungGrundlagen der Software-Messung
MaßtypenMaßtypen
für bestimmte Zwecke angepasste Maße
(z.B. Objektorientierung, Wiederverwendung)
a)
c)
b)
d)
e)
f)
7
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metrikena) Linguistische Maßeb) Strukturelle Maßec) Systemmaßed) Zuverlässigkeitsmaßee) Prozessmaßef) Maße der Software-Wiederverwendung
Praxiseinsatz
Zusammenfassung
8
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
a)a) Linguistische MaßeLinguistische Maße
statische Code-Messung ohne Berücksichtigung der Code-Struktur
Messung von Umfang, Komplexität, Fehlerraten
einfache Maße: Lines of Code (LOC)
Statement Count
Token Count
Dateigröße
Problem: Subjektivität (Wie wird gezählt?)
Vergleichbarkeit?
9
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
a)a) Linguistische MaßeLinguistische Maße
Halstead-Metriken: Metriksystem von 1977
Basis-Größen:
n1 Anzahl der unterschiedlichen Operatoren
n2 Anzahl der unterschiedlichen Operanden
N1 Gesamtzahl der verwendeten Operatoren
N2 Gesamtzahl der verwendeten Operanden
n = n1+n2 Größe des verwendeten Vokabulars
N = N1+N2Länge der Implementierung
abgeleitete Größe:zu erwartende Programmlänge: N'
N' = n1 · log2n1 + n2 · log2n2
10
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
a)a) Linguistische MaßeLinguistische Maße
Halstead-Metriken (2):
Beispielmethode in Java
void changeSize(int n) {if (n > this.n) {
Object[] temp = array;array = new Object[n];for (int i = 0; i < anfang; i++)
array[i] = temp[i];for (int i = n-1; i >= ende+n-this.n; i--)
array[i] = temp[i-(n-this.n)];ende = ende+n-this.n;this.n = n;
for (int i = anfang; i < ende; i++)array[i] = null;
}}
11
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
a)a) Linguistische MaßeLinguistische Maße
Halstead-Metriken (3): Basis-Größen:
Vokabular n = 29 Programmlänge N = 114
Operatoren n1 Verwendungen N1
() 6
{} 2
[] 7
int 4
this. 5
... ...
; 13
= 10
... ...
n1 = 20 N1 = 70
Operanden n2 Verwendungen N2
changeSize 1
temp 3
array 5
anfang 2
ende 4
n 13
i 14
0 1
1 1
n2 = 9 N2 = 44
abgeleitete Größe:
N' = 20 · log220 + 9 · log29 = 115
12
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
a)a) Linguistische MaßeLinguistische Maße
Halstead-Metriken (4): weitere abgeleitete Größen:
Programmgröße in Bits: G = N · log2n (im Beispiel: 554)
zu erwartende Fehler: F = G/3000 (im Beispiel: 0,18)
potenzielle Programmgröße (bei optimaler Sprache):
G* = (N1+N2) · log2(n1+n2) = (2+N2) · log2(2+n2) (im Beispiel: 249)
Schwierigkeitsgrad (Eignung der verwendeten Sprache):S = G/G* (im Beispiel: 2,22)
Aufwand: A = S · G = G/G* · G = G²/G* (im Beispiel: 1230)
quadratischer Anstieg mit der Programmgröße Ansatz für Modularisierung
13
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metrikena) Linguistische Maßeb) Strukturelle Maßec) Systemmaßed) Zuverlässigkeitsmaßee) Prozessmaßef) Maße der Software-Wiederverwendung
Praxiseinsatz
Zusammenfassung
14
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
b)b) Strukturelle MaßeStrukturelle Maße
statische Analyse der inneren Struktur eines Programms
Messung von Komplexität
einfache Maße: Live Variables
durchschnittliche „lebendige Variablen“ pro Anweisung „lebendig“ = zwischen erster & letzter Referenz
Variablenspanne Mittelwert aller Spannen aller Variablen In welchen Abständen treten die Variablen im Code auf? Abstand z.B. gemessen in LOC
15
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
b)b) Strukturelle MaßeStrukturelle Maße
Zyklomatische Zahl (McCabe-Metrik):
weit verbreitetes Komplexitätsmaß von 1976
basiert auf Kontrollflussgraphen
Annahme: Test- & Wartbarkeit eines Programms abhängig von Anzahl der Ablaufpfade
Z = V – K + 2·T
V: Anzahl der Kanten des Graphen K: Anzahl der Knoten des Graphen T: Anzahl der unverbundenen Teile des Graphen
16
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
b)b) Strukturelle MaßeStrukturelle Maße
Zyklomatische Zahl (McCabe-Metrik) (2): Beispiel-Kontrollflussgraphen
17
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
b)b) Strukturelle MaßeStrukturelle Maße
Zyklomatische Zahl (McCabe-Metrik) (3):
Anhaltspunkt für die benötigte Zahl an Testfällen beim Zweigüberdeckungstest
Richtwert für die Modularisierung McCabes Empfehlung:
Modul für Z > 10 in mehrere Teilmodule aufteilen
einfach zu berechnen, in Praxis sehr gebräuchlich
18
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metrikena) Linguistische Maßeb) Strukturelle Maßec) Systemmaßed) Zuverlässigkeitsmaßee) Prozessmaßef) Maße der Software-Wiederverwendung
Praxiseinsatz
Zusammenfassung
19
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
c)c) SystemmaßeSystemmaße
Messung der Interaktionen & Zusammenhänge einzelner Programmteile / Module
Messung der Gesamtkomplexität eines Systems
weit verbreitet: fan-in/fan-out-Metrik (für Prozeduren)
fan-in = lokale Datenflüsse in die Prozedur hinein+ von der Prozedur benutzte, globale Datenstrukturen
fan-out = lokale Datenflüsse aus der Prozedur heraus+ durch die Prozedur veränderte, globale DS
Komplexität einer Prozedur: PK = L · (fan-in)² · (fan-out)² L = Länge der Prozedur (z.B. in LOC gemessen)
20
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
c)c) SystemmaßeSystemmaße
MMC-Metrik von Harrison / Cook:
MMC = „Macro-Micro-Complexity“
Makro-Komplexität:
Gi = Anzahl der in Komponente i verwendeten globalen Variablen
Pi = Anzahl der in Komponente i verwendeten Parameter
Di = „Dokumentations-Index“ für Komponente i
(z.B. Anteil der Kommentarzeilen an den LOC)n = Gesamtzahl der Komponenten des Systems
n
1iiii ))D1(P)1n(G(MAK
)i(ZMIK i
Mikro-Komplexität einer Systemkomponente i:
n
1iiMIKMAKMMC
n1
21
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metrikena) Linguistische Maßeb) Strukturelle Maßec) Systemmaßed) Zuverlässigkeitsmaßee) Prozessmaßef) Maße der Software-Wiederverwendung
Praxiseinsatz
Zusammenfassung
22
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
d)d) ZuverlässigkeitsmaßeZuverlässigkeitsmaße
während des Software-Entwicklungsprozesses durch Simulationen & Testläufe ermittelt
im laufenden Betrieb für Prognosezwecke messen
dynamische Beobachtung der Fehleranfälligkeit im Zeitablauf
einfache, intuitive Metriken
Mean Time Between Failure (MTBF)
Ausfallrate =
Verfügbarkeit =
MTBF1
MTTRMTBFMTBF
Mean Time To Repair
23
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metrikena) Linguistische Maßeb) Strukturelle Maßec) Systemmaßed) Zuverlässigkeitsmaßee) Prozessmaßef) Maße der Software-Wiederverwendung
Praxiseinsatz
Zusammenfassung
24
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
e)e) ProzessmaßeProzessmaße
Messung der Entwicklung von Produktmetriken im Zeitablauf
Analyse & Optimierung des SW-Entwicklungsprozesses Phasen, beteiligte Personen, ...
Erstellen von Statistiken: Entwicklung der Fehlermeldungen im Zeitablauf
Verteilung der Fehlerentdeckung auf die verschiedenen Phasen
erforderlicher Zeitaufwand für die Fehlerbehebung in den einzelnen Phasen
Schwere der Fehler, die in einer bestimmten Phase entdeckt werden
Ziele: Aufdecken von Schwachstellen in der Prozesskette
sinnvolle Aufteilung von Testressourcen auf die Phasen der Entwicklung(frühe Fehlerentdeckung & -behebung)
Aufstellen von Prognosen
SW-Entwicklung nicht nur effektiv, sondern auch effizient gestalten!
25
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metrikena) Linguistische Maßeb) Strukturelle Maßec) Systemmaßed) Zuverlässigkeitsmaßee) Prozessmaßef) Maße der Software-Wiederverwendung
Praxiseinsatz
Zusammenfassung
26
WIRTSCHAFTSINFORMATIK
Für das QM relevante MetrikenFür das QM relevante Metriken
f)f) Maße der Software-WiederverwendungMaße der Software-Wiederverwendung
Wiederverwendungslevel = Anteil WV-Komponenten an Gesamtsoftware
ökonomische Metriken: Wiederverwendungseinfluss = Produktivitätssteigerung durch WV
Kosten-Nutzen-Untersuchungen
Break-Even-Analysen
ROI-Modelle
Relative Cost of Reuse (RCR) meist: 0,03 < RCR < 0,25Relative Cost of Writing for Reuse (RCWR) meist: 1 < RCWR < 2,2 Anpassung bestehender Metriken durch RCR & RCWR
Produkt- & Prozessmaße mit Berücksichtigung der Software-Wiederverwendung
27
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metriken
Praxiseinsatz
Zusammenfassung
28
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
VoraussetzungenVoraussetzungen
Qualitätsnorm DIN EN ISO 9001: Forderung zur Messung, Analyse, Überwachung, Verbesserung der
Produkte und Prozesse
regelmäßige Messungen im Rahmen der ISO 9001-Zertifizierung
Überwachung der Wirksamkeit der Messungen
Objektivität, Reproduzierbarkeit Gültigkeit, Sensitivität, Robustheit Einfachheit, Nützlichkeit Rechtzeitigkeit Analysierbarkeit
zielgerichtetes & systematisches Auswählen der einzusetzenden Metriken Sind Anforderungen erfüllt?
Einsatz einer Gruppe von Metriken
Anpassung, ggf. Eigenentwicklung von Metriken
Einsatz während des gesamten Entwicklungsprozesses
Messaufwand darf gewonnenen Nutzen nicht übersteigen!
29
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
VorgehenVorgehen
Messziele bestimmen, Messaufgaben ableiten
Metriken & Auswertungsmodelle auswählen
Messplan aufstellen
Daten sammeln & validieren
Messwerte analysieren und interpretieren
Ergebnisse zielgerecht nutzen
verwendete Metriken verbessern / anpassen
Automatisierungsmöglichkeiten nutzen! Werkzeugeinsatz
In welchen Phasen des Entwicklungsprozesses sind welche Messungen durchzuführen?
30
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
Auswertung & Nutzung der ErgebnisseAuswertung & Nutzung der Ergebnisse
Visualisierung z.B. durch Kiviat-Diagramm
31
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
Auswertung & Nutzung der ErgebnisseAuswertung & Nutzung der Ergebnisse
Auswertung durch statistische Methoden z.B. Regressionsanalyse
Auswertung durch Erfahrungswissen
Auswertungsmodelle: Daten brauchbare Ergebnisse z.B.: Zykl. Zahl & Halstead Modularisierung?
Multimetriken Multifaktormodelle Zusammenfassung interdependenter Metriken
zielgerechte Nutzung z.B. für Modularisierung, Verteilung von Testressourcen, ...
Akzeptanz der Messungen bei allen Beteiligten Bewertung und Vergleiche einzelner Mitarbeiter nicht förderlich
32
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
WerkzeugunterstützungWerkzeugunterstützung
Automatisierung statischer Codeanalyse
automatische Erfassung dynamischer Daten
ggf. schrittweise Einführung von Messungen und Werkzeugen
integrierte, unternehmensweite Messung einheitlicher Werkzeugeinsatz
a) kleine Hilfsprogramme
b) umfangreiche Messwerkzeuge
c) Mess-Komponenten in Entwicklungstools
33
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
WerkzeugunterstützungWerkzeugunterstützung
a) kleine Hilfsprogramme oft auf Kommandozeilenbasis
für kleinere Ad-Hoc-Messungen geeignet
z.B.: C and C++ Code Counter (Open Source)
34
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
WerkzeugunterstützungWerkzeugunterstützung
b) umfangreiche Messwerkzeuge ganzheitliches Qualitätsmanagement
Produkt- & Prozessüberwachung
z.B.: SEER-SEM (Galorath)
35
WIRTSCHAFTSINFORMATIK
PraxiseinsatzPraxiseinsatz
WerkzeugunterstützungWerkzeugunterstützung
c) Mess-Komponenten in Entwicklungstools Datenerfassung direkt durch das Entwicklungstool
Produkt- & Prozessmetriken
z.B.: Together Control Center Quality Suite (Borland) 55 Qualitätsmetriken für Java & C++
36
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
GliederungGliederung
Grundlagen der Software-Messung
Für das QM relevante Metriken
Praxiseinsatz
Zusammenfassung
37
WIRTSCHAFTSINFORMATIK
Metriken im QualitätsmanagementMetriken im Qualitätsmanagement
ZusammenfassungZusammenfassung
Einsatz von Metriken im QM notwendig
Anforderungen an Software-Maße
Vielzahl verschiedener Metriken geeignete Maße auswählen & anpassen
Einsatz während des gesamten Entwicklungsprozesses
Werkzeugunterstützung, Automatisierung
Mess-Aufwand muss sich immer lohnen!
38
WIRTSCHAFTSINFORMATIK
Vielen Dank für die Aufmerksamkeit.Vielen Dank für die Aufmerksamkeit.
Fragen?Fragen?