Implementación de refactorings automáticos en lenguajes con LiveTyping - Balboa, Fernando (2022)
Todo programa tiene un ciclo de vida. La expectativa de vida del software en general crece junto con su tamaño y complejidad, y el desarrollo suele estar atado a un presupuesto acotado. A medida que el codebase muta y se vuelve más complejo, también se vuelve más difícil de mantener. Una de las herramientas más frecuentes, que se encuentra por defecto en muchas de las IDEs comerciales, son los refactorings automáticos. Se conoce como refactoring a la acción de reestructurar el código, manteniendo su comportamiento actual. El objetivo de estos cambios queda a discreción del programador, aunque suele ser mejorar algún aspecto de mantenibilidad del código. La automatización de las reestructuraciones provee dos ventajas. La primera es que aseguran al programador que el cambio que está introduciendo es seguro en términos de comportamiento, porque eliminan la posibilidad de error humano. La segunda es que promueven su uso frecuente para mejorar la mantenibilidad, haciendo que sean muy poco costosas en términos de tiempo y esfuerzo para el programador. Este trabajo se enfoca en el desarrollo de dos refactorings automáticos: Inline Temporary Variable e Inline Method, ambos implementados en el lenguaje Smalltalk-80. La plataforma en la cual fueron integrados es Cuis University, la cual provee un sistema de recolección de datos de tipado (LiveTyping) que puede ser utilizado para mejorar la calidad de las herramientas. Uno de los objetivos principales es la exploración de las dificultades de implementación de los mismos en un lenguaje con tipado dinámico y cómo puede aprovecharse la información de LiveTyping en los refactorings automáticos.