Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

17
Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann

Transcript of Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Page 1: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Metriken

Seminar Programmierstil, WS2002/03

Clemens Holzmann

Page 2: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Was ist eine Metrik?

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 can‘t control what you can‘t 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.“

2/17

Page 3: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Nutzen von Metriken

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

3/17

Page 4: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Einsatz von Metriken (1)

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!

4/17

Page 5: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Einsatz von Metriken (2)

GQM (Goal-Question-Metric)- Ansatz

Pro

ject

Pla

n

Planning

Goal

Question

Metric

GoalAttainment

Answer

Measurement

Collected Data

Definition

Data Collection

Interpretation

[Wallmüller]

Zielorientiertes Messen5/17

Page 6: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Gütekriterien für Metriken

Objektivität Zuverlässigkeit Nützlichkeit Normierung Vergleichbarkeit Ökonomie Messtauglichkeit

Kein subjektiver Einfluss durch Prüfer möglich

Wiederholung liefert gleiche Ergebnisse

Messergebnisse erlauben Rückschluss auf Ausprägung der Qualitätseigenschaft

Es gibt eine Skala für die Messergebnisse

Messung mit geringen Kosten durchführbar

Mit anderen Maßen vergleichbar

Parktische Bedürfnisse werden erfüllt

6/17

Page 7: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Maßtheoretische Grundlagen

Absolutskala

Verhältnisskala

Intervallskala

Nominalskala

Ordinalskala

Kosten (Preis eines Moduls)

Anzahl an Codezeilen

Anwendungs-bereich

Eignung für kleine Unternehmen

Verfügbarkeit

f: reale Welt Zahlenbereich

Skalenhierarchie am Beispiel eines Softwaremoduls

Skala: Kalendertage

Skala: --, -, o, +, ++ Skala: EURO

Skala: Logistik, Personal,Rechnungswesen

Skala: nicht-negativeganze Zahlen

7/17

Page 8: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Klassifikation von Metriken

Prozess-Metriken

Software-Metriken

Zeitverbrauch

Produkt-Metriken

Häufigkeit bestimmterEreignisse

Ressourcen-verbrauch

statisch dynamisch

objektorientiertkonventionell

Umfangsmetriken

LogischeStrukturmetriken

Stilmetriken

Datenstruktur-Metriken

Aggregations-hierarchien

Klassenebene

Vererbungs-hierarchien

Methodenebene

8/17

Page 9: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

EingabenAbfragenAusgabenDatenbeständeReferenzdaten

Beispiele für Metriken (1)

Function-Points-MetrikProduktanforderungen

Abfragen Ausgabedaten Datenbestände

einfachmittel

komplex

einfachmittel

komplex

einfachmittel

komplex

einfachmittel

komplex

Einflussfaktoren

Referenzdaten

einfachmittel

komplex

<1> Jede Anforderung kategorisieren

<2> Jede Anforderung klassifizieren

<3> Anforderungen ins Berechnungsformular eintragen

<4> Einflussfaktorenbewerten

<5> Bewertete FPs berechnen

<6> Aufwand ablesen

<7> Tabelle aktualisieren

<1>

<2> <2> <2> <2> <2>

<3> <3> <3> <3> <3>

<4>

<5>

<6>

FPs 30%

Prozessmetrik: Ressourcenverbrauch

[Fähnrich]

Eingabedaten

2*3+1*4+2*6 22

3

46

4

57

9/17

Page 10: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

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

Beispiele für Metriken (2)Statische, konventionelle Produktmetriken: Umfangsmetriken

10/17

Umfang V = (N1+N2) * ld(n1+n2)n1,n2 Anzahl unterschiedl. Operatoren, OperandenN1,N2 Gesamtzahl verwendeter Operatoren, OperandenOperator kennzeichnet Aktionen (+, *, While, For, ...)Operand kennzeichnet Daten (Variablen, Konstanten, ...)

Page 11: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Beispiele für Metriken (3)

McCabe Programm wird als gerichteter Graph dargestellt Einfach zu berechnen Komplexität von Anweisungen unberücksichtigt

IF FOR

Sequenz Auswahl AbweisendeSchleife

V(g) = 1-2+2 = 1 V(g) = 4-4+2 = 2 V(g) = 3-3+2 = 2

V(g) = e – n + 2pe … Anzahl der Kantenn … Anzahl der Knotenp … Anz. verbundener Komponenten

V(g) = 1 + Anzahl der Binärverzweigungen

Bei nur einem Ein- und Ausgang

Allgemein

Statische, konventionelle Produktmetrik: Logische Strukturmetrik

T F

T F

V(g) = 1+0 = 1 V(g) = 1+1 = 2 V(g) = 1+1 = 2

11/17

Page 12: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Beispiele für Metriken (4)

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 AnweisungenWertzuweisung=1, Goto=5, Prozeduraufruf=1+Parameterzahl, While/For=3, …

EC ... Summe der Ausdruckskomplexitäten aller Ausdrücke+/- =1, MOD=3, Indizierung=2, AND/OR=3, MUL/DIV=2, Dereferenzierung=2, …

DC ... Summe der Datenkomplexitäten aller BezeichnerLokale Namen=1, Formale Parameter=2, Globale Variablen=3

Statische, konventionelle Produktmetrik: Struktur- und Umfangsmetrik12/17

Page 13: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Beispiele für Metriken (5)

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

+ m1()+ m2()

F G

A D

C E

B

H I

+ m4()+ m3()

J

Statische, objektorientierte Produktmetriken13/17

Page 14: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Werkzeugunterstützung

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

Werkzeugbeispiel JStyle 4.614/17

Page 15: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

WerkzeugunterstützungWerkzeugbeispiel JStyle 4.6

15/17

Page 16: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Fazit

Einsatzgebiete Überprüfung von Qualitätseigenschaften Aufwandsabschätzung sicherheitsbewusste Wiederverwendung

Noch geringe Verbreitung Vielzahl von Metriken Zielorientiertes Messen (z.B. GQM) Werkzeugeinsatz

16/17

Page 17: Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Literatur

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“, 2002http://ais.informatik.uni-leipzig.de/studium/vorlesungen/

Hindel, Bernd: „Software-Metriken“, 1999http://www.methodpark.de/f-l_swepwue_de.html

JStyle Code-Review-Tool, Man-Machine-Systemshttp://www.mmsindia.com/jstyle.html

Lichter, Horst: „Software-Qualitätssicherung Vorlesung“, 2002http://www-lufgi3.informatik.rwth-aachen.de/LUFGI3/EDUCATION/SS02/VL_SQS/CELLS/index.html

17/17