Structuring adaptive applications using AspectJ / Structuring adaptive applications using AspectJ
AUTOR(ES)
Ayla DÃbora Dantas de Souza RebouÃas
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
- Detecting bad smells in aspectJ
- "Teste de programas orientados a aspectos: uma abordagem estrutural para AspectJ"
- Structural integration testing of aspect-oriented programs: a pointcut-based approach for AspectJ
- Uma estratégia de refatoração para AspectJ utilizando leis de programação e XML
- Uma estratégia de refatoração para AspectJ utilizando leis de programação e XML