Abstract

Software evolution is a time consuming, costly, and complex activity. Once developers are assigned a programming task or change request, they need to complete it as fast as possible without increasing the existing code's overall complexity. Therefore, they need to know the dependencies of software components before applying any code changes. As the code matures, it becomes more difficult to detect indirect coupling relationships among the components, which is a serious problem for project managers. Such hidden relationships may cause further complexity in the system, poor estimation of the effort, and degradation of the code quality. The purpose of this research is to propose a suite of metrics that are grounded on measurement theory and that enhance the scope, strength, and usefulness of accepted software metrics by taking advantage of the hidden relationships among software components. The following research questions guided our work: (RQ1) How to measure software complexity using indirect coupling to take advantage of weighted differences between methods?, and (RQ2) How could indirect coupling metrics help to assist programmers during maintenance tasks? This rigorously introduced suite exhibit well-known desirable metrics properties. Furthermore, it also can be used as an aid in project management and maintenance tasks. The theoretically rigorous enhancement of software metrics by fine-graining them and gathering the hidden relationships among components proved to provide additional significant insight that can benefit both project managers and developers in their job.

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