Klassen


Metriken

Vererbungshierachie

DIT - Depth in Inheritance Tree
Ebene der Klasse im Vererbungsbaum
Anzahl der Vorfahren plus 1
Je größer der Wert von DIT ist, desto größer ist die Fehlerwahrscheinlichkeit
Number of Parents - Hierachrical Fan in
Anzahl der Klassen von denen eine Klasse (direkt) abgeleitet ist.
NOC - Number of Children
Anzahl der von einer Klasse abgeleiteten Klassen
Je größer der Wert von NOC ist, desto geringer ist die Fehlerwahrscheinlichkeit, mit Ausnahme von GUI-Klassen

Kapselung

% Pub Data - Percent Public Data
Prozentsatz der Datenelemente die public oder protected sind.
Pub Data - Access to Public Data
Anzahl der Zugriffe auf public oder protected Datenelemente durch andere Klassen.

Schnittstellen und Vererbung

RFC - Response for a Class
Anzahl der Methoden über die eine Klasse verfügt, d.h. selbst implementierte (WMC) und eingeerbte.

2 andere Definitionen (s. Balzert)
Anzahl der C++-Funktionen, die direkt durch member-Funktionen oder Operationen einer C++-Klasse aufgerufen werden.
Anzahl der eigenen Operationen der Klasse plus Anzahl der internen und externen Aufrufe
Je größer der Wert von RFC, desto größer ist die Fehlerwahrscheinlichkeit
WMC - Weighted Methods per Class
Anzahl der in einer Klasse implementierten Methoden (ohne eingeerbte)
Je größer der Wert von WMC ist, desto größer ist die Fehlerwahrscheinlichkeit
RFC - WMC
Anzahl der eingerbten (übernommenen, nicht überschiebenen) Methoden

Kopplung und innere Bindung

CBO - Coupling between Objects
Anzahl der Klassen von denen eine Klasse abhängig ist, bzw. mit denen sie kommuniziert. Berücksichtigt nicht Beziehungen aus der Vererbungshierarchie.
Je größer der Wert von CBO ist, desto größer ist die Fehlerwahrscheinlichkeit
LOCM - Lack of Cohesion in Methods
Mangel an inner Bindung zwischen den Methoden einer Klasse. "generated by calculating for each data field in a class, what percentage of the methods in the class use that data field, averaging the percentages, and then subtracting it from 100%."
* Wertungen aus Balzert

Messergebnisse


Scatterplot

Zusammenhang zwischen Durchschnittlicher Zyklomatischer Komplexität und der Anzahl der von einer Klasse implementierten Methoden


Kiviat-Diagramm

RFCWMC% Pub DataPub DataLOCMDepthNOCFan-inmax ev(G)max v(G)
max7254100010042423470
min0000010000
avg19,838,9434,22046,261,70,620,623,749,62
threshold20105010050532415


Sonstiges

Access to Public Data: Diese Maß ist offensicht nicht korrekt bestimmt worden. Der ermittelte Wert beträgt für jede Klasse 0. D.h. das man theoretisch alle momentan als public oder protected deklarierten member-Daten private machen könnte, da keines von aussen zugegriffen wird. Da dieser Wert auch bei den klassischen struct's - die keine einzige Methode haben - ermittelt wurde kann das wohl nicht funktionieren.