Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann.

Ähnliche Präsentationen


Präsentation zum Thema: "Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann."—  Präsentation transkript:

1 Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann

2 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 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. 2/17

3 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

4 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

5 Einsatz von Metriken (2) GQM (Goal-Question-Metric)- Ansatz Project Plan Planning Goal Question Metric Goal Attainment Answer Measurement Collected Data Definition Data Collection Interpretation [Wallmüller] Zielorientiertes Messen 5/17

6 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

7 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-negative ganze Zahlen 7/17

8 Klassifikation von Metriken Prozess-Metriken Software-Metriken Zeitverbrauch Produkt-Metriken Häufigkeit bestimmter Ereignisse Ressourcen- verbrauch statischdynamisch objektorientiertkonventionell Umfangsmetriken Logische Strukturmetriken Stilmetriken Datenstruktur- Metriken Aggregations- hierarchien Klassenebene Vererbungs- hierarchien Methodenebene 8/17

9 Eingaben Abfragen Ausgaben Datenbestände Referenzdaten Beispiele für Metriken (1) Function-Points-Metrik Produktanforderungen AbfragenAusgabedatenDatenbestände einfach mittel komplex einfach mittel komplex einfach mittel komplex einfach mittel komplex Einflussfaktoren Referenzdaten einfach mittel komplex Jede Anforderung kategorisieren Jede Anforderung klassifizieren Anforderungen ins Berechnungsformular eintragen Einflussfaktoren bewerten Bewertete FPs berechnen Aufwand ablesen Tabelle aktualisieren FPs 30% Prozessmetrik: Ressourcenverbrauch [Fähnrich] Eingabedaten 2 *3+ 1 *4+ 2 * /17

10 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 = (N 1 +N 2 ) * ld(n 1 +n 2 ) n 1,n 2 Anzahl unterschiedl. Operatoren, Operanden N 1,N 2 Gesamtzahl verwendeter Operatoren, Operanden Operatorkennzeichnet Aktionen (+, *, While, For,...) Operandkennzeichnet Daten (Variablen, Konstanten,...)

11 Beispiele für Metriken (3) McCabe Programm wird als gerichteter Graph dargestellt Einfach zu berechnen Komplexität von Anweisungen unberücksichtigt IFFOR Sequenz Auswahl Abweisende Schleife V(g) = = 1 V(g) = = 2 V(g) = = 2 V(g) = e – n + 2p e … Anzahl der Kanten n … Anzahl der Knoten p … Anz. verbundener Komponenten V(g) = 1 + Anzahl der Binärverzweigungen Bei nur einem Ein- und Ausgang Allgemein Statische, konventionelle Produktmetrik: Logische Strukturmetrik TF TF V(g) = 1+0 = 1 V(g) = 1+1 = 2 11/17

12 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 Anweisungen Wertzuweisung=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 Bezeichner Lokale Namen=1, Formale Parameter=2, Globale Variablen=3 Statische, konventionelle Produktmetrik: Struktur- und Umfangsmetrik 12/17

13 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() FG AD CE B HI + m4()+ m3() J Statische, objektorientierte Produktmetriken 13/17

14 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 /17

15 Werkzeugunterstützung Werkzeugbeispiel JStyle /17

16 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

17 Literatur Rechenberg, Peter: Ein neues Maß für die softwaretechnische Komplexität von Programmen Informatik – Forschung und Entwicklung, Band 1, 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, Hindel, Bernd: Software-Metriken, JStyle Code-Review-Tool, Man-Machine-Systems Lichter, Horst: Software-Qualitätssicherung Vorlesung, /17


Herunterladen ppt "Metriken Seminar Programmierstil, WS2002/03 Clemens Holzmann."

Ähnliche Präsentationen


Google-Anzeigen