Nombre del curso: | Métricas de Software |
Course Name: | Software Metrics |
Créditos: | 2 |
Profesor: | Rubby Casallas |
Versión PDF | Click Aquí |
Medir la calidad de un producto de software tiene muchas ventajas; permite hacer un diagnóstico cuantitativo sobre los posibles problemas, organizarlos, priorizarlos y definir planes de corrección. Para definir calidad de software existen modelos que incluyen varias características como la facilidad de mantenimiento, la corrección, las vulnerabilidades, la confiabilidad, o los “bad smells” entre otros. Adicionalmente, existen métricas que permiten analizar la calidad de las características. Usando las métricas se pueden identificar problemas en el software y corregirlos. Los costos de corrección se pueden agrupar en un solo concepto llamado deuda técnica. Este concepto sirve para gestionar mejor un proyecto y/o un producto de software, evitando incrementar la mala calidad a medida que se desarrolla el producto.
Con respecto a los procesos, estudiaremos cómo mejorar los sistemas de estimación de esfuerzo (horas de trabajo) para desarrollar historias de usuario, basados en técnicas de adivinación como, por ejemplo, el Planning Poker. Las mejoras al método consisten en la utilización de datos históricos de iteraciones o proyectos anteriores y el uso de estadística sencilla para corregir los estimados e incluir conocimiento sobre, de acuerdo con los datos, que tan bueno es el estimado.
Tecnologías principales:
SonarQube.
Analizaremos aplicaciones escritas en java, python y/o javascript para calcular las métricas y para hacer refactoring del código.
En este curso aprenderás a:
Modelos de Calidad de Software: Comprender la estructura de un modelo de calidad: características, subcaracterísticas, métricas (estáticas sobre el código y dinámicas en ejecución) e interpretación de la métrica en la realidad.
Deuda Técnica: Utilizar un modelo de análisis basado en remediar o corregir los problemas de calidad que transforma los hallazgos de la mala calidad en tiempo de corrección o deuda técnica.
Diseño y Refactoring: Técnicas para remediar algunos de los problemas de calidad (especialmente los bad smells) basadas en refactoring.
Fugas de agua (Leaks): Uso de la métrica de deuda técnica para gestionar mejor el proyecto identificando las fugas de agua (aumento de la deuda técnica) a través de las iteraciones.
Estimación de esfuerzo: Aplicación del método PROBE Proxy Based Estimation en conjunto con métodos de adivinación como el Planning Poker para mejorar la estimación del esfuerzo de desarrollo y para construir datos históricos que mejoren los estimados .
Metodología del curso
Se trabajarán los conceptos teóricos a través de vídeos, lecturas, ejemplos y evaluaciones formativas. Estudiaremos a través de ejemplos concretos sobre código cómo medir las características de un modelo de calidad y cómo interpretar en la realidad esas mediciones. Haremos ejercicios prácticos en grupos pequeños para disminuir la deuda técnica de un proyecto.
Se utilizará SonarQube para medir la deuda técnica de un proyecto y para comparar con otros proyectos. Para entender el concepto de fuga de agua, realizaremos un caso de estudio de tal forma que se pueda analizar qué fue lo que pasó y qué acciones concretas se pueden definir para solucionarlo.
Se tendrán entrevistas con personas de la industria que utilizan el concepto de deuda técnica para gestionar la calidad de sus productos.