SlideShare uma empresa Scribd logo
Programação Orientada a Aspectos 
ALUNO: RUBEN BLENICIO 
CURSO: ENGENHARIA DE SOFTWARE 
CADEIRA: PROJETO DETALHADO DE SOFTWARE 
PROFESSOR: CAMILO ALMENDRA
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.
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.
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.
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.
Implementação de Aspectos
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.
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.
Exemplo de aspecto
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.
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.
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.
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.
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.
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.
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 Rezende Rocha, Flávio Luís Alves, Júlio César Alves. 
•Material da UFPE: http://www.cin.ufpe.br/~scbs/talp1/

Mais conteúdo relacionado

PDF
Egenharia de Software Orientado a Aspectos
PDF
Programação Orientada a Aspectos
PDF
Segurança da Internet
PDF
Software Architecture
PDF
Programação Orientada a Aspectos - PHPDay SERPRO Curitiba
PDF
Orientação a Aspectos em PHP
PPT
Apresentação final
PPT
Padrões de Projeto
Egenharia de Software Orientado a Aspectos
Programação Orientada a Aspectos
Segurança da Internet
Software Architecture
Programação Orientada a Aspectos - PHPDay SERPRO Curitiba
Orientação a Aspectos em PHP
Apresentação final
Padrões de Projeto

Mais procurados (20)

PDF
Padrões de Projeto de Software
PDF
Java Net: Interagindo com a Internet
PPTX
Padrões de projeto - Adapter, Proxy, Composite e Bridge
PPT
Artigo Transp Sw
PPTX
Linguagem de programação C# 4 e 5
PPTX
Diagrama de classes
PDF
Educação e certificação na Plataforma .NET
PPTX
Algoritmos - Paradigmas de Programação
PPT
Padrões Arquiteturais de Sistemas
PDF
Exemplos de Design Patterns em Java
PPT
Visaogeraldorup
PDF
Arquitetura de Software
PPT
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
PPT
Padroes de projetos gof
PPTX
Fundamentos de Padrões de Projeto de Software
PPT
Modelagem Arquitetural e Visão 4+1
PDF
Padrão De Projeto Adapter
PPTX
Projeto de Sistemas - Aula003
PDF
RUP (Rational Unified Process)
PPS
Arquitetura de Software
Padrões de Projeto de Software
Java Net: Interagindo com a Internet
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Artigo Transp Sw
Linguagem de programação C# 4 e 5
Diagrama de classes
Educação e certificação na Plataforma .NET
Algoritmos - Paradigmas de Programação
Padrões Arquiteturais de Sistemas
Exemplos de Design Patterns em Java
Visaogeraldorup
Arquitetura de Software
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
Padroes de projetos gof
Fundamentos de Padrões de Projeto de Software
Modelagem Arquitetural e Visão 4+1
Padrão De Projeto Adapter
Projeto de Sistemas - Aula003
RUP (Rational Unified Process)
Arquitetura de Software
Anúncio

Semelhante a Programação orientada a aspectos (20)

PDF
Programação Orientada a Aspectos
PPTX
Programação Oritentada a Aspecto
PPTX
Apresentação - POA
PPTX
Orientacao aspectos
PPT
An Aspect-Oriented Infrastructure for Design by Contract in Java
PDF
Programação Orientada a Aspectos
PDF
Aula 01 introdução aoo
PDF
Programação Orientada a Aspectos em PHP
PDF
AOP - ESJUG - 2005
PDF
Intro oca,ocp 6 & 7, oo basics
PDF
AOP - JustJava - 2005
PDF
Engenharia de software orientada a aspectos: do interesse ao aspecto
PDF
Desenvolvimento de software orientado a aspectos
PPTX
PDF
Aula 1 introducao
PPTX
Linguagem de programação introdução v1
PDF
Tcc aop-e-persistencia
PPT
2.1 introdução a oo
PDF
Algoritmos e-programacao-apostila-completa
PPT
Analise de Requisitos
Programação Orientada a Aspectos
Programação Oritentada a Aspecto
Apresentação - POA
Orientacao aspectos
An Aspect-Oriented Infrastructure for Design by Contract in Java
Programação Orientada a Aspectos
Aula 01 introdução aoo
Programação Orientada a Aspectos em PHP
AOP - ESJUG - 2005
Intro oca,ocp 6 & 7, oo basics
AOP - JustJava - 2005
Engenharia de software orientada a aspectos: do interesse ao aspecto
Desenvolvimento de software orientado a aspectos
Aula 1 introducao
Linguagem de programação introdução v1
Tcc aop-e-persistencia
2.1 introdução a oo
Algoritmos e-programacao-apostila-completa
Analise de Requisitos
Anúncio

Último (11)

PPTX
Eng. Software - pontos essenciais para o início
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Utilizando code blockes por andre backes
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Eng. Software - pontos essenciais para o início
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Utilizando code blockes por andre backes
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Arquitetura de computadores - Memórias Secundárias
Design - Introdução a Gestalt e teoria das formas
Tipos de servidor em redes de computador.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Manejo integrado de pragas na cultura do algodão
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...

Programação orientada a aspectos

  • 1. Programação Orientada a Aspectos ALUNO: RUBEN BLENICIO CURSO: ENGENHARIA DE SOFTWARE CADEIRA: PROJETO DETALHADO DE SOFTWARE PROFESSOR: CAMILO ALMENDRA
  • 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. 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. 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. 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.
  • 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. 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.
  • 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. 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. 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. 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. 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. 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. O Aspecto Alinguagem AspectJéuma extensão orientada a aspectos, de propósito geral da linguagem Java.
  • 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/