Abstract

Cohesion significantly impacts on posterior development and maintenance. A well-designed module should be coherent with a single responsibility and less propagative for changes to other modules. In object-oriented development, classes are often modularized based on their relationships to localize change impact. There has been much work on grouping classes using direct class interactions and similarity of lexical information of classes. However, there has been little attention to indirect class relationships which are significant in defining functional semantics in object-oriented systems. In this paper, we present an approach for grouping classes using both direct and indirect class relationships. In the approach, we define a set of metrics for measuring couplings based on indirect class relationships and use them to group classes with the aim of localizing the impact of changes. We evaluate the approach using three applications - JHotDraw, JMeter, and ArgoUML and compare the results with existing work. The evaluation shows that the proposed approach reduces 17.2% and 22.2% of the number of packages that are affected by changes over the existing works.

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