1 / 38

Metriken im Qualitätsmanagement

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.

kalkin
Download Presentation

Metriken im Qualitätsmanagement

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Metriken im QualitätsmanagementGliederung • 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 • 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. 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

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

  7. 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

  8. 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?

  9. 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

  10. 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; } }

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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·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 Metrikenb)Strukturelle Maße • Zyklomatische Zahl (McCabe-Metrik) (2): • Beispiel-Kontrollflussgraphen

  17. 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 ModularisierungMcCabes Empfehlung: Modul für Z > 10 in mehrere Teilmodule aufteilen • einfach zu berechnen, in Praxis sehr gebräuchlich

  18. 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

  19. 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)

  20. 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“

  21. 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

  22. 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

  23. 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

  24. Für das QM relevante Metrikene)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ä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

  26. 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

  27. Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Praxiseinsatz • Zusammenfassung

  28. PraxiseinsatzVoraussetzungen • zielgerichtetes & systematisches Auswählen der einzusetzenden MetrikenSind 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!

  29. 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?

  30. PraxiseinsatzAuswertung & Nutzung der Ergebnisse • Visualisierung z.B. durch Kiviat-Diagramm

  31. 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

  32. 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

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

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

  35. 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++

  36. Metriken im QualitätsmanagementGliederung • Grundlagen der Software-Messung • Für das QM relevante Metriken • Praxiseinsatz • Zusammenfassung

  37. 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!

  38. Vielen Dank für die Aufmerksamkeit. Fragen?

More Related