A New Coupling Metric: Combining Structural and Semantic Relationships
Abstract
Maintaining object-oriented software is problematic and expensive. Earlier research has revealed that complex relationships among object-oriented software entities are key reasons that make maintenance costly. Therefore, measuring the strength of these relationships has become a requirement to develop proficient techniques for software maintenance. Coupling, a measure of the interdependence among software entities, is an important property for which many software metrics have been defined. It is widely agreed that the level of coupling in a software product has consequences for its maintenance. In order to understand which aspects of coupling affect quality or other external attributes of software, this dissertation introduces a new coupling metric for object-oriented software that combines structural and semantic relationships among methods and classes. The dissertation studies the usage of the new proposed coupling metric throughout change impact analysis, predicting fault-prone and maintainable classes. Three empirical studies were performed to evaluate the new coupling metric and established three results. Firstly, the new coupling metric can be effectively used to specify other classes that might potentially affected by a change to a given class. Secondly, a significant correlation between the new coupling metric and faults has been found. Finally, it has been found that the new metric shows a good promise in predicting maintainable classes. We expect that this new software metric contributes to the improvement of the design of incremental change of software and thus lead to increasing software quality and reducing software maintenance costs.