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



Ähnliche Dokumente
Software Engineering in der Praxis

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken

Software Engineering in der Praxis

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

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

Was bringt TDD wirklich?

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

Comparison of Software Products using Software Engineering Metrics

Anmerkungen zur Übergangsprüfung

Darstellungsformen einer Funktion

Software Engineering in der Praxis

Variablen & erweiterte Aktionen nutzen

Verwendung von OO-Metriken zur Vorhersage

Software Engineering in der Praxis

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

Kapitalerhöhung - Verbuchung

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

Algorithmische Mathematik

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

WS 2009/10. Diskrete Strukturen

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Algorithmen II Vorlesung am

Planen mit mathematischen Modellen 00844: Computergestützte Optimierung. Autor: Dr. Heinz Peter Reidmacher

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

Communication Metrics for Software Development

Ein Scan basierter Seitenangriff auf DES

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

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

Information Systems Engineering Seminar

6.2 Scan-Konvertierung (Scan Conversion)

Programmiertechnik II

Statistik II. Statistik II, SS 2001, Seite 1 von 5

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

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Whitebox-Tests: Allgemeines

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

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

Zeichen bei Zahlen entschlüsseln

Qualitätsmanagement im Projekt

QM: Prüfen -1- KN

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

SWE12 Übungen Software-Engineering

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Formelsammlung zur Kreisgleichung

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

Theoretische Grundlagen der Informatik WS 09/10

Leica 3D Disto CAD-Werkzeuge

Anleitung zum DKM-Computercheck Windows Defender aktivieren

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten

Station Strahlensätze Teil 3

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Theoretische Grundlagen der Informatik

Messmittelfähigkeit. Andreas Masmünster, Quality Control Event, 30. Juni 2011

Urlaubsregel in David

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Grundbegriffe der Informatik

Kapiteltests zum Leitprogramm Binäre Suchbäume

15 Optimales Kodieren

Problem crazytrickler unter Windows 8:

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Fachhochschule Bochum Fachhochschule Münster Fachhochschule Südwestfalen

Kombinatorische Optimierung

Künstliche Intelligenz Maschinelles Lernen

Informationen zum Aufnahmetest Mathematik

Übung Theoretische Grundlagen

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

MATHEMATIK 3 STUNDEN. DATUM: 8. Juni 2009

Kurzanleitung So geht s

FULFILLMENT VON ALLYOUNEED

Testen und Metriken. Einige Fehler. Fehler vermeiden. Andreas Zeller Universität des Saarlandes Microsoft Research.

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

Management von Softwaresystemen Systembewertung: Metriken und Prozess

Zeit- und Feriensaldoberechnung TimeSafe Leistungserfassung

Nachkalkulation. Hat sich das Objekt CVO Auxilium hilden im Juni rentiert?

Fragebogen: Abschlussbefragung

p-cost Benutzerhandbuch Alfred Pabinger

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

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

Informationsblatt Induktionsbeweis

Eine Bürokratiekostenfolgenabschätzung zum zweiten Gesetz für moderne Dienstleistungen am Arbeitsmarkt im Hinblick auf die Einführung einer Gleitzone

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

Kapitalerhöhung - Verbuchung

Codes und Informationsgehalt

Teambildung. 1 Einleitung. 2 Messen der Produktivität

Noten ausrechnen mit Excel/Tabellenkalkulation. 1) Individuellen Notenschlüssel/Punkteschlüssel erstellen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Java-Tutorium WS 09/10

Objektbasierte Entwicklung

Klausur zur Vorlesung Multivariate Verfahren, SS Kreditpunkte, 90 min

Grundlagen der Theoretischen Informatik, SoSe 2008

Informatik I WS 07/08 Tutorium 24

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

SJ OFFICE - Update 3.0

Graphic Coding. Klausur. 9. Februar Kurs A

Transkript:

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 1 / 24 Software-Metriken Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 2 / 24 1 Inhalt 2 Software-Metriken Definition Allgemeine Betrachtungen zum Messen 3 Software-Metriken mit Together Lines of Code Halstead-Metrik McCabe-Metrik Messen mit Together 4 Zusatz: FindBugs als Codeanalyse-Werkzeug

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 3 / 24 Ab heute betrachten wir eine tiefere Abstraktionsstufe: Code bzw. Implementierung

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, 1998) Zweck Software messen, um sie vergleichbar zu machen, um: Qualität zu erhöhen Aufwand/Kosten abzuschätzen

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 5 / 24 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«

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 6 / 24 Messen Messen bedeutet die experimentelle Bestimmung von Attributwerten.

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)

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

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 9 / 24 Definition von Attributsfunktionen Mögliche Auswege Definiere Attributsfunktion A durch Messfunktion m A : A := m A Korrektheit der Messung per Definition gegeben Untersuche Korrelation zwischen A und m A : Unterstelle jedem Menschen eine intuitive Vorstellung von A Definiere m A Prüfe durch statistischen Test, ob m A und die»intuitive Funktion«A korrelieren

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

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 11 / 24 Beispiel Lines of Code Korrektheit der Messung Durch mathematischen Beweis folgerbar: A = m A

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 Test (Experiment) feststellbar

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 13 / 24 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)

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 14 / 24 LOC (Anzahl der Code-Zeilen) Vorteile Einfach zu berechnen Einfach nachzuvollziehen Nachteile Keine hohe Aussagekraft Abhängig vom Programmierstil

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 15 / 24 Halstead-Metrik Betrachte 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)

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

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 17 / 24 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)

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 18 / 24 McCabe-Metrik (Fortsetzung) Eigenschaften ν[g] ist die maximale Anzahl linear unabhängiger Zyklen im erweiterten Kontrollflussgraphen (= Kontrollflussgraph + Kante vom Austrittspunkt zum Eintrittspunkt). Vereinfachung 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

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 19 / 24 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

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 20 / 24 Auswertungsmöglichkeiten Zunächst eine Tabelle...

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 21 / 24 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

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 22 / 24 Kiviat-Diagramme Mehrere Werte werden sternförmig aufgetragen:

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 23 / 24 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

Lill, Meitner, Föhrweiser, Spisländer FAU Erlangen-Nürnberg Software-Metriken 24 / 24 FindBugs als Codeanalyse-Werkzeug Zusätzlich zu herkömmlichen Metriken erlaubt das Werkzeug FindBugs die Suche nach Bug Pattern 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,...