Combinação dinâmica de aspectos: uma abordagem eficiente

Detalhes bibliográficos
Ano de defesa: 2008
Autor(a) principal: Rainone, Flavia
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Biblioteca Digitais de Teses e Dissertações da USP
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://teses.usp.br/teses/disponiveis/45/45134/tde-20230727-113422/
Resumo: Os sistemas dinamicos orientados a aspectos permitem a adiçao e a remoçao de aspectos em tempo de execuçao, capacidade denominada combinaçao dinamica. Tais sistemas sao ditos adaptaveis, pois possuem a capacidade de se adaptar a novas situaçoes no decorrer de sua execçao. Este trabalho visa avaliar o custo de desempenho envolvido na execuçao da combiçao dinamica, fator que pode afetar o desempenho do sistema durante a execuçao de operaçoes de adiçao e remoçao dinamicas de aspectos. Mostraremos que esse custo é relativamente alto e iremos propor uma nova abordagem de implementaçao a fim de minimiza-lo. A nossa abordagem é formada por duas partes. A primeira envolve a criaçao de uma estrutura de dados capaz de devolver informaçoes sobre pontos de junçao utilizando um pointcut como chave de busca. Essa estrutura de dados é chamada de grafo de sombras de junçao e possui um desempenho médio superior, quando comparada com o processo de casamento de pointcuts tradicional. A segunda parte da abordagem que propomos consiste em alterar os bytecodes da aplicaçao em tempo de execuçao, processo conhecido como hot swap, com o objetivo de garantir que o fluxo de controle de um ponto de junçao se mantera inalterado quando nao houver adendos a serem chamados durante sua execuçao. A fim de realizarmos uma avaliaçao pratica da abordagem proposta, implementa- mos a nossa soluçao na ferramenta de programaçao orientada a aspectos dinamica JBoss AOP. Note, no entanto, que poderíamos ter implementado a abordagem proposta em qualquer ferramenta de programaçao orientada a aspectos dinamica em Java, ou ainda, em outra linguagem que fornecesse suporte a hot swap.