Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems

  • Authors:
  • Andrian Marcus;Denys Poshyvanyk;Rudolf Ferenc

  • Affiliations:
  • -;-;-

  • Venue:
  • IEEE Transactions on Software Engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.01

Visualization

Abstract

High cohesion is a desirable property of software, as it positively impacts understanding, reuse, and maintenance. Currently proposed measures for cohesion in Object-Oriented (OO) software reflect particular interpretations of cohesion and capture different aspects of cohesion. The paper proposes a new measure for the cohesion of classes in an OO software system, based on the analysis of the unstructured information embedded in the source code, such as comments and identifiers. The measure, named the Conceptual Cohesion of Classes (C3), is inspired from the mechanisms used to measure textual coherence in cognitive psychology and computational linguistics. The paper presents the principles and the technology that stand behind the C3 measure. A large case study on three open source software systems is presented, which compares the new measure with an extensive set of existing metrics and uses them to construct models that predict software faults. The case study shows that the novel measure captures different aspects of class cohesion compared to any of the existing cohesion measures. In addition, combining C3 with existing structural cohesion metrics proves to be a better predictor of faulty classes when compared to different combinations of structural cohesion metrics.