O documento apresenta os conceitos de programação orientada a aspectos (AOP). Discute como a AOP permite separar responsabilidades transversais em aspectos, complementando a programação orientada a objetos. Também fornece detalhes sobre o autor Denis Ferrari e como entrar em contato com ele.
2. GraduandoemSistemas de informaçãopela FAESA; Arquiteto de software; Palestras; Treinamentos; Consultor de negócios; MCP, MCTS (Web Applications e Distributed Applications), MCPD (Web Applications); EscreveartigosparaosportaisImasters, Linha de código e osdisponibilizatambémemseu blog. 9 anos de experiência no mercado de TI capixabaatuandocomoInstrutor, Web Master, DesenvolvedorSênior e Gerente de Projetos; Denis Ferrari
4. Preocupações de um sistema de informação; Requisitos de software; Responsabilidade; Separação de responsabilidades; Responsabilidadestransversais; Proposta do AOP; Introdução a AOP
9. Sistemas de software consistem de um conjunto de "áreas de interesse" ou responsabilidades distintas. Responsabilidade
10. A melhor maneira de se projetar um sistema é através da separação de suas responsabilidades distintas de tal modo que podemos alterar/re-projetar cada uma sem que isto afete as demais partes do sistema; A eficiência do desenvolvimento aumenta na medida em que conseguimos separar as suas diferentes responsabilidades em módulos estanques; Separação de responsabilidades
11. Este princípio é razoavelmente antigo, e a OOP nos trouxe uma importante resposta a ele: a classe como uma dimensão para a decomposição de responsabilidades: Um objeto deve fazer apenas uma tarefa e fazê-la bem; Um objeto não deve sepreocupar com o que os outros objetos fazem; Num sistema macroscópico em que um objeto coordena objetos menores, ele confia que esses objetos executam bem a sua tarefa e não se preocupa com o como eles a executam; Separação de responsabilidades
13. Em sistemas complexos, sempre existem responsabilidades de interesse comum que são utilizadas por vários módulos; Estas responsabilidades são difíceis de isolar porque são necessárias em vários pontos do código; Com a OOP, os crosscuttingconcerns ficam espalhados por vários módulos em pequenos trechos de código que são, em geral, repetitivos, resultando em sistemas difíceis de projetar, entender, implementar, manter e evoluir; Responsabilidadestransversais
15. A programação orientada a aspectos foi criada em Palo Alto, nos laboratórios da Xerox em 1997; A programação AOP nãotrabalhaisoladamente, aocontrário, é um paradigmaqueextendeoutrosparadigmas de programação; AOP
16. Na concepção de Soares e Borba (2002), “a programaçãoorientada a aspectospropõenãoapenasumadecomposiçãofuncional, mastambémortogonal do problema. AOP permiteque a implementação de um sistemasejaseparadaemrequisitosfuncionais e não-funcionais”. AOP
17. O paradigma da AOP consiste na separação das responsabilidades transversais de um sistema em aspectos (unidades modulares) e a sua posterior composição junto às classes, formando um sistema único; Os aspectos podem ser inseridos, alterados ou removidos em tempo de compilação. Por estarem em um único bloco de código, sua manutenção é mais simples, diminuindo a complexidade do sistema e facilitando o seu entendimento; O código das classes fica livre do código relacionado às responsabilidades transversais, o que facilita sua reutilização em diferentes contextos, combinando diferentes aspectos dependendo das necessidades da aplicação. AOP
18. Utilizando a AOP, pode-se criar implementações que são fáceis de desenhar, entender e manter. Deste modo, AOP traz maior produtividade, qualidade e facilidade para a implementação de novas funcionalidades; A AOP complementa a OOP por introduzir uma nova dimensão para a decomposição das responsabilidades transversais: os aspectos. AOP