Abstractness of Packages

Abstractness measures the proportion of abstract types in a package relative to the total number of types in that package. A highly abstract package where the metric value is close 1 is likely to be useless, especially if it also has high instability: The class hierarchy has been over-engineered, and all those abstract types are not heavily used.

One should try to design packages that are abstract in proportion to their incoming dependencies, and concrete in proportion to their outgoing dependencies. That way, making changes is likely to be easy.

 
Next >