Herramientas Personales
Usted está aquí: Inicio Agenda Defensa Tesis Licenciatura Pablo Revert y Andrés Taján

Defensa Tesis Licenciatura Pablo Revert y Andrés Taján

— archivado en:

Título: Reificación de relaciones en lenguajes orientados a objetos. Director: Lic. Dan Rozenfarb

Qué
  • Tesis de Licenciatura
Cuándo 11/12/2009
de 09:00 am a 10:00 am
Dónde Aula 11, Pabellon 1
Agregar evento al calendario vCal
iCal
  • Título: Reificación de relaciones en lenguajes orientados a objetos
  • Director: Lic. Dan Rozenfarb
  • Jurados: Lic. Máximo Prieto, Dr. Diego Garbervetsky
  • Resumen

Generalmente, cuando apreciamos que dos entidades mantienen un vínculo, decimos que se encuentran relacionadas. De esta forma podemos comprender el significado de “Juan es padre de Pedro”. Si más tarde se nos presenta el vínculo “Mario es padre de Jorge”, vemos que éstas poseen cierta semejanza. Llamamos Relación a esta idea de semejanza.Una Relación describe la “forma” que tendrán los vínculos que de ella se desprendan.

Los lenguajes y técnicas de modelado orientado a objetos (OO) -comoUML- han popularizado el uso de Clases y Relaciones para describir y diseñar software. Sin embargo, los lenguajes de programación carecen de elementos sintácticos y semánticos para expresar Relaciones directamente. Esto lleva al programador a implementarlas en forma ad-hoc y facilita que la abstracción se pierda en el código. En esta tésis estudiamos las consecuencias de reificar la abstracción “Relación” en los lenguajes de programación OO. Así, mientras desarrollamos un modelo conceptual, prototipamos un framework en Smalltalk Squeak.

Comprobamos que el ambiente resultante ofrece importantes beneficios al pensar y elaborar programas. Un estilo de programación más declarativo, con transiciones más naturales entre un diseño e su implementación; nuevas posibilidades al definir atributos y colaboraciones entre objetos (gracias a las a la reificación de relación, rol y vínculo); una sencilla integración con herramientas de de nivel meta (ej. persistencia, interfaz de usuario, distribución); soporte a sharing anticipado y no anticipado; objetos con protocolos uniformes, inferidos de la mera definición de la la relación; son algunas de ellos.

Finalmente, lo prometedor de los resultados obtenidos y la naturalidad y fluidez con que el modelo evolucionó en forma paradigmática hacia otras áreas o dominios de problema (ej. Programación orientada a roles, Traits, Metaprogramación) invita a continuar explorando las posibilidades y límites de esta línea de investigación.