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

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

Equipe Equipe: Ana Carolina M. Pilatti Igor de Souza Paiva Igor de Souza Paiva Rafael Stubs Parpinelli Rafael Stubs Parpinelli Vera Lúcia Marchiori Vera.

Apresentações semelhantes


Apresentação em tema: "Equipe Equipe: Ana Carolina M. Pilatti Igor de Souza Paiva Igor de Souza Paiva Rafael Stubs Parpinelli Rafael Stubs Parpinelli Vera Lúcia Marchiori Vera."— Transcrição da apresentação:

1 Equipe Equipe: Ana Carolina M. Pilatti Igor de Souza Paiva Igor de Souza Paiva Rafael Stubs Parpinelli Rafael Stubs Parpinelli Vera Lúcia Marchiori Vera Lúcia Marchiori Programa de Pós-Graduação em Informática Aplicada Pontifícia Universidade Católica do Paraná Pontifícia Universidade Católica do Paraná Prof. Dr. Alcides Calsavara Programação Orientada a Aspectos - AspectJ

2 Sumário AOP – Programação Orientada a Aspectos Aspectos e Concerns Cross-cutting e Weaving AspectJ Join Point Pointcut Advice Introduction Implementação Conclusão Referência Bibliográfica

3 AOP (Programação Orientada a Aspectos) Definição: Técnica de programação que proporciona a abstração dos concerns de um sistema complexo, em um novo programa com alta modularidade, através de códigos simples de fácil desenvolvimento e manutenção, com grande potencial de reuso e otimização do uso da memória.

4 Aspectos Captura dos concerns de um sistema em unidades modulares de implementação. São definidos de maneira similar a classes.Concerns São implementações necessárias dentro de um sistema, mas que não são o foco principal do mesmo. Exemplos: sincronização, processamento de falhas, logging, política de segurança, persistência de dados, etc.

5 Cross-cutting Após abstrair os concerns que afetam a modularidade de um sistema em OOP implementa- se estes concerns em Aspectos através da AOP. Durante o aspect weaver estes dois programas irão entrelaçar-se. Weaving O aspect weaver faz o trabalho de integração entre os dois programas de entrada (OOP e AOP).

6 Aspect Weaver

7 AspectJ Definição: Linguagem de extensão a Java orientada a aspectos. Durante o weaver, funciona como um meta- programa, sendo chamado dentro do programa OOP. Suporta 2 tipos de cross-cutting: Dynamic cross-cutting – define implementações adicionais para rodar em pontos bem definidos na execução do programa. Static cross-cutting – afeta tipos estáticos do programa.

8 Join Point São pontos bem definidos na execução do programa. Pointcut São coleções de join points que definem eventos. Advice São métodos especiais associados aos Pointcuts que adicionam comportamento aos Join Points. (Before, After e Around) Introduction Adiciona novos membros a classes e altera o relacionamento de herança entre as classes.

9 public aspect AutoLog { pointcut publicMethods ( ): execution (public * org.apache.cactus..* (..) ); pointcut logObjectCalls ( ): execution ( * Logger.* (..) ); pointcut loggableCalls ( ): publicMethods ( ) && ! logObjectCalls ( ); before ( ) : loggableCalls ( ) { Logger.entry(thisJoinPoint.getSignature ( ).toString ( ) ); } after ( ): loggableCalls ( ) { Logger.exit(thisJoinPoint.getSignature ( ). toString ( ) ); } } Declaração Aspecto Pointcut “publicMethods” Advice before e after que adicionam comportamento ao Join Point Join Point “execution”

10 Join Point

11 Primitive Join Points

12 Implementação Objetivo – Implementar o mecanismo arquitetural persistência nas classes Telefone e TelefoneAvancado do trabalho final; – Apresentar a implementação usando uma abordagem tradicional; – Apresentar a implementação usando AOP com AspectJ.

13 Conclusões A utilização de AOP tem ajudado a aumentar a modularidade e a diminuir consideravelmente a complexidade das aplicações orientadas a objetos. AspectJ é uma poderosa linguagem para implementar AOP.

14 Referências Bibliográficas KICZALES, Gregor et. al., Aspect-oriented Programming, ECOOP, Finland, June 1997. KICZALES, Gregor et. al., Na overview of AspectJ, Departament of Computer Science and Engineering, University of California, San Diego. LESIECKI, Nicholas, Improve modularity with aspect-oriented programming, Technical Team Lead, January 2002.

15 DÚVIDAS?


Carregar ppt "Equipe Equipe: Ana Carolina M. Pilatti Igor de Souza Paiva Igor de Souza Paiva Rafael Stubs Parpinelli Rafael Stubs Parpinelli Vera Lúcia Marchiori Vera."

Apresentações semelhantes


Anúncios Google