Programação Orientada a Aspectos

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Programação em Java Prof. Maurício Braga
Programação Orientada a Objetos*
Introdução a Engenharia de Software de Sistemas Multi-Agentes
Estruturas de Repetição
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
Aula Teste INFNET terça-feira, 11 de janeiro de 2011
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Orientação a Objetos: Encapsulamento e Classificação
Linguagens de Programação Orientadas a Objetos
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Modularização de interesses ortogonais
Programação Básica em Java
Projeto Arquitetural de Software Orientado a Aspectos
Recursividade Inhaúma Neves Ferraz
Professora: Aline Vasconcelos
Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva.
Introdução a Computação
Wagner Santos C. de Jesus
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
PROGRAMAÇÃO ORIENTADA A ASPECTOS EM JAVA Introdução a conceitos teóricos e práticos Adriano G. do Prado José Eduardo M. Lemos José Fernando da S. Cruz.
Como o AspectJ tece o código
Capítulo 9 Herança 1.
Classes e objetos Arrays e Sobrecarga
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Desenvolvimento de Projetos e Aplicações Web
JAVA: Conceitos Iniciais
Threads: Introdução e Implementação
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
Aulas 3 – Paquímetro Sistema de medição Exercícios
JAVA Linguagem Ambiente de Desenvolvimento
P ROGRAMAÇÃO ORIENTADA A ASPECTOS Equipe: Leandro Oliveira Anusio Menezes.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Programação Orientada a Aspectos
Desenvolvimento de Sistemas Orientados a Aspectos
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
CIÊNCIA DA COMPUTAÇÃO ENGENHARIA DE SOFTWARE Aula 1
Atributos, Encapsulamento e Interface em Java
O Plano "Não basta destruir o que sobra;
Linguagem de Programação JAVA
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System.
IF696 - Integração de Dados e DW
Grupo A – Azul Claro, Marrom, Laranja
Aspect Oriented Programming (AOP)
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Curso: Instituições do Direito Acimarney Freitas
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Rio Verde - Goiás - Brasil
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Wagner Santos C. de Jesus
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Tratamento de Exceções
Programação Orientada a Objetos - Java
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Linguagem orientada a Aspectos 2 Luiz Carlos d’Oleron Tiago Vinícius.
Herança Modelagem e Programação Orientada a Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
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.
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.
Transcrição da apresentação:

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

Aspects

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

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.

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.

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:

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.

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).

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

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");

Referências http://www.webartigos.com/articles/1954/1/Projeto-De-Software-Orientado-A Aspectos/pagina1.html. http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspecto www.geomatica.eng.uerj.br/docentes/araujo/_media/carac:aspectj.ppt DA SILVA, L. F.; LEITE, J.C. Uma Linguagem de Modelagem de Requisitos Orientada a Aspectos. Disponível em: http://gnomo.fe.up.pt/~wer2005/docs/papers/LyreneFernandes.pdf. 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: http://www.inf.furb.br/seminco/2005/artigos/108-vf.pdf. Ultimo acesso: 04 de maio de 2006

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: http://www.dc.ufscar.br/~rar/Ramos_Pazin_Clei2004.pdf. 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: http://wer.inf.puc-rio.br/WERpapers/artigos/artigos_WER05/ricardo_ramos.pdf . 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: http://www.dc.ufscar.br/~rar/RAR_SBES2004.pdf. 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: http://www.univasf.edu.br/~ricardo.aramos/publicacoes/Kawakami_LAWASP2007.pdf