A Validation of Object-Oriented Design Metrics as Quality Indicators

Author(s): Victor R. Basili, Lionel C. Briand, and Walcelio L. Melo
Venue: Software Engineering, IEEE Transactions on Software Engineering, vol. 22
Date: 1996

Type of Experiement: Case Study

Quality
3

Summary:

This paper is an empirical investigation of Chidamber and Kemerer's suite of Object Oriented design metrics. More specifically this paper explores the metrics ability to predict classes that are prone to faults and therefore more attention should be given to them to prevent defects. The case study was done by creating a project using C++ and the OO analysis/design model, sequential life cycle model.

The results of their research found that 5 out of 6 of the metrics in the OO suite showed statistically significant ability to show the proneness of defects and that they performed better than "traditional" metrics that can only be computed later in the development cycle. Another finding was that these metrics are relatively independent and complementary of one another. Below is a more in depth view of the metrics in the suite and their individual results.

WMC - Weighted Methods per Class
- Shown to be somewhat significant
- More significant for new and extensively modified classes and UI classes
- the larger the WMC the larger the probability of fault detection

DIT - Depth of Inheritance Tree
- Very significant
- More significant for new and extensively modified classes
- The larger the DIT the larger the probability of fault detection

NOC - Number Of Children of a Class
- Very Significant
- Not significant in UI cases
- The larger the NOC the LOWER the probability of fault detection

CBO - Coupling Between Object Classes
- Significant
- More significant for UI classes

RFC - Response For a Class
- Very significant
- More significant for new and extensively modified classes and UI classes
- The larger the RFC the larger the probability of fault detection

LCOM - Lack of Cohesion on Methods
- Insignificant in all cases

0