Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Metriken im Qualitätsmanagement

Ähnliche Präsentationen


Präsentation zum Thema: "Metriken im Qualitätsmanagement"—  Präsentation transkript:

1 Metriken im Qualitätsmanagement
im Rahmen des Seminars Qualitätsmanagement in der Softwaretechnik SS 2004 Christian Mertens

2 Metriken im Qualitätsmanagement Gliederung
Grundlagen der Software-Messung Für das QM relevante Metriken Praxiseinsatz Zusammenfassung

3 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ß

4 Grundlagen der Software-Messung Ziele des Metrik-Einsatzes im QM
Forderung nach hochwertigen, fehlerfreien Software-Produkten (besonders bei sicherheitskritischer SW) 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

5 Grundlagen der Software-Messung Forderungen an Metriken
Objektivität, Reproduzierbarkeit  Vergleichbarkeit Gültigkeit, Sensitivität, Robustheit Einfachheit, Nützlichkeit  angemessener Aufwand Rechtzeitigkeit Analysierbarkeit  Statistiken, automatisierte Verarbeitung

6 Grundlagen der Software-Messung Maßtypen
c) b) d) e) f) für bestimmte Zwecke angepasste Maße (z.B. Objektorientierung, Wiederverwendung)

7 Metriken im Qualitätsmanagement Gliederung
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

8 Für das QM relevante Metriken a) 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?

9 Für das QM relevante Metriken a) Linguistische 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+N2 Länge der Implementierung abgeleitete Größe: zu erwartende Programmlänge: N' N' = n1 · log2n1 + n2 · log2n2

10 Für das QM relevante Metriken a) Linguistische 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 Für das QM relevante Metriken a) Linguistische 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 n2 = 9 N2 = 44 abgeleitete Größe: N' = 20 · log · log29 = 115

12 Für das QM relevante Metriken a) 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

13 Metriken im Qualitätsmanagement Gliederung
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

14 Für das QM relevante Metriken b) 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

15 Für das QM relevante Metriken b) 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·T  V: Anzahl der Kanten des Graphen  K: Anzahl der Knoten des Graphen  T: Anzahl der unverbundenen Teile des Graphen

16 Für das QM relevante Metriken b) Strukturelle Maße
Zyklomatische Zahl (McCabe-Metrik) (2): Beispiel-Kontrollflussgraphen

17 Für das QM relevante Metriken b) 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 Modularisierung  McCabes Empfehlung: Modul für Z > 10 in mehrere Teilmodule aufteilen einfach zu berechnen, in Praxis sehr gebräuchlich

18 Metriken im Qualitätsmanagement Gliederung
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

19 Für das QM relevante Metriken c) 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)

20 Für das QM relevante Metriken c) Systemmaße
MMC-Metrik von Harrison / Cook: MMC = „Macro-Micro-Complexity“ Mikro-Komplexität einer Systemkomponente i: 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

21 Metriken im Qualitätsmanagement Gliederung
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

22 Für das QM relevante Metriken d) Zuverlässigkeitsmaße
dynamische Beobachtung der Fehleranfälligkeit im Zeitablauf einfache, intuitive Metriken Mean Time Between Failure (MTBF) Ausfallrate = Verfügbarkeit = Mean Time To Repair während des Software-Entwicklungsprozesses durch Simulationen & Testläufe ermittelt im laufenden Betrieb für Prognosezwecke messen

23 Metriken im Qualitätsmanagement Gliederung
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

24 Für das QM relevante Metriken e) Prozessmaß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 Metriken im Qualitätsmanagement Gliederung
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

26 Für das QM relevante Metriken f) Maße der Software-Wiederverwendung
Produkt- & Prozessmaße mit Berücksichtigung 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,25 Relative Cost of Writing for Reuse (RCWR) meist: < RCWR < 2,2  Anpassung bestehender Metriken durch RCR & RCWR

27 Metriken im Qualitätsmanagement Gliederung
Grundlagen der Software-Messung Für das QM relevante Metriken Praxiseinsatz Zusammenfassung

28 Praxiseinsatz Voraussetzungen
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 Praxiseinsatz Vorgehen
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 Praxiseinsatz Auswertung & Nutzung der Ergebnisse
Visualisierung z.B. durch Kiviat-Diagramm

31 Praxiseinsatz Auswertung & 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 Praxiseinsatz Werkzeugunterstü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

33 Praxiseinsatz Werkzeugunterstützung
kleine Hilfsprogramme oft auf Kommandozeilenbasis für kleinere Ad-Hoc-Messungen geeignet z.B.: C and C++ Code Counter (Open Source)

34 Praxiseinsatz Werkzeugunterstützung
umfangreiche Messwerkzeuge ganzheitliches Qualitätsmanagement Produkt- & Prozessüberwachung z.B.: SEER-SEM (Galorath)

35 Praxiseinsatz Werkzeugunterstü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++

36 Metriken im Qualitätsmanagement Gliederung
Grundlagen der Software-Messung Für das QM relevante Metriken Praxiseinsatz Zusammenfassung

37 Metriken im Qualitätsmanagement Zusammenfassung
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 Vielen Dank für die Aufmerksamkeit.
Fragen?


Herunterladen ppt "Metriken im Qualitätsmanagement"

Ähnliche Präsentationen


Google-Anzeigen