Halstead-Metrik

Die Halstead-Metrik ist eine 1977 von Maurice Howard Halstead vorgestellte Softwaremetrik. Sie gehört zu den statischen, analysierenden Verfahren der Komplexitätsmessung von Software.

Hierbei wird die Systemkomponente nicht aktiv ausgeführt (wie bei den dynamischen Verfahren), sondern gezielt Informationen über den Prüfling mit analytischen Mitteln gesammelt.

Berechnung

Die Halstead-Metrik bedient sich hierbei der Annahme, dass ausführbare Programmteile aus Operatoren und Operanden aufgebaut sind. Die Definition, was die zu betrachtenden Operatoren und Operanden sind, ist dabei eine der Aufgaben vor dem Einsatz einer Halstead-Metrik. Typischerweise werden z. B. Variablen und Konstanten als Operanden betrachtet; Schlüsselwörter, logische und Vergleichsoperatoren usw. als Operatoren.

Es werden dann für jedes Programm folgende Basismaße gebildet:

  • Anzahl der verwendeten unterschiedlichen Operatoren ( η 1 {\displaystyle \eta _{1}} ) und Operanden ( η 2 {\displaystyle \eta _{2}} ), zusammen die Vokabulargröße η {\displaystyle \eta } .
  • Anzahl der insgesamt verwendeten Operatoren ( N 1 {\displaystyle N_{1}} ) und Operanden ( N 2 {\displaystyle N_{2}} ), zusammen die Implementierungslänge N {\displaystyle N} .

Hieraus werden dann die Größen Halstead-Länge ( H L {\displaystyle HL} ) und Halstead-Volumen ( H V {\displaystyle HV} ) errechnet:

  • H L = η 1 log 2 η 1 + η 2 log 2 η 2 {\displaystyle HL=\eta _{1}\cdot \log _{2}\eta _{1}+\eta _{2}\cdot \log _{2}\eta _{2}}
  • H V = N log 2 η {\displaystyle HV=N\cdot \log _{2}\eta }

Aus den Basisgrößen kann man verschiedene Kennzahlen berechnen:

  • Schwierigkeit ein Programm zu schreiben bzw. zu verstehen, z. B. bei einem Code-Review: D = η 1 2 N 2 η 2 {\displaystyle D={\eta _{1} \over 2}\cdot {N_{2} \over \eta _{2}}}
  • Aufwand: E = D H V {\displaystyle E=D\cdot HV}
  • Implementierungszeit: T = E 18 {\displaystyle T={E \over 18}} Sekunden

Die Halstead-Metrik ist leicht zu ermitteln und zu berechnen, automatisierbar und für alle Programmiersprachen einsetzbar. Die Kennzahlen stimmen meist sehr gut mit tatsächlich gemessenen Werten überein[1]. Der Nachteil ist, dass sie nur einzelne Funktionen betrifft und ausschließlich lexikalische/textuelle Komplexität misst.

Siehe auch

  • McCabe-Metrik
  • Function-Point-Verfahren

Literatur

  • Maurice Howard Halstead: Elements of software science. Elsevier, New York u. a. 1977, ISBN 0-444-00205-7 (Operating and programming systems series; 2). 
  • Harry Sneed, Richard Seidl, Manfred Baumgartner: Software in Zahlen – Die Vermessung von Applikationen. 1. Auflage. Carl Hanser Verlag, 2010, ISBN 978-3-446-42175-2. 
  • Messung von Halstead-Metriken
  • Berechnung von McCabe- und Halstead-Metriken anhand eines Beispielprojekts (PDF-Datei; 737 kB)

Einzelnachweise

  1. Programming Effort