|Authors||J. A. Dallal and L. Briand|
|Title||An Object-Oriented High-Level Design Class Cohesion Metric|
|Project(s)||No Simula project|
|Publication Type||Technical reports|
|Year of Publication||2009|
|Publisher||Simula Research Laboratory|
Class cohesion is an important object-oriented software quality attribute. Assessing class cohesion and improving class quality during the object-oriented design phase leads to more comprehensible and maintainable software. One issue with the few existing cohesion metrics targeted at the high-level design phase is that they are not based on realistic assumptions and do not fulfill expected mathematical properties. In this paper, we address this problem by introducing the notion of similarity between pairs of methods and pairs of attribute types in a class, and we use it as a basis to introduce a novel high-level design-based class cohesion metric. The metric considers method-method, attribute-attribute, and attribute-method direct and indirect interactions. We validate this Similarity-based Class Cohesion (SCC) metric theoretically and empirically. The former includes a careful study of the mathematical properties of the metric whereas the latter investigates, using four open source software systems and ten cohesion metrics, whether SCC helps predicts faults more accurately than other comparable cohesion metrics, considered individually or in combination,. Results confirm that SCC is based on more justifiable theoretical principles, relies on more realistic assumptions, and better predicts class quality.