P.O.A. (PROGRAMAÇÃO     Implementação
                           em Java por
             ORIENTADA A   meio da
                           ferramenta

               ASPECTOS)   AspectJ.




Giovani Fontes
Rafael Mathias
INTRODUÇÃO A POA



 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.
INTERESSES TRANSVERSAIS
(CROSSCUTTING CONCERNS) E ASPECTOS

 É 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
ETAPAS PARA A APLICAÇÃO DA POA


Decomposição


Implementação


Recomposição
ASPECTJ


 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.
JOINPOINTS


 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.
POINTCUTS


 Um pointcut nada mais é, do que um agrupamento de
  joinpoints, pois podem acontecer muitas ocorrências de
  joinpoints de um mesmo tipo.
ADVICES


 Trechos de código que são executados nos pointcuts.
ASPECTJ


 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.
POA




Vantagens
Desvantagens
OUTROS EXEMPLOS DE FERRAMENTAS
          DE SUPORTE A POA
 HyperJ, QIDL, AOP/ST, AspectH, D, COOL, RIDL, IL, D 2AL, JST,
  AspectIX, Aspect#.
CONCLUSÃO

 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.
FONTES:



 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/
PERGUNTAS???

Apresentação - POA

  • 1.
    P.O.A. (PROGRAMAÇÃO Implementação em Java por ORIENTADA A meio da ferramenta ASPECTOS) AspectJ. Giovani Fontes Rafael Mathias
  • 2.
    INTRODUÇÃO A POA 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.
  • 3.
    INTERESSES TRANSVERSAIS (CROSSCUTTING CONCERNS)E ASPECTOS  É 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.
  • 4.
  • 5.
    ETAPAS PARA AAPLICAÇÃO DA POA Decomposição Implementação Recomposição
  • 6.
    ASPECTJ  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.
  • 7.
    ASPECTJ  Os termosespecíficos que o AspectJ acrescenta ao java são:  Joinpoints;  Pointcuts;  Advices;  Aspects.
  • 8.
    JOINPOINTS  Joinpoints representameventos 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.
  • 9.
    POINTCUTS  Um pointcutnada mais é, do que um agrupamento de joinpoints, pois podem acontecer muitas ocorrências de joinpoints de um mesmo tipo.
  • 10.
    ADVICES  Trechos decódigo que são executados nos pointcuts.
  • 11.
    ASPECTJ  Esses conceitospodem 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.
  • 12.
  • 13.
    OUTROS EXEMPLOS DEFERRAMENTAS DE SUPORTE A POA  HyperJ, QIDL, AOP/ST, AspectH, D, COOL, RIDL, IL, D 2AL, JST, AspectIX, Aspect#.
  • 14.
    CONCLUSÃO  A orientaçãoa 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.
  • 15.
    FONTES:  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/
  • 16.