Statische Produktmetriken
- Traditionellen Metriken
- Programmgröße, Komplexität
Zeilenmetriken(LOC): Anzahl der Zeilen im Programm
Non-Commenting Lines Of Code(NCLOC): ignoriere Leerzeilen und reine Kommentarzeilen
Halstead-Metriken
Operatoren: feste Sprachelemente, z.B. if, (), int, public, , , ++, ; , return …
Operanden: alles andere, u.A. Variablen, Werte, Bezeichner … z.B max i 0 1
Definition Werte
Unterschiedliche Operatoren n1
Unterschiedliche Operanden n2
Operatoren im Programm N1
Operanden im Programm N2
Größe des Vokabulars n = n1+n2
Länge des Programms N = N1+N2
Definition Metriken
Volumen des Programms V = N * log2(n)
Schwierigkeit(difficulty) D = (n1/2) * (N2/n2)
Aufwand, um Programm zu verstehen E = D * V - Programmstruktur
McCabe Cyclomatic Number
Zyklomatische Komplexität
e Anzahl Kanten im Graphen
n Anzahl Knoten im Graphen
p Anzahl Komponenten
v(G) = e - n + 2 * p
- Objektorientierte Metriken (zusammenhängende Graphen)
Kontrollflussgraph(CFG)
- Basisblöcke
Sequenz von instruktionen
S 1 ; z : = y ; y : = x ; x : = z ; S 2 S_1;z:=y;y:=x;x:=z;S_2 S1;z:=y;y:=x;x:=z;S2 - Verzweigung
S 1 ; i f B t h e n S T e l s e S E f i ; S 2 S_1; if B then S_T else S_E fi; S_2 S1;ifBthenSTelseSEfi;S2 - Schleifem
rückwärtige Kanten
S 1 ; w h i l e B d o S L o d ; S 2 S_1;while B do S_L od;S_2 S1;whileBdoSLod;S2