Identification of Nominated Classes for Software Refactoring Using Object-Oriented Cohesion Metrics

The production of well-developed software reduces the cost of the software maintainability. Therefore, many software metrics have been developed to measure the quality of the software design. Measuring class cohesion is considered as one of the most important software quality measurements. Unfortunately, most of approaches that have been proposed on cohesion metrics do not consider the inherited attributes and methods in measuring class cohesion. This paper provides a novel assessment criterion for measuring the quality of a software design. In this context, inherited attributes and methods are considered in the assessment. This offers a guideline for choosing the proper Depth of Inheritance Tree (DIT) that refers to the nominated classes for refactoring. Experiments are carried out on more than 35K classes from more than 16 open-source projects using the most used cohesion metrics.