Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora...

51
Programación Orientada a Aspectos

Transcript of Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora...

Page 1: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Programación Orientada a Aspectos

Page 2: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Contenidos●●●●●●●●●●

Page 3: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Historia

Page 4: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

¿Qué es POA?

Page 5: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Ahora sí, un poco de historia sobre la POA

Page 6: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

¿Dónde empezar? ¡Por el principio!

●●●●●

Page 7: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Segunda y Tercera generación al rescate

Page 8: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

(¿)La solución(?)Descomposición en Objetos

Page 9: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

¿Y entonces? ¿Cuál es la solución?

Page 10: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

¡La Descomposición de Aspectos!

Page 11: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

¿Quién se inventó todo esto?

Page 12: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Pero hubo alguien antes, varios…El grupo Demeter

Page 13: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda
Page 14: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Ahora, Cristina Lopes

●●

Page 15: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Karl Lieberherr

●●

Page 16: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Mira Mezini

Page 17: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda
Page 18: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Conceptos Básicos

Page 19: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Aspecto (Aspect)

Page 20: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda
Page 21: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Punto de Enlace(Join Point)

Page 22: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Avisos (Advice)

Page 23: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

●●

Page 24: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Cortes (PointCut)

Page 25: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Introducciones (Introduction)

●●●●●

Page 26: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Tejedor (Weaving)

Page 27: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Entrelazado estático

Page 28: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Entrelazado dinámico

Page 29: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda
Page 30: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Joint Points y su implementación

Page 31: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Join Point

●●●●

Page 32: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Anatomía de un aspecto

Page 33: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Anatomía de un aspecto - Advice

Page 34: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Anatomía de un aspecto - Pointcut

Page 35: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Anatomía de un aspecto - Pointcut

Page 36: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Anatomía de un aspecto - Pointcut

Page 37: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Join Points por tipo

Page 38: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Comparación con otros paradigmas

Page 39: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

POA vs POO

Page 40: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Ventajas

●●●●●●

Page 41: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Problemas al adoptar el paradigma

Page 42: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Problemas de adoptar POA

●●

●●●

●●

Page 43: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Lenguajes de Aspectos de Propósito General vs. Dominio Específico

Page 44: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Lenguajes de aspectos de dominio específico●

●●●●

Page 45: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Lenguajes de aspectos de propósito general●●●●●

Page 46: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Lenguajes de programación con implementación de POA

Page 47: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Algunos lenguajes con implementación interna o de librería externa

Page 48: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Ejemplos AspectJ

Page 49: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Sincronización de una cola circular con AspectJ

Page 50: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Otro ejemplo Java vs AspectJ

Page 51: Orientada a Aspectos Programación...Orientada a Aspectos Contenidos Historia ¿Qué es POA? Ahora sí, un poco de historia sobre la POA ¿Dónde empezar? ¡Por el principio! Segunda

Referencias

●●●

●● https://www.researchgate.net/profile/Antonia_Reina_Quintero/publication/253410957_Vision_General_de_la_P

rogramacion_Orientada_a_Aspectos/links/0f3175340507d3f5ac000000/Vision-General-de-la-Programacion-Orientada-a-Aspectos.pdf

● https://www.researchgate.net/publication/4200498_Aspect-oriented_programming_and_modular_reasoning