Tecnologia da Informação Orientação a Aspectos

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.
UML Visões – Parte 2.
Paradigmas de Programação
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Centrado na arquitetura
Disciplina:Tópicos Avançados de Sistemas de Informação
Projeto de Software Orientado a Objetos
Processo de Reengenharia Prático Pós- Graduação Pós- Graduação Karolyne Almeida Siqueira Michael Caldas da Silva.
Conceitos Básicos de Informática INTRODUÇÃO À TERMINOLOGIA BÁSICA
Introdução ao paradigma de programação: Orientado a Objetos
Sistemas Operacionais de Rede
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
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.
Programação Orientada para Objectos
TSDD Teste de segurança durante o desenvolvimento.
Princípios e Conceitos de Software(v2)
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
TÉCNICAS DE PROGRAMAÇÃO II
Introdução a Arquitetura Orientada a serviços
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
Futebol: uma questão de tempo real? Sistemas de Tempo Real Hugo Santos (27621) Pedro Mónica (25330)
Separation of Concerns (SoC)
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Princípios de Orientação à Objetos
Aula prática 13 Orientação a Objetos – C++ Parte 1
Matemática Prof.: Ten Ademir.
P ROGRAMAÇÃO ORIENTADA A ASPECTOS Equipe: Leandro Oliveira Anusio Menezes.
Conceitos.
Desenvolvimento de Sistemas Orientados a Aspectos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Middleware Orientado a Aspectos - MOA
Padrões de Projeto e Arquitetura em Camadas
Aspect Oriented Programming (AOP)
Professor: Márcio Amador
Orientação a Objetos Parte I
Programação Orientada à Objetos
Prof: Leandro Maranim Dei Santi Prof. Eduardo Rossit Paiossin
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
SISTEMAS DISTRIBUIDOS Aula 4
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
PROGRAMAÇÃO ORIENTADA A OBJETOS
Representação Arquitetural
Aplicativos Web Com Orientação a Objetos – Java Server Pages(JSP) Prof. Odair
Arquiteturas RISC x CISC
Unidade de Controle.
Diagrama de Componentes
Back-End Compilação aula-11-back-end.pdf.
Análise e Projeto de Sistemas
Softwares Educacionais – Cód
UML e a Ferramenta Astah
LINQ e Entity Framework
Discussing Aspects of AOP Alunos: Ezequiel Jonacir Mazza João Andrei Cetenareski Curso: Mestrado em Informática Aplicada Disciplina: Orientação a Objetos.
Introdução a Orientação a Objetos
Arquitetura de Software Projetos de Interface
Introdução à modelagem orientada a objetos
Instituto Tecnológico de Aeronáutica Divisão: Engenharia Eletrônica e Computação CSC - PDTL Disciplina: CE 230 – Qualidade, Confiabilidade e Segurança.
APRESENTAÇÃO E COMPREENSÃO DO ARTIGO. O Que Ele Quer Estabelecer  Discutir “modularização” como mecanismo de aprimoração de um sistema enquanto encurta.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
Introdução à Programação Orientada a Objeto
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
ISO/IEC Prof. Dr. Sandro Ronaldo Bezerra Oliveira
Programação orientada a Aspectos Radio Manager System.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Aplicativos para Web MVC Prof. Odair Indena Jr.
Capítulo 4 Estrutura do Sistema Operacional
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

Tecnologia da Informação Orientação a Aspectos Instituto Tecnológico da Aeronáutica - ITA Divisão de Ciência da Computação CE-245 Tecnologias da Informação Prof. Adilson Marques da Cunha Débora Ap. Rodrigues Chagas Tecnologia da Informação Orientação a Aspectos

Roteiro Introdução Objetivo Orientação a Aspectos Conclusão

Introdução Em ciência da computação, programação orientada a aspecto ou POA, é um paradigma de programação de computadores que permite aos desenvolvedores de software separar e organizar o código de acordo com a sua importância para a aplicação (separation of concerns). Todo programa escrito no paradigma orientado a objetos possui código que é alheio a implementação do comportamento do objeto. Este código é todo aquele utilizado para implementar funcionalidades secundárias e que encontra-se espalhado por toda a aplicação (crosscutting concern). A POA permite que esse código seja encapsulado e modularizado.

Objetivo A programação orientada a aspecto tem como objetivo a separação do código segundo a sua importância para a aplicação, permitindo que o programador encapsule o código secundário em módulos separados do restante da aplicação.

Orientação a Objetos Os termos desenvolvimento estruturado e orientação a objetos dizem respeito à modularidade do sistema. São formas distintas de se dividir um sistema em partes. A divisão em partes é importante para se reduzir a complexidade. É muito difícil para um ser humano compreender um sistema de grande porte se este for monolítico, sem fronteiras claras que definem suas funções. O termo separação de interesses foi cunhado por Edsger Dijkstra em 1974 para denotar o princípio que guia a divisão em partes: todo sistema de software lida com diferentes interesses, sejam eles dados, operações, ou outros requisitos do sistema. O ideal seria que a parte do programa dedicada a satisfazer a um determinado interesse estivesse concentrada em uma única localidade física, separada de outros interesses, para que o interesse possa ser estudado e compreendido com facilidade. O desenvolvimento estruturado realizou a separação de interesses orientando-se através das diferentes funcionalidades oferecidas pelo software. Cada função é implementada em um único módulo, ou procedimento. Daí surgiram conceitos que ajudam a manter a separação de interesses, como o baixo acoplamento e a alta coesão. A orientação a objetos veio como forma de sanar uma das deficiências do desenvolvimento estruturado. Apesar de interesses relativos a funcionalidades ficarem separados, interesses relativos a dados ficavam distribuídos em diversos módulos. O paradigma OO definiu que a separação deveria acontecer em duas dimensões, primeiro dividido em termos de dados e depois em termos das funções que utilizam cada tipo de dados.

Exemplo do Paradigma Orientado a Objetos

A orientação a objetos melhorou as possibilidades de separação de interesses. No entanto, ainda tem deficiências nessa área. Os diagramas abaixo mostram uma representação gráfica do código do sistema Tomcat, um servidor web com capacidade de executar servlets Java. Cada coluna representa um módulo do sistema, sendo que o tamanho de cada coluna mostra o número proporcional de linhas de código daquele módulo. Como podemos ver no diagrama abaixo, alguns interesses estão muito bem separados.

No entanto, isso nem sempre é verdade No entanto, isso nem sempre é verdade. Se considerarmos a funcionalidade de guardar registros para auditoria, isto é, registrar as ações tomadas pelo servidor para se detectar violações de segurança, erros, etc., então vemos que o código responsável por esse comportamento está espalhado por quase todos os módulos.

Orientação a Aspectos Na terminologia de orientação a aspectos, diz-se que a função de registro para auditoria é um interesse entrecortante, porque a sua implementação "corta" a estrutura de módulos do sistema. Praticamente todo programa orientado a objetos não-trivial contém interesses entrecortantes. O objetivo do desenvolvimento orientado a aspectos é encapsular interesses entrecortantes em módulos fisicamente separados do restante do código. Esses módulos são denominados aspectos. Pensando em termos abstratos, a orientação a aspectos introduz uma terceira dimensão de decomposição. Além de decompor o sistema em objetos (dados) e métodos (funções), decompomos cada objeto e função de acordo com o interesse sendo servido e agrupamos cada interesse em um módulo distinto, ou aspecto.

Exemplo paradigma Orientação Aspectos

Conclusão Com a evolução da tecnologia da informação o desenvolvedor não pode ficar perdendo muito tempo no desenvolvimento, então é necessário paradigmas que facilitem e agilizem cada vez mais o desenvolvimento.

Referências Bibliográficas http://www.inf.pucminas.br/professores/torsten/aulas/aula04.html http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspecto http://www.inf.pucminas.br/professores/torsten/aulas/aula06.html