22.01.2014 Aufrufe

Verwendung von Softwaremetriken - Userpage

Verwendung von Softwaremetriken - Userpage

Verwendung von Softwaremetriken - Userpage

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Software Engineering<br />

<strong>Verwendung</strong> <strong>von</strong> <strong>Softwaremetriken</strong><br />

Die Inhalte der Vorlesung wurden primär auf Basis der jeweils angegebenen Literatur<br />

erstellt. Darüber hinaus finden sich ausgewählte Beispiele zur Softwareentwicklung<br />

aus dem Bereich der Telekommunikation.<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 1


Inhaltsübersicht<br />

• Ziele der Softwaremessung<br />

• Ausgewählte <strong>Softwaremetriken</strong><br />

• Metriken im Bereich objektorientierter Systeme<br />

• Werkzeugunterstützung<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 2


Ziele der Softwaremessung<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 3


Software-Measurement<br />

Berechtigung der Software-Messung:<br />

• „To measure is to know.“ (Clerk Maxwell)<br />

• „You cannot control what you cannot measure.“ (Tom DeMarco)<br />

• „Measurement is an excellent abstraction mechanism for learning what<br />

works and what doesn‘t.“ (Victor Basili)<br />

• „A science is as mature as ist measurement tools.“ (Louis Pasteur)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 4


Aspekte der Softwaremessung<br />

Numerisches<br />

Relativ<br />

Empirisches<br />

Relativ<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 5


Definition der<br />

Softwaremessung<br />

Die Softwaremessung (software measurement) ist der Prozess der<br />

Quantifizierung <strong>von</strong> Attributen der Objekte bzw. Komponenten des Software<br />

Engineerings mit der Ausrichtung auf spezielle Messziele (measurement<br />

goals) und der ggf. notwendigen Einbeziehung <strong>von</strong> Messwerkzeugen<br />

(measurement tools).<br />

In Anlehnung an: Fenton, N. E.; Pleeger, S. L.: Software Metrics –<br />

A rigorous and practical approach. Thomson-Verlag, 1996<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 6


Prozess zur Softwaremessung<br />

nach ISO 15939<br />

Anforderungen zur Softwaremessung<br />

Informationsbedürfnisse<br />

Technische- und<br />

Managementprozesse<br />

Informationsprodukte<br />

Feedback zur Messung<br />

Bezugsbereich des eigentlichen Messprozesses<br />

Etablieren des<br />

Messansatzes<br />

Planung des<br />

Messprozesses<br />

Realisierung der<br />

Messungen<br />

Einverständnis<br />

Planungsinformationen<br />

Messergebnisse<br />

Bewertung der<br />

Messungen<br />

Erfahrungsdatenbank über<br />

durchgeführte Messungen<br />

Bewertungsergebnisse<br />

ISO 15939 – Prozessstandard der Softwaremessung<br />

Verbessungsaktivitäten<br />

...<br />

Aktivität<br />

Quelle: ISO/IEC 15939:2002, Software engineering –<br />

Software measurement process, JTC 1/SC 7), http://www.iso.org<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 7<br />

...<br />

Datenspeicher<br />

Datenfluss


Ansätze für Metriken/Maße<br />

in der Softwareentwicklung<br />

• Produktmetriken<br />

- Architekturmetriken (Modelle, Quellcode, Services, …)<br />

- Testmetriken (Testabdeckung, Style Guide, …)<br />

- …<br />

• Prozessmetriken<br />

- Organisationsmetriken (Reifegrade wie z.B. CMM(I), …)<br />

- Managementmetriken (Projektfortschritt, Fehlerraten, …)<br />

- …<br />

• Ressourcenmetriken<br />

- Hardwaremetriken (Verfügbarkeit, Performance, …)<br />

- Personenbezogene Metriken (Produktivität, Skill, …)<br />

- …<br />

1600 Software-<br />

metriken<br />

ZD-MIS<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 8


Aktuelle Situation - Etabliertes<br />

• Reifegradbewertungen des SW-Entwicklungsprozesses z.B. CMMI<br />

• Aufwandsbestimmung mit FSM (z.B. COSMIC FFP, IFPUG)<br />

• Bedarf eines zielorientierten Softwaremessansatzes (vgl. GQM)<br />

• Steuerung einer arbeitsteiligen Entwicklung (vgl. Offshoring)<br />

• Erfahrungsdatenbanken zu Projekten der SW-Entwicklung<br />

• Qualitätsbewertung <strong>von</strong> SW-Artefakten (z.B. beim Reengineering)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 9


Ausgewählte <strong>Softwaremetriken</strong><br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 10


Komponenten-Metriken<br />

Unter <strong>Verwendung</strong> <strong>von</strong>: Balzert, H.: Lehrbuch der Softwaretechnik, S. 476, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998 (bearbeitet durch Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 11


Komponenten-Metriken<br />

Unter <strong>Verwendung</strong> <strong>von</strong>: Balzert, H.: Lehrbuch der Softwaretechnik, S. 479, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998 (bearbeitet durch Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 12


Beispiel der McCabe-Metrik<br />

Unter <strong>Verwendung</strong> <strong>von</strong>: Balzert, H.: Lehrbuch der Softwaretechnik, S. 481, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998 (bearbeitet durch Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 13


Übung 10-1<br />

• Ermitteln Sie für den rechts stehenden<br />

Kontrollflussgraphen die McCabe-Metrik.<br />

• Setzen Sie die zyklomatische Zahl in das Verhältnis<br />

zu den enthaltenen Bedingungen eines Programms,<br />

das nur aus einer Komponente besteht!<br />

• Welches Programmierkonstrukt wird in seiner<br />

Komplexität nur schlecht durch diese Metrik erfasst?<br />

Unter <strong>Verwendung</strong> <strong>von</strong>: Balzert, H.: Lehrbuch der Softwaretechnik, S. 481, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998 (bearbeitet durch Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 14


Bewertung der McCabe-Metrik<br />

• Vorteile<br />

- Einfach zu berechnen<br />

- Identifikation der minimalen Anzahl <strong>von</strong> Testfällen<br />

• Nachteile<br />

- Unterschiedliche Programmmerkmale werden zu stark vereinfacht<br />

- Quellprogramm wird als zentrales Messobjekt überbetont<br />

- Nur das Programmgerüst, nicht aber die Komplexität einzelner und<br />

verschachtelter Anweisungen werden berücksichtigt<br />

McCabe-Metrik diente bei zahlreichen Autoren als<br />

Ausgangsbasis zur Entwicklung neuer Metriken.<br />

Unter <strong>Verwendung</strong> <strong>von</strong>: Balzert, H.: Lehrbuch der Softwaretechnik, S. 481, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998 (bearbeitet durch Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 15


Metriken im Bereich objektorientierter<br />

Systeme<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 16


Metriken für OO-Komponenten<br />

• DIT (Depth of Inheritance)<br />

- Je höher die Anzahl der Vorfahren einer Klasse desto größer die<br />

Fehlerwahrscheinlichkeit.<br />

• NOC (Number of Children of a Class)<br />

- Je höher die Anzahl der direkten Nachfolger einer Klasse, desto geringer die<br />

Fehlerwahrscheinlichkeit.<br />

• RFC (Response for a Class)<br />

- Je höher der RFC (Anzahl der eigenen Operationen der Klasse plus Anzahl der<br />

internen und externen Aufrufe), desto größer die Fehlerwahrscheinlichkeit.<br />

• WMC (Weighted Methods per Class)<br />

- Je höher der WMC (Anzahl aller member-Funktionen und Operatoren), desto<br />

größer die Fehlerwahrscheinlichkeit.<br />

• CBO (Coupling between Object Classes)<br />

- Je höher der CBO (Anzahl der Klassen, mit der eine Klasse gekoppelt ist), desto<br />

größer die Fehlerwahrscheinlichkeit.<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 17


Bewertung Metriken für<br />

OO-Komponenten<br />

• Vorteile<br />

- Ansätze zur Verbesserung objektorientierter Komponenten<br />

- Breite Palette an Vorschlägen<br />

- Empirische Untersuchungen zeigen Eignung als Qualitätsindikatoren<br />

• Nachteile<br />

- Metriken haben keine direkte Verbindung zu Zielen<br />

- Keine Metriken für dynamische Aspekte<br />

- Keine Unterscheidung zwischen Standardoperationen und<br />

Fachoperationen bzw. eigenen, geerbten und fremden Operationen<br />

- Keine Metriken zur Prüfung der Güte der Vererbungsstruktur<br />

- Vermessung zu einfacher Sachverhalte<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 18


Metriken für Systeme<br />

• Analog zu den Systemkomponenten versucht man ganze Systeme<br />

mit Hilfe <strong>von</strong> Metriken zu vermessen.<br />

• Dabei spielt die Kopplung eine besondere Rolle. Die Kopplung wird<br />

hier in Form <strong>von</strong> Prozeduraufrufen oder durch den Botschaftenfluss<br />

ausgedrückt.<br />

Strukturelle<br />

Systemkomplexität<br />

gemessen durch<br />

Strukturelle<br />

Komplexitätsmetriken<br />

Komponentenmetriken<br />

Kopplungsmetriken<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 19


fan-in/fan-out-Metrik<br />

Quelle: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 20


fan-in/fan-out-Metrik<br />

Quelle: HOFFMANN, D. W.: Software-Qualität, Gabler Wissenschaftsverlage, 01.03.2008<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 21


Erweiterung der fan-in/fan-out-Metrik<br />

Quelle: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 22


Metriken für OO-Systeme<br />

• CBO (Coupling Between Objects)<br />

- Anzahl der Klassen, mit der eine Klasse gekoppelt ist (Kopplung = Nutzung <strong>von</strong><br />

Operationen oder Attributen einer anderen Klasse).<br />

• DAC (Data Abstraction Coupling)<br />

- Anzahl der abstrakten Datentypen, die in einer Klasse definiert sind, d.h. der<br />

nichtelementaren Attribute.<br />

• MPC (Message-Passing Coupling)<br />

- Anzahl der externen Aufrufe, die in einer Klasse enthalten sind.<br />

• RFC (Response For a Class)<br />

- Anzahl der eigenen Operationen der Klasse plus Anzahl der internen und externen<br />

Aufrufe.<br />

• PPM (Parameter Per Method)<br />

- Anzahl der Parameter pro Operation und im Klassendurchschnitt.<br />

• NOT (Number Of Tramps)<br />

- Anzahl überflüssiger oder unbenutzter Parameter.<br />

Quelle: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 23


Qualitative Erkenntnisse<br />

• Geringer fan-out-Wert ist positiv (Klasse erledigt Aufgabe selbständig)<br />

• Hohe fan-in-Werte zeigen gute Struktur und hohe Wiederverwendung<br />

• Jedoch: Summe <strong>von</strong> fan-in und fan-out muss gleich bleiben!<br />

• Wenige Objekte als Parameter in Operationen übergeben!<br />

• Vererbung und Polymorphismus reduzieren Werte der traditionellen<br />

Standardmetriken.<br />

• Vererbung erhöht Komplexität<br />

• Zusätzliche Komplexität durch<br />

- tiefe Vererbungshierarchien<br />

- Redefinition <strong>von</strong> Operationen<br />

- Aufhebung des Geheimnisprinzips in Vererbungshierarchien<br />

Quelle: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 24


Bewertung OO-Systemmetriken<br />

• Vorteile<br />

- Vermittlung eines Gefühls für die vielfältigen Faktoren, die die<br />

Komplexität bestimmen<br />

- Deutlicher Unterschied zu traditionellen Metriken<br />

- Hilfestellung zur Qualitätssicherung <strong>von</strong> Systemen<br />

• Nachteile<br />

- Gesamtkomplexität durch einen Wert nicht darstellbar<br />

- Berücksichtigung einfacher Sachverhalte.<br />

- Beziehung zur Qualität nicht nachgewiesen<br />

- Viele Metriken schlecht definiert und messtheoretisch unzureichend<br />

spezifiziert.<br />

- Metriken für Analyse und Entwurf fehlen noch.<br />

Quelle: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 25


Übung 10-2<br />

Quelle: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II)<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 26


Werkzeugunterstützung<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 27


„stand alone” Werkzeugunterstützung<br />

Quelle: RSM – Resource Standard Metrics, M Squared Technologies LLC 2006<br />

URL: http://msquaredtechnologies.com<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 28


Eingebettete Messwerkzeuge<br />

Quelle: Checkstyle –http://checkstyle.sourceforge.net/<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 29


ISBSG Projektdatenbank<br />

Functional Size Measurement based on ISBSG<br />

08.10.2013 Prof. Dr. Andreas Schmietendorf 30

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!