viernes, 12 de septiembre de 2008

Presentación de Tesis Licenciatura - Tema: Refactoring de Traits

Seguramente también se hayan enterado de este evento, pero de la misma manera que con la charla, me parece importante publicarlo acá. La realidad es que estoy muy contento con el avance que estoy teniendo con el grupo de tesistas de la UBA. Estamos haciendo trabajos muy interesante.... bue, en realidad ellos están trabajando mucho, yo solo puse las ideas iniciales y de vez en cuando nos reunimos, pero la verdad que estar trabajando con gente motivada, autónoma y con espíritu de investigación es muy reconfortante. Lástima que tenga tan poco tiempo para dedicarles... si le dedicase más tiempo creo que ni mi perro me reconocería!.
En particular,Alejandro ha hecho un trabajo excepcional con esta investigación y la ha presentado en Smalltalks 2007 cuando aún estaba trabajando en ella. Esta presentación será aún mejor, se los puedo asegurar, si tienen la oportunidad de venir no se van a arrepentir. De vuelta, es un trabajo muy interesante y Alejandro ha trabajado muy bien y con mucha fuerza. Además tendremos un jurado de lujo! Máximo Prieto y Gabriela Arévalo! ¿Qué más se puede pedir?
También me emociona pensar que otros grupos estarán exponiendo para fin de este año si Dios quiere, o principo del que viene, uno también sobre traits y otro sobre ambientes de enseñanza con objetos, así que estén atentos!
Ahora les transcribo el mail que mandé invitando a la presentación de tesis:
-----------------------------
Que tal, 
 el miércoles 17 de Septiembre a las 10 hrs. (aula a determinar), Alejandro Gonzalez presentará su trabajo de Tesis de Licenciatura que trata sobre el estudio e implementación de "Refactorings para Traits".
 El mismo se basó en realizar cambios a jerarquías de clases existentes utilizando un nuevo elemento de representación de conocimiento denominado Trait (o Rasgo en castellano). Al ir realizando estos cambios se tomó nota de aquellos procesos comunes que pudiesen ser creados como Refactorings, para luego implementarlos como tal.
 El trabajo se realizó con Squeak (una implementación open source de Smalltalk) y se amplió la funcionalidad del Refactoring Browser. El mismo se encuentra disponible para ser utilizado en SqueakSource.

 Esta es la primer presentación de un conjunto de tesis que tratan sobre la utilización de Traits en ambientes de objetos que utilizan clasificación como metodología de representación de conocimiento. El resto de los trabajos se irán presentando en los próximos meses.
 El jurado estará compuesto por Máximo Prieto, Gabriela Arévalo 
 Director: Hernán Wilkinson

 A continuación se adjunta un resumen:
---
Traits es un nuevo concepto para estructurar programas orientados a objetos.
Este concepto, permite que el comportamiento total de una clase pueda ser construido
composicionalmente a partir de pequeños rasgos de comportamientos llamados traits.

Traits complementa a la herencia simple y es por esto,
que su inclusión conlleva la necesidad de querer refactorizar nuestros diseños,
ya que con ellos ahora se pueden resolver cuestiones antes no resueltas, o mal resueltas, por la herencia.
En particular, aquellas jerarquías cuestionadas por hacer un fuerte uso de la herencia
como único mecanismo para compartir comportamiento, son las que se convierten en candidatas a ser refactorizadas con traits.
Pero estas refactorizaciones no pueden ser realizadas eficientemente sin la asistencia de una herramienta apropiada.

Muchos ambientes de desarrollo incluyen herramientas para refactorizar código.
Éstas soportan, a menudo, refactorings típicos que pueden realizarse en forma semi-automática,
como por ejemplo Push up method y Rename method.
El problema es que, éstas operan sobre conceptos conocidos del paradigma:
jerarquía de clases, métodos, variables de instancia, etc.
Actualmente, ninguna brinda soporte para la refactorización con este nuevo concepto, traits.

En este trabajo se investigan, tanto desde un punto de vista conceptual como implementativo, nuevos refactorings para traits.
El resultado es un nuevo conjunto de operaciones de refactorings que,
inicialmente surgieron de ideas básicas y operaciones típicas al programar con traits,
pero que luego fueron refinándose a medida que las comenzamos a utilizar para realizar diferentes refactorizaciones.

Estos nuevos refactorings se implementaron en Squeak, un dialecto open-source de Smalltalk,
dado que éste es el único ambiente que incluye una implementación sólida de ambos,
el nuevo concepto de traits y una herramienta de refactorings conocida como refactoring browser.

No hay comentarios.: