Análisis de dependencias entre refactorings para solucionar code smells

Los code smells son síntomas en el código fuente que pueden revelar problemas de diseño. Para poder solucionar un smell deben aplicarse un conjunto de refactorings que permitan restructurar el sistema. Sin embargo, al aplicar un conjunto de refactorings en un orden determinado, pueden surgir problem...

Descripción completa

Detalles Bibliográficos
Autores: Marcos, Claudia Andrea, Vidal, Santiago Agustín, Diaz Pace, Jorge Andres
Tipo de recurso: artículo
Estado:Versión publicada
Fecha de publicación:2018
País:Argentina
Institución:Consejo Nacional de Investigaciones Científicas y Técnicas
Repositorio:CONICET Digital (CONICET)
Idioma:español
OAI Identifier:oai:ri.conicet.gov.ar:11336/123052
Acceso en línea:http://hdl.handle.net/11336/123052
Access Level:acceso abierto
Palabra clave:code smells
refactoring
evolución de software
https://purl.org/becyt/ford/1.2
https://purl.org/becyt/ford/1
Descripción
Sumario:Los code smells son síntomas en el código fuente que pueden revelar problemas de diseño. Para poder solucionar un smell deben aplicarse un conjunto de refactorings que permitan restructurar el sistema. Sin embargo, al aplicar un conjunto de refactorings en un orden determinado, pueden surgir problemas que impiden que éstos se apliquen. Por ejemplo, porque un refactoring que depende de una reestructuración realizada por otro refactoring que aún no fue aplicado, o porque un refactoring referencia un artefacto del sistema que fue modificado por un refactoring aplicado anteriormente. Por estos motivos, para aplicar un conjunto de refactorings, se deben analizar las dependencias que existen entre estos para poder establecer el orden de aplicación. En esta línea, este trabajo presenta una herramienta que identifica y soluciona los conflictos originados por dependencias entre refactorings para luego aplicar automáticamente los mismos. Los resultados, si bien son preliminares, indican que este enfoque permite identificar y solucionar un alto porcentaje de conflictos.