Programação Orientada a Aspectos com AspectJ 

Professor: Paulo Borba 

Assistente: Sérgio Soares

Disciplina: Tópicos Avançados em Linguagens de Programação I

Pré-requisitos: Experiência com a linguagem Java e conceitos de distribuição, persistência e concorrência

Este curso visa motivar, discutir, exercitar, e consolidar o uso de uma nova técnica de programação: programação orientada a aspectos (AOP). Esta nova técnica ajuda a resolver alguns dos problemas inerentes à programação orientada a objetos e outros paradigmas de desenvolvimento, trazendo ganhos consideráveis com relação a qualidade de software e produtividade no desenvolvimento. 

Os benefícios de AOP são obtidos através da modularização de diferentes preocupações ou requisitos como persistência, distribuição, tratamento de exceções, e concorrência. De fato, com uma linguagem orientada a objetos, a implementação destas preocupações é espalhada entre várias classes do sistema. Com uma linguagem orientada a aspectos, esta implementação é encapsulada em módulos específicos chamados aspectos. 

Em particular, o curso será baseado na linguagem AspectJ, uma extensão de Java com suporte a programação orientada a aspectos, e envolve as seguintes atividades: 

Mais detalhes básicos sobre AspectJ e AOP podem ser encontrados nos seguintes endereços: 

http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html 

http://aspectj.org/

Veja o programa em http://www.cin.ufpe.br/~scbs/talp1/