Capítulo 1. Introducción
1.1 Objetivos del proyecto
1.2 Motivación
1.3 Organización de la Tesis
Capítulo 2. Antecedentes y Conceptos
2.1 Calidad de Software y Métricas de Calidad de Código Fuente
2.1.1 Métricas de Calidad Código Cualitativas
Eficiencia
Extensibilidad
Buena Documentación
Mantenibilidad
Claridad
Legibilidad y Formateo de Código
Comprobabilidad (Testability)
2.1.2 Métricas de Calidad Código Cuantitativas
Puntos de Función Ponderados (Weighted Micro Function Points)
Métricas de Complejidad de Halstead
Complejidad Ciclomática
2.2 Metodologías Ágiles y Extreme Programming
2.3 Revisión de Código
2.4 Análisis de Código Fuente y Abstract Syntax Trees (AST)
2.5 Soluciones existentes
2.6 CodeCaption en el Cumplimiento de las Métricas
Capítulo 3. Diseño
3.1 Objetivos del diseño de la herramienta
3.2 Diseño de la mecánica de uso
3.2.1 Uso de la interfaz gráfica
3.2.2 Cambios de las estructuras de datos en el uso de la herramienta
3.3 Casos de Uso
3.3.1 Revisor analiza el código de un desarrollador en el proyecto
3.3.2 Desarrollador recibe revisión y realiza correcciones
3.3.3 Revisor resuelve la revisión luego de aplicarse las correcciones
3.3.4 Desarrollador decide no aplicar correcciones a partir de revisión
3.4 Flujo e Interacción entre los Objetos del Diseño
3.4.1 Diagrama de interacción para el agregado de un nuevo Code Caption
3.4.2 Diagrama de interacción para la resolución de un Code Caption
3.5 Diseño de CodeCaption dentro de Pharo
3.5.1 Interfaz de CodeCaption
3.5.1.1 Agregado y/o editado de CodeCaption
3.5.1.2 Listado de CodeCaptions
3.5.2 Extensión de la interfaz de Pharo
3.5.2.1 Selección de código a revisar
3.5.2.2 Apertura de listado de CodeCaptions
3.6 Desventajas del Diseño
Capítulo 4. Implementación de la herramienta
4.1 Introducción a la Implementación
4.2 Diagrama de Clases
4.3 Clases por Secciones
4.4 Caption
CodeCaptionComment
CodeCaptionSource
CodeCaptionProject
CodeCaptionRBNodeMatcher
4.5 UI Context
CodeCaptionAddCommand
CodeCaptionShowCommentsCommand
4.6 UI
CodeCaptionListWindow
CodeCaptionWindow
4.7 Extensions
RBProgramNode
IceLibgitRepository
4.8 Interfaz gráfica
4.8.1 Botones Comandos de Pharo Smalltalk
4.8.1.1 Agregar y/o Editar un CodeCaption (CodeCaptionAddCommand)
4.8.1.2 Listar CodeCaptions (CodeCaptionShowCommentsCommand)
4.8.2 Ventanas Gráficas
4.8.2.1 Agregado/Editado de CodeCaption (CodeCaptionWindow)
setModelBeforeInitialization: aCodeCaptionComment
initializeWindow: aWindowPresenter
initializePresenters
connectPresenters
4.8.2.2 Listado de Revisiones de código CodeCaption (CodeCaptionListWindow)
setModelBeforeInitialization: aCodeCaptionProject
initializeWindow: aWindowPresenter
initializePresenters
connectPresenters
updatePresenter
4.9 Almacenamiento de CodeCaption
4.9.1 Guardado de CodeCaption
4.9.2 Carga de CodeCaption
4.10 Integración con los AST de Pharo Smalltalk
4.10.1 Referencia a nodo del AST en las revisiones
4.10.2 Uso del patrón Visitor en el AST al realizar el parseo de las revisiones
4.11 Integración con Repositorio Git
4.11.1 Utilización de Git dentro de Pharo mediante Iceberg
4.11.2 Ejecución de comandos Git mediante la terminal
Capítulo 5. Prueba de usuario
5.1 Objetivos de la prueba
5.2 Tipo de prueba
5.3 Usuarios de la prueba
5.4 Definición de la Prueba
5.4.1 Parte 1: Instalación de la aplicación y herramienta, y búsqueda de code smells
5.4.2 Parte 2: Creación de revisiones de código con la herramienta 80
5.4.3 Parte 3: Visualización de revisiones de código creadas por otro desarrollador. 80
5.4.4 Encuesta
5.5 Análisis
5.5.1 Usabilidad
Duración de Identificación de Code Smells (eficiencia)
Sin el uso de CodeCaption
Con el uso de CodeCaption
Comparación de tiempos
Encuesta sobre rapidez y facilidad de uso (eficacia)
5.5.2 Satisfacción del usuario
Pregunta 1:
Pregunta 3:
5.5.3 Mejoras a realizar
Capítulo 6. Conclusiones y Trabajo Futuro
6.1 Conclusiones
6.2 Trabajo Futuro
Bibliografía