Specifying and identifying widely used crosscutting concerns
作者:
Highlights:
•
摘要
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.
论文关键词:Aspect mining,Design patterns,Refactoring,Graph pattern matching
论文评审过程:Received 27 July 2016, Revised 10 April 2017, Accepted 11 April 2017, Available online 12 April 2017, Version of Record 2 May 2017.
论文官网地址:https://doi.org/10.1016/j.knosys.2017.04.003