SlideShare uma empresa Scribd logo
1 de 15
/* Desenvolvimento Orientado a Aspectos */ /**   * @author  Ederson Lima   * @author  Júnior Barbosa   */
// índice /**   * @see  O queé?   * @see  Origem   * @see  Praque serve?   * @see  Vantagense Desvantagens * @see  Desenvolvimento * @see  Sintaxe   * @see  Exemplos   * @see  Futuro   */
// O que é? /** POA, é um paradigma de programação de computadores que permite aos desenvolvedores de software separar e organizar o código de acordo com a sua importância para a aplicação (separation of concerns).  @authorwikipedia*/
// Origem? /** Kiczales Gregor e seus colegas da Xerox PARC desenvolveu o conceito explícito de POA e o AspectJ (1995) para Java que surgiu para tentar solucionar as limitações do paradigma orientado a objetos. Que visam obter uma maior modularidade de software em situações práticas. */
// Pra que serve? /** Permite a separação dos componentes entre si, fornecendo mecanismos que permitem abstrai-los e compô-los para produzir sistemas.  Exemplos: Distribuição, Gerenciamento de Dados, Controle de Concorrência, Tratamento de Exceções, Logging, Debugging, etc. */
// Vantagens /**   * Menos responsabilidades em cada parte;  * Melhor modularização;   * Mais possibilidades de reutilização;  * Produtividade;   */
// Desvantagens /**   * Novo paradigma;  * Tratamento de exceções;  * Requer suporte de ferramentas;  * Tempo de compilação (weaving);   */
// Desenvolvimento /* Aspectj: Linguagem orientada a Aspectos. */ /* Spring AOP:  Baseado em Aspectj, porém usa beans para os “advices” e usa proxies dinâmicos para adicionar aspectos em sua aplicação. */
// Sintaxe /* aspect: O aspecto onde são definidos os pointcuts e suas chamadas (before, after, around). */ /* Weaver:  realiza o trabalho de transformar ambos os códigos em algo compilável. */ /* joint point: local do código do componente afetado. */
// Sintaxe /* pointcut: especificam join points de um sistema. */ /* Advice:  especifica comportamento extra nos join point */
// Sintaxe /** Tipos de Advices   * Around * Before * After * AfterReturning * AfterThrowing  */
// Exemplos Nome do aspecto método Nome do pointcut Joint point retorno classe argumento advices
// Futuro /** Não é improvável que POA irá obter o seu avanço em um futuro próximo. Os problemas com POA hoje são a falta de ferramentas de desenvolvimento e documentação. É difícil prever o que POA se tornará no futuro, mas a tendência é que POA faça parte de paradigmas de programação futuro. */
// Referência /**  * @see http://andremoraes-tcc.googlecode.com/svn-history/r21/  *             trunk/tcc/referencias/Soares_Borba_AspectJ.pdf   * @see http://www.dsc.ufcg.edu.br/~gmcc/gmcc_petroleo/  *            arquivos/neuropetro/pagina/textos/publicacoes/   *            revista.pdf#page=38 * @see http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_  *             orientada_a_aspecto * @see http://en.wikipedia.org/wiki/Aspect- oriented_programming * @see http://www.eclipse.org/aspectj/ * @see http://www.eclipse.org/ajdt/   */
Faculdade de Filosofia, Ciências e Letras de Caruaru - FAFICA, Caruaru - PE, Brasil Trabalho de Introdução à Orientação a Aspectos Prof. A. César C. França, M.Sc. Graduandos: Ederson Lima Júnior Barbosa

Mais conteúdo relacionado

Semelhante a Orientacao aspectos

Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPElton Minetto
 
Dalton Sergio Leonardo Pt Currículo 20160803
Dalton Sergio Leonardo Pt  Currículo 20160803Dalton Sergio Leonardo Pt  Currículo 20160803
Dalton Sergio Leonardo Pt Currículo 20160803Dalton Sergio Leonardo
 
RedGate .NET Reflector
RedGate .NET ReflectorRedGate .NET Reflector
RedGate .NET ReflectorNuno Gomes
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
seminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchezseminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchezrolisanchez
 
Clean architecture em NodeJS
Clean architecture em NodeJSClean architecture em NodeJS
Clean architecture em NodeJSRodrigo Souza
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a AspectosDaniel Cândido
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_jsgustavobeavis
 
Geração de Código com o MyGeneration
Geração de Código com o MyGenerationGeração de Código com o MyGeneration
Geração de Código com o MyGenerationComunidade NetPonto
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleSerge Rehem
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - ArquiteturaSerge Rehem
 
TEES - MDA Apresentação Final
TEES - MDA Apresentação FinalTEES - MDA Apresentação Final
TEES - MDA Apresentação Finalguestc7f5eb
 

Semelhante a Orientacao aspectos (20)

Frameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHPFrameworks de Desenvolvimento Web com PHP
Frameworks de Desenvolvimento Web com PHP
 
Corbawebserves
CorbawebservesCorbawebserves
Corbawebserves
 
Dalton Sergio Leonardo Pt Currículo 20160803
Dalton Sergio Leonardo Pt  Currículo 20160803Dalton Sergio Leonardo Pt  Currículo 20160803
Dalton Sergio Leonardo Pt Currículo 20160803
 
RedGate .NET Reflector
RedGate .NET ReflectorRedGate .NET Reflector
RedGate .NET Reflector
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
seminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchezseminario_IC2011_VictorSanchez
seminario_IC2011_VictorSanchez
 
Clean architecture em NodeJS
Clean architecture em NodeJSClean architecture em NodeJS
Clean architecture em NodeJS
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
 
Geração de Código com o MyGeneration
Geração de Código com o MyGenerationGeração de Código com o MyGeneration
Geração de Código com o MyGeneration
 
Desenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework DemoiselleDesenvolvimento Web/Java com Framework Demoiselle
Desenvolvimento Web/Java com Framework Demoiselle
 
Demoiselle - Arquitetura
Demoiselle - ArquiteturaDemoiselle - Arquitetura
Demoiselle - Arquitetura
 
TEES - MDA Apresentação Final
TEES - MDA Apresentação FinalTEES - MDA Apresentação Final
TEES - MDA Apresentação Final
 

Orientacao aspectos

  • 1. /* Desenvolvimento Orientado a Aspectos */ /** * @author Ederson Lima * @author Júnior Barbosa */
  • 2. // índice /** * @see O queé? * @see Origem * @see Praque serve? * @see Vantagense Desvantagens * @see Desenvolvimento * @see Sintaxe * @see Exemplos * @see Futuro */
  • 3. // O que é? /** POA, é um paradigma de programação de computadores que permite aos desenvolvedores de software separar e organizar o código de acordo com a sua importância para a aplicação (separation of concerns). @authorwikipedia*/
  • 4. // Origem? /** Kiczales Gregor e seus colegas da Xerox PARC desenvolveu o conceito explícito de POA e o AspectJ (1995) para Java que surgiu para tentar solucionar as limitações do paradigma orientado a objetos. Que visam obter uma maior modularidade de software em situações práticas. */
  • 5. // Pra que serve? /** Permite a separação dos componentes entre si, fornecendo mecanismos que permitem abstrai-los e compô-los para produzir sistemas. Exemplos: Distribuição, Gerenciamento de Dados, Controle de Concorrência, Tratamento de Exceções, Logging, Debugging, etc. */
  • 6. // Vantagens /** * Menos responsabilidades em cada parte; * Melhor modularização; * Mais possibilidades de reutilização; * Produtividade; */
  • 7. // Desvantagens /** * Novo paradigma; * Tratamento de exceções; * Requer suporte de ferramentas; * Tempo de compilação (weaving); */
  • 8. // Desenvolvimento /* Aspectj: Linguagem orientada a Aspectos. */ /* Spring AOP: Baseado em Aspectj, porém usa beans para os “advices” e usa proxies dinâmicos para adicionar aspectos em sua aplicação. */
  • 9. // Sintaxe /* aspect: O aspecto onde são definidos os pointcuts e suas chamadas (before, after, around). */ /* Weaver: realiza o trabalho de transformar ambos os códigos em algo compilável. */ /* joint point: local do código do componente afetado. */
  • 10. // Sintaxe /* pointcut: especificam join points de um sistema. */ /* Advice: especifica comportamento extra nos join point */
  • 11. // Sintaxe /** Tipos de Advices * Around * Before * After * AfterReturning * AfterThrowing */
  • 12. // Exemplos Nome do aspecto método Nome do pointcut Joint point retorno classe argumento advices
  • 13. // Futuro /** Não é improvável que POA irá obter o seu avanço em um futuro próximo. Os problemas com POA hoje são a falta de ferramentas de desenvolvimento e documentação. É difícil prever o que POA se tornará no futuro, mas a tendência é que POA faça parte de paradigmas de programação futuro. */
  • 14. // Referência /** * @see http://andremoraes-tcc.googlecode.com/svn-history/r21/ * trunk/tcc/referencias/Soares_Borba_AspectJ.pdf * @see http://www.dsc.ufcg.edu.br/~gmcc/gmcc_petroleo/ * arquivos/neuropetro/pagina/textos/publicacoes/ * revista.pdf#page=38 * @see http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_ * orientada_a_aspecto * @see http://en.wikipedia.org/wiki/Aspect- oriented_programming * @see http://www.eclipse.org/aspectj/ * @see http://www.eclipse.org/ajdt/ */
  • 15. Faculdade de Filosofia, Ciências e Letras de Caruaru - FAFICA, Caruaru - PE, Brasil Trabalho de Introdução à Orientação a Aspectos Prof. A. César C. França, M.Sc. Graduandos: Ederson Lima Júnior Barbosa