Abstract

Software developers require information to understand the characteristics of systems, such as complexity and maintainability. In order to further understand and determine characteristics of object-oriented (OO) systems, this paper describes research that identifies attributes that are valuable in determining the difficulty in implementing changes during maintenance, as well as the possible effects that such changes may produce. A set of metrics are proposed to quantify and measure these attributes. The proposed complexity metrics are used to determine the difficulty in implementing changes through the measurement of method complexity, method diversity, and complexity density. The paper establishes impact metrics to determine the potential effects of making changes to a class and dependence metrics that are used to measure the potential effects on a given class resulting from changes in other classes. The case study shows that the proposed metrics provide additional information not sufficiently provided by the related existing OO metrics. The metrics are also found to be useful in the investigation of large systems, correlating with project outcomes.

Highlights

  • Software metrics have been used to solve different problems such as predicting testing complexity [1], identifying errors [2], and promoting modularity [3]

  • Mean Method Complexity (MMC) was shown to be correlated with the existing complexity metrics discussed, the results show that those metrics cannot accurately draw conclusions regarding method complexity

  • Standard Deviation Method Complexity (SDMC) was correlated with the existing complexity metrics in most cases, the results show that those metrics cannot accurately draw conclusions regarding method diversity

Read more

Summary

Introduction

Software metrics have been used to solve different problems such as predicting testing complexity [1], identifying errors [2], and promoting modularity [3]. The existing metrics, such as the CK metrics, can be used to predict outcomes during software maintenance, such as effort and defects, they do not provide sufficient information regarding the difficulty in implementing such changes, as well as the potential effects of those changes. It would be beneficial if information is provided regarding the interaction of classes in an OO system in order to predict behavioral changes in those classes during maintenance. It is necessary to develop new metrics for software maintainers to better understand the complexity of classes as well as the potential effects of changing classes

Objectives
Findings
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call