Skip navigation
Please use this identifier to cite or link to this item: https://repositorio.ufpe.br/handle/123456789/2759
Title: Deriving refactorings for aspectJ
Authors: Cole Neto, Leonardo
Keywords: Programming laws;Separation of concerns;Aspect-oriented software development;Refactoring
Issue Date: 2005
Publisher: Universidade Federal de Pernambuco
Citation: Cole Neto, Leonardo; Henrique Monteiro Borba, Paulo. Deriving refactorings for aspectJ. 2005. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2005.
Abstract: Refactoring tem sido muito útil na reestruturação de programas orientados a objetos. Esta técnica pode proporcionar benefícios similares aos programas orientados a aspectos. Sendo assim, refactoring pode ser uma técnica interessante para introduzir aspectos em uma aplicação existente, orientada a objetos. No intuito de explorar os benefícios proporcionados pelos refactorings, desenvolvedores de aplicações orientadas a aspectos estão identificando transformações comuns para tais aplicações, em sua maioria, para a linguagem AspectJ, uma linguagem orientada a aspectos de propósito geral que estende Java. No entanto, estas transformações não possuem suporte para garantir que preservam o comportamento externo da aplicação. Tal propriedade garante que as transformações são de fato refactorings. Este trabalho foca neste problema e introduz leis de programação para AspectJ que podem ser usadas para derivar transformações que preservam comportamento (refactorings) para um subconjunto desta linguagem. Leis de programação definem equivalência entre dois programas, desde que algumas restrições sejam respeitadas. Nosso conjunto de leis não somente define como introduzir ou remover construções de AspectJ, como também como reestruturar aplicações nesta linguagem. Aplicando e compondo as leis, pode-se mostrar que uma transformação AspectJ é de fato um refactoring. Leis são apropriadas para isso pois são bem mais simples do que a maioria dos refactorings. Comparando com refactorings, as leis envolvem transformações localizadas e somente uma construção da linguagem por vez, além de seram bi-direcionais. As leis formam uma base para a definição de refactorings com uma certa confiança de que estes preservam comportamento. Nós avaliamos as leis de duas formas. A primeira utiliza as leis para derivar refactorings já existentes na literatura. Isto ajuda a definir com mais precisão as precondições associadas a estes refactorings, alem de verificar se eles preservam comportamento. A segunda forma de avaliação utiliza as leis e alguns refactorings derivados destas para reestruturar duas aplicações Java. A implementação de comportamento transversal nestas aplicações é reestruturada utilizando construções de AspectJ para tornar tal comportamento modular. Isto ilustra que as leis podem também ser úteis para transformar aplicações orientadas a objetos em aplicações orientadas a aspectos
URI: https://repositorio.ufpe.br/handle/123456789/2759
Appears in Collections:Dissertações de Mestrado - Ciência da Computação

Files in This Item:
File Description SizeFormat 
arquivo7122_1.pdf1.61 MBAdobe PDFView/Open


This item is protected by original copyright



Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.