Metric | Acronym | Description | Author |
Number of public methods | NPM | A count of public methods in a class | Bansiya & Davis |
Data access metric | DAM | The ratio of private attributes to the total attributes declared in a class | Bansiya & Davis |
Measure of aggregation | MOA | A count of the number of class fields who types are user defined classes; measures the part-whole relationship | Bansiya & Davis |
Measure of functional abstraction | MFA | The ratio of the number of methods inherited by a class to the total number of methods accessible by the member methods on the class | Bansiya & Davis |
Cohesion among methods of class | CAM | The summation of the number of different types of method parameters in every method divided by a multiplication of the number of different method parameter types in whole class and number of methods; the relatedness of methods of a class based on the parameter list of the methods | Bansiya & Davis |
Weighted methods per class | WMC | The number of methods in the class | Chidamber & Kemerer |
Depth of inheritance tree | WIT | The inheritance levels form the top object hierarchy top | Chidamber & Kemerer |
Number of children | NOC | The number of immediate descendants of the class | Chidamber & Kemerer |
Coupling between object classes | CBO | The number of classes coupled to a given class as a result of method calls, field accesses, inheritance, method arguments, return types, and exceptions | Chidamber & Kemerer |
Response for a class | RFC | The number of different methods that can be executed when an object of that class receives a message | Chidamber & Kemerer |
Lack of cohesion of methods | LCOM | The sets of methods a class that are not related through sharing of some of the class fields | Chidamber & Kemerer |
Inheritance coupling | IC | The number of parent classes to which a given class is coupled; coupling occurs when 1) an inherited method uses an attribute that is defined in a new or redefined method, 2) one of its inherited methods calls a redefined method or 3) one of its inherited methods is called by a redefined method and uses a parameter that is defined in the redefined model | Tang, Kao & Chen |
Coupling between methods | CBM | The total number of new or redefined methods to which all the inherited methods are coupled | Tang, Kao & Chen |
Average method complexity | AMC | The average method size for each class; size is equal to the number of Java binary codes in the method | Tang, Kao & Chen |