Verwendung von Softwaremetriken - Userpage
Verwendung von Softwaremetriken - Userpage
Verwendung von Softwaremetriken - Userpage
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