A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação Orientada a Aspectos

Apresentações semelhantes


Apresentação em tema: "Programação Orientada a Aspectos"— Transcrição da apresentação:

1 Programação Orientada a Aspectos
Disciplina: Especificação e Manutenção de Sistemas de Informação Alunas: Lia Mara Borges de Freitas Fabíola Ribeiro de Carvalho

2 Aspects

3

4 AspectJ AspectJ é uma linguagem orientada a aspectos na qual podemos dizer que é uma extensão da linguagem Java, pois usa todos os recursos da linguagem e acrescenta recursos de Programação Orientada a Aspectos (POA). AspectJ acrescenta os seguintes conceitos e construções associadas: Aspectos Join Ponts Pointcuts Advices Inter-types declarations

5 Aspects É a unidade de modularidade para crosscutting concerns em AspectJ. Um aspecto é definido por uma declaração de aspecto, que tem uma forma similar a declaração de classe em Java, contendo métodos, atributos, etc. Um aspecto é combinado com as classes que ele afeta de acordo com especificações definidas dentro dele.

6 Join Points Join Points são pontos de programas onde os aspectos e o código Java se “encontram” (Processo de composição). Um join point é um ponto bem definido da execução de um programa, como a chamada de um método, o acesso a um atributo, a inicialização de um objeto, o levantamento de uma exceção, etc A partir dos pontos de junção, são criadas as regras que darão origem aos pontos de atuação ou ponto de corte.

7 Pointcuts Pointcuts são os pontos responsáveis por detectarem quais Join Points o aspecto deverá interceptar. Pointcuts são alguns join points de um programa que são capturados pelo mecanismo de AOP do AspectJ. Exemplos de Pointcuts:

8 Advices Os Pointcuts apenas selecionam os pontos onde o AspectJ irá interceptar. Um aspecto pode especificar advices que são usados para definir algum código que deve ser executado quando um pointcut é atingido. Advice é um mecanismo parecido com um método que consiste de código que é executado: - Antes (before) de um pointcut. - Depois (after) de um pointcut. - No lugar (around) de um pointcut.

9 Inter-types declarations
Um aspecto pode introduzir métodos, atributos, declarações de implementação de interface e declaração de extensão de classe usando a construção chamada de inter-type declaration. Membros introduzidos podem ser visíveis a todas as classes e aspectos (inter-type declaration pública) ou apenas internamente ao aspecto (inter-type declaration privada).

10 Exemplo de definição de um aspecto em AspectJ
01 aspect FaultHandler { 02 03 private boolean Server.disabled = false; 04 05 private void reportFault() { 06 System.out.println(“Failure! Please fix it!.”); 07 } 08 public static void fixServer(Server s) { 09 s.disabled = false; 10 } 11 12 pointcut services(Server s): target(s) && call(public * * (..)); 13 14 before(Server s): services(s) { 15 if (s.disabled) throw new DisabledException(); 16 } 17 after(Server s) throwing (FaultException e): services(s) { 18 s.disabled = true; 19 reportFault(); 20 } 21 } Aspecto FaultHandler Inter-type declaration que introduz um atributo na classe Server Método privado Método público Pointcut Adivice do tipo Before Adivice do tipo After

11 Exemplo de definição de uma classe JAVA e de um aspecto em AspectJ
public class HelloWorld { public static void main(String[] args) { } public aspect HelloFromAspectJ { pointcut mainMethod() : execution(public static void main(String[])); after() returning : mainMethod() { System.out.println("Hello World");

12 Referências Aspectos/pagina1.html. DA SILVA, L. F.; LEITE, J.C. Uma Linguagem de Modelagem de Requisitos Orientada a Aspectos. Disponível em: Ultimo acesso: 07 de maio de 2006. HUGO, G., GROTT, C. M. Estudo de Caso Aplicado a Programação Orientada a Aspecto. Disponível em: Ultimo acesso: 04 de maio de 2006

13 Referências RAMOS, R., A; PAZIN, A.; PENTEADO, R. A. D. Reengenharia de Sistemas Orientados a Objetos para Sistemas Orientados a Aspectos. Disponível em: RAMOS, R. , A; CASTRO, J. F.B Avaliação de uma Metodologia de Medição da Qualidade em um Documento de Requisitos Orientados a Aspectos. Disponível em: . Ultimo acesso: 04 de maio de 2006. RAMOS, R., A; PENTEADO, R; MASIERO, P. C. Um Processo de Reestruturação de Código Baseado em Aspectos. Disponível em: Ultimo acesso: 04 de maio de 2006. KAWAKAMI D.; RAMOS, R., A; PENTEADO, R Uma Abordagem para Reengenharia de Sistemas implementados em Java para AspectJ. Disponível em:


Carregar ppt "Programação Orientada a Aspectos"

Apresentações semelhantes


Anúncios Google