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

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

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.

Apresentações semelhantes


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

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

20

21

22

23 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


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

Apresentações semelhantes


Anúncios Google