Software Engineering in der Praxis



Ähnliche Dokumente
Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer

Software-Metriken. Dipl.-Ing.(BA) Henning Sievert Seminar Software-Entwurf WS 2004/05

Comparison of Software Products using Software Engineering Metrics

Software Engineering in der Praxis

Software Engineering in der Praxis

Anmerkungen zur Übergangsprüfung

Algorithmische Mathematik

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

Algorithmen II Vorlesung am

QM: Prüfen -1- KN

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Grundlagen der Theoretischen Informatik, SoSe 2008

Übung Theoretische Grundlagen

SEQUENZDIAGRAMM. Christoph Süsens

Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

Leica 3D Disto CAD-Werkzeuge

Künstliche Intelligenz Maschinelles Lernen

Vorankündigung Die Verlagsleitung und der Erfolgsautor der Blauen Business-Reihe ist auf der Frankfurter Buchmesse 2007 vertreten.

SS 2005 FAU Erlangen Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner

Station Strahlensätze Teil 3

6.2 Scan-Konvertierung (Scan Conversion)

8. Grammatikentwicklung und kognitive Entwicklung- Die kognitive Entwicklung des Kleinkindes II. Domänenspezifische Fähigkeiten

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Mächtigkeit von WHILE-Programmen

Erstellen von x-y-diagrammen in OpenOffice.calc

Was bringt TDD wirklich?

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Drei Fragen zum Datenschutz im. Nico Reiners

Datenbanken. Erstellen des Semantischen Modells. Manuel Friedrich. Schiller-Gymnasium Hof

sondern alle Werte gleich behandelt. Wir dürfen aber nicht vergessen, dass Ergebnisse, je länger sie in der Vergangenheit

Wasserfall-Ansätze zur Bildsegmentierung

Messung und Aufwandsschätzung bei der Entwicklung von Web Applikationen. Frederik Kramer // Folie 1 von 14

1.3 Die Beurteilung von Testleistungen

Die Komplexitätsklassen P und NP

Korrelation (II) Korrelation und Kausalität

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Informatik I WS 07/08 Tutorium 24

Praktikant / Abschlussarbeit im Bereich Softwareentwicklung / Mechatronik (m/w)

Informationsblatt Induktionsbeweis

Teambildung. 1 Einleitung. 2 Messen der Produktivität

Verwendung von OO-Metriken zur Vorhersage

Graphic Coding. Klausur. 9. Februar Kurs A

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Darstellungsformen einer Funktion

Kombinatorische Optimierung

BROTTEIG. Um Brotteig zu machen, mischt ein Bäcker Mehl, Wasser, Salz und Hefe. Nach dem

RUP Analyse und Design: Überblick

Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle

Standard XPersonenstand - Version Verbindliche Handlungsanweisungen

Die aktuelle Entwicklung des GeoService-Portals. Analyse- und Auswertefunktionen

Konzepte der Informatik

Praktikum Physik. Protokoll zum Versuch: Geometrische Optik. Durchgeführt am

Aufgabenheft. Fakultät für Wirtschaftswissenschaft. Modul Business/IT-Alignment , 09:00 11:00 Uhr. Univ.-Prof. Dr. U.

1 Mathematische Grundlagen

5. Übung: PHP-Grundlagen

Funktionaler Zusammenhang. Lehrplan Realschule

AM 53/2012. Amtliche Mitteilungen 53/2012

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Das Vermögen der privaten Haushalte in Nordrhein-Westfalen ein Überblick auf der Basis der Einkommens- und Verbrauchsstichprobe

Michelson-Interferometer. Jannik Ehlert, Marko Nonho

Versand Etiketten / Endlosdruck

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Strom - Spannungscharakteristiken

Anwendungshinweise zur Anwendung der Soziometrie

Datenexport aus JS - Software

Übung 4. Musterlösungen

Formelsammlung zur Kreisgleichung

1 topologisches Sortieren

Unified Modeling Language (UML)

Mathematik 1: (ohne Taschenrechner) Korrekturanleitung. Kanton St.Gallen Bildungsdepartement. BMS/FMS/WMS/WMI Aufnahmeprüfung Frühling 2015

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren


Softwareentwicklungsprozess im Praktikum. 23. April 2015

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Grundlagen des Maschinellen Lernens Kap. 4: Lernmodelle Teil II

P1-41 AUSWERTUNG VERSUCH GEOMETRISCHE OPTIK

AUTOMATISIERTE HANDELSSYSTEME

Objektorientierte Programmierung OOP

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13)

Information Systems Engineering Seminar

Information zum Projekt. Mitwirkung von Menschen mit Demenz in ihrem Stadtteil oder Quartier

Esgibt viele Softwarelösungen für die Dienstplanung Esgibt aber nur einen Dienstplan wie diesen!

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke

Qualitätssicherung. Was ist Qualität?

Statuten in leichter Sprache

Vorstellung Microsoft Mathematics 4.0

Transkript:

Software Engineering in der Praxis Praktische Übungen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 26

Software-Metriken Josef Adersberger Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 2 / 26

1 Inhalt 2 Nachlese Objektorientiertes Design 3 Software-Metriken Definition Allgemeine Betrachtungen zum Messen 4 Software-Metriken mit Together Lines of Code Halstead-Metrik McCabe-Metrik Messen mit Together 5 Zusatz: Findbugs als Codeanalyse-Werkzeug Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 3 / 26

Objektorientiertes Design Modellieren, wie Probleme gelöst werden Nah an der Implementierung Modellierungssprache UML: Komponentendiagramm Klassendiagramm Objektdiagramm Sequenzdiagramm Zustandsautomat Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 4 / 26

Ab heute betrachten wir eine tiefere Abstraktionsstufe: Code bzw. Implementierung Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 5 / 26

Software-Metriken Definition»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.«(IEEE Standard 1061, 1992) Zweck Software messen, um sie vergleichbar zu machen, um: Qualität zu erhöhen Aufwand/Kosten abzuschätzen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 6 / 26

Software-Metriken Definition»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.«(IEEE Standard 1061, 1992) Zweck Software messen, um sie vergleichbar zu machen, um: Qualität zu erhöhen Aufwand/Kosten abzuschätzen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 6 / 26

Allgemeine Betrachtungen zum Messen Kontext: Reale Welt Menge von Objekten Jedes Objekt verfügt über gewisse Attribute Zum Beispiel: Menge von Menschen mit Attributsfunktion»Alter«Menge von Software mit Attributsfunktion»Lines of Code«Menge von Software mit Attributsfunktion»Qualität«Menge von Software mit Attributsfunktion»Komplexität«Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 7 / 26

Allgemeine Betrachtungen zum Messen Kontext: Reale Welt Menge von Objekten Jedes Objekt verfügt über gewisse Attribute Zum Beispiel: Menge von Menschen mit Attributsfunktion»Alter«Menge von Software mit Attributsfunktion»Lines of Code«Menge von Software mit Attributsfunktion»Qualität«Menge von Software mit Attributsfunktion»Komplexität«Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 7 / 26

Allgemeine Betrachtungen zum Messen Kontext: Reale Welt Menge von Objekten Jedes Objekt verfügt über gewisse Attribute Zum Beispiel: Menge von Menschen mit Attributsfunktion»Alter«Menge von Software mit Attributsfunktion»Lines of Code«Menge von Software mit Attributsfunktion»Qualität«Menge von Software mit Attributsfunktion»Komplexität«Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 7 / 26

Messen Messen bedeutet die experimentelle Bestimmung von Attributwerten. Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 8 / 26

Modell der realen Welt Zur systematischen, wissenschaftlichen Untersuchung: Abbildung der realen Objekte auf mathematische Objekte (Mengen, Funktionen, Relationen,... ). Kontext: Mathematische Welt Menge M von Objekten Attributsfunktion A : M W A Messfunktion m A : M W A (Modelliert das Messverfahren und die Messergebnisse) Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 9 / 26

Korrekte Messung Frage Wird das Richtige gemessen, d. h. ist die Messung korrekt? Bzw. gilt A = m A? Oder abgeschwächter: Korrelieren A und m A? Schwierigkeit Oft kein Konsens über die Definition der Attributsfunktion Beispiele: Qualität oder Komplexität von Software, Intelligenzquotient,... Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 10 / 26

Korrekte Messung Frage Wird das Richtige gemessen, d. h. ist die Messung korrekt? Bzw. gilt A = m A? Oder abgeschwächter: Korrelieren A und m A? Schwierigkeit Oft kein Konsens über die Definition der Attributsfunktion Beispiele: Qualität oder Komplexität von Software, Intelligenzquotient,... Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 10 / 26

Korrekte Messung Frage Wird das Richtige gemessen, d. h. ist die Messung korrekt? Bzw. gilt A = m A? Oder abgeschwächter: Korrelieren A und m A? Schwierigkeit Oft kein Konsens über die Definition der Attributsfunktion Beispiele: Qualität oder Komplexität von Software, Intelligenzquotient,... Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 10 / 26

Korrekte Messung Frage Wird das Richtige gemessen, d. h. ist die Messung korrekt? Bzw. gilt A = m A? Oder abgeschwächter: Korrelieren A und m A? Schwierigkeit Oft kein Konsens über die Definition der Attributsfunktion Beispiele: Qualität oder Komplexität von Software, Intelligenzquotient,... Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 10 / 26

Korrekte Messung Frage Wird das Richtige gemessen, d. h. ist die Messung korrekt? Bzw. gilt A = m A? Oder abgeschwächter: Korrelieren A und m A? Schwierigkeit Oft kein Konsens über die Definition der Attributsfunktion Beispiele: Qualität oder Komplexität von Software, Intelligenzquotient,... Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 10 / 26

Definition von Attributsfunktionen Mögliche Auswege Definiere Attributsfunktion A durch Messfunktion m A : A := m A Korrektheit der Messung per Definition gegeben Postuliere Korrelation zwischen A und m A : Unterstelle jedem Menschen eine intuitive Vorstellung von A Definiere m A Prüfe durch statistischen Tests, ob m A und die»intuitive Funktion«A korrelieren Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 11 / 26

Definition von Attributsfunktionen Mögliche Auswege Definiere Attributsfunktion A durch Messfunktion m A : A := m A Korrektheit der Messung per Definition gegeben Postuliere Korrelation zwischen A und m A : Unterstelle jedem Menschen eine intuitive Vorstellung von A Definiere m A Prüfe durch statistischen Tests, ob m A und die»intuitive Funktion«A korrelieren Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 11 / 26

Beispiel Lines of Code Definition der Attributsfunktion Für alle Programme p: A(p) :=»Anzahl der Zeilen von p«definition der Messfunktion Definition der Messfunktion m A durch Algorithmus: Eingabe: Programm p Berechnung: Zählen der Zeilenendmarkierungen in p Ausgabe: Anzahl der Zeilen in p Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 12 / 26

Beispiel Lines of Code Definition der Attributsfunktion Für alle Programme p: A(p) :=»Anzahl der Zeilen von p«definition der Messfunktion Definition der Messfunktion m A durch Algorithmus: Eingabe: Programm p Berechnung: Zählen der Zeilenendmarkierungen in p Ausgabe: Anzahl der Zeilen in p Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 12 / 26

Beispiel Lines of Code Korrektheit der Messung Durch mathematischen Beweis folgerbar: A = m a Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 13 / 26

Beispiel Software-Komplexität Problem Keine allgemein anerkannte, genaue Definition der Attributsfunktion Software-Komplexität. Hoffnung Intuitive Vorstellung der Attributsfunktion Software-Komplexität korreliert mit einer Messfunktion (z. B. Lines of Code) Nur durch statistischen Tests (Experiment) feststellbar Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 14 / 26

Beispiel Software-Komplexität Problem Keine allgemein anerkannte, genaue Definition der Attributsfunktion Software-Komplexität. Hoffnung Intuitive Vorstellung der Attributsfunktion Software-Komplexität korreliert mit einer Messfunktion (z. B. Lines of Code) Nur durch statistischen Tests (Experiment) feststellbar Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 14 / 26

Beispiel Software-Komplexität Problem Keine allgemein anerkannte, genaue Definition der Attributsfunktion Software-Komplexität. Hoffnung Intuitive Vorstellung der Attributsfunktion Software-Komplexität korreliert mit einer Messfunktion (z. B. Lines of Code) Nur durch statistischen Tests (Experiment) feststellbar Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 14 / 26

Software-Metriken mit Together Das Werkzeug Together bietet verschiedene Metriken an, um Software zu messen. Für das Praktikum wichtig: Lines of Code (LOC) Halstead Program Length (HPLen) Halstead Program Volume (HPVol) Cyclomatic Complexity nach McCabe (CC) Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 15 / 26

LOC (Anzahl der Code-Zeilen) Vorteile Einfach zu berechnen Einfach nachzuvollziehen Nachteile Keine hohe Aussagekraft Abhängig vom Programmierstil Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 16 / 26

LOC (Anzahl der Code-Zeilen) Vorteile Einfach zu berechnen Einfach nachzuvollziehen Nachteile Keine hohe Aussagekraft Abhängig vom Programmierstil Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 16 / 26

Halstead-Metrik Betrache Programm als Wort über zwei disjunkte Alphabete: Σ 1 Operatoren-Alphabet (Schlüsselwörter, +,, Funktionenbezeichner,... ) Σ 2 Operanden-Alphabet (Variablen, Literale) Definiere dann: N 1 :=»Gesamtanzahl der vorkommenden Operatoren«N 2 :=»Gesamtanzahl der vorkommenden Operanden«N := N 1 + N 2 (Programmlänge HPLen) n := Σ 1 + Σ 2 (Programmwortschatz HPVoc) V := N log n (Programmvolumen HPVol) Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 17 / 26

Halstead-Metrik Betrache Programm als Wort über zwei disjunkte Alphabete: Σ 1 Operatoren-Alphabet (Schlüsselwörter, +,, Funktionenbezeichner,... ) Σ 2 Operanden-Alphabet (Variablen, Literale) Definiere dann: N 1 :=»Gesamtanzahl der vorkommenden Operatoren«N 2 :=»Gesamtanzahl der vorkommenden Operanden«N := N 1 + N 2 (Programmlänge HPLen) n := Σ 1 + Σ 2 (Programmwortschatz HPVoc) V := N log n (Programmvolumen HPVol) Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 17 / 26

Halstead-Metrik (Fortsetzung) Vorteile Einfach zu berechnen Indikator für Fehleranfälligkeit und Wartungsaufwand Robust in der Wahl der Programmiersprache Nachteile Nur auf vollständigen Code anwendbar Weiterführende Halstead-Metriken, wie Mentaler Aufwand fragwürdig Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 18 / 26

Halstead-Metrik (Fortsetzung) Vorteile Einfach zu berechnen Indikator für Fehleranfälligkeit und Wartungsaufwand Robust in der Wahl der Programmiersprache Nachteile Nur auf vollständigen Code anwendbar Weiterführende Halstead-Metriken, wie Mentaler Aufwand fragwürdig Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 18 / 26

McCabe-Metrik Annahme: Programm hat genau einen Eintritts- und genau einen Austrittspunkt (erfüllt beim strukturellen Programmieren) Aufbau des Kontrollflussgraphen G Anzahl der Kanten: e Anzahl der Knoten: n Zyklomatische Komplexität: ν[g] = e n + 2 (CC) Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 19 / 26

McCabe-Metrik Annahme: Programm hat genau einen Eintritts- und genau einen Austrittspunkt (erfüllt beim strukturellen Programmieren) Aufbau des Kontrollflussgraphen G Anzahl der Kanten: e Anzahl der Knoten: n Zyklomatische Komplexität: ν[g] = e n + 2 (CC) Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 19 / 26

McCabe-Metrik Annahme: Programm hat genau einen Eintritts- und genau einen Austrittspunkt (erfüllt beim strukturellen Programmieren) Aufbau des Kontrollflussgraphen G Anzahl der Kanten: e Anzahl der Knoten: n Zyklomatische Komplexität: ν[g] = e n + 2 (CC) Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 19 / 26

McCabe-Metrik (Fortsetzung) Eigenschaften ν[g] ist die maximale Anzahl linear unabhängiger Zyklen im erweiterten Kontrollflussgraphen (= Kontrollflussgraph + Kante vom Austrittspunkt zum Eintrittspunkt). Verfeinfachung unter folgender Annahme: Nur vier Klassen von Knoten im Kontrollflussgraphen: x Funktionsknoten Knoten, die Berechnung ausführen y Sammelknoten Knoten, die Verzweigung zusammenführen z Prädikatenknoten Knoten mit 2 Ausgangskanten 2 Zusatzknoten Eingangs- bzw. Ausgangsknoten Dann gilt: ν[g] = e n + 2 = (1 + x + y + 2z) (x + y + z + 2) + 2 = z + 1 Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 20 / 26

McCabe-Metrik (Fortsetzung) Eigenschaften ν[g] ist die maximale Anzahl linear unabhängiger Zyklen im erweiterten Kontrollflussgraphen (= Kontrollflussgraph + Kante vom Austrittspunkt zum Eintrittspunkt). Verfeinfachung unter folgender Annahme: Nur vier Klassen von Knoten im Kontrollflussgraphen: x Funktionsknoten Knoten, die Berechnung ausführen y Sammelknoten Knoten, die Verzweigung zusammenführen z Prädikatenknoten Knoten mit 2 Ausgangskanten 2 Zusatzknoten Eingangs- bzw. Ausgangsknoten Dann gilt: ν[g] = e n + 2 = (1 + x + y + 2z) (x + y + z + 2) + 2 = z + 1 Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 20 / 26

McCabe-Metrik (Fortsetzung) Eigenschaften ν[g] ist die maximale Anzahl linear unabhängiger Zyklen im erweiterten Kontrollflussgraphen (= Kontrollflussgraph + Kante vom Austrittspunkt zum Eintrittspunkt). Verfeinfachung unter folgender Annahme: Nur vier Klassen von Knoten im Kontrollflussgraphen: x Funktionsknoten Knoten, die Berechnung ausführen y Sammelknoten Knoten, die Verzweigung zusammenführen z Prädikatenknoten Knoten mit 2 Ausgangskanten 2 Zusatzknoten Eingangs- bzw. Ausgangsknoten Dann gilt: ν[g] = e n + 2 = (1 + x + y + 2z) (x + y + z + 2) + 2 = z + 1 Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 20 / 26

McCabe-Metrik (Fortsetzung) Vorteile Indikator für Wartungsaufwand Anhaltspunkt für die Zahl benötigter unabhängiger Testfälle für Kontrollflussabdeckung Früh in der Entwicklung einsetzbar Nachteile Keine Datenkomplexität Gleiche Gewichtung geschachtelter wie ungeschachtelter Schleifen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 21 / 26

McCabe-Metrik (Fortsetzung) Vorteile Indikator für Wartungsaufwand Anhaltspunkt für die Zahl benötigter unabhängiger Testfälle für Kontrollflussabdeckung Früh in der Entwicklung einsetzbar Nachteile Keine Datenkomplexität Gleiche Gewichtung geschachtelter wie ungeschachtelter Schleifen Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 21 / 26

Auswertungsmöglichkeiten Zunächst eine Tabelle... Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 22 / 26

Auswertungsmöglichkeiten (Fortsetzung) Farbliche Kennzeichnung der Ergebnisse: blau: Wert liegt unter einer gegebenen unteren Schranke rot: Wert liegt über einer gegebenen oberen Schranke schwarz: Wert liegt zwischen den Schranken Aggregation der Werte Zur Klasse Zum Package Kiviat-Diagramme Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 23 / 26

Kiviat-Diagramme Mehrere Werte werden sternförmig aufgetragen: Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 24 / 26

Kiviat-Diagramme (Fortsetzung) Richtwerte bestimmen Vom Tool vorgeschlagen Einstellbar Maximum und Minimum Maßzahlen normieren Im Graphen eintragen Richtwerte als Kreise Metriken als Strahlen Werte des Betrachteten Moduls als Polygon Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 25 / 26

Findbugs als Codeanalyse-Werkzeug Zusätzlich zu herkömmlichen Metriken erlaubt das Werkzeug Findbugs die Suche nach Bugpattern Nützlich, um nach bestimmen Kriterien die Qualität des Codes zu erhöhen Zum Beispiel: Einhalten von Codingstandards, Streams nach dem Öffnen schließen,... Adersberger, Spisländer FAU Erlangen-Nürnberg Software-Metriken 26 / 26