Identificación de potenciales hotspots en el software usando métodos de clasificación - Reyes San Pedro, Humberto (Universidad Autónoma Metropolitana, 2023)
El desarrollo continuo del software es una realidad en estos tiempos. Los cambios en el software pueden deberse por el desarrollo de nuevas funcionalidades, a la corrección de defectos o a la reparación de algunas decisiones de diseño o de desarrollo, convenientes a corto plazo al dejarse de hacer, pero que generarán deterioro de algunos componentes del sistema. El resultado de estas decisiones se le conoce como la deuda técnica del sistema. En esta tesis estamos interesados en identificar fuentes de deuda técnica que generan deterioro en los componentes. La identificación de fuentes de deuda técnica es una actividad fundamental en el desarrollo de software, para lo cual proponemos utilizar modelos de software que permitan identificar de manera eficiente los módulos propensos al cambio o propensos al error, a los que llamamos hotspots, y con ello ayudar a los equipos de desarrollo y tomadores de decisiones a guiar de mejor manera los recursos a invertir para pagar la deuda técnica, por ejemplo, mediante refactorización. Este estudio examina la efectividad de algoritmos de clasificación, de métricas de software y del análisis de los valores de las métricas, con el fin de encontrar una combinación de métricas que mejor nos ayude a identificar hotspots. Se usaron once aplicaciones de código abierto orientado a objetos para llevar a cabo nuestro estudio y validación de resultados. Parte de las aplicaciones se usaron como datos de entrenamiento y el resto como datos de prueba para los algoritmos, con lo que tuvimos la posibilidad de realizar validaciones de los resultados de nuestra clasificación. Se obtuvieron resultados que permiten sugerir un método de clasificación de Bayes ingenuo, con una normalización de las métricas y una combinación de tres métricas de código que permite realizar una buena identificación de hotspots. Palabras clave: deuda técnica, hotspots, métricas de software, clasificadores.