Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Kelli Aparecida Bez Batti da Silva
Título: Análise comparativa entre Programação Orientada à Objetos e Orientada à Aspectos
 
Introdução:
Em sistemas computacionais complexos, é comum a existência de responsabilidades de interesse comum a vários módulos como, por exemplo, requisitos não funcionais de gerenciamento de dados, logging de transações, controle de concorrência, tratamento de exceções, autenticação, autorização, entre outros. Denominados interesses ortogonais, muitas vezes são difíceis de isolar porque demandam alterações em vários pontos do sistema, ocasionando entrelaçamento e espalhamento de código.
Segundo Chung e Mylopoulos (1999 apud SANTOS et al, 2000, p. 210), os requisitos não funcionais, por sua natureza, são difíceis de serem tratados durante o projeto e a implementação e também são difíceis de validar, freqüentemente são descritos de forma breve e ambígua, interagem com outros requisitos não funcionais e possuem um impacto global no sistema.
Impactos de natureza ortogonal são de ampla influência no sistema, e implementados de forma que cada parte afetada do sistema contenha código de lógica com várias áreas de interesse, resultam na perda de coesão e aumento do acoplamento dos módulos afetados. (LARMAN, 2004, p.490).
Quando a OOP foi difundida pelo mercado desenvolvedor de software, houve um efeito dramático na maneira com que os sistemas eram desenvolvidos. Desenvolvedores podiam visualizar sistemas como grupos de entidades e as interações entre essas entidades, o que permitia o desenvolvimento de sistemas maiores e mais complexos em menos tempo. O único problema com a OOP é ser essencialmente estática, e mudanças nos requisitos podem provocar profundos impactos de desenvolvimento. (O\'REGAN, 2004, p. 1, tradução nossa)
A Programação Orientada a Objetos (POO) é a metodologia mais comum empregada para o desenvolvimento de interesses do domínio do sistema, porém limitada para muitos interesses ortogonais, especialmente em sistemas complexos. (LADDAD,2003, p. 4, tradução nossa).
A Programação Orientada a Aspectos (POA) é uma nova metodologia que provê a separação dos interesses ortogonais, introduzindo uma nova unidade de modularização – o Aspecto (LADDAD, 2003, p. 4, tradução nossa).
Tendo por objetivo validar esta metodologia, este trabalho apresenta um estudo comparativo do emprego de programação orientada a objetos e programação orientada a aspectos. Para caracterizar um objeto de análise, foi desenvolvida uma aplicação orientada a objetos para o gerenciamento básico de processos jurídicos. A seguir, esta aplicação foi estendida para contemplar a inclusão de um requisito não funcional de interesse ortogonal, ainda utilizando somente programação orientada a objetos. Posteriormente, este mesmo requisito não funcional foi agregado à aplicação usando-se programação orientada a aspectos.
Durante a análise comparativa, as duas implementações – POO e POA – foram avaliadas através dos critérios performance, volume de código, tempo de desenvolvimento e funcionalidade da versão final.