metriken im qualitätsmanagement

Post on 09-Jan-2016

70 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

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?

top related