id: Simula.SE.665
authors: Jehad Al Dallal and Lionel Briand
title: A Precise Method-Method Interaction-Based Cohesion Metric for  Object-Oriented Classes
publication_year: 2009
abstract: The building of highly cohesive classes is an important objective in object-oriented  design. Class cohesion refers to the relatedness of the class members, and it indicates  one important aspect of the class design quality. A meaningful class cohesion metric  helps object-oriented software developers detect class design weaknesses and refactor  classes accordingly. Several class cohesion metrics have been proposed in the  literature. Most of these metrics are applicable based on low level design information  such as attribute references in methods. Some of these metrics capture class cohesion  by counting the number of method pairs sharing common attributes. A few metrics  measure cohesion more precisely by considering the degree of interaction, through  attribute references, between each pair of methods. However, the formulas applied by  these metrics to measure the degree of interaction cause the metrics to violate  important mathematical properties, thus undermining their construct validity and  leading to misleading cohesion measurement. In this paper, we propose a formula that  precisely measures the degree of interaction between each pair of methods, and we  use it as a basis to introduce a low-level design class cohesion metric (LSCC). We  verify that the proposed formula does not cause the metric to violate important  mathematical properties. In addition, we provide a mechanism to use this metric as a  useful indicator for refactoring weakly cohesive classes, thus showing its usefulness  in improving class cohesion. Finally, we empirically validate LSCC. Using four open  source software systems and eleven cohesion metrics, we investigate the relationship  between LSCC, other cohesion metrics, and fault occurrences in classes. Our results  show that LSCC is one of three metrics that explains more accurately the presence of  faults in classes. LSCC is the only one among the three metrics to comply with  important mathematical properties. This suggests that LSCC is a better alternative,  when taking into account both theoretical and empirical results, as a measure to guide  the refactoring of classes. From a more general standpoint, the results suggest that  class quality, as measured in terms of fault occurrences, can be more accurately  explained by cohesion metrics that account for the degree of interaction between each  pair of methods.
publication_url: 
pdf_url: 
institution: Simula Research Laboratory
publication_type: technical report
number: 2009-04
address: 
keywords: ()
publication_month: 
note: 
annote: 
additional: []
location: 
publication_state: Accepted
simula_ou: [<Department at /simula/department/certus>, <Department at /simula/research/approve>]
publisher_url: 

