1 Introducción
1.1 Motivación
1.2 Objetivos
1.3 Contribuciones
1.4 Organización de la Tesina
2 Trabajos Relacionados
2.1 Conceptos Básicos
2.1.1 Refactoring
2.2 Trabajos de Investigación
2.2.1 CatchUp!
2.2.2 Actualización Automática de aplicaciones
3 Arquitectura de Base
3.1 Uso de la herramienta
3.2 El Framework de Refactoring
3.2.1 Refactorings
3.2.2 Condiciones
3.2.3 Ejecución de las transformaciones
3.2.4 Parser y reescritura del código fuente
4Grabado y re-ejecución de refactorings
4.1 Introducción
4.2 Escenario de trabajo
4.3 Grabado de refactorings
4.3.1 Captura de refactorings
4.3.2 Exportación de refactorings
4.4 Re-ejecución de refactorings
4.4.1 Información proporcionada por el usuario
4.4.2 Selección de refactorings a re-ejecutar
4.5 Resumen
5 Validación de refactorings
5.1 Introducción
5.2 Ejemplo de motivación
5.3 Precondiciones
5.4 Simulación de refactorings
5.5 Validación en la herramienta
5.6 Resumen
6 Dependencias entre refactorings
6.1 Introducción
6.2 ¿Cuándo existe una dependencia?
6.3 Detección de dependencias en Refactoring Browser
6.3.1 Definición de postcondiciones
6.3.2 Extensión de las precondiciones
6.3.3 Comparación de las condiciones
6.4 Análisis de dependencias en la herramienta
6.5 Resumen
7 Uso de la herramienta
7.1 Grabado de refactorings
7.2 Re-ejecución de refactorings
8 Conclusiones y trabajos futuros
8.1 Conclusiones
8.2 Contribuciones
8.3 Limitaciones
8.4 Trabajos Futuros
9 Bibliografía