Programação Orientada a Aspectos 
ALUNO: RUBEN BLENICIO 
CURSO: ENGENHARIA DE SOFTWARE 
CADEIRA: PROJETO DETALHADO DE SOFT...
Motivação 
•Sistemas atuais com unidades de desenvolvimento cada vez menores e mais bem definidas; 
•Linguagens de program...
Aspectos versuscomponentes 
Propriedades do sistema que devem ser implementadas podem ser vistas como um aspecto ou como u...
Objetivo da programação orientada a aspectos 
Auxiliar o desenvolvedor na tarefa de identificar e separar os componentes d...
Implementação de Aspectos 
A implementação de um sistema baseado na Orientação a Aspectos é composta de: 
•Uma linguagem d...
Implementação de Aspectos
Componentes 
•Conceitos da própria linguagem que permitem ao programador implementar as funcionalidades do sistema. Ex: Pr...
Aspectos 
•Propriedades do sistema que não são representadas apenas por uma unidade funcional. Normalmente estão espalhada...
Exemplo de aspecto
Linguagem de Aspectos 
A linguagem de aspectos deve ser clara e precisa o suficiente para suportar a implementação das par...
Combinador de Aspectos 
A função do combinador de aspectos é processar a linguagem de aspectos e a de componentes, estrutu...
Técnicas de Composição: Filtros 
•Filtros é uma técnica de programação orientada a aspectos onde os aspectos são expressos...
Linguagens Para Programação de Aspectos 
HyperJ, QIDL, AOP/ST, linguagem de sincronização de processos, linguagem detracin...
Pointcuts, Joinpoints e Advices 
•Joinpoints são pontos bem definidos na execução de um programa. Ex: Chamadas a métodos, ...
Vantagens e Desvantagens 
•Diminuição do tamanho do código dos componentes; 
•Reusabilidade e manutenibilidade do código, ...
O Aspecto 
Alinguagem AspectJéuma extensão orientada a aspectos, de propósito geral da linguagem Java.
O AspectJ -Pointcuts
O AspectJ -Advices
Exemplo de código AspectJ
Exemplo de Código AspectJ
Referências 
•Artigo: PROGRAMAÇÃO ORIENTADA A ASPECTOS -Uma Visão Geral. Alexandre Henrique Vieira Soares, Anderson de Rez...
Próximos SlideShares
Carregando em…5
×

Programação orientada a aspectos

344 visualizações

Publicada em

Este trabalho mostra um resumo sobre a Programação Orientada a Aspectos

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
344
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Programação orientada a aspectos

  1. 1. Programação Orientada a Aspectos ALUNO: RUBEN BLENICIO CURSO: ENGENHARIA DE SOFTWARE CADEIRA: PROJETO DETALHADO DE SOFTWARE PROFESSOR: CAMILO ALMENDRA
  2. 2. Motivação •Sistemas atuais com unidades de desenvolvimento cada vez menores e mais bem definidas; •Linguagens de programação provêm a abstração de unidades e sua composição de diversas maneiras; •Algumas propriedades não se enquadram em um só componente funcional: sincronização, restrições de tempo, concorrência, distribuição de objetos, persistência, etc.
  3. 3. Aspectos versuscomponentes Propriedades do sistema que devem ser implementadas podem ser vistas como um aspecto ou como um componente: •A propriedade pode ser vista como um componente se puder ser encapsulada em uma unidade funcional(objeto, método, procedimento). Ex: Conta, usuário, mensagem. •Aspectos normalmente não são unidades funcionais do sistema, mas sim propriedades que estão diluídas em vários módulos do sistema. Ex: Controle de concorrência em uma conta bancária, restrições de entrega de mensagem em um sistema de tempo real.
  4. 4. Objetivo da programação orientada a aspectos Auxiliar o desenvolvedor na tarefa de identificar e separar os componentes dos aspectos do sistema, através de técnicas que possibilitem sua abstração e composição.
  5. 5. Implementação de Aspectos A implementação de um sistema baseado na Orientação a Aspectos é composta de: •Uma linguagem de componentes; •Uma ou mais linguagens de aspectos; •Um combinador de aspectos; •Um programa na linguagem de componentes; •Um ou mais programas na linguagem de aspectos.
  6. 6. Implementação de Aspectos
  7. 7. Componentes •Conceitos da própria linguagem que permitem ao programador implementar as funcionalidades do sistema. Ex: Procedimentos, funções, métodos, classes. •A Orientação a Aspectos não é restrita à orientação a objetos, ela se adapta ao modelo.
  8. 8. Aspectos •Propriedades do sistema que não são representadas apenas por uma unidade funcional. Normalmente estão espalhadas por várias partes do código. Daí surgem alguns problemas: oCódigo entrelaçado: regras de negócio misturadas com códigos de distribuição; oCódigo espalhado: várias classes implementando uma funcionalidade; oDificuldade de manutenção e reuso. •Exemplos mais recorrentes: sincronização de objetos concorrentes, distribuição, tratamento de exceções, coordenação de múltiplos objetos, persistência, serialização, atomicidade, replicação, segurança, visualização, logging, tracing, tolerância à falhas, obtenção de métricas, dentre outras.
  9. 9. Exemplo de aspecto
  10. 10. Linguagem de Aspectos A linguagem de aspectos deve ser clara e precisa o suficiente para suportar a implementação das particularidades do sistema. Requisitos de uma linguagem de aspectos: •Sua sintaxe deve ser fortemente relacionada com a da linguagem de componentes; •A linguagem deve ser projetada para especificar o aspecto com precisão. •Sua gramática deve possuir elementos que permitam ao combinador compor os programas escritos usando as linguagens de aspectos e componentes.
  11. 11. Combinador de Aspectos A função do combinador de aspectos é processar a linguagem de aspectos e a de componentes, estruturando essas linguagens a fim de produzir a operação desejada.
  12. 12. Técnicas de Composição: Filtros •Filtros é uma técnica de programação orientada a aspectos onde os aspectos são expressos em filtros, de maneira declarativa, juntamente com especificações para a transformação de mensagens. •Nesta abordagem as mensagens que chegam a um objeto são avaliadas e, se necessário, manipuladas pelos filtros que atuam sobre aquele objeto.
  13. 13. Linguagens Para Programação de Aspectos HyperJ, QIDL, AOP/ST, linguagem de sincronização de processos, linguagem detracing, AspectJ, D, COOL, RIDL, IL, D2AL, JST, AspectIX.
  14. 14. Pointcuts, Joinpoints e Advices •Joinpoints são pontos bem definidos na execução de um programa. Ex: Chamadas a métodos, acessos à variáveis. •Pointcut é uma construção de linguagem que junta um conjunto de joinpoints com base em um critério bem definido. •Completando a implementação, Advices são trechos de código que são executados antes, depois e durante a ocorrência de um Joinpoint.
  15. 15. Vantagens e Desvantagens •Diminuição do tamanho do código dos componentes; •Reusabilidade e manutenibilidade do código, visto que está em um só local; •Não há um meio claro de se definir um aspecto; •Falta de metodologias.
  16. 16. O Aspecto Alinguagem AspectJéuma extensão orientada a aspectos, de propósito geral da linguagem Java.
  17. 17. O AspectJ -Pointcuts
  18. 18. O AspectJ -Advices
  19. 19. Exemplo de código AspectJ
  20. 20. Exemplo de Código AspectJ
  21. 21. Referências •Artigo: PROGRAMAÇÃO ORIENTADA A ASPECTOS -Uma Visão Geral. Alexandre Henrique Vieira Soares, Anderson de Rezende Rocha, Flávio Luís Alves, Júlio César Alves. •Material da UFPE: http://www.cin.ufpe.br/~scbs/talp1/

×