Design Quality Indicators (DQIs) are the base metrics used to calculate the 6 Architecture Quality Indicators (AQIs) we calculate for object-oriented languages.
Average Number of Ancestors
ANA - Abstraction
Average number of classes in the inheritance tree for each class.
Measure of Aggregation
MOA - Composition
Count of number of attributes whose type is user defined classes.
Direct Access Metric
DAM - Encapsulation
Ratio of the number of private and protected attributes to the total number of attributes in the class.
Cohesion Among Methods of Class
CAM - Cohesion
This metric computes the relatedness among methods of a class based upon the parameter list of the methods. The metric is computed using the summation of the intersection of parameters of a method with the maximum independent set of all parameter types in the class. A metric value close to 1.0 is preferred. (Range 0 to 1)
Class Interface Size
CIS - Messaging
Number of public methods in a class.
Measure of Functional Abstraction
MFA - Inheritance
Ratio of the number of inherited methods per the total number of methods within a class.
Direct Class Coupling
DCC - Coupling
Number of other classes a class relates to, either through a shared attribute or a parameter in a method.
Design Size in Classes
DSC - DesignSize
Total number of classes in the design.
Number of Methods
NOM - Complexity
Number of methods declared in a class.
Number of Hierarchies
NOH - Hierarchies
Total number of “root” classes in the design.
Number of Polymorphic Methods
NOP - Polymorphism
Any method that can be used by a class and its descendants. Counts of the number of methods in a class excluding private, static, and final ones.
See how these metrics are used to calculate high-level Architecture Quality Indicators here
Further reading
J. Bansiya ; C.G. Davis "A hierarchical model for object-oriented design quality assessment" IEEE 2002
To obtain a copy of the paper contact us