“Hacia una mejor experiencia de
debugging en desarrollos AOP”
FACULTAD DE INGENIERÍA
UNIVERSIDAD DE BUENOS AIRES
TESISTA: Adrián EIDELMAN
DIRECTORA: Lic. Rosa WACHENCHAUZER
CO-DIRECTOR: Lic. Alan CYMENT
NOVIEMBRE 2006
Hacia una mejor experiencia de debugging en desarrollos AOP
FIUBA
Resumen
Las limitaciones que presenta la Programación Orientada a Objetos para
encapsular las incumbencias transversales en un desarrollo de software han dado
origen a nuevas técnicas de programación, entre las cuales se ha destacado en
los últimos años la Programación Orientada a Aspectos (AOP). AOP introduce una
nueva unidad de modularización denominada aspecto, que tiene el fin de
encapsular estas funcionalidades transversales y mejorar así la comprensión y
mantenibilidad de las aplicaciones. A partir de la introducción del aspecto como
unidad de modularización, AOP a su vez incorpora nuevas fuentes de fallas y por
lo tanto nuevos desafíos en lo que respecta al testing en desarrollos de este tipo.
A pesar de esto, el aseguramiento de la calidad no ha sido objeto de atención
dentro de la comunidad AOP y el escaso desarrollo de esta disciplina se
manifiesta particularmente en una actividad: el debugging de aplicaciones. El
objetivo de la presente tesis es exponer las fallas características que pueden
presentarse en desarrollos AOP y las limitaciones en cuanto al soporte a las
tareas de debugging que presentan en general las herramientas para desarrollos
orientados a aspectos, para luego presentar una propuesta de solución y plasmar
la misma dentro del framework conocido como SetPoint.
Adrián Eidelman
2/148
Hacia una mejor experiencia de debugging en desarrollos AOP
FIUBA
Agradecimientos
A Rosita y a Alan, directora y co-director de esta tesis, por su confianza y ayuda
incondicional desde el primero hasta el último día de trabajo.
A Rubén, por sus aportes, comentarios y sugerencias desde el viejo continente.
A Silvina por su apoyo y compañía constantes durante todos estos años de
carrera.
A mis padres, Alicia y Mario, y mis hermanos Gabriel y Nadia.
A todos aquellos que ayudaron desinteresadamente desde algún lugar del cyber-
espacio.
A profesores, compañeros, amigos y todos los que me permitieron llegar a este
momento.
Adrián Eidelman
3/148
Hacia una mejor experiencia de debugging en desarrollos AOP
FIUBA
2.
Tabla de Contenidos
RESUMEN..............................................................................................................................................2
AGRADECIMIENTOS .........................................................................................................................3
TABLA DE CONTENIDOS..................................................................................................................4
INTRODUCCIÓN ........................................................................................................................7
1.
ORGANIZACIÓN DE LA TESIS.................................................................................................................9
LA PROGRAMACIÓN ORIENTADA A ASPECTOS...........................................................12
EL PROBLEMA DE LAS INCUMBENCIAS TRANSVERSALES.....................................................................12
Ejemplificando el problema..........................................................................................................13
UNA PROPUESTA DE SOLUCIÓN: AOP.................................................................................................15
Elementos distintivos del paradigma AOP ...................................................................................16
Otras ventajas que ofrece AOP.....................................................................................................20
AOP vs. POO ................................................................................................................................20
RESUMEN ...........................................................................................................................................21
EL PROYECTO SETPOINT ....................................................................................................22
“SETPOINT, LECTOR… LECTOR, SETPOINT” ......................................................................................22
UNA MOTIVACIÓN PARA SETPOINT: LA PARADOJA DE LA PROGRAMACIÓN AOP ...............................23
SEMANTIC POINTCUTS Y CONCEPTOS DE LA WEB SEMÁNTICA............................................................25
Conceptos de la Web semántica....................................................................................................26
Armando el rompecabezas hacia la implementación de setpoints................................................30
MODELO DE JOINPOINTS Y WEAVING.................................................................................................32
Completando el universo semántico de la aplicación...................................................................33
DECLARACIÓN DE ASPECTOS, ADVICES Y POINTCUTS.........................................................................34
Pointcuts .......................................................................................................................................35
Aspectos ........................................................................................................................................36
Advices..........................................................................................................................................37
ARQUITECTURA SETPOINT .................................................................................................................38
RESUMEN ...........................................................................................................................................39
3.
5.
4. ANTES DE CONTINUAR... ¿QUÉ ENTENDEMOS EXACTAMENTE POR
DEBUGGING? .....................................................................................................................................40
BUGS, DEFECTOS Y FALLOS ................................................................................................................40
DEBUGGING........................................................................................................................................41
DEBUGGERS .......................................................................................................................................42
Estado del arte..............................................................................................................................43
ALGUNAS ACLARACIONES RELACIONADAS CON EL DEBUGGING.........................................................44
RESUMEN ...........................................................................................................................................45
ESTADO DEL ARTE: INVESTIGACIONES SOBRE EL TEMA .......................................46
TRABAJOS RELACIONADOS .................................................................................................................46
TEMAS PENDIENTES DE INVESTIGACIÓN .............................................................................................48
RESUMEN ...........................................................................................................................................50
6. DEFINICIÓN DEL PROBLEMA Y OBJETIVOS .................................................................51
¿POR QUÉ TESTEAR DESARROLLOS AOP ES DIFERENTE?....................................................................51
UN MODELO DE FALLAS PARA AOP....................................................................................................52
La naturaleza de las fallas en desarrollos AOP ...........................................................................53
Modelo de fallas candidato...........................................................................................................54
DEBUGGEANDO APLICACIONES EN SETPOINT.....................................................................................56
Modelos de weaving......................................................................................................................56
Información de debugging ............................................................................................................59
Adrián Eidelman
4/148
Hacia una mejor experiencia de debugging en desarrollos AOP
FIUBA
Desentendimiento de las actividades propias de AOP..................................................................61
OBJETIVOS DE LA TESIS ......................................................................................................................64
RESUMEN ...........................................................................................................................................64
7. MEJORANDO LA EXPERIENCIA DE DEBUGGING EN DESARROLLOS AOP..........66
PROPIEDADES DE UNA SOLUCIÓN IDEAL DE DEBUGGING.....................................................................67
Idempotencia.................................................................................................................................67
Desentendimiento..........................................................................................................................69
Intimidad.......................................................................................................................................72
Dinamismo...
Links de descarga
http://lwp-l.com/pdf15935
Comentarios de: Hacia una mejor experiencia de debugging en desarrollos AOP (0)
Comentarios de: Hacia una mejor experiencia de debugging en desarrollos AOP (0)
No hay comentarios