Building an expert system to assist system refactorization

  • Authors:
  • Santiago A. Vidal;Claudia A. Marcos

  • Affiliations:
  • ISISTAN Research Institute, Faculty of Sciences, UNICEN University, Campus Universitario, B7001BBO Tandil, Buenos Aires, Argentina and CONICET, Concejo Nacional de Investigaciones Cientıficas ...;ISISTAN Research Institute, Faculty of Sciences, UNICEN University, Campus Universitario, B7001BBO Tandil, Buenos Aires, Argentina and CIC, Comisión de Investigaciones Cientıficas de la ...

  • Venue:
  • Expert Systems with Applications: An International Journal
  • Year:
  • 2012

Quantified Score

Hi-index 12.05

Visualization

Abstract

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.