Structuring adaptive applications using AspectJ / Structuring adaptive applications using AspectJ

AUTOR(ES)
DATA DE PUBLICAÇÃO

2004

RESUMO

Os dispositivos computacionais estÃo se tornando ubÃquos. Com um celular, atualmente, podemos acessar e manipular informaÃÃao 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 à 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Ãm 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

ASSUNTO(S)

aspect-oriented programming software evolution padrÃes separation of concerns sistemas adaptativos adaptive object-models adaptability evoluÃÃo de software adaptive systems adaptabilidade separaÃÃo de preocupaÃÃes ciencia da computacao programaÃÃo orientada a aspectos patterns aspectj adaptive-object models aspectj

Documentos Relacionados