Agents that reduce work and information overload
Communications of the ACM
Proceedings of the ACM SIGCHI Conference on Human factors in computing systems
Aspect-oriented programming: Introduction
Communications of the ACM
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Predicting Future User Actions by Observing Unmodified Applications
Proceedings of the Seventeenth National Conference on Artificial Intelligence and Twelfth Conference on Innovative Applications of Artificial Intelligence
Refactoring to aspects: an interactive approach
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
An approach to aspect refactoring based on crosscutting concern types
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
Automated Refactoring of Object Oriented Code into Aspects
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Bridging the gap between aspect mining and refactoring
Proceedings of the 3rd workshop on Linking aspect technology and evolution
Identifying Crosscutting Concerns Using Fan-In Analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
An illustrative example of refactoring object-oriented source code with aspect-oriented mechanisms
Software—Practice & Experience
Sort-based refactoring of crosscutting concerns to aspects
Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolution
Object-oriented transformations for extracting aspects
Information and Software Technology
Aspect mining meets rule-based refactoring
Proceedings of the 1st workshop on Linking aspect technology and evolution
Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics
Electronic Notes in Theoretical Computer Science (ENTCS)
An expert system for determining candidate software classes for refactoring
Expert Systems with Applications: An International Journal
An integrated crosscutting concern migration strategy and its semi-automated application to JHotDraw
Automated Software Engineering
Automatic Support for the Migration Towards Aspects
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Cloning and Expanding Graph Transformation Rules for Refactoring
Electronic Notes in Theoretical Computer Science (ENTCS)
Exemplar driven development of software product lines
Expert Systems with Applications: An International Journal
Hi-index | 12.05 |
The separation of concerns is an important issue in the building of maintenable systems. Aspect oriented programming (AOP) is a software paradigm that allows the encapsulation of those concerns that crosscut a system and can not be modularized using current paradigms such as object-oriented programming. In this way, AOP increases the software modularization and reduces the impact when changes are made in the system. In order to take advantage of the benefits of AOP, the legacy OO systems should be migrated. To migrate object-oriented systems to aspect-oriented ones, specific refactorings for aspects should be used. This is a complex and tedious task for the developer because he/she needs to know how the refactorings should be applied and under what context. Therefore, it is desirable to have tools that help him/her through the process. In this article, we present an expert software agent, named RefactoringRecommender, that assists the developer during a refactorization of a system. The agent uses a Markovian algorithm with the goal of predicting the needed restructurings.