Publicado el 19 de Abril del 2018
532 visualizaciones desde el 19 de Abril del 2018
524,8 KB
130 paginas
Creado hace 21a (11/12/2002)
PROGRAMACIÓN ORIENTADA A ASPECTOS
Análisis del paradigma
Fernando Asteasuain
Bernardo Ezequiel Contreras
Tesis de Licenciatura
Departamento de Ciencias e Ingeniería de la Computación
UNIVERSIDAD NACIONAL DEL SUR
Octubre de 2002
Programación Orientada a Aspectos: Análisis del Paradigma Tesis de Licenciatura
Fernando Asteasuain – Bernardo Ezequiel Contreras
2
Este trabajo fue presentado como tesis de final de carrera en el Departamento
de Ciencias e Ingeniería de la Computación de la Universidad Nacional del Sur para
obtener el título de Licenciado en Ciencias de la Computación.
La dirección del trabajo estuvo a cargo de la Licenciada Elsa Estevez y el Dr.
Pablo Fillottrani y fue finalizado en octubre de 2002.
Departamento de Ciencias e Ingeniería de la Computación – Universidad Nacional del Sur
Bahía Blanca. Buenos Aires. Argentina
Programación Orientada a Aspectos: Análisis del Paradigma Tesis de Licenciatura
Fernando Asteasuain – Bernardo Ezequiel Contreras
3
ÍNDICE
1. Introducción................................................................................................................. 6
1.1 Reseña histórica .................................................................................................... 8
2. POA: Consideraciones generales.............................................................................. 10
2.1 ¿Qué es un aspecto?........................................................................................... 10
2.2 Comparación gráfica .......................................................................................... 11
2.3 Fundamentos de la POA..................................................................................... 14
2.3.1 Estructura general .......................................................................................... 14
2.3.2 Desarrollo orientado a aspectos ..................................................................... 16
2.4 Tejido estático versus dinámico......................................................................... 19
2.4.1 Guías de diseño.............................................................................................. 20
2.5 Lenguajes de aspectos específicos versus de propósito general...................... 21
2.6 El rol del lenguaje base....................................................................................... 23
2.7 Aspectos en lenguajes procedurales .................................................................. 25
2.8 Aproximaciones alternativas de aspectos ........................................................ 28
2.8.1 Meta-programación lógica de aspectos.......................................................... 28
2.8.2 Meta-programación funcional de aspectos .................................................... 31
3. Lenguajes orientados a aspectos ............................................................................... 33
3.1 JPAL .................................................................................................................... 33
3.2 D............................................................................................................................ 34
3.2.1 COOL............................................................................................................. 35
3.2.2 RIDL .............................................................................................................. 36
3.3 ASPECTC............................................................................................................ 38
3.4 ASPECTS ............................................................................................................ 38
3.5 ASPECTC++ ....................................................................................................... 40
3.6 MALAJ ................................................................................................................ 41
3.7 HYPERJ .............................................................................................................. 42
3.8 Tabla comparativa de las herramientas ........................................................... 44
3.9 AspectJ................................................................................................................ 46
3.9.1 Puntos de enlace............................................................................................. 47
3.9.2 Cortes............................................................................................................. 51
Cortes primitivos................................................................................................. 52
Cortes definidos por el programador .................................................................. 54
Composición de cortes........................................................................................ 55
Exposición de contexto....................................................................................... 57
Patrones............................................................................................................... 59
3.9.3 Avisos ............................................................................................................ 61
Modelo de comportamiento................................................................................ 64
Acceso reflexivo ................................................................................................. 65
3.9.4 Introducciones y declaraciones...................................................................... 65
Departamento de Ciencias e Ingeniería de la Computación – Universidad Nacional del Sur
Bahía Blanca. Buenos Aires. Argentina
Programación Orientada a Aspectos: Análisis del Paradigma Tesis de Licenciatura
Fernando Asteasuain – Bernardo Ezequiel Contreras
4
3.9.5 Aspectos......................................................................................................... 68
Extensión de aspectos ......................................................................................... 69
Privilegio de aspectos ......................................................................................... 70
Precedencia de aspectos...................................................................................... 70
BNF completa ..................................................................................................... 72
3.9.6 Evaluación ..................................................................................................... 73
4. Un ejemplo: implementación del protocolo TFTP ................................................... 74
4.1 El protocolo TFTP .............................................................................................. 74
4.1.1 Comportamiento general del protocolo TFTP:.............................................. 75
4.2 Implementación en Java..................................................................................... 76
4.2.1 Implementación del servidor TFTP ............................................................... 77
4.2.2 Código Java.................................................................................................... 78
4.3 Implementación en AspectJ .............................................................................. 78
4.3.1 El aspecto de logging..................................................................................... 79
4.3.2 Código en AspectJ ......................................................................................... 84
4.4 Conclusiones........................................................................................................ 84
4.4.1 Evaluación del caso de estudio ...................................................................... 85
4.4.2 Conclusiones de la evaluación....................................................................... 86
5. Conclusiones finales .................................................................................................. 88
5.1 Breve comparación entre POA y POO ............................................................. 88
5.2 Trabajos relacionados ........................................................................................ 89
5.3 POA: Ventajas y desventajas............................................................................. 91
5.3.1 Ventajas ......................................................................................................... 91
5.3.2 Desventajas .................................................................................................... 91
Apéndice A ..................................................................................................................... 93
Apéndice B ................................................................................................................... 110
Referencias................................................................................................................... 127
Departamento de Ciencias e Ingeniería de la Computación – Universidad Nacional del Sur
Bahía Blanca. Buenos Aires. Argentina
Programación Orientada a Aspectos: Análisis del Paradigma Tesis de Licenciatura
Fernando Asteasuain – Bernardo Ezequiel Contreras
5
ÍNDICE DE CÓDIGO
ÍNDICE DE FIGURAS
Código 1: Clase número complejo.................................................................................. 47
Código 2: Clase coordenada compleja............................................................................ 49
Código 3: Definición clase pila.
Comentarios de: Programación Orientada a Aspectos - Análisis del paradigma (0)
No hay comentarios