Softwaremessung und -metrik



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

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

Software Engineering in der Praxis

Verwendung von OO-Metriken zur Vorhersage

Comparison of Software Products using Software Engineering Metrics

Statische Code-Analyse: Software-Metriken Fernstudium Master Wirtschaftsinformatik Formale Methoden

Qualitätsmanagement im Projekt

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

Analysierende Testverfahren

Inhalt. 1 Einleitung 1. 2 Grundkonzepte Erfahrungen systematisch nutzen 39

Qualitätssicherung. Was ist Qualität?

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

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

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

Kontinuierliche Architekturanalyse. in 3D

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

0/28. Software-Metriken. Andreas Zeller. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken

Messung. Mariem Ben Rehouma

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Software- Qualitätssicherung

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klausur Software-Engineering SS 2005 Iwanowski

SWE12 Übungen Software-Engineering

Softwaremetriken verstehen und nutzen

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Was bringt TDD wirklich?

Theoretische Grundlagen des Software Engineering

Quality Assurance Review der IT-Revision (QAR-IT) -Ein Leitfaden -

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

Software- Qualitätsmanagement

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

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Softwarequalität: Einführung. 15. April 2015

Communication Metrics for Software Development

Barrierefreie Webseiten erstellen mit TYPO3

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Prinzipien Objektorientierter Programmierung

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

tssoftware made in Germany Systeme

Softwaremetriken. 29. April 2015

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

TELEMETRIE EINER ANWENDUNG

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Grundlagen der Inferenzstatistik

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

Objektorientierte Programmierung

Präsentation Von Laura Baake und Janina Schwemer

Agile Software Development

Datenbanken I - Übung 1

Software-Metriken. B. Sc. Michael Thomas. Seminar Software-Entwurf WS 2004/05.

ISO 9001 und CMM im Vergleich

Grundlagen von Python

ISIS. Das Navigationssystem für angemessene Qualität und hohe Effizienz

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

Client-Server-Beziehungen

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Requirements Engineering I

User Experience vs. Retrievaltests Wie lässt sich die Relevanz von Suchergebnissen bewerten?

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

J.6 Programmierung eingebetteter Systeme

Vorlesung Donnerstags, bis Uhr, HS12 Übung Dienstags, bis Uhr 4-5 ÜbungsbläMer (Programmieraufgaben)

Entwicklungsmethoden

Messgeräte: Mess-System-Analyse und Messmittelfähigkeit

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

Grundbegriffe der Informatik

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Software Survivability

Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Java Einführung Packages

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

SDD System Design Document

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

Erfassung von Umgebungskontext und Kontextmanagement

Qualität ist nicht (nur) die Abwesenheit von Fehlern. Jede Aussage über Qualität ist eine Aussage von einer oder mehrere Personen.

OOD. Objektorientiertes Design. Peter Coad und Edward Yourdon. Prentice Hall Verlag

Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie

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

17 Architekturentwurf Vorgehen und Dokumentation

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Software - Testung ETIS SS05

7 Schritte durch. Think out of the box. Think Auditor.

Objektorientierte Programmierung OOP

Kapitalerhöhung - Verbuchung

Real-Time Collaboration Eine Kostprobe Workshop

GRS SIGNUM Product-Lifecycle-Management

Requirements Engineering im SPL-Umfeld

Softwaremetriken. 15. Mai 2013

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Ein einfaches Modell zur Fehlerfortpflanzung

Software-Qualität Ausgewählte Kapitel

Modul 8: Geschäftsprozesse, SLA, ITIL und CMDB (Fortsetzung)

Transkript:

Softwaremessung und -metrik AW1 Votrag - Daniel Wojtucki Hamburg, 20. Januar 2010

Inhalt 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung

Einleitung 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung

Einleitung Motivation der Themenwahl Bachelorarbeit im Bereich Test- und Qualitätsmanagement Vertiefung des Themas wichtiges Werkzeug im Software Engineering wenig Anwendung in Unternehmen möglicher Bestandteil eines Softwarecockpits (Sarstedt)

Softwarequalität 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung

Softwarequalität Probleme des Qualitätsmanagements aus Fertigung Übereinstimmung von Produkt mit Spezifikationen Spezifikationen nicht eindeutig andere Eigenschaften unberücksichtigt (Wartungseigenschaften) Korrelation zwischen Prozess und Produkt nicht eindeutig Standards kein Allheilmittel Entwicklung ist kreativer Prozess jeder ist für Produktqualität verantwortlich

Softwarequalität Qualitätssicherung Softwarestandards (Trial-And-Error-Verfahren) Standards aus ISO 9000 Standards für Dokumente Qualitätskontrolle hauptsächlich durch Reviews Entwurfs- oder Programminspektionen Fortschritts-Reviews Qualitäts-Reviews

Grundlagen der Softwaremetrik 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung

Grundlagen der Softwaremetrik Definition Softwaremetrik Analysetechnik zur Qualitätssicherung auf bereits erstellten Entitäten Messen von Merkmalen eines Softwareprodukts Ableitung eines numerischen Werts Messung jeder Art bei Softwaresystemen Prozessen dazugehörigen Dokumenten Definition nach IEEE Standard 1061

Grundlagen der Softwaremetrik Motivation für den Einsatz von Metriken beschleunigtes Verfahren statischer Qualitätssicherung benötigt Qualitäts-Reviews aufwändig und langsam Verzögerung im Softwareprozess mess- und vergleichbare Qualität der SW Möglichkeit zur Überprüfung einer Prozessverbesserung durch Vergleiche können Abschätzungen erfolgen

Grundlagen der Softwaremetrik Kategorisierung Prozessmetriken (für Aktivitäten bei Bearbeitung) Ressourcenmetriken (für Prozessmittel) Produktmetriken (für Artefakte als Prozessergebnis) dynamische Metriken (bspw. Effizienz, Zuverlässigkeit) statische Metriken Weitere Unterteilung in: direkte Metrik (keine Abhängigkeit) indirekte Metrik (indirekte Messung über andere Metrik oder Entität)

Grundlagen der Softwaremetrik Vorraussetzungen einer korrekten Messung Gütekriterien von Metriken Objektivität (keine subjektiven Einflüsse) Robustheit (wiederholbare Messungen) Vergleichbarkeit (gleiche Kenngrößen müssen vergleichbar sein) Ökonomie (kostenökonomisch) Korrelation (solider Rückschluss auf die überwachte Kenngröße, bspw. Laufzeiteffizienz) Verwendbarkeit (kein Selbstzweck!)

Grundlagen der Softwaremetrik Prozess des Messvorgangs Abbildung: Prozess der Produktmessung nach [Sommerville2007] Auswahl der Metriken (bspw. nach GQM-Muster) Auswahl der Komponenten (kritische oder repräsentative) eigentliche Messung (CASE-Tools oder Eigenentwicklungen) ungewöhnliche Messwerte erkennen (hohe oder niedrige Werte, vergleichen) auffällige Komponenten analysieren (Qualität beeinträchtigt?)

Grundlagen der Softwaremetrik Goal-Question-Metric Muster Warum soll gemessen werden? Goal Was soll gemessen werden? Question Wahl der Messung Metric Abbildung: Beispiel eines möglichen GQM-Graph nach [Koschke2006]

Beispiele bestimmter Metriken 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung

Beispiele bestimmter Metriken Klassische Metriken LOC, NCSS und Co. LOC Lines of Code Variation ohne Leerzeilen NCSS Non Commented Source Statements weitere Variationen: alle Zeilen mit ausführbarem Code alle Zeilen mit ausführbarem Code und Variablendeklaration alle Programmsymbole (token) alle Anweisungsseparatoren (z.b. Semikolon in Java) einfache Volumenmetrik für Komplexität ungeeignet Basisparameter, Verbreitung in Firmen Sprachfaktoren zur Gewichtung

Beispiele bestimmter Metriken Klassische Metriken Halstead-Metriken - Teil 1 lexikalische Metrik (Maurice Howard Halstead 1977) Zählen von Zeichen (Operatoren und Operanden) Zusammenhang zwischen Programmkomplexität und Auftrittscharakteristik lexikalischer Elemente unabhängig von Formatierung (anders als LOC) Programmiersprachen abhängig

Beispiele bestimmter Metriken Klassische Metriken Halstead-Metriken - Teil 2 Übersicht einiger Halstead-Metriken: η 1 = Anzahl unterschiedlicher Operatoren η 2 = Anzahl unterschiedlicher Operanden N 1 = Gesamtzahl der Vorkommen aller Operatoren N 2 = Gesamtzahl der Vorkommen aller Operanden Vokabular (η = η 1 + η 2 ) Minimalvokabular (η = η 2 + 2) Länge (N = N 1 + N 2 ) Volumen (V = N log 2 η) Minimalvolumen (V = η log 2 η ) Level (L = V V )

Beispiele bestimmter Metriken Klassische Metriken McCabe-Metrik Komplexität von SW-Komponente Graphentheorie zyklomatische Zahl zyklomatische Komplexität v(g) = E N + 2 meist auf Funktionsebene obere Grenze von 10 nach McCabe für Programmkomplexität gilt: n i=1 v(g i) Programmierverhalten der Entwickler

Beispiele bestimmter Metriken Objektorientierte Metriken Warum objektorientierte Metriken? klassische Metriken für imperative Programmierung nur auf Methodenimplementierung aussagekräftig anwendbar Methoden sind imperativ Besonderheiten der OO nicht berücksichtigt: Klassenbeziehungen Vererbungsmechanismus

Beispiele bestimmter Metriken Objektorientierte Metriken Komponentenmetriken separate Bewertung der Bestandteile (Klasse, Paket) hohe Signifikanz für Qualitätsbewertung empirische Untersuchungen Hilfsmittel für Refactoring Abkürzung Metrik Typ OV Object Variables Umfangsmetrik CV Class Variables Umfangsmetrik NOA Number of Attributes Umfangsmetrik WAC Weighted Attributes per Class Umfangsmetrik WMC Weighted Methods per Class Umfangsmetrik DOI Depth Of Inheritance Vererbungsmetrik NOD Number of Descendants Vererbungsmetrik NORM Number of Redefined Methods Vererbungsmetrik Tabelle: Auswahl an Komponentenmetriken nach [Hoffmann2008]

Beispiele bestimmter Metriken Objektorientierte Metriken Komponentenmetriken separate Bewertung der Bestandteile (Klasse, Paket) hohe Signifikanz für Qualitätsbewertung empirische Untersuchungen Hilfsmittel für Refactoring Abkürzung Metrik Typ OV Object Variables Umfangsmetrik CV Class Variables Umfangsmetrik NOA Number of Attributes Umfangsmetrik WAC Weighted Attributes per Class Umfangsmetrik WMC Weighted Methods per Class Umfangsmetrik DOI Depth Of Inheritance Vererbungsmetrik NOD Number of Descendants Vererbungsmetrik NORM Number of Redefined Methods Vererbungsmetrik Tabelle: Auswahl an Komponentenmetriken nach [Hoffmann2008]

Beispiele bestimmter Metriken Objektorientierte Metriken Strukturmetriken Betrachtung des Klassenverbunds als Ganzes Analyse von Interaktions- und Vererbungsmustern Basis-Metriken für Kopplungsanalyse Fan-In: Anzahl zugreifender Klassen F in (C) Fan-Out: Anzahl zugegriffener Klassen F out (C) strukturelles Komplexitätsmaß für Klasse C v HK (C) = (F in (C) F out (C)) 2 Erweiterung der Definition V HS (C) = v internal (C) (F in (C) F out (C)) 2

Beispiele bestimmter Metriken Objektorientierte Metriken Strukturmetriken Betrachtung des Klassenverbunds als Ganzes Analyse von Interaktions- und Vererbungsmustern Basis-Metriken für Kopplungsanalyse Fan-In: Anzahl zugreifender Klassen F in (C) Fan-Out: Anzahl zugegriffener Klassen F out (C) strukturelles Komplexitätsmaß für Klasse C v HK (C) = (F in (C) F out (C)) 2 Erweiterung der Definition V HS (C) = v internal (C) (F in (C) F out (C)) 2

Zusammenfassung 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung

Zusammenfassung Zusammenfassung wichtiges Werkzeug für Qualitätssicherung Unterstützung bei Prozesssteuerung das Ziel der Metrik muss klar definiert sein wenig Verwendung in der Praxis (Problem: Auswahl der richtigen Metriken) Werkzeug für die Erfassung wird zwingend benötigt Messungen müssen über längere Zeit erfolgen

Ende Ende Vielen Dank Vielen Dank für Eure Aufmerksamkeit!