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.

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Advertisements

Desenvolvimento de Software Orientado por Aspectos Autores: 4033 – Daniel Grilo 4223 – Nelson Rodgrigues Autores: 4033 – Daniel Grilo 4223 – Nelson Rodgrigues.
Aspect Oriented Software Development - AOSD 1 Elaborado por: Bruno Nunes nº 3202 Pedro Casqueiro nº 2163.
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Métricas de Software Prof.ª Adriana dos Santos Caparróz Carvalho.
Identificando requisitos
Projeto 1.
Paradigmas de Programação
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA APLICADA DISCIPLINA DE SISTEMA ORIENTADOS A OBJETOS PROGRAMAÇÃO ORIENTADA.
Modularização de interesses ortogonais
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Projeto Arquitetural de Software Orientado a Aspectos
Professora: Aline Vasconcelos
Programação Orientada a Aspectos
Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva.
Tecnologia da Informação Orientação a Aspectos
Carlos Alberto de Freitas Pereira Júnior
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
Princípios e Conceitos de Software(v2)
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
Separation of Concerns (SoC)
A NÁLISE Q UANTITATIVA DA I MPLEMENTAÇÃO DE T RATAMENTO DE E XCEÇÕES NA L INGUAGEM P TOLEMY Aluno: Cleivson Arruda Orientador: Fernando Castor T RABALHO.
P ROGRAMAÇÃO ORIENTADA A ASPECTOS Equipe: Leandro Oliveira Anusio Menezes.
Conceitos.
Programação Orientada a Aspectos
Desenvolvimento de Sistemas Orientados a Aspectos
Desenvolvimento de Sistemas Orientados a Aspectos
Daniel de Souza Martins Prof. Dr. Patrícia
UNIVERSIDADE CATÓLICA DE BRASÍLIA 2011 PAULO LIMA aluno FERNANDO GOULART orientador.
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1 Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal.
Introdução a Desenvolvimento de Sistemas
Middleware Orientado a Aspectos - MOA
Referências: Booch, G. et al. The Unified Modeling Language User Guide
Aspect Oriented Programming (AOP)
2005 Cin - Centro de Informática - Universidade Federal de Pernambuco – UFPE Iniciação Científica Visual # Tool Bolsista: Rodrigo Cavalcante Mendes Orientadores:
Introdução a Desenvolvimento de Sistemas
The art of Unit Testing. Unit testing O Um teste unitário é uma parte de código (geralmente um método/função), que invoca outra parte de codigo e verifica.
PROGRAMAÇÃO - INTRODUÇÃO George Gomes Cabral. DECOMPOSIÇÃO Dividir para conquistar: Paradigma básico para tratamento de grandes problemas. Nossa meta.
Orientação a Objetos Parte I
Programação Orientada à Objetos
SISTEMAS DISTRIBUIDOS Aula 4
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Aluna: Carolina Paloma Gasperoni
Projeto Virtuosi Alcides Calsavara PUCPR Programa de Pós-Graduação em Informática Aplicada
13/11/2007 João Arthur Brunet Monteiro GMF/DSC/CEEI/UFCG Evolução de Software A Survey of Software Refactoring Reconstruction of Successful Software Evolution.
Linguagem orientada a Aspectos 2 Luiz Carlos d’Oleron Tiago Vinícius.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Projeto de PLP (2005.1) Extensão da Linguagem OA1 (2003.1) Alunos: Alberto Costa Neto (acn) Manoel Messias da Silva Menezes Júnior (mmsmj) Rafael Leão.
Otimizando Compiladores de AspectJ para Java ME Fernando Henrique Calheiros Lopes Centro de Informática – UFPE.
Introdução a Programação Orientada a Objetos
Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP Carlos Eduardo Pontual Fernanda d’Amorim Leopoldo Teixeira.
Discussing Aspects of AOP Alunos: Ezequiel Jonacir Mazza João Andrei Cetenareski Curso: Mestrado em Informática Aplicada Disciplina: Orientação a Objetos.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Introdução a Orientação a Objetos
Orientação a Objetos e Java Alexandre Mota  Centro de Informática, UFPE.
Módulo II Capítulo 1: Orientação a Objetos
Globalcode – Open4Education 1 EJB3 Interceptors Ricardo Limonta.
Implementação Orientada a Objetos – Aula 01 Introdução à Orientação a Objetos Prof. Danielle Martin Universidade de Mogi das Cruzes
Sistemas Distribuídos Prof. Marcus Rodrigues
Larva/Virtuos í Antonio Kantek T ó picos Avan ç ados de Programa ç ão Orientada a Objetos - MAC 413/5715 Segundo Semestre de 2003 Prof. Fabio Kon.
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Métricas de Software Orientado a Aspectos Diego Martins – Turah Xavier –
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
Introdução a AOP + SpringAOP Jobson Ronan
Transcrição da apresentação:

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

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

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.

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.

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

Aspect Weaver

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.

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.

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”

Join Point

Primitive Join Points

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.

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.

Referências Bibliográficas KICZALES, Gregor et. al., Aspect-oriented Programming, ECOOP, Finland, June 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.

DÚVIDAS?