An Evaluation of Clone Detection Techniques for Identifying Crosscutting Concerns
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Aspect Mining Using Event Traces
Proceedings of the 19th IEEE international conference on Automated software engineering
Aspect Mining through the Formal Concept Analysis of Execution Traces
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Identifying Aspects Using Fan-In Analysis
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
A Qualitative Comparison of Three Aspect Mining Techniques
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Aspect Oriented Refactoring
Automated Refactoring of Object Oriented Code into Aspects
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
AspectJ Cookbook
Refactoring the Aspectizable Interfaces: An Empirical Assessment
IEEE Transactions on Software Engineering
Timna: a framework for automatically combining aspect mining analyses
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
APTE: automated pointcut testing for AspectJ programs
Proceedings of the 2nd workshop on Testing aspect-oriented programs
Mining Aspects from Version History
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Aspect-oriented software development
Aspect-oriented software development
Object-oriented transformations for extracting aspects
Information and Software Technology
Recommending refactorings when restructuring variabilities in software product lines
Proceedings of the 2nd Workshop on Refactoring Tools
Automated Aspect Recommendation through Clustering-Based Fan-in Analysis
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
Software refactoring is the process of reorganizing the internal structure of code while preserving the external behavior. Aspect-Oriented Programming (AOP) provides new modularization of software systems by encapsulating crosscutting concerns. Based on these two techniques, aspect-oriented (AO) refactoring restructures crosscutting elements in code. AO refactoring includes two steps: aspect mining (identification of aspect candidates in code) and as- pect refactoring (semantic-preserving transformation to mi- grate the aspect-candidate code to AO code). Aspect refac- toring clusters similar join points together for the aspect candidates and encapsulates each cluster with an effective pointcut definition. With the increase in size of the code and crosscutting concerns, it is tedious to manually identify aspects and their corresponding join points, cluster the join points, and infer pointcut expressions. Therefore, there is a need to auto- mate the process of AO refactoring. This paper proposes an automated approach that identifies aspect candidates in code and infers pointcut expressions for these aspects. Our approach mines for aspect candidates, identifies the join points for the aspect candidates, clusters the join points, and infers an effective pointcut expression for each clus- ter of join points. The approach also provides an addi- tional testing mechanismto ensure that the inferred pointcut expressions are of correct strength. The empirical results show that our approach helps achieve a significant reduc- tion in the total number of pointcut expressions to be used in the refactored code.