Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD

Autores
Bartolomeo, Mario Gustavo; Goti, Damián Alejandro
Año de publicación
2013
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión aceptada
Colaborador/a o director/a de tesis
Pons, Claudia
Descripción
Cada vez es más frecuente que los requerimientos cambien a medida que un proyecto de software progresa. Al mismo tiempo el cliente demanda resultados rápidos, que puedan implementarse y medirse en períodos cortos de tiempo. Es por ello que en los últimos tiempos, han ganando mucho terreno los procesos de software, también llamados metodologías, de naturaleza evolutivos y ágiles, cuyas principales premisas son el trabajo altamente colaborativo, iterativo e incremental. Para esto los programadores adoptaron técnicas como TDD (Test Driven Development, Desarrollo Dirigido por Tests) y AMDD (Agile Model Driven Development, Desarrollo Ágil Dirigido por Modelos), y se construyeron herramientas que facilitaron la aplicación de las mismas. Pero no ocurrió lo mismo en la comunidad de profesionales de bases de datos. Se podrían encontrar principalmente dos razones que explican esto: 1. Impedimentos culturales: Muchos de los actuales profesionales del área de datos se formaron durante los años 70 y 80, perdiendo la revolución de los objetos en los años 90 y la experiencia ganada en el desarrollo evolutivo. 2. Curva de aprendizaje: Lleva tiempo aprender nuevas técnicas, más aún si es necesario un cambio de mentalidad que permita pasar de procesos seriales o en cascada a evolutivos. En 1999 Martin Fowler propuso la técnica de programación de refactoring en su libro [FO 99]. Un refactoring es un pequeño cambio en el código fuente que mejora el diseño sin cambiar su semántica. En otras palabras, se mejora la calidad del código sin cambiar ni añadir ningún comportamiento. Refactoring permite evolucionar el código lentamente con el tiempo, para tomar un enfoque evolutivo (iterativo e incremental) de programación. En su libro, Fowler discute la idea de que de la misma manera que es posible aplicar un refactoring en el código fuente de la aplicación, es también posible aplicar un refactoring en el esquema de la base de datos. Sin embargo, aplicar un refactoring en la base de datos es algo más complejo por los significativos niveles de acoplamiento asociados a los datos. Actualmente se necesita profundizar las técnicas y herramientas que también soporten el desarrollo evolutivo para las bases de datos; y en nuestra opinión la más importante de estas técnicas es el refactoring de base de datos. En [AS 06] se presenta un marco teórico de cómo puede llevarse a cabo un esquema de trabajo evolutivo sobre las bases de datos. La premisa principal consiste en realizar los cambios sobre el modelo garantizando durante un período determinado (lo cual llamamos período de transición) la coexistencia entre ambas versiones de la base de datos. De esta forma, las aplicaciones que usen la base de datos seguirán funcionando sin la necesidad de adaptarse inmediatamente a la nueva versión de la base datos. De este modo, principal motivación consiste entonces en poder brindar una herramienta que automatice las tareas de refactoring de base de datos según los lineamientos establecidos en [AS 06].
Licenciado en Informática
Universidad Nacional de La Plata
Facultad de Informática
Materia
Informática
refactoring
Base de Datos
código fuente
Nivel de accesibilidad
acceso abierto
Condiciones de uso
http://creativecommons.org/licenses/by/4.0/
Repositorio
SEDICI (UNLP)
Institución
Universidad Nacional de La Plata
OAI Identificador
oai:sedici.unlp.edu.ar:10915/47055

id SEDICI_6a75182eed081d838e9e221fd09fb36d
oai_identifier_str oai:sedici.unlp.edu.ar:10915/47055
network_acronym_str SEDICI
repository_id_str 1329
network_name_str SEDICI (UNLP)
spelling Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDDBartolomeo, Mario GustavoGoti, Damián AlejandroInformáticarefactoringBase de Datoscódigo fuenteCada vez es más frecuente que los requerimientos cambien a medida que un proyecto de software progresa. Al mismo tiempo el cliente demanda resultados rápidos, que puedan implementarse y medirse en períodos cortos de tiempo. Es por ello que en los últimos tiempos, han ganando mucho terreno los procesos de software, también llamados metodologías, de naturaleza evolutivos y ágiles, cuyas principales premisas son el trabajo altamente colaborativo, iterativo e incremental. Para esto los programadores adoptaron técnicas como TDD (Test Driven Development, Desarrollo Dirigido por Tests) y AMDD (Agile Model Driven Development, Desarrollo Ágil Dirigido por Modelos), y se construyeron herramientas que facilitaron la aplicación de las mismas. Pero no ocurrió lo mismo en la comunidad de profesionales de bases de datos. Se podrían encontrar principalmente dos razones que explican esto: 1. Impedimentos culturales: Muchos de los actuales profesionales del área de datos se formaron durante los años 70 y 80, perdiendo la revolución de los objetos en los años 90 y la experiencia ganada en el desarrollo evolutivo. 2. Curva de aprendizaje: Lleva tiempo aprender nuevas técnicas, más aún si es necesario un cambio de mentalidad que permita pasar de procesos seriales o en cascada a evolutivos. En 1999 Martin Fowler propuso la técnica de programación de refactoring en su libro [FO 99]. Un refactoring es un pequeño cambio en el código fuente que mejora el diseño sin cambiar su semántica. En otras palabras, se mejora la calidad del código sin cambiar ni añadir ningún comportamiento. Refactoring permite evolucionar el código lentamente con el tiempo, para tomar un enfoque evolutivo (iterativo e incremental) de programación. En su libro, Fowler discute la idea de que de la misma manera que es posible aplicar un refactoring en el código fuente de la aplicación, es también posible aplicar un refactoring en el esquema de la base de datos. Sin embargo, aplicar un refactoring en la base de datos es algo más complejo por los significativos niveles de acoplamiento asociados a los datos. Actualmente se necesita profundizar las técnicas y herramientas que también soporten el desarrollo evolutivo para las bases de datos; y en nuestra opinión la más importante de estas técnicas es el refactoring de base de datos. En [AS 06] se presenta un marco teórico de cómo puede llevarse a cabo un esquema de trabajo evolutivo sobre las bases de datos. La premisa principal consiste en realizar los cambios sobre el modelo garantizando durante un período determinado (lo cual llamamos período de transición) la coexistencia entre ambas versiones de la base de datos. De esta forma, las aplicaciones que usen la base de datos seguirán funcionando sin la necesidad de adaptarse inmediatamente a la nueva versión de la base datos. De este modo, principal motivación consiste entonces en poder brindar una herramienta que automatice las tareas de refactoring de base de datos según los lineamientos establecidos en [AS 06].Licenciado en InformáticaUniversidad Nacional de La PlataFacultad de InformáticaPons, Claudia2013info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionTesis de gradohttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttp://sedici.unlp.edu.ar/handle/10915/47055spainfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by/4.0/Creative Commons Attribution 4.0 International (CC BY 4.0)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-03T10:35:34Zoai:sedici.unlp.edu.ar:10915/47055Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-03 10:35:35.028SEDICI (UNLP) - Universidad Nacional de La Platafalse
dc.title.none.fl_str_mv Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
title Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
spellingShingle Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
Bartolomeo, Mario Gustavo
Informática
refactoring
Base de Datos
código fuente
title_short Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
title_full Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
title_fullStr Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
title_full_unstemmed Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
title_sort Refactoring de bases de datos : Desarrollo evolutivo de bases de bases de datos integrado con MDD
dc.creator.none.fl_str_mv Bartolomeo, Mario Gustavo
Goti, Damián Alejandro
author Bartolomeo, Mario Gustavo
author_facet Bartolomeo, Mario Gustavo
Goti, Damián Alejandro
author_role author
author2 Goti, Damián Alejandro
author2_role author
dc.contributor.none.fl_str_mv Pons, Claudia
dc.subject.none.fl_str_mv Informática
refactoring
Base de Datos
código fuente
topic Informática
refactoring
Base de Datos
código fuente
dc.description.none.fl_txt_mv Cada vez es más frecuente que los requerimientos cambien a medida que un proyecto de software progresa. Al mismo tiempo el cliente demanda resultados rápidos, que puedan implementarse y medirse en períodos cortos de tiempo. Es por ello que en los últimos tiempos, han ganando mucho terreno los procesos de software, también llamados metodologías, de naturaleza evolutivos y ágiles, cuyas principales premisas son el trabajo altamente colaborativo, iterativo e incremental. Para esto los programadores adoptaron técnicas como TDD (Test Driven Development, Desarrollo Dirigido por Tests) y AMDD (Agile Model Driven Development, Desarrollo Ágil Dirigido por Modelos), y se construyeron herramientas que facilitaron la aplicación de las mismas. Pero no ocurrió lo mismo en la comunidad de profesionales de bases de datos. Se podrían encontrar principalmente dos razones que explican esto: 1. Impedimentos culturales: Muchos de los actuales profesionales del área de datos se formaron durante los años 70 y 80, perdiendo la revolución de los objetos en los años 90 y la experiencia ganada en el desarrollo evolutivo. 2. Curva de aprendizaje: Lleva tiempo aprender nuevas técnicas, más aún si es necesario un cambio de mentalidad que permita pasar de procesos seriales o en cascada a evolutivos. En 1999 Martin Fowler propuso la técnica de programación de refactoring en su libro [FO 99]. Un refactoring es un pequeño cambio en el código fuente que mejora el diseño sin cambiar su semántica. En otras palabras, se mejora la calidad del código sin cambiar ni añadir ningún comportamiento. Refactoring permite evolucionar el código lentamente con el tiempo, para tomar un enfoque evolutivo (iterativo e incremental) de programación. En su libro, Fowler discute la idea de que de la misma manera que es posible aplicar un refactoring en el código fuente de la aplicación, es también posible aplicar un refactoring en el esquema de la base de datos. Sin embargo, aplicar un refactoring en la base de datos es algo más complejo por los significativos niveles de acoplamiento asociados a los datos. Actualmente se necesita profundizar las técnicas y herramientas que también soporten el desarrollo evolutivo para las bases de datos; y en nuestra opinión la más importante de estas técnicas es el refactoring de base de datos. En [AS 06] se presenta un marco teórico de cómo puede llevarse a cabo un esquema de trabajo evolutivo sobre las bases de datos. La premisa principal consiste en realizar los cambios sobre el modelo garantizando durante un período determinado (lo cual llamamos período de transición) la coexistencia entre ambas versiones de la base de datos. De esta forma, las aplicaciones que usen la base de datos seguirán funcionando sin la necesidad de adaptarse inmediatamente a la nueva versión de la base datos. De este modo, principal motivación consiste entonces en poder brindar una herramienta que automatice las tareas de refactoring de base de datos según los lineamientos establecidos en [AS 06].
Licenciado en Informática
Universidad Nacional de La Plata
Facultad de Informática
description Cada vez es más frecuente que los requerimientos cambien a medida que un proyecto de software progresa. Al mismo tiempo el cliente demanda resultados rápidos, que puedan implementarse y medirse en períodos cortos de tiempo. Es por ello que en los últimos tiempos, han ganando mucho terreno los procesos de software, también llamados metodologías, de naturaleza evolutivos y ágiles, cuyas principales premisas son el trabajo altamente colaborativo, iterativo e incremental. Para esto los programadores adoptaron técnicas como TDD (Test Driven Development, Desarrollo Dirigido por Tests) y AMDD (Agile Model Driven Development, Desarrollo Ágil Dirigido por Modelos), y se construyeron herramientas que facilitaron la aplicación de las mismas. Pero no ocurrió lo mismo en la comunidad de profesionales de bases de datos. Se podrían encontrar principalmente dos razones que explican esto: 1. Impedimentos culturales: Muchos de los actuales profesionales del área de datos se formaron durante los años 70 y 80, perdiendo la revolución de los objetos en los años 90 y la experiencia ganada en el desarrollo evolutivo. 2. Curva de aprendizaje: Lleva tiempo aprender nuevas técnicas, más aún si es necesario un cambio de mentalidad que permita pasar de procesos seriales o en cascada a evolutivos. En 1999 Martin Fowler propuso la técnica de programación de refactoring en su libro [FO 99]. Un refactoring es un pequeño cambio en el código fuente que mejora el diseño sin cambiar su semántica. En otras palabras, se mejora la calidad del código sin cambiar ni añadir ningún comportamiento. Refactoring permite evolucionar el código lentamente con el tiempo, para tomar un enfoque evolutivo (iterativo e incremental) de programación. En su libro, Fowler discute la idea de que de la misma manera que es posible aplicar un refactoring en el código fuente de la aplicación, es también posible aplicar un refactoring en el esquema de la base de datos. Sin embargo, aplicar un refactoring en la base de datos es algo más complejo por los significativos niveles de acoplamiento asociados a los datos. Actualmente se necesita profundizar las técnicas y herramientas que también soporten el desarrollo evolutivo para las bases de datos; y en nuestra opinión la más importante de estas técnicas es el refactoring de base de datos. En [AS 06] se presenta un marco teórico de cómo puede llevarse a cabo un esquema de trabajo evolutivo sobre las bases de datos. La premisa principal consiste en realizar los cambios sobre el modelo garantizando durante un período determinado (lo cual llamamos período de transición) la coexistencia entre ambas versiones de la base de datos. De esta forma, las aplicaciones que usen la base de datos seguirán funcionando sin la necesidad de adaptarse inmediatamente a la nueva versión de la base datos. De este modo, principal motivación consiste entonces en poder brindar una herramienta que automatice las tareas de refactoring de base de datos según los lineamientos establecidos en [AS 06].
publishDate 2013
dc.date.none.fl_str_mv 2013
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/acceptedVersion
Tesis de grado
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str acceptedVersion
dc.identifier.none.fl_str_mv http://sedici.unlp.edu.ar/handle/10915/47055
url http://sedici.unlp.edu.ar/handle/10915/47055
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by/4.0/
Creative Commons Attribution 4.0 International (CC BY 4.0)
eu_rights_str_mv openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by/4.0/
Creative Commons Attribution 4.0 International (CC BY 4.0)
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:SEDICI (UNLP)
instname:Universidad Nacional de La Plata
instacron:UNLP
reponame_str SEDICI (UNLP)
collection SEDICI (UNLP)
instname_str Universidad Nacional de La Plata
instacron_str UNLP
institution UNLP
repository.name.fl_str_mv SEDICI (UNLP) - Universidad Nacional de La Plata
repository.mail.fl_str_mv alira@sedici.unlp.edu.ar
_version_ 1842260208884121600
score 13.13397