Abstract

To ensure quality of code in large software systems, refactoring operations are the norm. With this goal in mind, it is helpful to direct preventive maintenance of large object-oriented legacy systems towards the more advanced aspect-oriented paradigm. However, manually identifying crosscutting concerns, candidate to be rendered as aspects, in large legacy systems can be an overwhelming task. We propose an approach and provide a tool to identify crosscutting concerns embedded in an object-oriented system. Our approach analyses the implementation of classes and their relationships and looks for specific user-defined schemata. We discuss how to build schemata and provide some general ones, devised in accordance with current aspect-oriented programming practices.Compared to existing approaches, our solution is flexible and achieves higher precision in detecting crosscutting concerns. Moreover, it provides the developer with an accurate identification of snippets of code which can be removed from classes and embedded into aspects. The proposed solution has been validated by applying it to a case study, i.e., a large extant software system, suitably selected to assess the quality attained by the aspect-oriented version produced with the assistance of our tool, in comparison with a design performed by expert human developers.

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