Implementação em Java por meio da ferramenta AspectJ.
P.O.A. (PROGRAMAÇÃO
ORIENTADA A ASPECTOS)
Giovani FontesRafael Mathias
Surgiu em 1996, criado por Gregor Kickzales (XEROX).
Separar as responsabilidades em partes menores.
Facilidade na manutenção do código.
Facilidade nas alterações das funcionalidades.
POA trata dos interesses transversais como uma extensão.
INTRODUÇÃO A POA
É comum encontrar área de interesses espalhados nas aplicações.
POO tem facilidade em separar as responsabilidades funcionais.
POO não separa as não funcionais(Persistências, autenticação de usuários, desempenho e etc.)
POA é um complemento para POO(Encapsula esses códigos espalhados)
Esses que são chamados de aspectos.
INTERESSES TRANSVERSAIS (CROSSCUTTING CONCERNS) E
ASPECTOS
INTERESSES TRANSVERSAIS (CROSSCUTTING CONCERNS) E
ASPECTOS
Decomposição
Implementação
Recomposição
ETAPAS PARA A APLICAÇÃO DA POA
O AspectJ é uma ferramenta open source que acrescenta os conceitos de AOP à linguagem Java, através de uma extensão à linguagem: os "aspects". Ele utiliza Java como a linguagem para a implementação dos concerns individuais, e tem construções para a especificação das regras de weaving, que são especificadas em termos de join points, pointcuts e advices, e tudo isto é encapsulado em um aspect.
O AspectJ pode ser instalado como um plug-in tanto para a IDE Eclipse, quanto para Netbeans.
ASPECTJ
Os termos específicos que o AspectJ acrescenta ao java são:
Joinpoints; Pointcuts; Advices; Aspects.
ASPECTJ
Joinpoints representam eventos de interesse do fluxo de execução. Quando a execução passa por um joinpoint o aspecto pode agir naquele ponto.
Estes podem ser: chamadas de métodos, acessos a membros de uma classe, etc. Joinpoints podem conter outros Joinpoints.
JOINPOINTS
Um pointcut nada mais é, do que um agrupamento de joinpoints, pois podem acontecer muitas ocorrências de joinpoints de um mesmo tipo.
POINTCUTS
ADVICES
Trechos de código que são executados nos pointcuts.
Esses conceitos podem ser melhor compreendidos se pensarmos que aspectos são estruturas semelhantes às classes, advices são semelhantes ao métodos, joinpoints seriam atributos e os pointcuts algo como triggers sobre os joinpoints.
ASPECTJ
VantagensDesvantagens
POA
HyperJ, QIDL, AOP/ST, AspectH, D, COOL, RIDL, IL, D2AL, JST, AspectIX, Aspect#.
OUTROS EXEMPLOS DE FERRAMENTAS DE SUPORTE A POA
A orientação a aspectos propõe sobre a orientação a objetos algo como o que a orientação a objetos propôs sobre a programação estruturada, ou seja, elementos comuns devem ser encapsulados em um só local para uma melhor definição e facilidade de manutenção.
Diversas pesquisas vem sendo feitas em cima deste assunto, mas POA ainda está engatinhando e mesmo sendo um paradigma inovador a sua utilização ainda não é muito difundida, devido a falta de padronização.
CONCLUSÃO
http://eclipse.org/aspectj
http://www.dextra.com.br/empresa/artigos/aspectprog.htm
http://www.devmedia.com.br/introducao-a-programacao-orientada-a-aspectos-conceitos/3062
http://aosd.net/
FONTES:
PERGUNTAS???