Metric Overview

Overview of (non-trivial) calculated metrics

Shortcut Name Description Reference
Ca Afferent coupling Number of classes outside that depend upon classes inside (i.e. incoming dependencies) [PAP]
Ce Efferent coupling Number of classes outside that classes inside depend upon. (i.e. outgoing dependencies) [PAP]
I Instability Ce/(Ca+Ce This is a metric that has the range: [0,1]. If there are no outgoing dependencies, then I will be zero and the package is stable. If there are no incoming dependencies then I will be one and the package is instable. [PAP]
Nc Number of classes Number of classes [PAP]
Na Number of abstract classes Number of abstract classes (abstract class, interface) [PAP]
A Abstractness Na/Nc The A metric has a range of [0,1]. A value of zero means that the package contains no abstract classes. A value of one means that the package contains nothing but abstract classes. [PAP]
D Distance A+I-1 (as absolute value - modified!), it has a range of [-1,1]. Negative means „zone of pain" and positive means „zone of uselessness". [PAP] modified
Rc Relational coupling Number of internal relations / Nc [AUP]
SIZE Number of compilation units Number of compilation units [LSD]
  Component dependency Number of elements an element depends directly or indirectly (transient) upon. [LSD]
CCD Cumulative component dependency Sum over all components Ci in a subsystem of the number of components needed in order to test each Ci incrementally. [LSD]
ACD Average component dependency CCD/Number of components [LSD]
CCDbbt CCD of a tree like system CCD of a tree like system [LSD]
NCCD Normalized cumulative component dependency CCD/CCDbbt [LSD]
CCDcdg CCD for a cyclically dependent graph N*N (N=Number of components) [LSD]
  Cumulated dependencies Like the Component dependency, but calculated for other elements like Layer, Subsystem and Package [LSD]
  Level Levelization [LSD]

Bibliography

[PAP] Principles and Patterns, Robert C. Martin, 2000
[LSD] Large-Scale C++ Software Design, John Lakos, Addison-Wesley 1996
[AUP] Applying UML And Patterns, Craig Larman, Prentice Hall 2002

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.