Skip navigation
Please use this identifier to cite or link to this item: https://repositorio.ufpe.br/handle/123456789/2469
Title: Structuring Adaptive Applications using AspectJ
Authors: Débora Dantas de Souza, Ayla
Keywords: AspectJ;Programação orientada a aspectos;Evolução de software;Separação de preocupações;Adaptive-object models;Adaptabilidade;Sistemas adaptativos;Padrões
Issue Date: 2004
Publisher: Universidade Federal de Pernambuco
Citation: 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.
Abstract: 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
URI: https://repositorio.ufpe.br/handle/123456789/2469
Appears in Collections:Dissertações de Mestrado - Ciência da Computação

Files in This Item:
File Description SizeFormat 
arquivo4584_1.pdf1.92 MBAdobe PDFView/Open


This item is protected by original copyright



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