AOP
Upcoming SlideShare
Loading in...5
×
 

AOP

on

  • 1,356 views

Apresentação que usei na palestra sobre AOP.

Apresentação que usei na palestra sobre AOP.

Statistics

Views

Total Views
1,356
Views on SlideShare
1,342
Embed Views
14

Actions

Likes
0
Downloads
15
Comments
0

1 Embed 14

http://www.slideshare.net 14

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

AOP AOP Presentation Transcript

  • Introduçãoaodesenvolvimentoorientado a aspectos
  • 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
  • E-mail/MSN: denisferrari@live.com
    Gtalk: denis.sisinf@gmail.com
    Site: www.denisferrari.com
    Blog: desenvolvimento.denisferrari.com
    Twitter: @denisferrari
    Contato
  • Preocupações de um sistema de informação;
    Requisitos de software;
    Responsabilidade;
    Separação de responsabilidades;
    Responsabilidadestransversais;
    Proposta do AOP;
    Introdução a AOP
  • Preocupações de um sistemas de infomação
  • Quaissão as preocupaçõesnahora de desenvolver um sistema de informação?
  • Negócio (Requisitosfuncionais);
    Apresentação;
    Persistência de dados;
    …;
    Segurânça;
    Auditoria de processos;
    Verificação de erros;
    …;
    Preocupações de um sistemas de infomação
  • Separação de responsabilidades
  • Sistemas de software consistem de um conjunto de "áreas de interesse" ou responsabilidades distintas.
    Responsabilidade
  • 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
  • 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
  • Responsabilidadestransversais
  • 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
  • Proposta do AOP
  • 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
  • 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
  • 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
  • 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
  • ExemploPrático com postsharp
  • E-mail/MSN: denisferrari@live.com
    Gtalk: denis.sisinf@gmail.com
    Site: www.denisferrari.com
    Blog: desenvolvimento.denisferrari.com
    Twitter: @denisferrari
    Contato