Die Softwaremetrie beschäftigt sich als Teilgebiet der Softwaretechnik mit der Messung von Softwareeigenschaften und der Deutung dieser Messungen.
Ziel der Softwaremetrie ist es, mit Hilfe von objektiven und am besten automatisch erstellbaren Maßzahlen verschiedene Aussagen über eine Softwareeinheit und/oder den Prozess ihrer Erstellung tätigen zu können.
Die Fragestellungen umfassen dabei eine Reihe von Themengebieten, die in unterschiedlichen Phasen der Softwareentwicklung zum Tragen kommen und die Antworten auf Fragen unterschiedlicher Fragesteller liefern sollen. Im Folgenden werden die häufigsten Fragesteller mit einigen typischen Fragen aufgeführt.
- Manager
- sind meist an einem Maß für das Fortschreiten einer Entwicklung interessiert. Wie lange brauchen wir noch, um die Software fertigzustellen? Wie viel der Arbeit haben wir schon erledigt?
- Softwareentwickler
- stellen in kleinerem Rahmen ähnliche Fragen an die Softwaremetrie, meistens vor dem Hintergrund, ihre eigene Performance zu verbessern und/oder für zukünftige Aufwandsschätzungen bessere Werte liefern zu können. Wie lange benötige ich für einen Funktionsblock (function point)? Aus wie vielen Elementen besteht die Realisierung einer Funktionalität? Werden bestimmte Kriterien (z. B. Maximallänge von Methoden) in der entwickelten Software eingehalten? Wie stark ist ein Element von anderen Elementen abhängig (Kopplungen)?
- Qualitätssicherer
- haben ihren Fokus auf Maßzahlen, die ihnen Aufschluss über die Eigenschaften der Software selbst, aber auch über den Verlauf der Softwareentwicklung in Bezug auf Qualität liefern. Wie entwickelt sich die Zahl der gefundenen Fehler in der Software? In welchen Modulen tauchen besonders viele Fehler auf (denn dort sind typischerweise noch mehr Fehler versteckt)? Ist die Konstruktion der Software gut?
Um diese Fragen beantworten zu können, benötigt man zunächst als Datenquelle sogenannte Softwaremetriken. Diese Metriken liefern Maßzahlen zu dem untersuchten Softwareelement. Diese können dann – ergänzt durch weitere Zahlen aus dem Entwicklungsprozess (benötigte Arbeitszeiten, Fehlerreports, Fehlerverteilung etc.) – genutzt werden, um Antworten auf die oben angeschnittenen Fragen zu liefern.