🎯 Objetivos del Proyecto - lod1004/GII-TFG-Asistente-de-practicas-agiles-para-repositorios-en-GitHub GitHub Wiki
✅ Objetivos funcionales
Estos objetivos definen lo que la aplicación debe permitir hacer al usuario:
Análisis de métricas de calidad del proceso: La herramienta analiza automáticamente diferentes métricas de calidad de los repositorios para identificar buenas prácticas y detectar áreas de mejora. Por ejemplo, frecuencia de commits, uso de issues, ramas, etc.
Personalización temporal del análisis: El usuario puede definir periodos de análisis utilizando fechas absolutas o relativas (como "primer trimestre de vida del repositorio"), lo que permite adaptar el estudio a diferentes fases del desarrollo.
Comparación entre repositorios de referencia: Se pueden cargar y comparar métricas entre repositorios propios y de referencia, permitiendo una evaluación visual y cuantitativa del estado relativo del proyecto.
Visualización de prácticas ágiles aplicadas: El sistema traduce los resultados del análisis a prácticas ágiles reconocidas, con explicaciones breves y enlaces útiles que permiten entender por qué se evalúan ciertas métricas y cómo mejorarlas.
Apoyo a estudiantes en trabajos académicos: La aplicación puede utilizar otros TFGs públicos como casos de referencia, facilitando a los estudiantes comparar su progreso con ejemplos reales y mejorar sus proyectos.
🧩 Objetivos no funcionales
Estos objetivos se centran en la calidad técnica, mantenibilidad y experiencia de usuario:
Mantenibilidad y modularidad: La aplicación se ha construido usando Angular por su arquitectura basada en componentes y módulos reutilizables, facilitando futuras modificaciones y ampliaciones del sistema.
Usabilidad y experiencia de usuario: Se prioriza una interfaz clara y accesible, con formularios dinámicos, navegación fluida por pestañas y validaciones en tiempo real que mejoran la comprensión de cada acción.
Reusabilidad del código: Se aplican principios de buenas prácticas como DRY y SOLID (especialmente el principio Open/Closed) para asegurar un código extensible y fácil de mantener. El uso de TypeScript garantiza un tipado estricto y una detección temprana de errores.