Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Using Intentional Source-Code Views to Aid Software Maintenance
ICSM '03 Proceedings of the International Conference on Software Maintenance
Untangling: a slice extraction refactoring
Proceedings of the 3rd international conference on Aspect-oriented software development
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Migrating Interface Implementation to Aspects
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
Role-based refactoring of crosscutting concerns
Proceedings of the 4th international conference on Aspect-oriented software development
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
Concern modeling in the concern manipulation environment
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
Isolating Idiomatic Crosscutting Concerns
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
A Classification of Crosscutting Concerns
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Timna: a framework for automatically combining aspect mining analyses
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Applying and combining three different aspect Mining Techniques
Software Quality Control
Mining Aspects from Version History
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Detecting Precedence-Related Advice Interference
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
A common framework for aspect mining based on crosscutting concern sorts
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects
IEEE Transactions on Software Engineering
SoQueT: Query-Based Documentation of Crosscutting Concerns
ICSE '07 Proceedings of the 29th international conference on Software Engineering
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)
Documenting Typical Crosscutting Concerns
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Aspect-oriented software development
Aspect-oriented software development
Reengineering Idiomatic Exception Handling in Legacy C Code
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
A survey of automated code-level aspect mining techniques
Transactions on aspect-oriented software development IV
CodeQuest: scalable source code queries with datalog
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Measuring the effects of aspect-oriented refactoring on component relationships: two case studies
Proceedings of the tenth international conference on Aspect-oriented software development
Building an expert system to assist system refactorization
Expert Systems with Applications: An International Journal
Memoization aspects: a case study
Proceedings of the International Workshop on Smalltalk Technologies
Toward automated refactoring of crosscutting concerns into aspects
Journal of Systems and Software
Trading obliviousness for modularity with cooperative aspect-oriented programming
ACM Transactions on Software Engineering and Methodology (TOSEM) - In memoriam, fault detection and localization, formal methods, modeling and design
Hi-index | 0.00 |
In this paper we propose a systematic strategy for migrating crosscutting concerns in existing object-oriented systems to aspect-oriented programming solutions. The proposed strategy consists of four steps: mining, exploration, documentation and refactoring of crosscutting concerns. We discuss in detail a new approach to refactoring to aspect-oriented programming that is fully integrated with our strategy, and apply the whole strategy to an object-oriented system, namely the JHotDraw framework.Moreover, we present a method to semi-automatically perform the aspect-introducing refactorings based on identified crosscutting concern sorts which is supported by a prototype tool called sair. We perform an exploratory case study in which we apply this tool on the same object-oriented system and compare its results with the results of manual migration in order to assess the feasibility of automated aspect refactoring. Both the refactoring tool sair and the results of the manual migration are made available as open-source, the latter providing the largest aspect-introducing refactoring available to date.We report on our experiences with conducting both case studies and reflect on the success and challenges of the migration process.