High cohesion may be a desirable property of software because it absolutely impacts understanding, reuse, and maintenance. Currently proposed measures for cohesion in Object-Oriented (OO) software reflect particular interpretations of cohesion and capture completely different aspects of it. Existing approaches are largely based mostly on using the structural information from the supply code, like attribute references, in methods to live cohesion. This paper proposes a replacement measure for the cohesion of categories in OO software systems based on the analysis of the unstructured data embedded within the source code, like comments and identifiers. The live, named the Conceptual Cohesion of Classes (C3), is inspired by the mechanisms used to live textual coherence in cognitive psychology and computational linguistics. This paper presents the principles and also the technology that stand behind the C3 measure. A large case study on three open supply software systems is presented that 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 live captures totally 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 categories compared to completely different mixtures of structural cohesion metrics.
Did you like this research project?
To get this research project Guidelines, Training and Code... Click Here