Halstead-Metrik

Aus testwiki
Version vom 21. Dezember 2019, 15:03 Uhr von imported>Terzverwandt (Halbgeviertstriche)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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) und Operanden (η2), zusammen die Vokabulargröße η.
  • Anzahl der insgesamt verwendeten Operatoren (N1) und Operanden (N2), zusammen die Implementierungslänge N.

Hieraus werden dann die Größen Halstead-Länge (HL) und Halstead-Volumen (HV) errechnet:

  • HL=η1log2η1+η2log2η2
  • HV=Nlog2η

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

  • Schwierigkeit ein Programm zu schreiben bzw. zu verstehen, z. B. bei einem Code-Review: D=η12N2η2
  • Aufwand: E=DHV
  • Implementierungszeit: T=E18 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

Literatur

Einzelnachweise