Este documento apresenta sobre programação orientada a aspectos (POA). Discute como a POA pode modularizar interesses transversais em unidades chamadas aspectos para lidar com desafios da programação orientada a objetos como espalhamento e emaranhamento de código. Detalha os principais mecanismos da POA incluindo joinpoints, pointcuts, advices e inter-type declaration. Finalmente, discute como implementar POA na prática usando ferramentas como APDT para PHP.
Egenharia de Software Orientado a Aspectosdyegoitallo
Universidade Federal de Alagoas - Campus Arapiraca
Curso : Ciência da Computação
Período : 5º
Disciplina: Engenharia de Software 1
Professor: Patrick Brito
Equipe : Dyego Ítallo Silva Ferreira
Weverson Fraques França
Marcos José Ferreira Neto
Descrição: Nesta apresentação, mostramos um pouco sobre Engenharia de Software Orientada a Aspetos e fizemos alguns exemplos práticos utilizando a extensão AspectJ para programar orientado a aspectos com Java.
Egenharia de Software Orientado a Aspectosdyegoitallo
Universidade Federal de Alagoas - Campus Arapiraca
Curso : Ciência da Computação
Período : 5º
Disciplina: Engenharia de Software 1
Professor: Patrick Brito
Equipe : Dyego Ítallo Silva Ferreira
Weverson Fraques França
Marcos José Ferreira Neto
Descrição: Nesta apresentação, mostramos um pouco sobre Engenharia de Software Orientada a Aspetos e fizemos alguns exemplos práticos utilizando a extensão AspectJ para programar orientado a aspectos com Java.
La comunicación es el proceso de intercambiar información. La gente se comunica para transmitir
sus pensamientos, ideas y sentimientos. El proceso de comunicación es inherente a toda la vida
humana. Las bien conocidas formas de comunicaciones electrónicas, tales como el teléfono, la
radio, la televisión, han incrementado nuestra habilidad para intercambiar información. Hoy es difícil
imaginar como serian nuestras vidas sin el conocimiento y la información que nos llega de todo el
mundo por los diferentes medios de comunicaciones electrónicas. La forma en que hacemos las
cosas, el éxito de nuestro trabajo y nuestras vidas personales, están directamente relacionados
con qué tan bien nos comunicamos. Se ha dicho que el énfasis en nuestra sociedad se ha
desplazado de la manufactura y producción en masa de los bienes, a la acumulación,
empaquetado e intercambio de la información. La nuestra es una sociedad de información y la
parte principal de esta, es la comunicación. Sin comunicaciones electrónicas, no se podría tener
acceso ni aplicar la información disponible en una forma ordenada. Por lo tanto siendo está en su
forma natural y en las aplicaciones técnicas para su procesamiento y además sobre su importante
desarrollo histórico sen el propósito de este articulo.
Relato da experiência de uso da linguagem Python no Núcleo de Pesquisa em Sistemas de Informação e no ensino de programação dos cursos de computação do Instituto Federal Fluminense.
Apresentacao monografia
IMPLANTAÇÃO DE SISTEMA ERP – UM ESTUDO DA PRÁTICA ADOTADA FRENTE AO POSICIONAMENTO TEÓRICO
UEM -Universidade Estadual de Maringá
Adminitração - 2006
La comunicación es el proceso de intercambiar información. La gente se comunica para transmitir
sus pensamientos, ideas y sentimientos. El proceso de comunicación es inherente a toda la vida
humana. Las bien conocidas formas de comunicaciones electrónicas, tales como el teléfono, la
radio, la televisión, han incrementado nuestra habilidad para intercambiar información. Hoy es difícil
imaginar como serian nuestras vidas sin el conocimiento y la información que nos llega de todo el
mundo por los diferentes medios de comunicaciones electrónicas. La forma en que hacemos las
cosas, el éxito de nuestro trabajo y nuestras vidas personales, están directamente relacionados
con qué tan bien nos comunicamos. Se ha dicho que el énfasis en nuestra sociedad se ha
desplazado de la manufactura y producción en masa de los bienes, a la acumulación,
empaquetado e intercambio de la información. La nuestra es una sociedad de información y la
parte principal de esta, es la comunicación. Sin comunicaciones electrónicas, no se podría tener
acceso ni aplicar la información disponible en una forma ordenada. Por lo tanto siendo está en su
forma natural y en las aplicaciones técnicas para su procesamiento y además sobre su importante
desarrollo histórico sen el propósito de este articulo.
Relato da experiência de uso da linguagem Python no Núcleo de Pesquisa em Sistemas de Informação e no ensino de programação dos cursos de computação do Instituto Federal Fluminense.
Apresentacao monografia
IMPLANTAÇÃO DE SISTEMA ERP – UM ESTUDO DA PRÁTICA ADOTADA FRENTE AO POSICIONAMENTO TEÓRICO
UEM -Universidade Estadual de Maringá
Adminitração - 2006
Django para desenvolvimento web; porque ser repetitivo é chato.Arthur Furlan
Apresenta algumas das principais características do Django. Mostra os conceitos por trás do framework e ilusta como o desenvolvedor consegue utilizar suas funcionalidades para produzir código mais rápido porém sem abrir mão da qualidade.
Semelhante a Programação Orientada a Aspectos - PHPDay SERPRO Curitiba (20)
Django para desenvolvimento web; porque ser repetitivo é chato.
Programação Orientada a Aspectos - PHPDay SERPRO Curitiba
1. Programa¸˜o Orientada a Aspectos
ca
Programa¸˜o Orientada a Aspectos
ca
Wesley Klewerton
PHP-Day SERPRO Curitiba
01 de Junho de 2011
2. Programa¸˜o Orientada a Aspectos
ca
Agenda
Agenda
1 Apresenta¸˜o
ca
2 Introdu¸˜o
ca
3 Interesses Transversais
4 Programa¸˜o Orientada a Aspectos (POA)
ca
5 Mecanismos POA
6 E na pr´tica?
a
7 Fim
3. Programa¸˜o Orientada a Aspectos
ca
Apresenta¸˜o
ca
Wesley Klewerton
Short Bio
Graduado em Sistemas de Informa¸˜o, 2 especializa¸˜es,
ca co
ˆ
Mestrando em Inform´tica pela UFPR (Enfase em Engenharia de
a
Software - Teste de Software), desenvolvedor PHP desde 2004,
colaborador do time de tradu¸˜o da documenta¸˜o do CakePHP,
ca ca
participante da tradu¸˜o do Ubuntu, e por ai vai...
ca
Contatos
Email: wesleyklewerton@gmail.com
Twitter: @wesleyklewerton
Blog: www.wesleyk.com
5. Programa¸˜o Orientada a Aspectos
ca
Introdu¸˜o
ca
Programa¸˜o Orientada a Objetos (POO)
ca
Vantagens
Modelo de Neg´cios
o
Abstra¸˜o
ca
Encapsulamento
Reuso de Componentes
Padr˜es
o
Facilidade de Manuten¸˜o
ca
7. Programa¸˜o Orientada a Aspectos
ca
Interesses Transversais
Exemplo ilustrativo - Interesses Transversais
8. Programa¸˜o Orientada a Aspectos
ca
Interesses Transversais
Exemplo ilustrativo - Interesses Transversais
Sintomas
N˜o s˜o tratados pelos mecanismos da POO
a a
Geram dois tipos de fenˆmenos:
o
Espalhamento
Emaranhado
Dificuldades
Entendimento
Reuso
Manuten¸˜o
ca
Evolu¸˜o
ca
9. Programa¸˜o Orientada a Aspectos
ca
Interesses Transversais
Exemplo Real - Apache Tomcat
XML parsing in org.apache.tomcat
10. Programa¸˜o Orientada a Aspectos
ca
Interesses Transversais
Exemplo Real - Apache Tomcat
Logging in org.apache.tomcat
11. Programa¸˜o Orientada a Aspectos
ca
Interesses Transversais
Interesses Transversais
Onde s˜o encontrados?
a
Persistˆncia
e
Auditoria (logs)
Controle de exce¸˜es
co
etc...
Como podem ser otimizados?
???
12. Programa¸˜o Orientada a Aspectos
ca
Programa¸˜o Orientada a Aspectos (POA)
ca
Programa¸˜o Orientada a Aspectos (POA)
ca
Procura modularizar os interesses transversais em unidades
chamadas de Aspectos.
Surgir em 1997 no Xerox Palo Alto Research Center,
laborat´rio de pesquisas da Xerox.
o
´
E uma extens˜o da POO (c´digo base) com mecanismos para lidar
a o
com interesses transversais.
13. Programa¸˜o Orientada a Aspectos
ca
Programa¸˜o Orientada a Aspectos (POA)
ca
Exemplo ilustrativo - Interesses Transversais
14. Programa¸˜o Orientada a Aspectos
ca
Programa¸˜o Orientada a Aspectos (POA)
ca
Exemplo Ilustrativo - Aspectos
Invers˜o das dependˆncias
a e
15. Programa¸˜o Orientada a Aspectos
ca
Mecanismos POA
Mecanismos POA
Joinpoints
Instru¸˜es no fluxo do
co
programa:
1 Execu¸˜o de M´todo
ca e
2 Acesso a atributo
3 Constru¸˜o de objeto
ca
4 Controle de exce¸˜o
ca
5 Destrui¸˜o de objeto
ca
16. Programa¸˜o Orientada a Aspectos
ca
Mecanismos POA
Mecanismos POA
Pointcuts
Utiliza os Joinpoints para especificar pontos no programa
onde ser´ introduzida determinada l´gica
a o
Wildcards (Coringas)
* Todos existentes new *(*)
+ Todos com subclasses call(Book+->update(2))
|| “ou”para combinar before JPa, JPb{...}
17. Programa¸˜o Orientada a Aspectos
ca
Mecanismos POA
Mecanismos POA
Advices
Introduz (injeta) c´digo nos Pointcuts
o
3 tipos principais:
Before
Around
After
18. Programa¸˜o Orientada a Aspectos
ca
Mecanismos POA
Mecanismos POA
Inter-type Declaration
Introduz membros em unidades(classes/aspectos) existentes
Membros s˜o:
a
1 Atributos
2 Constantes
3 M´todos
e
19. Programa¸˜o Orientada a Aspectos
ca
Mecanismos POA
Mecanismos POA
Waver
Junta os aspectos com o c´digo base para gerar arquivos
o
unicos que forma o programa final funcional.
´
20. Programa¸˜o Orientada a Aspectos
ca
E na pr´tica?
a
E na pr´tica?
a
Como posso fazer isso funcionar?
21. Programa¸˜o Orientada a Aspectos
ca
E na pr´tica?
a
E na pr´tica?
a
APDT: Aspect PHP Developement Tools
http://code.google.com/p/apdt/
Plugin para eclipse que oferece uma plataforma para POA
com PHP. Integra as ferramentas de desenvolvimento PHP do
eclipse (PDT) com a biblioteca PHPAspect e um PHPAspect
Waver