"OO-Metriken"


Vererbungshierachie

  • 18 verschiedene Vererbungshierarchien (Anzahl der Wurzeln)
  • 4 dieser "Vererbungshierarchien" bestehen nur aus einer Klasse (18 Wurzeln minus 14 Klassen die mehr als 0 Kinder haben)
  • ganz überwiegend nur 2-Stufige Vererbung
  • Mehrfachvererbung in geringem Maß verwendet: TGenericDevice, TAreaScan, TScan
  • 2 sehr ausgebaute Bäume: TModalDlg (24 Children) und TCmd (16 Children)
    dabei fällt auf, daß die größte Gruppe der Realisierung der Benutzeroberfläche dient
  • ...

Vererbung und Methoden

Anzahl der in einer Klasse zur Verfügung stehenden Methoden

Anzahl der in einer Klasse implementierten Methoden

Anzahl der in einer Klasse eingeerben Methoden


Abhänigkeiten zwischen den Klassen (Coupling)

  • offensichtlich werden nur tätsächlich implementierte Kommunikationen gezählt, d.h. nur Zugriffe auf Member anderer Klassen
    z.B. TAdjustmentParameter hat 2 friend-Klassen aber CBO = 1
  • die 10 Klassen die CBO-Werte > 5 haben haben alle mehr als 55 Methoden (RFC)
    (es gibt auch 4 Klassen die mit mehr als 55 Methoden und CBO = 3)
  • ...

Innere Bindung der Klassen (Coheshion)

  • Fehler im Diagramm: es fehlen ca. 16 mit LOCM=0
  • zu den 16 Klassen mit LOCM = 0
    - 10 haben keine member Daten
    - 2 haben keine Operationen (bzw. nur den Konstruktor; quasi struct's)
    - 1 ist nicht wirklich implementiert
    - und der Rest hat 2 - 4 Methoden und 2 - 4 Datenelemente.
    für die meisten sagt dieser optimale Wert also nichts aus
  • zu den 4 Klassen mit LOCM = 100
    - 1 ist nicht wirklich implementiert
    - die anderen 3 haben 2 bzw. 3 Datenelemente die von keiner Methode benutzt werden, also wohl überflüssig sind
  • ...

Sonstiges