16
Implementaç ão em Java por meio da ferramenta AspectJ. P.O.A. (PROGRAMAÇÃO ORIENTADA A ASPECTOS) Giovani Fontes Rafael Mathias

Apresentação - POA

Embed Size (px)

DESCRIPTION

Apresentação criada por: Giovani Fontes e Rafael Mathias

Citation preview

Page 1: Apresentação - POA

Implementação em Java por meio da ferramenta AspectJ.

P.O.A. (PROGRAMAÇÃO

ORIENTADA A ASPECTOS)

Giovani FontesRafael Mathias

Page 2: Apresentação - 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.

INTRODUÇÃO A POA

Page 3: Apresentação - 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

Page 4: Apresentação - POA

INTERESSES TRANSVERSAIS (CROSSCUTTING CONCERNS) E

ASPECTOS

Page 5: Apresentação - POA

Decomposição

Implementação

Recomposição

ETAPAS PARA A APLICAÇÃO DA POA

Page 6: Apresentação - 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

Page 7: Apresentação - POA

Os termos específicos que o AspectJ acrescenta ao java são:

Joinpoints; Pointcuts; Advices; Aspects.

ASPECTJ

Page 8: Apresentação - POA

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

Page 9: Apresentação - POA

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

POINTCUTS

Page 10: Apresentação - POA

ADVICES

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

Page 11: Apresentação - POA

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

Page 12: Apresentação - POA

VantagensDesvantagens

POA

Page 13: Apresentação - POA

HyperJ, QIDL, AOP/ST, AspectH, D, COOL, RIDL, IL, D2AL, JST, AspectIX, Aspect#.

OUTROS EXEMPLOS DE FERRAMENTAS DE SUPORTE A POA

Page 14: Apresentação - 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

Page 16: Apresentação - POA

PERGUNTAS???