Metriken im Qualitätsmanagement

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Matrixmultiplikation
Integrations- und Funktionstests im Rahmen des V-Modelles
Messung, Analyse und Verbesserung
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS)
Zusammenfassung der Vorwoche
Streuung Bezeichnung Streuung=Dispersion=Variabilität Fragestellung:
5. Sortier-Algorithmen Vorbemerkungen:
Inhaltlich orientierter Zugriff auf unstrukturierte Daten
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
Was ist und wie prüft man Qualität
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Schulung der Mitarbeiter
Was ist Qualität ? Qualität von Produkten oder Dienstleistungen ist das Gesamtergebnis aller Aktivitäten in jeder Phase des gesamten Leistungsprozesses.
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
K-Modeler Engineering
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Agenda Einführung Haskell QuickCheck Zusammenfassung
© Karin Haenelt 2006, Operationen auf Akzeptoren und Transduktoren, ( ) 1 Operationen auf endlichen Akzeptoren und Transduktoren.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Automatisches Testen und Bewerten von Java-Klassen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Betreuerin: Kathleen Jerchel
Software-Engineering
Professionelles Projektmanagement In der Praxis
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
DVG Klassen und Objekte
Kennlinie Lichtregelung in JavaNNS Version 1.1
Grundschutztools
Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele
Mehr Qualität und schnellere Marktreife durch effiziente Softwaretests
Das Wasserfallmodell - Überblick
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Synergieeffekte durch softwaregestützte Prozessmodelle
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
1 Fachtagung am Seniorenorientiertes Design und Marketing ThyssenKrupp Immobilien Design for all - Anpassungen im Wohnungsbestand 1.Demographie.
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Statistik: Mehr zur Regression.
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
Verbundprojekt OUTSHORE Studie und Methodikentwicklung zur Beurteilung der Erfolgsfaktoren bei der Vergabe von Softwareprojekten an Niedriglohnländer.
LOD Levels of Detail Oliver Gassner Christian Troger.
Analyseprodukte numerischer Modelle
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
1 Mathematical Programming Nichtlineare Programmierung.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Software Engineering Grundlagen
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Monatsbericht Ausgleichsenergiemarkt Gas – November
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
 Präsentation transkript:

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

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

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

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

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

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?

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

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

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 · log220 + 9 · log29 = 115

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

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

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

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

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

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

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

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)

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

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

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

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

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!

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

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: 1 < RCWR < 2,2  Anpassung bestehender Metriken durch RCR & RCWR

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

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!

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?

Praxiseinsatz Auswertung & Nutzung der Ergebnisse Visualisierung z.B. durch Kiviat-Diagramm

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

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

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

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

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

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

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!

Vielen Dank für die Aufmerksamkeit. Fragen?