masterThesis
Structuring Adaptive Applications using AspectJ
Registro en:
Débora Dantas de Souza, Ayla; Henrique Monteiro Borba, Paulo. Structuring Adaptive Applications using AspectJ. 2004. Dissertação (Mestrado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2004.
Autor
Débora Dantas de Souza, Ayla
Institución
Resumen
Os dispositivos computacionais estão se tornando ubíquos. Com um celular, atualmente,
podemos acessar e manipular informação praticamente em qualquer lugar e a qualquer
instante. Neste cenário de computação ubíqua, tem-se exigido que tais sistemas sejam
adaptativos, ou seja, tenham a capacidade de se adaptar em decorrência de mudanças
no contexto em que estão inseridos.
É importante destacar, porém, que a adaptabilidade adiciona certa complexidade ao
desenvolvimento de aplicações. Um dos problemas é que a implementação de comportamentos
adaptativos em muitos casos se entrelaça com outras preocupações da aplicação,
como apresentação, negócio e dados, levando a problemas de legibilidade que podem
prejudicar a manutenabilidade do código.
A programação orientada a aspectos pode ser usada para facilitar a resolução de
problemas relacionados a código entrela¸cado, e dar suporte ao desenvolvimento de programas
adaptativos, e ao mesmo tempo adaptáveis (fáceis de modificar) com bons níveis
de qualidade e produtividade. Essa dissertação mostra como podemos usar aspectos, em
especial em AspectJ, para estruturar aplicações adaptativas, minimizando dessa forma o
entrelaçamento de código. AspectJ é uma linguagem orientada a aspectos, de propósito
geral, e que estende a linguagem Java. Ela é voltada `a separação de preocupações. Em
nosso trabalho ela é utilizada para promover a separação da preocupação adaptabilidade ,
obtendo-se assim uma implementação modular.
Através do uso dessa linguagem, identificamos boas práticas para a estruturação de
aplicações adaptativas, as quais foram resumidas em um padrão denominado Adaptability
Aspects. Escolhemos a plataforma Java 2 Micro Edition para implementar várias
preocupações relativas a adaptabilidade, principalmente pelo fato de ser uma tecnologia
destinada a dispositivos ubíquos e com recursos limitados.
Al´em de AspectJ, analisamos também uma outra abordagem para a estruturação
de aplicações adaptativas: o uso do estilo arquitetural denominado Adaptive Object-
Models . Verificamos a partir dessa análise que ele poderia ser combinado com o nosso
padrão, e portanto, beneficiar-se com o uso de aspectos. Dessa forma, poderia-se oferecer
suporte a um conjunto maior de adaptações e ao mesmo tempo obter-se uma estrutura
ção no código mais fácil de compreender.
Por fim, avaliamos o impacto de AspectJ, através do uso do padrão Adaptability
Aspects, para implementar alguns requisitos de adaptabilidade em aplicações J2ME.
Comparamos nossa implementação com uma solução em que a implementação destes
requisitos não é tão modular e com uma outra solução utilizando padrões de projeto
puramente orientados a objeto na qual se buscava tal modularidade. Alguns dos aspectos
comparados foram tempo de execução, memória utilizada, tamanho da aplicação e de
seu código. Além de medir tais fatores, descrevemos os ganhos que a programação
orientada a aspectos pode trazer para a estruturação de aplicações adaptativas visando
obter qualidade em termos de reuso e facilidade de manutenção