Overview Pyramid

Source: SourceMonitor


ANDC n/a
AHH n/a
30.6 NOP 49
4.8 NOC 1500
25.8 NOM 7215 NOM 4.8
.1 LOC 186497 34714 CALLS n/a
CYCLO 14009 n/a FANOUT

Legend: undefined value in range value too small value too big

Thresholds

ValueLowHigh
ANDC 0.19 0.37
AHH 0.05 0.21
NOM/NOC 4 15
LOC/NOM 5 16
CYCLO/LOC 0.2 0.3
CALLS/NOM 1.17 2
FANOUT/CALLS 0.2 0.48

Smells

Explanation

A brief description of the metrics used in the Overview Pyramid.

Top part: System Inheritance

ANDC
average number of derived classes;
AHH
average hierarchy height.

Left part: Size and Complexity

Direct metrics

NOP
number of packages;
NOC
number of classes;
NOM
number of methods;
LOC
lines of code;
CYCLO
cyclomatic complexity index.

Derived metrics

NOC/NOP
average number of classes per package → high-level structuring, indicates if packages tend to be coarse or fine grained;
NOM/NOC
average number of methods per class → class structuring, indicates how operations are distributed over the system;
LOC/NOM
average number of lines per method → operation structuring, indicates how well the system's behaviour is distributed over operations;
CYCLO/LOC
average method complexity → intrinsic operation complexity, indicates the expected complexity of an operation.

Right part: Coupling

Direct metrics

CALLS
number of calls;
FANOUT
number of referenced types.

Derived metrics

CALLS/NOM
average number of calls in a method → coupling intensity, indicates how many operations are invoked on average by each operation;
FANOUT/CALLS
average number of external calls → coupling dispersion, indicates how many classes are involved on average in a single operation.