El ciclo de refactoring de código consiste en tres etapas: primero se identifica una parte del sistema cuyo diseño es deficiente, luego se elige el refactoring que resuelve el problema y, finalmente, se transforma el código fuente. Para asistir a los programadores en esta tarea, todos los IDEs modernos cuentan, en mayor o menor medida, con facilidades para aplicar refactorings de forma automática. Sin embargo, esta automatización se centra en la etapa final -es decir, en la transformación del código- cubriendo parcialmente, o no cubriendo en absoluto, la detección del problema y la selección del refactoring adecuado. En esta tesis se estudia la posibilidad de asistir al programador a lo largo de todo el ciclo, identificando automáticamente los problemas de diseño -definidos en base a la noción de code smell y detectados por medio de reglas lint-, sugiriendo los refactorings que podrían solucionarlos y ejecutando la transformación del código de forma interactiva. Como prueba de concepto, se desarrolla una extensión del ambiente Pharo Smalltalk que provee refactoring asistido en virtud de la vinculación del framework Small Lint con el framework de refactoring.