Toward automated refactoring of crosscutting concerns into aspects

Aspect-oriented programing (AOP) improves the separation of concerns by encapsulating crosscutting concerns into aspects. Thus, aspect-oriented programing aims to better support the evolution of systems. Along this line, we have defined a process that assists the developer to refactor an object-orie...

ver descrição completa

Detalhes bibliográficos
Autores: Vidal, Santiago Agustín, Marcos, Claudia Andrea
Formato: artículo
Estado:Versión publicada
Fecha de publicación:2013
País:Argentina
Recursos:Consejo Nacional de Investigaciones Científicas y Técnicas
Repositorio:CONICET Digital (CONICET)
Idioma:inglés
OAI Identifier:oai:ri.conicet.gov.ar:11336/1136
Acesso em linha:http://hdl.handle.net/11336/1136
Access Level:acceso abierto
Palavra-chave:ASPECT REFACTORING
SEPARATION OF CONCERNS
SOFTWARE EVOLUTION
https://purl.org/becyt/ford/1.2
https://purl.org/becyt/ford/1
Descrição
Resumo:Aspect-oriented programing (AOP) improves the separation of concerns by encapsulating crosscutting concerns into aspects. Thus, aspect-oriented programing aims to better support the evolution of systems. Along this line, we have defined a process that assists the developer to refactor an object-oriented system into an aspect-oriented one. In this paper we propose the use of association rules and Markov models to improve the assistance in accomplishing some of the tasks of this process. Specifically, we use these techniques to help the developer in the task of encapsulating a fragment of aspectizable code into an aspect. This includes the choice of a fragment of aspectizable code to be encapsulated, the selection of a suitable aspect refactoring, and the analysis and application of additional restructurings when necessary. Our case study of the refactoring of a J2EE system shows that the use of the process reduces the intervention of the developer during the refactoring.