Software-Metrik

Software-Metriken quantifizieren unterschiedliche Eigenschaften von Software-Produkten und Software-Prozessen in einer zahlenmäßigen Abbildung - einer Maßzahl. Die Zielstellung dabei ist einen oder nur wenige Werte für die Merkmale von Software abzuleiten, die den Vergleich dieser Werte zunächst untereinander aber auch im Hinblick auf beispielsweise unternehmensspezifische Standards möglich machen. Daraus können Schlussfolgerungen hinsichtlich der Qualität der Software und des gesamten des Software-Prozesses gezogen werden und ggf. weitere Maßnahmen eingeleitet werden.


Häufig werden Software-Metriken mit Verfahren der Aufwands- und Kostenschätzung wie beispielsweise der Function-Point-Methode, der COCOMO-Methode oder Delphi-Methode gleichgesetzt.

Im IEEE-Standard 1061 ist der Begriff der Software-Metrik enger gefasst als Softwarequalitäts-Metrik und folgendermaßen definiert: Eine Softwarequalitäts-Metrik ist eine Funktion, die eine Software-Einheit in einem Zahlenwert abbildet. Dieser berechnete Wert ist interpretierbar als der Erfüllungsgrad eine Qualitätseigenschaft der Software-Einheit.

Software-Metriken für das Qualitätsmanagement

Damit werden Software-Metriken auch als integraler Bestandteil von Qualitätsmanagement-Systemen angesehen, die in Modellen wie dem V-Modell oder dem Capability Maturity Level (CMM) ihren Ausdruck finden. Damit wird auch der Tatsache Rechnung getragen, dass Software häufig Verantwortung für die Steuerung komplexer Systeme übernehmen soll und diesbezügliche Risiken im Vorfeld erkannt werden müssen. Unter den Qualitätseigenschaften von Software sind Begriffe wie Fehlerfreiheit, Zuverlässig, Benutzerfreundlichkeit, Effizienz, Wartbarkeit sowie die Reproduzierbarkeit und letztendlich auch die Termintreue einzuordnen.

Trotz der durchaus nachzuvollziehenden Gründe werden Software-Metriken in der Praxis noch recht wenig durchgängig eingesetzt. Das liegt auch an den fehlenden Standards für Software-Metriken. Es wird jedoch häufig zwischen Prozess- und Produkt-Metriken unterschieden.

Bei Prozess-Metriken werden die Eigenschaften des Software-Entwicklungsprozesses quantifiziert (d.h. gemessen). Dagegen messen Produkt-Metriken die Software selbst. Dabei wird jedoch nichts darüber ausgesagt wie das Produkt entstanden ist oder welcher Fertigstellungsgrad dieses aktuell hat.

Prozess-Metriken können in drei Gruppen differenziert werden:

  • Fertigstellungszeit eines bestimmten Prozesses.
  • Die aufzuwendenden Ressourcen (Personen, Mitarbeiter, Maschinen).
  • Die Häufigkeit von Ereignissen wie Fehler oder die Anzahl von Anforderungen zu Änderungen.
Produkt-Metriken befassen sich mit den Eigenschaften des Software-Produkts und werden zur besseren Handhabung in dynamische und statische Produkt-Metriken unterschieden.

Dynamische Produkt-Metriken dienen der Beurteilung der Leistungsfähigkeit sowie der Zuverlässigkeit einer Software. Beispiele dafür sind die benötigte Ausführungszeit oder die Anzahl der bei der Ausführung aufgetretenen Fehler.

Statische Produkt-Metriken bilden eine Maßzahl für den Entwurf, das Programm oder die Dokumentation. Dabei finden Aspekte wie Komplexität und Wartungsfreundlichkeit Eingang in die Messung. Die Unterschiede zwischen prozeduraler und objektorientierter Software-Entwicklung werden durch eine weitere Differenzierung in die konventionellen und objektorientierten Produkt-Metriken berücksichtigt.

Die nicht explizit objektorientieren und statistischen Produkt-Metriken werden zu den konventionellen Metriken gezählt, und häufig in vier Kategorien eingeteilt;

  • Umfangsmetrik: Messen die Größe eines Programms beispielweise in Größe der Sourcecode-Datei in Lines-of-Code (LOC) oder die Umfangsmetrik nach Halstead.
  • Logische Strukturmetriken: Messen die Struktur wie Anzahl der Pfade, Tiefe der Verschachtelungen.
  • Datenstrukturmetriken: Messen die Verwendung von Daten im Programm wie Anzahl der Variablen, deren Gültigkeit und Lebensdauer sowie Referenzierung.
  • Stilmetriken: Messen des Anteils der Kommentare, die Einhaltung von Namenskonventionen.
Eine Ergänzung bilden die objektorientierten Software-Metriken, womit die spezifischen Merkmale bei Verwendung objektorientierter Sprachen in den Prozess der Messung einbezogen werden. Dazu gehören im Wesentlichen:

  • Messung der Eigenschaften einzelner Methoden, wofür häufig konventionelle Methoden wie Lines-Of-Code (LOC) oder das Verfahren nach McCabe eingesetzt werden.
  • Klassen-Merkmale; wobei die Komplexität der Methode einer Klasse gewichtet wird.
  • Hierarchien von Vererbungen.
  • Aggregation: Verknüpfung der Klassen.
Zusammenfassend können die folgenden klassischen Software-Metriken genannt werden:

  • Anzahl der Codezeilen (Lines of Code) LOC.
  • Die COCOMO- und Funktion-Point-Methode.
  • Das Maß von McCabe.
  • Der Ansatz von Halstead.
  • Das Komplexitätsmaß von Rechenberg.
Software-Metriken sind unter vielfältigen Gesichts-punkten zu betrachten; sie werden neben der Schätzung von Aufwand und Kosten auch zur Messung von Qualitätseigenschaften wie Laufzeitverhalten, Testbarkeit oder Wartbarkeit angewendet.

Informationen zum Artikel
Deutsch: Software-Metrik
Englisch: software metric
Veröffentlicht: 28.10.2013
Wörter: 639
Tags: #Datentypen
Links: Aspekt, Aufwand, Benutzerfreundlichkeit, Cat (category), COCOMO (constructive cost model)