Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouPietro Santa Ana Alterado mais de 10 anos atrás
1
Uma comparação entre a Programação Orientada a Aspectos e a Programação Orientada a Componentes.
Uma visão geral Grupo: Alexandre Henrique Vieira Soares Anderson de Rezende Rocha Flávio Luis Alves Júlio César Alves
2
Estrutura da apresentação
a) Introdução b) Contexto c) Motivação d) Justificativa do tema e) Desenvolvimento do tema f) Ferramentas de desenvolvimento g) Conclusão h) Referência
3
Introdução -> A engenharia de software e as linguagens de programação coexistem em um relacionamento de suporte mútuo. -> A maioria dos processos de desenvolvimento de software da atualidade considera um sistema com unidades cada vez menores de desenvolvimento.
4
Introdução -> Uma propriedade de um sistema que deve ser implementada pode ser vista como um componente ou como um aspecto. -> A propriedade pode ser vista como um componente se puder ser encapsulada em um procedimento generalizado.
5
Introdução -> Aspectos são normalmente propriedades que envolvem diversas unidades de um sistema, afetando a semântica dos componentes funcionais sistematicamente. Tais como: controle de concorrência em operações em uma mesma conta bancária, registro das transações de uma determinada conta.
6
Introdução
7
Introdução -> Existem propriedades que não se enquadram em componentes da decomposição funcional. -> Seus códigos encontram-se espalhados através do código da aplicação. Isto dificulta a separação da funcionalidade básica do sistema dessas propriedades. -> Como resolver estes problemas? Programação Orientada a Aspectos (POA). Alternativa para resolver problemas que nem as técnicas de programação Orientada à Objetos e nem as técnicas de programação Estruturada resolvem facilmente.
8
Introdução Exemplo de um aspecto:
-> O campo "Movimento" representa um Aspecto.
9
Contexto -> Visando a maior integração dos softwares produzidos desenvolveu-se a POA. -> Diante deste contexto a Orientação a Aspectos objetiva oferecer suporte ao programador na tarefa de separar: i) componentes dos aspectos ii) componentes entre si iii) aspectos entre si
10
Motivação: -> A POA complementa a POO por facilitar um outro tipo de modularidade que expande a implementação espalhada de uma responsabilidade dentro de uma simples unidade.
11
Por que usar a POA? -> Por que diminui a complexidade dos componentes, visto que uma parte do código fica na definição dos aspectos. -> Por estar centralizado em uma única unidade, alterações são muito mais simples, não é preciso reescrever inúmeras classes.
12
Por que usar a POA? -> Com a diminuição do tamanho do código dos componentes a complexidade é diminuída. -> Por ser uma forma melhor de gerenciar a complexidade dos componentes. -> Por ter menos código e ser menos complexo, está sujeito a menos erros.
13
Por que ninguém usa POA? -> Mesmo tendo evoluído muito a POA ainda deixa a desejar em alguns pontos: a) Como definimos o que é ou não um aspecto no nosso projeto? b) Existem metodologias para definir isso?
14
Justificativa do tema -> Por que o tema foi escolhido?
a) Para conhecer uma nova abordagem de como montar projetos de software b) Alguém já conhecia POA? c) Alguém pretende usar POA?
15
Desenvolvimento do tema
-> Como funciona a POA? Uma implementação básica de POA, consiste em:
16
Crosscutting -> A POA permite ao programador separar os interesses comuns do sistema (que fogem a típica divisão de classes). -> O comportamento que não se encaixa naturalmente dentro de um módulo de um programa é chamado comportamento que atravessa (crosscutting) o sistema, ou seja, está espalhado em várias classes. -> A POA ajuda a manter a consistência do projeto, apresentando um novo nível de modularidade: os aspectos.
17
Ferramentas de desenvolvimento: O Aspect-J
-> AspectJ é uma linguagem de aspecto. Ela é uma extensão da linguagem Java. -> Conta com um montador (Weaver) . -> É suportado por várias IDEs . -> A maior vantagem de AspectJ é a possibilidade de implementar funcionalidades em separado da parte funcional do sistema, e automaticamente inserir ou remover tais aspectos do mesmo.
18
Ferramentas de desenvolvimento: O Aspect-J (exemplo)
19
Ferramentas de desenvolvimento: O Aspect-J (exemplo)
20
Ferramentas de desenvolvimento: O Aspect-J (exemplo)
21
Ferramentas de desenvolvimento: O Aspect-J (exemplo)
22
Ferramentas de desenvolvimento: O Aspect-J (exemplo)
23
Ferramentas de desenvolvimento: O Aspect-J (exemplo)
Com POA:
24
Ferramentas de desenvolvimento: O Aspect-J (exemplo)
Sem POA:
25
Conclusões -> A programação orientada a aspecto passa a fazer parte do dia-a-dia dos desenvolvedores. -> Existem detalhes que precisam ser melhor estudados. -> Falta uma metodologia.
26
Referências -> Pressman, Software Engeneering
-> Deitel & Deitel, Java, How to Program -> -> Dissertaçao de mestrado de Eduardo Laureano, UFPE - "Persistence implementation with Aspect-J" -> Artigo de William Grosso em DrDobbs.com (DDJ.com) - "Aspect-Oriented Programming & AspectJ“
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.