Damián Goti y Gustavo Bartolomeo

Damián Goti y Gustavo Bartolomeo desarrollaron recientemente una tesis sobre “Refactoring de Bases de Datos”. La idea principal fue trabajar con la base de datos de una forma evolutiva, con un enfoque iterativo e incremental para el desarrollo.

Título Refactoring de Bases de Datos
Autores Damián GotiGustavo Bartolomeo
Fecha de Presentación 29.04.2013
Presentación Descargar PDF

Debido a la importancia que tiene este tipo de avance en el campo científico, Willay se puso en contacto con Damián Goti, uno de los autores de la tesis, para que contara acerca del recorrido de su investigación

¿Qué los motivó a trabajar sobre este tema?

La motivación principal era hacer algo que pueda ser aplicado en la industria, tratar con los problemas que uno se encuentra día a día en los proyectos y poder hacer un aporte que pueda mejorar algún aspecto concreto.

¿Cuál es la importancia de sumar el desarrollo de bases de datos a las técnicas evolutivas e incrementales?

El empleo de las técnicas evolutivas mejora el diseño del esquema de la base de datos, haciendo que el mismo evolucione durante el ciclo de vida del proyecto y no que sea creado al inicio del proyecto y luego gestionar el cambio, como predican los procesos tradicionales en cascada. El Refactoring es la técnica que permite hacer evolucionar el esquema, trabajando con requerimientos que evolucionan en lugar de gestionar el cambio.

¿En qué aspectos creés que ayudaría a mejorar la experiencia de los usuarios?

Con nuestro trabajo resaltamos la importancia de trabajar con la base de datos de la misma forma que se trabaja con el desarrollo de la aplicación: aplicando metodologías ágiles para trabajar en forma compatible con el resto de los equipos que trabajan en otras aplicaciones. Además, al trabajar bajo el marco de MDD (Model Driven Development), tenemos un modelo formal, al cual le aplicamos transformaciones y  a partir del cual también obtenemos el código SQL que se correrá sobre el motor de la base de datos. De esta forma, se automatiza la tarea de escribir el código que implementa el refactoring a la base de datos. Además tenemos el modelo lógico de base de datos siempre actualizado, y el mismo puede usarse como entrada de otras herramientas del paradigma MDD.

¿Con qué obstáculos se encontraron en el desarrollo de la tesis?

Los principales obstáculos fueron los tecnológicos. Una vez que teníamos en mente lo que queríamos hacer, comenzó el proceso de elegir las herramientas adecuadas y aprender a utilizarlas. En el caso de algunas herramientas, al no ser masivamente utilizadas, no era abundante la información sobre las mismas. Las cuestiones teóricas las resolvimos con nuestra directora, Claudia Pons.

¿Qué diferencias tiene su desarrollo en comparación con otros desarrollos predecesores?

En comparación con otros desarrollos para refactoring de bases de datos, la herramienta planteada puede verse como un complemento. En general, las herramientas para refactoring de bases de datos proveen una forma ordenada para correr cambios (o refactorings)  a la base de datos registrando la versión actual del esquema, y proponiendo un mecanismo para que los mismos se corran en el momento del build de la aplicación. Son herramientas indispensables para trabajar de una forma evolutiva con el esquema de la base de datos. La herramienta propuesta en nuestro trabajo produce el código SQL que sirve como entrada para las herramientas actuales de refactoring de bases de datos.

¿Están interesados en difundir su desarrollo?

Si, totalmente. Ya lo presentamos en la JAIIO   que se realizó este año en la Universidad de Córdoba (Facultad de Matemática Astronomía y Física). La experiencia estuvo muy buena. De los trabajos expuestos, era el único de la UNLP, así que estamos mas que conformes con la experiencia y nuestro desenvolvimiento.

¿Cuál creen que es su potencialidad?

Nosotros solamente planteamos una herramienta básica (plugin para Eclipse) el cual realiza refactorings estructurales a la base de datos. La herramienta puede extenderse para realizar más refactorings y para generar código SQL para más motores de base de datos. La potencialidad es muy grande, nosotros solamente planteamos la base de la herramienta.

¿Qué influencia tuvo el desarrollo de la tesina para sus desempeños laborales?

En mi trabajo contamos con bases de datos chicas, las cuales son accedidas por una aplicación, de modo que el consumo o el ingreso de datos se hace a través de la aplicación, por este motivo es más sencillo cuando se quiere aplicar un refactoring a la misma, ya que los cambios en la base de datos se hacen simultáneamente con los de la aplicación. De todas formas, pude convencer al resto del equipo para usar herramientas que ayuden al versionado de la base de datos y que corran los cambios en la misma de forma automatizada al momento del build o deploy, así que tuvo una influencia muy positiva.

DSC_0334

DSC_0332

Vuelve al inicio