scieee AI-readable full text Open interactive document viewer

Effort Estimation in Software Development Projects Using Supervised Machine Learning Techniques

Timaran-Pereira, Ricardo; GETIAL BARRAGAN, JESUS ALBERTO; Bastidas Torres, David Ramiro

Abstract

A preliminary study was conducted to validate the use of machine learning for software effort estimation. Applying the CRISP-DM methodology to the ISBSG dataset, our findings show the Random Forest model was most effective. The analysis also identified key predictive factors, including software size, team productivity, and development platform. This work establishes a strong baseline for the current project, which will enhance these results by exploring advanced ensemble methods and newer datasets

Full text

Effort Estimation in Software Development Projects Using Supervised Machine Learning Techniques Abstract Effort estimation in software projects is essential for planning resources, timelines, and costs, yet its accuracy is often compromised by multiple sources of uncertainty. In response, machine learning has emerged as a viable alternative to traditional approaches by capturing non-linear patterns in historical data and enhancing predictive capabilities. This study applied the CRISP-DM methodology to the ISBSG dataset (Release 1, July 2022), evaluating eight supervised learning models using metrics such as F1-score, Matthews Correlation Coefficient (MCC), ROC-AUC, Gini index, accuracy, and their standard deviations to assess model stability and robustness. The results show that decision tree and random forest models are particularly effective, with the latter achieving the best performance, reaching 80% accuracy and demonstrating strong generalization and stability. Four effort categories were identified, along with key predictive factors such as software size, team productivity, programming language, and development platform. The study concludes that systematic data collection enhances the development of context-aware predictive models and proposes, as future work, the exploration of ensemble configurations, additional algorithms, and newer ISBSG releases to further improve estimation accuracy. Keywords: Effort Estimation, Machine Learning, Random Forest, Decision Tree, Software Development, Software Project Management. Resumen La estimación de esfuerzo en proyectos de software es esencial para planificar recursos, tiempos y costos, aunque su precisión se ve afectada por múltiples fuentes de incertidumbre. Ante ello, el aprendizaje automático surge como alternativa a los enfoques tradicionales, al modelar patrones no lineales en datos históricos y mejorar la capacidad predictiva. Este estudio aplicó la metodología CRISP-DM al conjunto ISBSG (Release 1, julio de 2022), evaluando ocho modelos supervisados mediante métricas como F1-score, MCC, ROC-AUC, índice de Gini, exactitud y sus desviaciones estándar para medir estabilidad y robustez. Los resultados muestran que los modelos de árbol de decisión y bosque aleatorio son especialmente eficaces, destacando este último con una exactitud del 80 % y alto rendimiento en generalización y estabilidad. Se identificaron cuatro categorías de esfuerzo y variables importantes en su clasificación, como el tamaño del software, la productividad del equipo, el lenguaje de programación y la plataforma. Se concluye que contar con datos sistematizados mejora la construcción de modelos predictivos, y se propone como trabajo futuro explorar configuraciones de ensamble, otros algoritmos y nuevas versiones del ISBSG para afinar la estimación de esfuerzo. Palabras clave: Estimación de Esfuerzo, Aprendizaje Automático, Bosque Aleatorio, Árbol de Decisión, Desarrollo de Software, Gestión de Proyectos de Software. I. Introducción La estimación de esfuerzo en proyectos de desarrollo de software es una actividad compleja y crítica [6], [17] debido a su impacto directo en la planificación de recursos, cronogramas, costos y la dificultad de predecir con precisión la cantidad de trabajo requerido en contextos cambiantes y heterogéneos [1], [9]. Los métodos tradicionales, como los basados en fórmulas paramétricas o puntos de función, a menudo no capturan la complejidad real de los proyectos modernos ni se adaptan con facilidad a metodologías ágiles o procesos iterativos [12], [20]. En la última década, el aprendizaje automático se ha posicionado como un enfoque alternativo atractivo para la estimación de esfuerzo [4], [15], [24] al permitir modelar relaciones no lineales en conjuntos de datos históricos y adaptarse a múltiples factores contextuales [7], [11], [18]. Particularmente, los modelos supervisados han demostrado mejoras significativas en precisión y capacidad de generalización al emplear técnicas como árboles de decisión [28], ensamblados heterogéneos [2], [3], [13], redes neuronales recurrentes [5], [19], [26], modelos basados en analogías [21] y enfoques híbridos [10], [22], [27]. Entre estos, modelos de ensamblado, Random Forest [29] destaca por su robustez y estabilidad ante datos ruidosos y conjuntos con alta dimensionalidad. Este trabajo implementa modelos predictivos de clasificación del esfuerzo de desarrollo de software, con técnicas de aprendizaje automático supervisado, sobre un conjunto de datos sistematizado, el ISBSG Release 2022R1. Dicho repositorio contiene información detallada de miles de proyectos ejecutados en diferentes organizaciones, lo que permite entrenar modelos representativos para distintos escenarios [23]. Se adoptó la metodología CRISP-DM como marco de trabajo, dada su estructura secuencial y cíclica que guía en la comprensión del problema, la preparación de los datos, el modelado y la evaluación sistemática de soluciones predictivas [14]. El proceso experimental contempló la implementación y comparación de ocho algoritmos de aprendizaje automático supervisado: AdaBoost, Árbol de Decisión, Bosque Aleatorio, Máquina de Vectores de Soporte (SVM), Perceptrón Multicapa, K-Vecinos Más Cercanos (KNN), Naive Bayes [8] y Regresión Logística. Para la evaluación de desempeño se emplearon las siguientes métricas: F1-score, coeficiente de correlación de Matthews (MCC), índice de Gini, área bajo la curva ROC (AUC) y exactitud, consideradas entre las más utilizadas en tareas de clasificación multiclase dentro del campo de la estimación de esfuerzo [25], [30], [31]. Además, dichas métricas fueron complementadas con el análisis de sus respectivas desviaciones estándar con el fin de valorar la estabilidad y capacidad de generalización de los modelos. La variable objetivo se discretizó en cuatro clases de esfuerzo mediante cuantiles estadísticos, para tratar el problema como una clasificación multiclase balanceada. En este marco se identificaron cuatro reglas asociadas a las categorías definidas, donde el tamaño funcional del software [1], la productividad del equipo de trabajo [10], el lenguaje de programación [16] y la plataforma tecnológica escogida [6], [20] se consolidan como factores determinantes para diferenciar los niveles de esfuerzo. II. Materiales y Métodos 2.1 Materiales Conjunto de datos ISBSG (Release 1, julio de 2022), proveniente del International Software Benchmarking Standards Group, que reúne información histórica de proyectos de software y sirvió como base para el análisis y validación de los modelos [32]. Python 3, junto con bibliotecas especializadas como Pandas, NumPy y Scikit-Learn, utilizado para el preprocesamiento, análisis y construcción de los modelos de aprendizaje supervisado. 2.2 Metodología La investigación siguió la metodología CRISP-DM en cinco fases: se definió el problema de estimación de esfuerzo en proyectos de software (comprensión del negocio); se analizó el repositorio ISBSG en cuanto a naturaleza, distribución y calidad de variables (comprensión de los datos); se seleccionó un subconjunto representativo, con limpieza, imputación, codificación, normalización, eliminación de atípicos y discretización de la variable objetivo (preparación de los datos); se implementaron ocho algoritmos supervisados relevantes en la literatura: AdaBoost, Árboles de Decisión, Bosque Aleatorio, SVM, MLP, KNN, Naive Bayes y Regresión Logística (modelado); y se evaluaron mediante F1-score, MCC, ROC-AUC, índice de Gini y exactitud, incluyendo su desviación estándar para valorar robustez y generalización (evaluación). III. Resultados 3.1 Análisis Exploratorio de Datos Se filtró un subconjunto del repositorio ISBSG compuesto por 3124 registros y 233 variables (95 numéricas y 138 categóricas), considerando proyectos con plataforma MF, PC o MULTI, calificación A o B, tasa de normalización entre 0.9 y 1.3, y enfoque de conteo NESMA o IFPUG 4+, excluyendo líneas de código. Se aplicó un umbral del 30 % de valores nulos por variable, conservando 26, de las cuales 19 fueron seleccionadas por baja colinealidad (inferior a 0.84). La imputación de valores faltantes se realizó según tipo y proporción de nulos: promedio (numéricas <10 %), mediana (numéricas 10–30 %), moda (categóricas <10 %) y árbol de decisión C4.5 (categóricas 10–30 %). Las variables numéricas se normalizaron a [0,1], excepto Año del Proyecto (tratada como categórica) y Nivel de Recurso (codificado ordinalmente). El resto de variables categóricas se transformó mediante codificación ordinal. Finalmente, se aplicaron técnicas combinadas de Winsorización, rango intercuartílico (IQR) y Z-Score para la detección y tratamiento de atípicos, y se discretizó la variable objetivo en cuatro categorías de esfuerzo según sus cuartiles (Tabla 1). Tabla 1 Categorías basadas en cuantiles de la distribución estadística Categoría 1 -∞<Valor<Q1 Esfuerzo muy bajo -∞<Valor<500 Horas Categoría 2 Q1<Valor<Mediana Esfuerzo moderado 500 horas<Valor<1050 Horas Categoría 3 Mediana<Valor<Q3 Esfuerzo Alto 1050 horas<Valor<2153 Horas Categoría 4 Q3<Valor<∞ Esfuerzo muy alto 2153 horas <Valor<∞ 3.2 Resultados La optimización de hiperparámetros se realizó mediante búsqueda en cuadrícula, seleccionando las configuraciones que maximizan la exactitud promedio obtenida a través de validación cruzada. En la Tabla 2 se presentan los resultados de desempeño alcanzados por cada uno de los modelos implementados: Tabla 2 Resultado en métricas para selección del modelo de aprendizaje automático Modelo Exactitud F1 MCC Gini ROC Adaboost 0.6906 0.6944 0.5872 0.5634 0.8271 Árbol de decisión 0.7771 0.7791 0.7033 0.7999 0.8999 Bosque aleatorio 0.8035 0.8063 0.7377 0.8844 0.9422 SVM 0.5411 0.5432 0.3934 0.4980 0.7490 Perceptrón Multicapa 0.6906 0.6949 0.5872 0.7889 0.8945 KNN 0.5117 0.5095 0.3508 0.5089 0.7545 Naive Bayes 0.3006 0.2488 0.0897 0.1921 0.5960 Logística 0.3974 0.3826 0.2061 0.3244 0.6622 Considerando que los modelos de Árbol de Decisión y Bosque Aleatorio obtuvieron los valores más altos en las métricas de exactitud, F1 y MCC durante la evaluación comparativa inicial, se llevó a cabo un análisis complementario orientado a evaluar su capacidad de generalización y robustez frente a variaciones en los subconjuntos de datos. Para este propósito, se implementaron tres esquemas de validación con particiones del 10%, 20% y 30% del conjunto total destinado a validación, mientras que el remanente se distribuyó en proporciones del 90%, 80% y 70% para entrenamiento, reservando el porcentaje restante para pruebas. Dicho procedimiento permitió explorar la sensibilidad de los modelos frente a diferentes configuraciones de partición y garantizar que los resultados no estuvieran condicionados por una división particular de los datos. Tras la aplicación de los diferentes esquemas, se observó que la configuración 10% validación, 20% prueba, 70% entrenamiento, presentó un mejor equilibrio entre error cuadrático medio, exactitud y estabilidad, mostrando resultados consistentes y métricas más homogéneas respecto a las demás combinaciones. Por lo tanto, se seleccionó esta partición como la más adecuada para el análisis detallado de los modelos finales. Los resultados obtenidos se sintetizan en las Tablas 3 y 4, correspondientes al Árbol de Decisión y al Bosque Aleatorio, respectivamente, mientras que las Figuras 1 y 2 representan el comportamiento del error cuadrático medio (MSE) en entrenamiento, validación y prueba conforme se incrementa la profundidad de los modelos. Tabla 3 Resultado de métricas para la mejor partición en árbol de decisión %Validación %Prueba MSE Exactitud Recall F1 Std MSE Std Exactitud Validación 10 20 0.415 0.732 0.736 0.730 0.333 0.104 Entrenamiento 10 20 0.202 0.877 0.876 0.870 0.368 0.139 Prueba 10 20 0.329 0.787 0.786 0.781 0.346 0.112 Figura 1 MSE vs Profundidad Árbol de Decisión Tabla 4 Resultado de métricas para la mejor partición en Bosque Aleatorio %Validación %Test MSE Exactitud Recall F1 Std MSE Std Exactitud Validación 10 20 0.240 0.821 0.819 0.823 0.024 0.009 Entrenamiento 10 20 0.022 0.984 0.984 0.984 0.003 0.002 Prueba 10 20 0.193 0.848 0.847 0.848 0.006 0.006 Figura 2 MSE vs Profundidad Bosque Aleatorio 3.3 Discusión de resultados De acuerdo con los resultados expuestos en la Tabla 2, la comparación de modelos aplicados a la base ISBSG evidencia que el Bosque Aleatorio obtuvo el mejor rendimiento general, con una exactitud de 0.8035, un F1 macro de 0.8063 y el valor más alto de MCC (0.7377), además de un coeficiente de Gini de 0.8844 y un área bajo la curva ROC de 0.9422, lo que refleja una capacidad sólida y consistente de clasificación. En segundo lugar, el Árbol de Decisión alcanzó una exactitud de 0.7771, un F1 macro de 0.7791 y un MCC de 0.7033, acompañado de un Gini de 0.7999 y un ROC de 0.8999. Estos resultados confirman un desempeño competitivo y equilibrado, con métricas cercanas a las del Bosque Aleatorio, aunque ligeramente inferiores. AdaBoost y el Perceptrón Multicapa presentaron desempeños moderados, ambos con exactitud cercana a 0.69, F1 macro alrededor de 0.694 y MCC de 0.5872, lo que evidencia un rendimiento aceptable, pero con menor capacidad discriminativa en comparación con los modelos basados en árboles. Por contraste, SVM, KNN, Naive Bayes y Regresión Logística obtuvieron resultados notablemente inferiores. El desempeño de SVM (exactitud de 0.5411 y F1 macro de 0.5432) y KNN (exactitud de 0.5117 y F1 macro de 0.5095) apenas superó la aleatoriedad, con MCC inferiores a 0.40. La Regresión Logística y Naive Bayes presentaron los resultados más bajos, con exactitudes de 0.3974 y 0.3006, respectivamente, y F1 macro menores a 0.40, lo que evidencia limitaciones claras para capturar patrones en los datos. A continuación, se profundiza en el análisis de los dos modelos con el mejor rendimiento reportado. Se examinó la estructura del Árbol de Decisión para identificar patrones y reglas asociadas a las categorías de esfuerzo previamente definidas y el Bosque Aleatorio, con énfasis en su capacidad predictiva, estabilidad y generalización. 3.3.1 Árbol de decisión El Árbol de Decisión permitió asociar las siguientes reglas interpretables a las cuatro categorías de esfuerzo previamente definidas en la Tabla 1. Regla 1: En la categoría de esfuerzo muy bajo (≤ 500 horas), se agrupan proyectos con baja complejidad funcional (AFP nulo o reducido), productividad normalizada baja (PDR ≤ 4.24), arquitecturas de desarrollo estándar y tiempos de ejecución cortos, condiciones típicas de desarrollos de bajo riesgo y rápida finalización. Regla 2: En la categoría de esfuerzo moderado (500–1050 horas), el modelo refleja proyectos con mayor tiempo de entrega y productividades intermedias, generalmente asociados a equipos de desarrollo que emplean lenguajes de programación comunes, donde la complejidad es aún manejable. Regla 3: En la categoría de esfuerzo alto (1050–2153 horas), se identifican tiempos de ejecución prolongados y productividades aceleradas, combinados con el uso de lenguajes especializados o arquitecturas de desarrollo más complejas, lo que incrementa los desafíos en la gestión y ejecución de los proyectos. Regla 4: En la categoría de esfuerzo muy alto (> 2153 horas), se tienen AFP moderados, productividades elevadas (PDR > 25), mayor extensión temporal y plataformas menos comunes, condiciones que implican un alto nivel de incertidumbre y riesgo en la planificación. Las variables más determinantes en la clasificación del esfuerzo corresponden a los puntos de función ajustados (AFP), la productividad normalizada (PDR), el tiempo total del proyecto, la arquitectura y el lenguaje de programación empleado. Estas dimensiones permiten segmentar los proyectos en categorías homogéneas y aportan criterios empíricos relevantes para fortalecer la práctica de estimación temprana en proyectos de desarrollo de software. 3.3.2 Bosque aleatorio Se evidenció una discrepancia significativa entre el rendimiento en entrenamiento y prueba, lo que sugiere sobreajuste. El MSE en entrenamiento varió entre 0.019 y 0.028, mientras que en prueba alcanzó valores de 0.192 a 0.226. La exactitud fue cercana al 98,5 % en entrenamiento, pero descendió a un rango entre 82,3 % y 84,7 % en prueba, indicando una limitada capacidad de generalización. El porcentaje de división de datos impactó considerablemente el rendimiento. La configuración con 20 % de prueba y 10 % de validación ofreció el mejor equilibrio, con una exactitud de 84,7 %. En cambio, aumentar la prueba a 30 % redujo la exactitud a 82,5 %, lo cual sugiere que conjuntos de prueba excesivamente grandes pueden comprometer el aprendizaje efectivo del modelo. Un aumento en la validación al 30 % mejora levemente su exactitud, pero sin repercusiones claras en la prueba. Respecto a la estabilidad, el MSE en prueba mostró desviaciones estándar entre 0.006 y 0.024, mientras que la exactitud osciló entre 0.006 y 0.010, evidenciando un desempeño relativamente estable. No obstante, el MSE en entrenamiento presentó mayor variabilidad (0.0009–0.003) en configuraciones con menos datos, indicando una sensibilidad al tamaño del conjunto de entrenamiento. La relación entre exactitud y sensibilidad fue consistente, lo que refleja un tratamiento equilibrado entre clases y ausencia de sesgos hacia falsos positivos o negativos. Entre las configuraciones evaluadas, la combinación de 10 % de validación y 20 % de prueba se destacó por su equilibrio: exactitud del 84.7 % y MSE de 0.192. Otras configuraciones como 30 % validación / 10 % prueba priorizaron la validación (82.3 %), pero con una leve disminución en la prueba. Configurar 30 % validación y 20 % prueba ofreció bajo MSE (0.195) y una exactitud aceptable (83.3 %). Esto subraya la importancia de definir los porcentajes según los objetivos: evaluación robusta (prueba=20 %) o ajuste de hiperparámetros (validación elevada). El MSE disminuyó progresivamente al aumentar el número de estimadores, estabilizándose entre 50 y 100, lo que indica un umbral de saturación a partir del cual el beneficio adicional es marginal. A diferencia de la profundidad, que controla la complejidad de cada árbol, el número de estimadores actúa como regulador de la varianza del conjunto, aumentando su robustez. Cuando la profundidad óptima se ubica entre 8 y 12 nodos, el efecto positivo del número de estimadores es más notorio. Configuraciones con proporciones bajas de validación y prueba (10 %) permitieron una convergencia más rápida del MSE y menor error general, debido a la mayor disponibilidad de datos de entrenamiento. En cambio, proporciones altas (30 %) ralentizaron la convergencia y requirieron hasta 100 estimadores para estabilizar el rendimiento. La interacción entre profundidad y número de estimadores también fue relevante: con árboles muy profundos, los beneficios de aumentar estimadores decrecen rápidamente. Con profundidades moderadas, incrementar estimadores mejora la generalización y reduce la varianza de forma más eficaz. Finalmente, se identificó un compromiso entre estabilidad y eficiencia computacional. Aunque un mayor número de estimadores mejora la varianza, su efecto se vuelve marginal más allá de 100, mientras que el costo computacional sigue aumentando. Así, un rango de 50 a 100 estimadores resulta óptimo, especialmente en configuraciones balanceadas como 20 % validación y 20 % prueba, donde el MSE permanece estable y los errores son consistentes entre validación y prueba. 3.3.3 Selección del modelo El análisis comparativo entre el Árbol de Decisión y el Bosque Aleatorio evidencia diferencias significativas en capacidad de generalización, estabilidad y sensibilidad a la partición de los datos. Ambos modelos presentan indicios de sobreajuste, pero con grados distintos. El Árbol de Decisión alcanza entre 87 % y 88 % de exactitud en entrenamiento, reduciéndose a un rango de 72 %–78 % en prueba, con un aumento notable en el MSE, lo que refleja una limitada capacidad de generalización. En contraste, el Bosque Aleatorio mantiene una exactitud más alta y estable (98,5 % en entrenamiento, 82,3 % - 84,7 % en prueba), con una menor brecha entre fases y mejor control de la varianza, gracias al ensamblado de múltiples árboles. La configuración de partición óptima en ambos casos fue 10 % de validación y 20 % de prueba. Sin embargo, la sensibilidad a esta configuración difiere. El Árbol de Decisión se ve afectado negativamente por reducciones en el conjunto de entrenamiento, mostrando una estabilización del MSE a profundidades entre 10 y 15 nodos, lo que señala un umbral de ajuste antes del sobreajuste. Por su parte, el Bosque Aleatorio tolera mejor la disminución de datos de entrenamiento, presentando una reducción progresiva del MSE con el incremento del número de estimadores, hasta estabilizarse entre 50 y 100, donde los beneficios adicionales se vuelven marginales. En cuanto a estabilidad, el Árbol de Decisión muestra mayor variabilidad en MSE y exactitud, especialmente en configuraciones con menos datos, lo que lo hace menos predecible. El Bosque Aleatorio, en cambio, ofrece métricas más consistentes y robustas frente a variaciones en las particiones, con desviaciones estándar más bajas, lo que refuerza su confiabilidad.