N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Exploiting the map metaphor in a tool for software evolution
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
An Evaluation of Clone Detection Techniques for Identifying Crosscutting Concerns
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Mining Aspectual Views using Formal Concept Analysis
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Aspect Mining Using Event Traces
Proceedings of the 19th IEEE international conference on Automated software engineering
PRISM is research in aSpect mining
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Aspect Mining through the Formal Concept Analysis of Execution Traces
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Extending Dynamic Aspect Mining with Static Information
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
Mining Aspects from Version History
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Tracking Concerns in Evolving Source Code: An Empirical Study
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
Mining Control Flow Graphs for Crosscutting Concerns
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Using natural language program analysis to locate and understand action-oriented concerns
Proceedings of the 6th international conference on Aspect-oriented software development
An Integrated Crosscutting Concern Migration Strategy and its Application to JHOTDRAW
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
Identifying Crosscutting Concerns Using Fan-In Analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Inferring structural patterns for concern traceability in evolving software
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Tool support for understanding and diagnosing pointcut expressions
Proceedings of the 7th international conference on Aspect-oriented software development
Mining Coding Patterns to Detect Crosscutting Concerns in Java Programs
WCRE '08 Proceedings of the 2008 15th Working Conference on Reverse Engineering
Automated Aspect Recommendation through Clustering-Based Fan-in Analysis
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Clone-Aware Configuration Management
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Identifying crosscutting concerns using historical code changes
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Recurring bug fixes in object-oriented programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
A graph-based approach to API usage adaptation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 34th International Conference on Software Engineering
History-sensitive heuristics for recovery of features in code of evolving program families
Proceedings of the 16th International Software Product Line Conference - Volume 1
A systematic review on mining techniques for crosscutting concerns
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Cross-cutting concerns are unavoidable and create difficulties in the development and maintenance of large-scale systems. In this paper, we present a novel approach that identifies certain groups of code units that potentially share some cross-cutting concerns and recommends them for creating and updating aspects. Those code units, called concern peers, are detected based on their similar interactions (similar calling relations in similar contexts, either internally or externally). The recommendation is applicable to both the aspectization of non-aspect-oriented programs (i.e. for aspect creation), and the evolution of aspect-oriented programs (i.e. for aspect updating). The empirical evaluation on several real-world software systems shows that our approach is scalable and provides useful recommendations.