Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken...

24
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universit¨ at Bremen Wintersemester 2011/12 ¨ Uberblick I Software-Metriken

Transcript of Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken...

Page 1: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Softwaretechnik

Prof. Dr. Rainer Koschke

Fachbereich Mathematik und InformatikArbeitsgruppe Softwaretechnik

Universitat Bremen

Wintersemester 2011/12

Uberblick I

Software-Metriken

Page 2: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken:

Software-Metriken

Software-MetrikenMessen und MaßeSkalenGutekriterien fur MetrikenVorgehensweiseKlassifikation von SoftwaremetrikenProzessmetrikenRessourcenmetrikenProduktmetrikenAnwendungenProblemeGoal-Question-Metric-AnsatzWiederholungsfragen

3 / 40

Software-Metriken:

Lernziele

Verstehen, was eine Software-Metrik ist

die Einsatzmoglichkeiten von Metriken kennen

Metriken beurteilen und auswahlen konnen

4 / 40

Page 3: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken:

Literatur

– Fenton und Pfleeger (1998)

5 / 40

Software-Metriken: Messen und Maße

Bedeutung des Messens

“To measure is to know.” Clerk Maxwell, 1831-1879

“A science is as mature as its measurement tools.”Louis Pasteur, 1822-1895

”‘Miss alles, was sich messen lasst, und mach alles messbar,was sich nicht messen lasst.”’ Galileo Galilei, 1564-1642

”‘Messen konnen Sie vieles, aber das Angemessene erkennenkonnen Sie nicht.”’ Hans Gadamer

6 / 40

Page 4: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Messen spielt in allen Ingenieurswissenschaften eine wichtige Rolle.

Galilei: Ziel der Wissenschaft; durch Messung zu verstandlicheren undnachprufbaren Konzepten/Ergebnissen kommen.

Software-Metriken: Messen und Maße

Definitionen: Maß, Messen, Metrik

DefinitionMaß:Abbildung von einem beobachteten (empirischen)Beziehungssystem auf ein numerisches Beziehungssystem

Abbildung von Eigenschaften von Objekten der realen Welt aufZahlen oder Symbole

DefinitionMessen: Anwendung eines Maßes auf ein Objekt

DefinitionMetrik: Abstandsmaß (math.)

7 / 40

Page 5: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Messen und Maße

Definitionen fur Software-Metriken

“A quantitative measure of the degree to which a system,component, or process possesses a given variable.”

– IEEE Standard Glossary

“A software metric is any type of measurement which relatesto a software system, process or related documentation.”

– Ian Summerville

8 / 40

Software-Metriken: Messen und Maße

Messen und Softwaretechnik

Beschreibung: kompakt und objektiv

Beurteilung: Vergleich, Verbesserungen

Vorhersage: geordnete Planung, Verbesserungen

9 / 40

Page 6: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Messen und Maße

Fragen bei Maßen

Reprasentanz Darstellung als Zahl sinnvoll moglich?

Eindeutigkeit viele Abbildungen moglich

Bedeutung erhalten bei Transformationen

Skalierung welche Skala?

10 / 40

Woruber wir uns bei der Definition von Metriken Gedanken machen

mussen.

Page 7: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

There are three important questions concerning representations andscales:

1. How do we determine when one numerical relation system ispreferable to another?

2. How do we know if a particular empirical relation system has arepresentation in a given numerical relation system?

3. What do we do when we have several different possiblerepresentations (and hence many scales) in the same numericalrelation system?

Question 2 is known as the representation problem.

— Fenton und Pfleeger (1998)

Software-Metriken: Messen und Maße

Skalen

1

”20 Prozent Verbesserung der Qualitat“

2

”Dieser Kunde ist doppelt so zufrieden wie jener“

3

”Heute doppelt so warm wie gestern“

(Temperatur gestern: 10◦C; heute: 20◦C)

1 Was ist Qualitat Null?

2 Wie zufrieden sind sie denn?

3 10◦C → 20◦C = +3,5%denn 10◦C = 283 Kelvin, 20◦C = 293 Kelvin

→ Skala?

11 / 40

Page 8: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Skalen

Skalenhierarchie

+, −

<, >

=, 6=

/

absoluter Vergleich

Absolutskala

Intervallskala

Nominalskala

Ordinalskala

Rationalskala

12 / 40

Software-Metriken: Skalen

Skalenhierarchie – Nominalskala

1. Nominalskala

ungeordnete 1:1 Abbildung

Transformationen: beliebige 1:1

Operationen: =, 6=Statistiken: Haufigkeit

Beispiel: Programmiersprachen

Ada C C++ Java . . .

13 / 40

Page 9: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Skalen

Skalenhierarchie – Ordinalskala

2. Ordinalskala

dazu: vollstandige Ordnung

Transformationen: streng monoton steigend

Operationen: <, >

Statistiken: Median

Beispiel: Prioritaten

niedrig < mittel < hoch

14 / 40

Software-Metriken: Skalen

Skalenhierarchie – Intervallskala

3. Intervallskala

dazu: Distanzfunktion

Transformationen: M ′ = aM + b (a > 0)

Operationen: +, −Statistiken: Mittelwert, Standardabweichung

Beispiel: Temperatur

TCelsius = 59 · (TFahrenheit − 32)

15 / 40

Page 10: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Skalen

Definition Metrik

Metrik: Distanzfunktion d : A× A→ IR, mit:

d(a, b) ≥ 0 ∀a, b ∈ A, d(a, b) = 0⇔ a = b

d(a, b) = d(b, a) ∀a, b ∈ A

d(a, c) ≤ d(a, b) + d(b, c) ∀a, b, c ∈ A

16 / 40

Software-Metriken: Skalen

Skalenhierarchie – Rationalskala

4. Rationalskala

dazu: Maßeinheit, Nullpunkt

Transformationen: M ′ = aM (a > 0)

Operationen: /

Statistiken: geom. Mittel, Korrelation

Beispiel: Lange

LMeter = LMeilen · 1609

17 / 40

Page 11: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Das geometrische Mittel zwischen zwei Zahlenwerten ist:√f 1 · f 2

Das arithmetische Mittel zwischen zwei Zahlwerten ist: (f 1 + f 2)/2

Software-Metriken: Skalen

Skalenhierarchie – Absolutskala

5. Absolutskala

Metrik steht fur sich selbst, kann nicht anders ausgedrucktwerden

Transformationen: nur die Identitat M ′ = M

Operationen: absoluter Vergleich; d.h

es existiert ein naturlicher Nullpunktund Maßeinheit ist naturlich gegeben (d.h. im weitesten Sinne’Stuck’)

Beispiele:

Zahler: Anzahl Personen in einem ProjektWahrscheinlichkeit eines FehlersLOC fur Anzahl Codezeilennicht: LOC fur Programmlange

18 / 40

Page 12: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Gutekriterien fur Metriken

Gutekriterien fur Metriken

Objektivitat

Validitat

Zuverlassigkeit

Nutzlichkeit

Normiertheit

Vergleichbarkeit

Okonomie

– Balzert (1997)

19 / 40

(Gute entspr. Qualitat)Objekt.: kein subjektiver Einfluss durch Messenden moglichValid.: misst wirklich das, was sie vorgibt zu messenZuverl.: Wiederholung liefert gleiche ErgebnisseNutzl.: hat praktische BedeutungNorm.: es gibt eine Skala fur die MessergebnisseVergl.: mit anderen Maßen vergleichbarOkon.: mit vertretbaren Kosten messbar

Page 13: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Vorgehensweise

Vorgehensweise

1 Definition

ZielbestimmungModellbildungSkalentypbestimmungMaßdefinition

2 Validierung3 Anwendung

Konkretes Modell bildenMessungInterpretationSchlussfolgerung

20 / 40

Software-Metriken: Vorgehensweise

Validierung von Maßen

Interne Validierung:

Nachweis, dass ein Maß eine gultige numerischeCharakterisierung des entsprechenden Attributs ist, durch

Nachweis der Erfullung der Reprasentanzbedingung

und Prufung des Skalentyps

Externe Validierung → Vorhersagemodell:

Hypothese uber Zusammenhang zwischen zwei Maßen

Erfassung der Meßwerte beider Maße auf gleicher Testmenge

Statistische Analyse der Ergebnisse→ Bestimmung von Parametern→ Prufung der Allgemeingultigkeit

21 / 40

Page 14: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Klassifikation von Softwaremetriken

Klassifikation von Softwaremetriken

Was: Ressource/Prozess/Produkt

Wo: intern/extern (isoliert/mit Umgebung)

Wann: in welcher Phase des Prozesses

Wie: objektiv/subjektiv, direkt/abgeleitet

Ressourcen

Pla

nung

Test

Analy

seE

ntw

urf

Imple

men−

tieru

ng

Ein

führu

ng

Wartung

ProzessProdukt

22 / 40

Bei den Metriken unterscheidet man zwischen internen und externenMetriken. Eine interne Metrik ist daruber definiert, dass sie nurEigenschaften innerhalb des untersuchten Objektes misst, wohingegenexterne Metriken die Interaktion des Objektes mit seiner Umgebungberucksichtigen.

Page 15: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Klassifikation von Softwaremetriken

Klassifikation nach Fenton und Pfleeger (1998)

intern externintern extern intern extern

Produkt−MetrikenProzess−Metriken

Software−Metriken

Ressourcen−Metriken

23 / 40

Software-Metriken: Prozessmetriken

Prozessmetriken

Produkt−MetrikenProzess−Metriken

Software−Metriken

Ressourcen−Metriken

intern extern intern extern intern extern

intern:

Zeit/Dauer

Aufwand

Anzahl von Ereignissenz.B. Fehler, Anderungen

extern:

Qualitat

Kontrollierbarkeit

Stabilitat

Kosten

24 / 40

Page 16: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Ressourcenmetriken

Ressourcenmetriken

intern externintern extern

Produkt−MetrikenProzess−Metriken

Software−Metriken

Ressourcen−Metriken

intern extern

intern:

Personal (Alter, Lohn)

Teamgroße/-struktur

Produktionsmaterialien

Werkzeuge, Methoden

extern:

Produktivitat

Erfahrung

Kommunikation

. . .

25 / 40

Software-Metriken: Produktmetriken

Produktmetriken – intern

intern extern intern extern

Produkt−MetrikenProzess−Metriken

Software−Metriken

Ressourcen−Metriken

intern extern

Große:

LOC

Halstead

Function Points

Bang (DeMarco)

Komplexitat:

McCabe Cyclomatic Complexity

Kontrollflussgraph

Datenfluss

OO-Metriken

26 / 40

Page 17: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Produktmetriken

Produktmetriken – extern

intern extern intern extern

Produkt−MetrikenProzess−Metriken

Software−Metriken

Ressourcen−Metriken

intern extern

Zuverlassigkeit

Verstandlichkeit

Benutzerfreundlichkeit

Performanz

Portierbarkeit

Wartbarkeit

Testbarkeit

. . .

27 / 40

Software-Metriken: Produktmetriken

Produktmetriken – intern

Vorteil: automatische Erfassung

Die Klassiker:

LOC - Lines Of Code

Halstead (1977)

McCabe (1976)

OO-Metriken (Chidamber und Kemerer 1994)

28 / 40

Page 18: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Produktmetriken

Großenmetriken – LOC

Lines of code (LOC)

+ relativ einfach messbar

+ starke Korrelation mit anderen Maßen

– ignoriert Komplexitat von Anweisungen und Strukturen

– schlecht vergleichbar

abgeleitet: Kommentaranteil

29 / 40

Software-Metriken: Produktmetriken

Physical source lines (COCOMO 2.0)

When a line or statement contains more than one type, classify itas the type with the highest precedence.

Statement type Precedence Included

Executable 1√

NonexecutableDeclarations 2

Compiler directives 3Comments

On their own lines 4On lines with source code 5Banners and non-blank spacers 6Blank (empty) comments 7Blank lines 8

30 / 40

Page 19: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Produktmetriken

Physical source lines (COCOMO 2.0)

How produced Included

Programmed√

Generated with source code generatorsConverted with automated translators

Copied or reused without change√

Modified√

Removed

31 / 40

Software-Metriken: Produktmetriken

Physical source lines (COCOMO 2.0)

Origin Included

New work: no prior existence√

Prior work: taken or adapted from√

A previous version, build, or release√

Commercial off-the-shelf software (COTS), other than librariesGovernment furnished software (GFS), other than reuse librariesAnother productA vendor-supplied language support library (unmodified)A vendor-supplied operating system or utility (unmodified)A local or modified language support library or operating systemOther commercial libraryA reuse library (software designed for reuse)

Other software component or library√

32 / 40

Page 20: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Anwendungen

Anwendungen

Beurteilung des aktuellen Zustands

ProjektuberwachungProduktivitatSoftwarequalitatProzessqualitat (CMM)

Vorhersage des zukunftigen Zustands

AufwandsabschatzungPrognose fur Wartungskosten

33 / 40

Software-Metriken: Probleme

Probleme

Datenerfassung sehr aufwendig, zunachst wenig Nutzen

Datenerfassung nicht konsistent

Teilweise Messungen schwierig durchfuhrbar

Zweck der Messungen muss klar sein

Integration der Datenerfassung in den normalen Arbeitsprozess

Metriken mussen wohldefiniert und validiert sein

Beziehungen zwischen Metriken mussen definiert sein

Gefahr der Fehlinterpretation

34 / 40

Page 21: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Goal-Question-Metric-Ansatz

Zielorientiertes Messen

Goal-Question-Metric (GQM) (Basili und Weiss 1984))

1 Ziele erfassen

2 zur Prufung der Zielerreichung notwendige Fragen ableiten

3 was muss gemessen werden, um diese Fragen zu beantworten

35 / 40

Nicht das messen, was einfach zu bekommen ist, sondern das, was

benotigt wird.

Page 22: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Goal-Question-Metric-Ansatz

Zielorientiertes Messen

Anteil der

Programmierer, die

Standard benutzen

Erfahrung der Programmierer

mit Standard/Sprache/Umgebung

den Standard?

Wer benutztProduktivität

Wie ist die

der Programmierer?des Codes?

Wie ist die Qualität

Effektivität der Codierrichtlinien bestimmen

Fehler

M

G

Q

Aufwand

Code−Größe

36 / 40

Software-Metriken: Goal-Question-Metric-Ansatz

Beispiel: Prozess

Ziel Frage Metrik

MaximiereKundenzu-friedenheit

Wie viele Problemetreten beim Kundenauf?

• #Fehler (FR) und#Anderungswunsche (AR)

• Zuverlassigkeit

• Break/Fix-Verhaltnis

Wie lange dauertProblembehebung?

• Verhaltnis und Dauer offenerund geschlossener FR/AR

Wo sindFlaschenhalse?

• Personalnutzung

• Nutzung anderer Ressourcen

37 / 40

Page 23: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Wiederholungsfragen

Wiederholungs- und Vertiefungsfragen

Was ist ein Maß? Was ist eine Metrik?

Was ist eine Software-Metrik?

Welche Skalen gibt es fur Daten? Welche Eigenschaftenhaben diese?

Beschreiben Sie das Vorgehen bei der Definition undEinfuhrung eines Maßes. Was unterscheidet die interne vonder externen Validierung?

Wie lassen sich Software-Metriken klassifizieren? Nennen SieBeispiele fur jede Klasse.

Was ist die Bedeutung von Metriken imSoftware-Entwicklungsprozess?

Was ist die GQM-Methode? Erlautern Sie GQM anhand desZieles X.

N.B.: Die Ubungsaufgaben sind weitere Beispiele relevanter Fragen.

38 / 40

Software-Metriken: Wiederholungsfragen

1 Balzert 1997 Balzert, Helmut: Lehrbuch derSoftware-Technik. Spektrum Akademischer Verlag, 1997. –ISBN 3827400651

2 Basili und Weiss 1984 Basili, R. ; Weiss, D. M.: AMethodology for Collecting Valid Software Engineering Data. In:IEEE Transactions on Software Engineering 10 (1984),November, Nr. 6, S. 728–738

3 Chidamber und Kemerer 1994 Chidamber, S.R. ;Kemerer, C.F.: A Metrics Suite for Object Oriented Design.In: IEEE Transactions on Software Engineering 20 (1994), Nr. 6,S. 476–493

4 Fenton und Pfleeger 1998 Fenton, N. ; Pfleeger, S.:Software Metrics: A Rigorous & Practical Approach. 2nd.London : International Thomson Computer Press, 1998

5 Halstead 1977 Halstead, Maurice H.: Elements of SoftwareScience. In: Operating, and Programming Systems Series 7(1977)

39 / 40

Page 24: Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken Software-Metriken Messen und Maˇe Skalen Gutekriterien fur Metriken Vorgehensweise Klassi kation

Software-Metriken: Wiederholungsfragen

6 McCabe 1976 McCabe, T.: A Software Complexity Measure.In: IEEE Transactions on Software Engineering 2 (1976), Nr. 4,S. 308–320

40 / 40