Using object-oriented design complexity metrics to predict maintenance performance
Rajendra K. Bandi, Vijay K. Vaishnavi · 1998
The Object-Oriented (OO) paradigm has become increasingly popular in recent years. Researchers agree that although maintenance may turn out to be easier for OO systems, it is unlikely that the maintenance burden will completely disappear. One approach to controlling software maintenance costs is the utilization of software metrics during the development phase, to help identify potential problem areas. It is argued that existing traditional software metrics are not suitable for OO systems. Many new metrics are being proposed for OO systems, but only few have been validated. The primary purpose of this research is to analytically and empirically validate some of the OO design complexity metrics. This research reports the results of validating four metrics, Interaction Level (IL), Interface Size (IS), Operation Argument complexity (OAC), and Attribute Complexity (AC). The metrics are first analytically evaluated using the relevant properties recommended for complexity metrics, and are found to satisfy all the relevant recommended properties. A controlled experiment is conducted to investigate the effect of the design complexity (as measured by the above metrics) and programmer ability on maintenance time. All of the four metrics are found to be useful in predicting maintenance time. Using the metric AC along with any one of the other metrics (IL, IS, OAC) seems to be the most useful strategy. Although this study did not find any statistically significant correlation between the programmer variables and maintenance time, the results are in the correct direction. Experience in OO languages seems to be useful in finishing a maintenance task faster, while interestingly experience in traditional non-OO languages seems to have the opposite effect. Additional research is recommended to further investigate this phenomenon.