Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
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
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Assembler to C Migration Using the FermaT Transformation System
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Decomposing Legacy Programs: A First Step Towards Migrating to Client-Server Platforms
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Aspect-Oriented Programming with AspectJ
Aspect-Oriented Programming with AspectJ
Identifying objects using cluster and concept analysis
Identifying objects using cluster and concept analysis
A Post-Placement Side-Effect Removal Algorithm
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
An Empirical Investigation of the Influence of a Type of Side Effects on Program Comprehension
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
9210: The Zip Code of Another IT-Soap
Software Quality Control
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
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
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
A Qualitative Comparison of Three Aspect Mining Techniques
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Aspect Oriented Refactoring
Refactoring a Java Code Base to AspectJ: An Illustrative Example
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Automated Refactoring of Object Oriented Code into Aspects
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Isolating Idiomatic Crosscutting Concerns
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Refactoring the Aspectizable Interfaces: An Empirical Assessment
IEEE Transactions on Software Engineering
Bridging the gap between aspect mining and refactoring
Proceedings of the 3rd workshop on Linking aspect technology and evolution
Object-oriented transformations for extracting aspects
Information and Software Technology
Exception handling refactorings: Directed by goals and driven by bug fixing
Journal of Systems and Software
An integrated crosscutting concern migration strategy and its semi-automated application to JHotDraw
Automated Software Engineering
A role-based crosscutting concerns mining approach to evolve Java systems towards AOP
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
On the modularization and reuse of exception handling with aspects
Software—Practice & Experience
Multi-agent systems in control engineering: a survey
Journal of Control Science and Engineering
Identification of extract method refactoring opportunities for the decomposition of methods
Journal of Systems and Software
Rank-based refactoring decision support: two studies
Innovations in Systems and Software Engineering
Towards evolvable software architectures based on systems theoretic stability
Software—Practice & Experience
The crosscutting impact of the AOSD Brazilian research community
Journal of Systems and Software
Generalization refactorings for reusable aspects
Proceedings of the 51st ACM Southeast Conference
Studying software evolution using topic models
Science of Computer Programming
Hi-index | 0.00 |
Aspect-Oriented Programming (AOP) provides mechanisms for the separation of crosscutting concerns—functionalities scattered through the system and tangled with the base code. Existing systems are a natural testbed for the AOP approach since they often contain several crosscutting concerns which could not be modularized using traditional programming constructs. This paper presents an automated approach to the problem of migrating systems developed according to the Object-Oriented Programming (OOP) paradigm into Aspect-Oriented Programming (AOP). A simple set of six refactorings has been defined to transform OOP to AOP and has been implemented in the AOP-Migrator tool, an Eclipse plug-in. A set of enabling transformations from OOP to OOP complement the initial set of refactorings. The paper presents the results of four case studies, which use the approach to migrate selected crosscutting concerns from medium-sized Java programs (in the range of 10K to 40K lines of code) into equivalent programs in AspectJ. The case study results show the feasibility of the migration and indicate the importance of the enabling transformations as a preprocessing step.