ScalarInh Metrics

The ScalarInh metrics provide measurements relating to an individual module's participation in inheritance. (For measurements relating to inheritance over the whole system see the SummaryInh metrics suite.) These are based on the original DIT and NOC metrics proposed by Chidamber and Kemerer (CK). The model on which these metrics are based is a graph with modules as vertices and different kinds of edges between them indicating their inheritance relationships. CC edges connect two classes (ie extends), CI connect a class with an interface (implements), and II connect two interfaces (extends). Standard graph metrics such as in- or out-degree, path length, and subgraph size can be restricted to kind of each or characteristic of paths. This gives various classes of metrics, such as depth in inheritance tree (DIT), number of children (NOC), number of ancestors (NOA), number of descendants (NOD), and number of parents (NOP).

DITCCUD
Length of path from a class and consisting only of extends edges to the first non user-defined class other than Object, or one less than the length of the path that ends with Object.
DITIIUD
Length of path from an interface and consisting only of extends edges to the first non user-defined class.
NOACC
Number of ancestors a class has (extends edges only)
NOAII
Number of ancestors an interface has (extends edges only)
NOAALL
Number of all ancestors a type has (both implements and extends edges).
NOCCC
Number of classes inheriting from a given class (via extends edges).
NOCIC
Number of classes implementing a given interface (via implements edges).
NOCII
Number of interfaces inheriting from a given interface (via extends edges).
NOCI
Total number of classes that implement a given interface and interfaces that extend that interface (both implements and extends edges).
NODCC
Number of descendants a class has (extends edges only)
NODII
Number of descendants an interface has (implements edges only)
NODALL
Number of all descendants a type has (both implements and extends edges).
NOPCI
Number of interface parents a class has (via implements edges)
NOPC
Number of parents a class has (both classes and interfaces).
NOPI
Number of parents an interface has (via extends edges).

Further Information