Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken...
Transcript of Softwaretechnik Uberblick I Software-Metriken · Software-Metriken: Software-Metriken...
Softwaretechnik
Prof. Dr. Rainer Koschke
Fachbereich Mathematik und InformatikArbeitsgruppe Softwaretechnik
Universitat Bremen
Wintersemester 2011/12
Uberblick I
Software-Metriken
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
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
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
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
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.
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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.
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
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
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