New Conceptual Coupling and Cohesion Metrics for Object-Oriented Systems

Abstract

The paper presents two novel conceptual metrics for measuring coupling and cohesion in software systems. Our first metric, Conceptual Coupling between Object classes (CCBO), is based on the well-known CBO coupling metric, while the other metric, Conceptual Lack of Cohesion on Methods (CLCOM5), is based on the LCOM5 cohesion metric. One advantage of the proposed conceptual metrics is that they can be computed in a simpler (and in many cases, programming language independent) way as compared to some of the structural metrics. We empirically studied CCBO and CLCOM5 for predicting fault-proneness of classes in a large open source system and compared these metrics with a host of existing structural and conceptual metrics for the same task. As the result, we found that the proposed conceptual metrics, when used in conjunction, can predict bugs nearly as precisely as the 58 structural metrics available in the Columbus source code quality framework and can be effectively combined with these metrics to improve bug prediction.

Publication
Proceedings of the 10th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2010), Timişoara, Romania, Pages 33–42

BibTeX:

@InProceedings{UFP10,
    author    = {{\'U}jh{\'a}zi, B{\'e}la and Ferenc, Rudolf and Poshyvanyk, Denys and Gyim{\'o}thy, Tibor},
    title     = {New Conceptual Coupling and Cohesion Metrics for Object-Oriented Systems},
    booktitle = {Proceedings of the 10th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2010)},
    year      = {2010},
    pages     = {33--42},
    address   = {Timi\c{s}oara, Romania},
    month     = sep,
    publisher = {IEEE Computer Society},
    note      = {Best paper of the conference},
    doi       = {10.1109/SCAM.2010.14},
    keywords  = {fault proneness, conceptual coupling, cohesion metrices, object oriented system, software metrics system, programming language, Columbus source code quality framework, bug prediction, open source system},
    url       = {http://ieeexplore.ieee.org/document/5601833/},
}