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.

Slides:



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

Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Desenvolvimento de Plug-ins Orientado a Testes
Como planejar a equipe e criar casos de testes OO
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
3 Paradigmas e Linguagens de Programação
Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002.
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.
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Engenharia de Software
Modularização de interesses ortogonais
Projeto Arquitetural de Software Orientado a Aspectos
Componentes: A Abordagem Catalysis
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.
Porto Alegre, 5 de Outubro de 2009
Introdução ao paradigma de programação: Orientado a Objetos
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Diagrama de Classes.
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Tecnologia da Informação Orientação a Aspectos
Paradigmas da Programação – Semestre 1 – Aula 5
Paradigmas da Programação – Semestre 1 - Aula 1
Programação orientada a objetos com Java
Carlos Alberto de Freitas Pereira Júnior
Composição e Geração de Aplicações usando Aspectos
Padrões para Atribuições de Responsabilidades
Como o AspectJ tece o código
Minicurso de Desenvolvimento WEB
Desenvolvimento de Aplicações Java para Web
Princípios e Conceitos de Software(v2)
Linguagem técnica de programação I Java – REVISÃO
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
Gerência de Configuração de Software
Introdução a Arquitetura Orientada a serviços
Introdução ao Teste Unitário com JUnit
Separation of Concerns (SoC)
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Unidade I: “Dê um mergulho rápido”
Aula prática 13 Orientação a Objetos – C++ Parte 1
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.
Introdução a Computação Trabalho Final PUC Minas – São gabriel
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
Test Driven Development por Johann Gomes e Thaís Moura.
Introdução à Programação Orientada a Objetos com Java
Middleware Orientado a Aspectos - MOA
Aspect Oriented Programming (AOP)
Introdução a Desenvolvimento de Sistemas
Professor: Márcio Amador
PROGRAMAÇÃO ORIENTADA A OBJETO - JAVA
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
Paradigmas de Linguagens de Programação Aula 2
3/4/2015 Prof. Msc George Cabral Bacharelado em Sistema de Informação Ambientes de Desenvolvimento de Software.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Linguagem orientada a Aspectos 2 Luiz Carlos d’Oleron Tiago Vinícius.
Introdução a um Processo de Desenvolvimento Orientado a Objeto
Discussing Aspects of AOP Alunos: Ezequiel Jonacir Mazza João Andrei Cetenareski Curso: Mestrado em Informática Aplicada Disciplina: Orientação a Objetos.
Animador e Editor para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Reis Lucena Centro de Informática – UFPE, 2005.
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.
Módulo II Capítulo 1: Orientação a Objetos
Globalcode – Open4Education 1 EJB3 Interceptors Ricardo Limonta.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
Transcrição da apresentação:

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 Thales E. Nazatto

Roteiro SOO Motivação POA Objetivo Divisão de interesses Composição POA em Java Referências

SOO Orientado a objetos Responder questões essenciais inerentes ao desenvolvimento de software; Facilidades e manutenção do código; Sanar deficiências do paradigma estruturado;

SOO Divisão em duas dimensões

Motivação Onde o SOO falha? Domínio do problema; O que fará parte de uma classe ou de outra? Coerência conceitual; Entrelaçamento de classes(scattering); Espalhamento de código(tangling);

Motivação Redundância Fragmentos de código repetidos em diversos pontos; Fraca coesão Classes contém funcionalidades em que não estão diretamente relacionadas a ela; Forte acoplamento Classes precisam conhecer métodos de outras classes;

Motivação Parsing XML org.apache.tomcat Logging no org.apache.tomcat

POA Objetivo Definir uma abordagem que permitisse expressar melhor as características ortogonais do comportamento do programa; Separação de requisitos funcionais e não funcionais; Diminuir entrelaçamento do código.

POA (...)a programação orientada a aspectos propõe não apenas uma decomposição funcional, mas também ortogonal do problema. AOP permite que a implementação de um sistema seja separada em requisitos funcionais e não funcionais. (Soares e Borba, 2002 )

POA Divisão de Interesses.. Os sistemas de software complexos devem ser decompostos em unidades menores e claramente separadas, cada um lidando com um único interesse. (Chaves, 2004)

POA Dados, funções e interesses

Composição Linguagem de componentes : são programados os códigos bases; Linguagem de aspectos: na qual se programam os aspectos; Combinador de aspectos : combinar os programas escritos em linguagem de componentes e os escritos em linguagem de aspectos

POA em Java

Plugins NetBeans AspectWerkz Eclipse AspectJ

AspectJ História É uma linguagem? Elementos básicos

História Xerox Divisão Xerox PARC Gregor Kiczales Professor University of British Columbia - Canadá Criador POA/AspectJ Mantido pela Eclipse Foundation

É uma linguagem? Sim, é uma linguagem de aspectos! Java como linguagem principal e AspectJ como linguagem auxiliar, funcionando como uma extensão do Java Ninguém programa usando apenas AspectJ, ou qualquer outra linguagem de aspectos

Elementos básicos Aspect Join Point Pointcut Advice Declare

Aspect Unidade de código semelhante a classe Nele são declarados os Pointcuts, Advices e Declares necessários para a formatação do código no paradigma de POA

Join Point Fundamentalmente, é o modo como o Aspecto interage com o programa Na prática, um método e uma atribuição de variável são exemplos de Join Points

Pointcut É a definição da ação/atuação de um Join Point Uma consulta sobre os Join Points para selecionar um conjunto menor dos mesmos

Advice Adiciona uma unidade de código de acordo com o Pointcut especificado É possível controlar também o momento em que essa unidade de código é adicionada

Declare Conjunto de diretivas que indicam uma certa função parents, warning, error e soft são exemplos dessas diretivas

Exemplo de Aspecto

Resumo Aspecto – FAZ uma alteração no código Join Point: ONDE ele faz? Métodos, funções, variáveis... Pointcut: em que MOMENTO ele faz? em qual AÇÃO ele irá fazer? Chamada, execução, atribuição... Advice: QUANDO ele irá e O QUE ele vai fazer? Antes, depois, durante... Código a ser implementado Declare: DECLARA algo a ser alterado Classes (parents), Avisos (warning), Exceções (soft)...

Exemplos de Pointcuts

Exemplos de Advices

Referências Neves, Vânia de Oliveira, O. (2009) Teste de integração contextual de programas orientados a objetos e aspectos ; Andrade, C., Goetten, V. e Winck, Diogo V. (1995) Programação orientada a Aspectos abordando Java e aspect J Kiczales, G., Lamping, J., Mendhekar, A., Maeda, Crhis.,Videira, C., Irwin,J. (1997),Aspect-Oriented Programming Goetten, V. e Winck, Diogo V. (2006) AspectJ – Programação Orientada a Aspectos com Java, Novatec Editora