390 likes | 656 Views
Metriken im Qualitätsmanagement. im Rahmen des Seminars Qualitätsmanagement in der Softwaretechnik. Christian Mertens. SS 2004. Metriken im Qualitätsmanagement Gliederung. Grundlagen der Software-Messung Für das QM relevante Metriken Praxiseinsatz Zusammenfassung.
E N D
Metriken im Qualitätsmanagement im Rahmen des SeminarsQualitätsmanagement in der Softwaretechnik Christian Mertens SS 2004
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Praxiseinsatz • Zusammenfassung
Grundlagen der Software-Messung Begriffsbestimmung • Metrik = „Funktion, die eine Softwareeinheit in einen Zahlenwert abbildet“ (IEEE-Definition) • Maß = Messwert (Zahlenwert) = Ergebnis der Messung • hier: Metrik = Maß
Grundlagen der Software-Messung Ziele 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)
Grundlagen der Software-MessungForderungen an Metriken • Objektivität, Reproduzierbarkeit Vergleichbarkeit • Gültigkeit, Sensitivität, Robustheit • Einfachheit, Nützlichkeit angemessener Aufwand • Rechtzeitigkeit • Analysierbarkeit Statistiken, automatisierte Verarbeitung
Grundlagen der Software-MessungMaßtypen e) a) b) c) d) f) für bestimmte Zwecke angepasste Maße(z.B. Objektorientierung, Wiederverwendung)
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Linguistische Maße • Strukturelle Maße • Systemmaße • Zuverlässigkeitsmaße • Prozessmaße • Maße der Software-Wiederverwendung • Praxiseinsatz • Zusammenfassung
Für das QM relevante Metrikena)Linguistische 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?
Für das QM relevante Metrikena)Linguistische Maße • Halstead-Metriken: • Metriksystem von 1977 • Basis-Größen: n1 Anzahl der unterschiedlichen Operatorenn2 Anzahl der unterschiedlichen OperandenN1 Gesamtzahl der verwendeten OperatorenN2 Gesamtzahl der verwendeten Operandenn = n1+n2 Größe des verwendeten VokabularsN = N1+N2Länge der Implementierung • abgeleitete Größe:zu erwartende Programmlänge:N'N' = n1 · log2n1 + n2 · log2n2
Für das QM relevante Metrikena)Linguistische Maße • Halstead-Metriken (2): • Beispielmethode in Java void changeSize(int n){ if(n >this.n){ Object[] temp = array; array =newObject[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; } }
Für das QM relevante Metrikena)Linguistische Maße • Halstead-Metriken (3): • Basis-Größen: Vokabular n = 29 Programmlänge N = 114 • abgeleitete Größe:N' = 20 · log220 + 9 · log29 = 115
Für das QM relevante Metrikena)Linguistische 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
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Linguistische Maße • Strukturelle Maße • Systemmaße • Zuverlässigkeitsmaße • Prozessmaße • Maße der Software-Wiederverwendung • Praxiseinsatz • Zusammenfassung
Für das QM relevante Metrikenb)Strukturelle 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
Für das QM relevante Metrikenb)Strukturelle 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·TV: Anzahl der Kanten des Graphen K: Anzahl der Knoten des Graphen T: Anzahl der unverbundenen Teile des Graphen
Für das QM relevante Metrikenb)Strukturelle Maße • Zyklomatische Zahl (McCabe-Metrik) (2): • Beispiel-Kontrollflussgraphen
Für das QM relevante Metrikenb)Strukturelle Maße • Zyklomatische Zahl (McCabe-Metrik) (3): • Anhaltspunkt für die benötigte Zahl an Testfällen beim Zweigüberdeckungstest • Richtwert für die ModularisierungMcCabes Empfehlung: Modul für Z > 10 in mehrere Teilmodule aufteilen • einfach zu berechnen, in Praxis sehr gebräuchlich
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Linguistische Maße • Strukturelle Maße • Systemmaße • Zuverlässigkeitsmaße • Prozessmaße • Maße der Software-Wiederverwendung • Praxiseinsatz • Zusammenfassung
Für das QM relevante Metrikenc)Systemmaß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)
Für das QM relevante Metrikenc)Systemmaße • Mikro-Komplexität einer Systemkomponente i: • Makro-Komplexität: Gi = Anzahl der in Komponente i verwendeten globalen VariablenPi = Anzahl der in Komponente i verwendeten ParameterDi = „Dokumentations-Index“ für Komponente i (z.B. Anteil der Kommentarzeilen an den LOC)n = Gesamtzahl der Komponenten des Systems • MMC-Metrik von Harrison / Cook: • MMC = „Macro-Micro-Complexity“
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Linguistische Maße • Strukturelle Maße • Systemmaße • Zuverlässigkeitsmaße • Prozessmaße • Maße der Software-Wiederverwendung • Praxiseinsatz • Zusammenfassung
Für das QM relevante Metrikend)Zuverlässigkeitsmaße • Mean Time Between Failure (MTBF) • Ausfallrate = • Verfügbarkeit = Mean Time To Repair • dynamische Beobachtung der Fehleranfälligkeit im Zeitablauf • einfache, intuitive Metriken • während des Software-Entwicklungsprozesses durch Simulationen & Testläufe ermittelt • im laufenden Betrieb für Prognosezwecke messen
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Linguistische Maße • Strukturelle Maße • Systemmaße • Zuverlässigkeitsmaße • Prozessmaße • Maße der Software-Wiederverwendung • Praxiseinsatz • Zusammenfassung
Für das QM relevante Metrikene)Prozessmaße • Messung der Entwicklung von Produktmetriken im Zeitablauf • Analyse & Optimierung des SW-EntwicklungsprozessesPhasen, 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!
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Linguistische Maße • Strukturelle Maße • Systemmaße • Zuverlässigkeitsmaße • Prozessmaße • Maße der Software-Wiederverwendung • Praxiseinsatz • Zusammenfassung
Für das QM relevante Metrikenf)Maß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
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Praxiseinsatz • Zusammenfassung
PraxiseinsatzVoraussetzungen • zielgerichtetes & systematisches Auswählen der einzusetzenden MetrikenSind Anforderungen erfüllt? • Objektivität, Reproduzierbarkeit • Gültigkeit, Sensitivität, Robustheit • Einfachheit, Nützlichkeit • Rechtzeitigkeit • Analysierbarkeit • 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 • Einsatz einer Gruppe von Metriken • Anpassung, ggf. Eigenentwicklung von Metriken • Einsatz während des gesamten Entwicklungsprozesses • Messaufwand darf gewonnenen Nutzen nicht übersteigen!
PraxiseinsatzVorgehen • 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?
PraxiseinsatzAuswertung & Nutzung der Ergebnisse • Visualisierung z.B. durch Kiviat-Diagramm
PraxiseinsatzAuswertung & 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
PraxiseinsatzWerkzeugunterstützung • Automatisierung statischer Codeanalyse • automatische Erfassung dynamischer Daten • ggf. schrittweise Einführung von Messungen und Werkzeugen • integrierte, unternehmensweite Messung einheitlicher Werkzeugeinsatz • kleine Hilfsprogramme • umfangreiche Messwerkzeuge • Mess-Komponenten in Entwicklungstools
PraxiseinsatzWerkzeugunterstützung • kleine Hilfsprogramme • oft auf Kommandozeilenbasis • für kleinere Ad-Hoc-Messungen geeignet • z.B.: C and C++ Code Counter (Open Source)
PraxiseinsatzWerkzeugunterstützung • umfangreiche Messwerkzeuge • ganzheitliches Qualitätsmanagement • Produkt- & Prozessüberwachung • z.B.: SEER-SEM (Galorath)
PraxiseinsatzWerkzeugunterstützung • 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++
Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Praxiseinsatz • Zusammenfassung
Metriken im QualitätsmanagementZusammenfassung • 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!