A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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

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

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

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

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

6 Exemplo do Paradigma Orientado a Objetos

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

8

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

10

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

12 Exemplo paradigma Orientação Aspectos

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

14 Referências Bibliográficas orsten/aulas/aula04.html orsten/aulas/aula04.html orsten/aulas/aula04.html orsten/aulas/aula04.html %A7%C3%A3o_orientada_a_aspecto %A7%C3%A3o_orientada_a_aspecto %A7%C3%A3o_orientada_a_aspecto %A7%C3%A3o_orientada_a_aspecto orsten/aulas/aula06.html orsten/aulas/aula06.html orsten/aulas/aula06.html orsten/aulas/aula06.html


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google