Software-Metriken

Werbung
Kurz & Gut: Software-Metriken
von Dipl.-Ing.(BA) Henning Sievert
Kurz & Gut
Software Metriken
von Dipl.-Ing.(BA) Henning Sievert
In diesem Flyer werden nur die Produkt-Metriken
vorgestellt, da die Nutzung der Software-Metriken
Einführung
für die objektorientierte Analyse dargestellt wird.
In diesem Flyer wird erläutert, was Software- Diese kann sich nur auf eine bereits erstellte
Metriken sind und wie sie im Rahmen der Software bzw. auf einen erstellten Entwurf
Software-Entwicklung zur Beurteilung im Rahmen beziehen.
der objektorientierten Analyse eines SoftwareDie Produkt-Metriken lassen sich wiederum in
Entwurfs genutzt werden können.
zwei Gruppen aufteilen:
•
Größenmetriken, die sich direkt auf den
implementierten Code beziehen und
•
Strukturmetriken, mit denen Werte anhand
von
Ablaufdiagrammen
oder
der
Klassenstruktur einer Software erzeugt
werden.
Größenmetriken
Zu den Größenmetriken zählen beispielsweise
die wichtigen Metriken „Lines Of Code“ (LOC)
und die Metriken von Halstead.
Hauptteil
Lines Of Code
Die LOC sind ein scheinbar einfaches Maß. Für
diese Metrik wird die Anzahl der implementierten
Code-Zeilen eines gesamten Programms, einer
Klasse oder ein Funktion bestimmt. Es muss
jedoch festgelegt werden, in welcher Weise diese
Zeilen gezählt werden sollen: Alle Zeilen, nur
Eine Metrik im Allgemeinen ist der zahlenmäßige Zeilen mit ausführbarem Code, Zeilen mit Code
Abstand einer Eigenschaft und „Messen“ ist der und Zeile mit Kommentaren, etc.
Prozess, der Objekteigenschaften der realen Welt
Soll mit Hilfe der LOC Software verglichen
Zahlen oder Zeichen zuordnet.
werden,
die
in
unterschiedlichen
Software-Metriken werden genutzt, um eine Programmiersprachen entwickelt worden ist, so
objektive und kompakte Beschreibung einer ist es zusätzlich nötig, eine normierte Einheit
Software erstellen zu können. Damit wird eine einzuführen, welche die Komplexität der
Beurteilung
der
Software
hinsichtlich jeweiligen Sprache berücksichtigt.
verschiedener Kriterien, wie z.B. Qualität oder
Wartbarkeit, ermöglicht.
Eine Software-Metrik ist nach IEEE Standard
1061 „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.“
Halstead-Metriken
Software-Metriken lassen sich in zwei Arten Die Halstead-Metriken zählen die verwendeten
klassifizieren:
Operatoren und Operanden und bilden daraus
• Prozessmetriken,
die
dazu
dienen, verschiedene Maße. Diese Maße können zum
Aussagen über den Erstellungsprozess Beispiel das Programmvolumen oder die
Fehlerwahrscheinlichkeit für einen Code-Teil
einer Software treffen zu können und
sein.
• Produkt-Metriken, mit denen die fertig
Der Vorteil der Halstead-Metriken gegenüber den
erstellte Software beurteilt werden kann.
LOC ist die Berücksichtigung der Komplexität der
http://www.se.uni-hannover.de
Stand: 04.02.2005
Kurz & Gut: Software-Metriken
von Dipl.-Ing.(BA) Henning Sievert
im Programm enthaltenen Ausdrücke und Anzahl Die Metriken nach Abreu beziehen sich auf
der genutzten Variablen. Der Nachteil liegt darin, gesamte Projekte. Zu ihnen gehören:
dass sie keine Ablaufstrukturen berücksichtigen.
• Method Hiding Factor (MHF),
• Attribute Hiding Factor (AHF),
• Method Inheritance Factor (MIF),
Strukturmetriken
• Attribute Inheritance Factor (AIF),
Die „Cyclomatic-Complexity“ von McCabe und die
• Polymorphism Factor (PF) und
objektorientierten Metriken sind Strukturmetriken.
• Coupling Factor (CF).
Cyclomatic Complexity
Die Cyclomatic Complexity basiert auf dem
Kontrollflussgraphen eines Programms oder einer
Funktion. Sie bestimmt daraus das Fehlerrisiko.
Der Vorteil dieser Metrik liegt darin, dass sie
einfach berechnet werden kann und die
Ablaufkomplexität
gemessen
wird.
Die
Komplexität der einzelnen Module innerhalb des
Kontrollflussgraphen
wird
hingegen
nicht
berücksichtigt.
Tools zum Messen der Metriken
Folgende Schritte sind zur Durchführung einer
Messung nötig:
1. Definition der Maße,
2. Sammeln der Messwerte und
3. Analyse und Interpretation der Messwerte.
Tools zum Messen sind zum Beispiel die
kostenlosen Programme JMT und cccc.
JMT
JMT kann unter anderem alle im Flyer
vorgestellten Metriken berechnen. Es unterstützt
die Sprache JAVA und bietet eine graphische
Benutzeroberfläche.
Oberfläche von JMT
Kontrollflussgraph eines Programms
Objektorientierte Metriken
Die objektorientierten
Metriken bilden Maße
anhand der Klassenstruktur einer Software. Sie
können somit bereits auf den objektorientierten
Entwurf einer Software angewendet werden.
Die OO-Metriken beziehen sich entweder auf
einzelne Klassen oder auf gesamte Projekte. Zu
den Metriken, die sich auf Klassen beziehen,
gehören die Metriken nach Chidamber und
Kemerer:
• Weighted Methods per Class (WMC),
• Depth in Inheritance Tree (DIT),
• Number Of Children (NOC),
• Coupling Between Objects (CBO),
• Response For a Class (RFC) und
• Lack of Cohesion On Methods (LCOM).
http://www.se.uni-hannover.de
cccc
Mit cccc können ebenfalls alle vorgestellten
Metriken berechnet werden. Es unterstützt neben
JAVA auch C++. cccc ist kommandozeilenbasiert
und generiert eine Ausgabe im HTML/XMLFormat. Es ist zur automatisierten Messung der
Metriken geeignet.
Literatur:
•
Dumke, R. / Ebert, C.: Software-Metriken in der Praxis.
Springer-Verlag, Berlin, 1996
•
Thaller, G. E.: Software-Metriken einsetzen, bewerten,
messen. 2. Auflage, Verlag Technik, Berlin, 2000
Stand: 04.02.2005
Herunterladen