Metriken - PowerPoint PPT Presentation

About This Presentation
Title:

Metriken

Description:

Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann Was ist eine Metrik? Bedeutung des Messens Spielt in allen Ingenieursdisziplinen eine wichtige Rolle ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 18
Provided by: ClemensH
Category:

less

Transcript and Presenter's Notes

Title: Metriken


1
Metriken
  • Seminar Programmierstil, WS2002/03
  • Clemens Holzmann

2
Was ist eine Metrik?
2/17
  • Bedeutung des Messens
  • Spielt in allen Ingenieursdisziplinen eine
    wichtige Rolle
  • Wichtig für die Qualitätssicherung von Software
  • Definitionen für Software-Metriken
  • IEEE Standard 1061
  • Ian Sommerville (Software Engineering)

To measure is to know (J.C.Maxwell) You cant
control what you cant measure (Tom de Marco)
Eine Softwarequalitätsmetrik ist eine Funktion,
die eine Software-Einheit in einen Zahlenwert
abbildet. Dieser berechnete Wert ist
interpretierbar als der Erfüllungsgrad einer
Qualitätseigenschaft der Software-Einheit.
Eine Softwaremetrik ist jede Art von Messung,
die sich auf ein Softwaresystem, einen Prozess
oder die dazugehörige Dokumentation bezieht.
3
Nutzen von Metriken
3/17
  • Ansatzpunkt für präventive Wartung
  • Softwareentwicklung wird vorhersagbarer
  • Test- und Wartungsaufwand beurteilen
  • Ergänzung der Programmierrichtlinien
  • Schwachstellen identifizieren
  • Kundenanforderungen überprüfbar machen
  • Erzieherischer Effekt auf den Programmierer

4
Einsatz von Metriken (1)
4/17
  • Probleme in der Praxis
  • Nutzen von Metriken oft unklar
  • Fehlen von Standards
  • Programmierer wehren sich dagegen
  • Durchführung von Messungen
  • Messgrößen werden definiert und Messwerte
    gesammelt
  • Welche Ziele verfolgt man?
  • Messwerte werden analysiert, interpretiert und
    beurteilt
  • Gibt es eine Bewertungsskala?
  • Gefahr von schwer interpretierbaren
    Zahlenfriedhöfen
  • Zielorientiertes Messen!

5
Einsatz von Metriken (2)
5/17
Zielorientiertes Messen
  • GQM (Goal-Question-Metric)- Ansatz

Goal
Goal Attainment
Question
Answer
Project Plan
Metric
Measurement
Definition
Interpretation
Collected Data
Planning
Data Collection
Wallmüller
6
Gütekriterien für Metriken
6/17
  • Objektivität
  • Zuverlässigkeit
  • Nützlichkeit
  • Normierung
  • Vergleichbarkeit
  • Ökonomie
  • Messtauglichkeit

Kein subjektiver Einfluss durch Prüfer möglich
Wiederholung liefert gleiche Ergebnisse
Parktische Bedürfnisse werden erfüllt
Es gibt eine Skala für die Messergebnisse
Mit anderen Maßen vergleichbar
Messung mit geringen Kosten durchführbar
Messergebnisse erlauben Rückschluss auf
Ausprägung der Qualitätseigenschaft
7
Maßtheoretische Grundlagen
7/17
Skalenhierarchie am Beispiel eines Softwaremoduls
f reale Welt ? Zahlenbereich
Anzahl an Codezeilen
Anwendungs-bereich
Absolutskala
Skala nicht-negative ganze Zahlen
Skala Logistik, Personal, Rechnungswesen
Verhältnisskala
Intervallskala
Ordinalskala
Nominalskala
Eignung für kleine Unternehmen
Kosten (Preis eines Moduls)
Skala --, -, o, ,
Verfügbarkeit
Skala EURO
Skala Kalendertage
8
Klassifikation von Metriken
8/17
Software-Metriken
Prozess-Metriken
Produkt-Metriken
Zeitverbrauch
Häufigkeit bestimmter Ereignisse
statisch
dynamisch
Ressourcen- verbrauch
objektorientiert
konventionell
Aggregations- hierarchien
Umfangsmetriken
Stilmetriken
Vererbungs- hierarchien
Logische Strukturmetriken
Datenstruktur- Metriken
Klassenebene
Methodenebene
9
Beispiele für Metriken (1)
9/17
Prozessmetrik Ressourcenverbrauch
  • Function-Points-Metrik

lt1gt Jede Anforderung kategorisieren lt2gt Jede
Anforderung klassifizieren lt3gt Anforderungen ins
Berechnungsformular eintragen lt4gt
Einflussfaktoren bewerten lt5gt Bewertete FPs
berechnen lt6gt Aufwand ablesen lt7gt Tabelle
aktualisieren
Produktanforderungen
lt1gt
Abfragen
Ausgabedaten
Datenbestände
Referenzdaten
Eingabedaten
lt2gt
lt2gt
lt2gt
lt2gt
lt2gt
einfach mittel komplex
einfach mittel komplex
einfach mittel komplex
einfach mittel komplex
einfach mittel komplex
3
4
4
5
6
7
lt3gt
lt3gt
lt3gt
lt3gt
lt3gt
231426
22
Eingaben Abfragen Ausgaben Datenbestände Referenzd
aten
?
Fähnrich
lt4gt
Einflussfaktoren
lt5gt
FPs ? 30
lt6gt
10
Beispiele für Metriken (2)
10/17
Statische, konventionelle Produktmetriken
Umfangsmetriken
  • LOC (lines of code)
  • ? Starke Korrelation mit anderen Maßen
  • ? Komplexität von Anweisungen und
    Ablaufstrukturen unberücksichtigt, abhängig von
    Programmierstil/ -sprache
  • Halstead
  • ? Komplizierte Ausdrücke sowie viele verschiedene
    Variablen berücksichtigt
  • ? Schwer messbar, Ablaufstrukturen
    unberücksichtigt

Umfang V (N1N2) ld(n1n2) n1,n2 Anzahl
unterschiedl. Operatoren, Operanden N1,N2 Gesamtza
hl verwendeter Operatoren, Operanden Operator kenn
zeichnet Aktionen (, , While, For,
...) Operand kennzeichnet Daten (Variablen,
Konstanten, ...)
11
Beispiele für Metriken (3)
11/17
Statische, konventionelle Produktmetrik Logische
Strukturmetrik
  • McCabe
  • Programm wird als gerichteter Graph dargestellt
  • ? Einfach zu berechnen
  • ? Komplexität von Anweisungen unberücksichtigt

Abweisende Schleife
Sequenz
Allgemein
Auswahl
V(g) e n 2p e Anzahl der Kanten n
Anzahl der Knoten p Anz. verbundener Komponenten
IF
FOR
T
F
T
F
Bei nur einem Ein- und Ausgang
V(g) 1 Anzahl der
Binärverzweigungen
V(g) 4-42 2
V(g) 3-32 2
V(g) 1-22 1
V(g) 10 1
V(g) 11 2
V(g) 11 2
12
Beispiele für Metriken (4)
12/17
Statische, konventionelle Produktmetrik
Struktur- und Umfangsmetrik
  • Rechenberg
  • ? Detailliert, betrachtet viele verschiedene
    Aspekte
  • ? Schwer zu berechnen, nicht intuitiv verständlich

CC SC EC DC Gesamtkomplexität
SC ... Summe der Anweisungskomplexitäten aller
Anweisungen Wertzuweisung1, Goto5,
Prozeduraufruf1Parameterzahl, While/For3,
EC ... Summe der Ausdruckskomplexitäten aller
Ausdrücke /- 1, MOD3, Indizierung2, AND/OR3,
MUL/DIV2, Dereferenzierung2,
DC ... Summe der Datenkomplexitäten aller
Bezeichner Lokale Namen1, Formale Parameter2,
Globale Variablen3
13
Beispiele für Metriken (5)
13/17
Statische, objektorientierte Produktmetriken
  • Objektorientierte Metriken
  • CBO (coupling between objects)
  • Anzahl der Klassen, mit denen eine Klasse
    gekoppelt ist
  • CBO(A)4
  • DIT (depth of inheritance tree)
  • Maximaler Weg von der Wurzel bis zur betrachteten
    Klasse
  • DIT(A)0, DIT(G)1, DIT(H)2
  • NOC (number of children)
  • Anzahl der direkten Unterklassen
  • NOC(A)2, NOC(B)0, NOC(F)3
  • RFC (response for a class)
  • Anzahl der Methoden, die potentiell ausgeführt
    werden können, wenn Objekt auf eingehende
    Nachricht reagiert
  • RFC(A)4, RFC(B)0, RFC(C)1

A
D
B
m1() m2()
C
E
m4()
m3()
F
G
H
I
J
14
Werkzeugunterstützung
14/17
Werkzeugbeispiel JStyle 4.6
  • Code-Review
  • Automatische Analyse des Sourcecodes
  • Namenskonventionen, Designfehler, Redundanz, ...
  • Skriptsprache zum Definieren eigener Regeln
  • Beautifier mit umfangreichen Einstellmöglichkeiten
  • Metriken
  • Berechnung einer Vielzahl von Sourcecode-Metriken
  • Projekt-Level Anzahl an Klassen,
    Kommentardichte, ...
  • Klassen-Level DIT, RFC, WMC, ...
  • Methoden-Level LOC, Halstead, McCabe, ...
  • Diagramme zur Darstellung von Metriken
  • Balken-, Torten- und Streudiagramm, Summenkurve,
    Box-Plot, ...

15
Werkzeugunterstützung
15/17
Werkzeugbeispiel JStyle 4.6
16
Fazit
16/17
  • Einsatzgebiete
  • Überprüfung von Qualitätseigenschaften
  • Aufwandsabschätzung
  • sicherheitsbewusste Wiederverwendung
  • Noch geringe Verbreitung
  • Vielzahl von Metriken
  • Zielorientiertes Messen (z.B. GQM)
  • Werkzeugeinsatz

17
Literatur
17/17
  • Rechenberg, Peter Ein neues Maß für die
    softwaretechnische Komplexität von Programmen
  • Informatik Forschung und Entwicklung, Band 1,
    1986.
  • Sommerville, Ian Software-Engineering
  • Addison-Wesley, 2001
  • Wallmüller, Ernest SW-Qualitätsmanagement in
    der Praxis.
  • Hanser, 2001
  • Fähnrich, Klaus-Peter Software-Management
    Vorlesung, 2002
  • http//ais.informatik.uni-leipzig.de/studium/vorl
    esungen/
  • Hindel, Bernd Software-Metriken, 1999
  • http//www.methodpark.de/f-l_swepwue_de.html
  • JStyle Code-Review-Tool, Man-Machine-Systems
  • http//www.mmsindia.com/jstyle.html
  • Lichter, Horst Software-Qualitätssicherung
    Vorlesung, 2002
Write a Comment
User Comments (0)
About PowerShow.com