SciELO - Scientific Electronic Library Online

 
vol.15 número2Procedimientos didácticos para aplicar conjuntos de resultados en el desarrollo de la habilidad resolver problemas combinatorios índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

  • Não possue artigos citadosCitado por SciELO

Links relacionados

  • Não possue artigos similaresSimilares em SciELO

Compartilhar


Revista Cubana de Ciencias Informáticas

versão On-line ISSN 2227-1899

Rev cuba cienc informat vol.15 no.2 La Habana abr.-jun. 2021  Epub 01-Jun-2021

 

Artículo de revisión

Redes Neuronales Artificiales en la estimación del esfuerzo

Artificial Neural Networks in effort estimation

Wisleidys Campos Wright1  * 
http://orcid.org/0000-0003-0617-467X

Yaimí Trujillo Casañola1 
http://orcid.org/0000-0002-3138-011X

1Universidad de las Ciencias Informáticas, Cuba. Carretera San Antonio Km 2 ½. {wcamposw, yaimi}@uci.cu

RESUMEN

La planificación es una parte crítica del trabajo en la gestión de proyectos, que requiere estimaciones del esfuerzo para un proyecto determinado. Dada la importancia que reviste el cumplimiento de los plazos de entrega manteniendo niveles de calidad, la necesidad de monitorear y controlar la evolución de los proyectos y la incertidumbre que genera la estimación, ha surgido la necesidad de crear métodos para resolver estas cuestiones, lo cual ha despertado el interés de las empresas dedicadas a la producción de software. Los investigadores han desarrollado algoritmos de aprendizaje automático, que permiten una predicción más certera del esfuerzo para ajustar la planificación. Recientemente se han definido técnicas en la industria del software, en las que se conjugan la inteligencia artificial y los modelos algorítmicos para la estimación del esfuerzo. Este artículo expone el estado del arte en el empleo de las redes neuronales artificiales con este fin. Se realizó una recopilación de artículos científicos donde se relacionan las redes neuronales con algoritmos híbridos basados en el comportamiento de animales e insectos para el aprendizaje de la red, lo que demuestra la tendencia de su utilización para optimizar la estimación del esfuerzo durante la planificación temprana en proyectos de desarrollo de software.

Palabras clave: desarrollo de software; estimación del esfuerzo; redes neuronales; algoritmos híbridos

ABSTRACT

Planning is a critical part of project management work, that requires estimates of effort for a given project. Given the importance of meeting delivery deadlines while maintaining quality levels, the imperative to monitor and control the evolution of projects and the uncertainty generated by estimation, the need to create methods to solve these issues has arisen, which has aroused the interest of companies dedicated to software production. Researchers have developed machine learning algorithms, which allow a more accurate prediction of the effort to adjust the planning. Recently, techniques have been defined in the software industry, where artificial intelligence and algorithmic models are combined for effort estimation. This article presents the state of the art in the use of artificial neural networks for this purpose. A compilation of academic papers where neural networks are combined with hybrid algorithms based on the behavior of animals and insects for network learning was carried out, demonstrating the trend of its utilization to optimize effort estimation during early planning in software development projects.

Keywords: software development; effort estimation; neural networks; hybrid algorithms

INTRODUCCIÓN

El esfuerzo es una combinación de persona y tiempo. Se refiere a la cantidad de tiempo que una persona necesitaría para completar cierto trabajo productivo (Avellaneda, 2017). En el caso de proyectos de software su estimación juega un papel importante en la calidad y el éxito de su desarrollo (Rekha y Dr. P. K., 2017). Determinar el esfuerzo requerido para llevar a cabo una tarea, es parte de todo el proceso de desarrollo del software. Por tal motivo el uso de valoraciones o métodos formales, basados en la experiencia de los miembros del equipo, juegan un papel importante en este proceso (Méndez, 2018). Dado que las empresas desarrolladoras de software se mueven en un mundo globalmente competitivo, es crucial lograr una estimación precisa de sus proyectos (Matel et al., 2019). Con el avance de la tecnología, la tendencia para lograr una mayor exactitud ha sido combinar diferentes métodos de estimación, apelando a técnicas de inteligencia artificial tales como la lógica difusa, sistemas basados en conocimiento, programación genética y redes neuronales artificiales (Yousef, Alshaer y Alhammad, 2017; Saruwatari et al., 2019; Saini, Ahuja y Khatri, 2018; Sharma y Chaudhary, 2020).

Las redes neuronales artificiales (RNA) imitan la operación básica del cerebro. La información viaja entre las neuronas y, basada en la estructura y ganancia de los conectores neuronales, la red se comporta de manera diferente. En estas redes, cada neurona está conectada con otra por medio de un peso o coeficiente de ajuste (Arnal, 2018; Nielsen, 2018).

El procedimiento de entrenamiento de una RNA consiste en iterativamente suministrar a la red una secuencia de patrones de entrada, y ajustar los pesos de las conexiones en función de las salidas obtenidas. Se distinguen tres categorías de aprendizaje: Aprendizaje supervisado, por refuerzo y no supervisado, estos a su vez utilizan una variedad de algoritmos, dependiendo de la información que se posea sobre los patrones de entrada (Aggarwal, 2019). Las principales ventajas de las redes neuronales artificiales son: su capacidad de generalización, que permite dar una respuesta adecuada a entradas nunca vistas anteriormente; su naturaleza distribuida, que permite la construcción de sistemas eficientes; su capacidad de aproximar funciones no lineales, que resuelven problemas no complejos y su adaptabilidad frente a cambios en el entorno (Asanza y Olivo, 2018).

En los últimos años las ventajas que ofrecen las RNA han sido aplicadas con éxito en campos de la ciencias, tales como: la aeroespacial para los sistemas de control en los aviones (Altun y Efe, 2019); en la automoción, para sistema de frenados automático y sistemas de guiados para automóviles (Raveendran et al. , 2019); en la defensa para el guiado de misiles (Diwani, Chougule y Mukhopadhyay, 2020); en la electrónica y automática para el control de procesos y diseños de circuitos integrados (Rosa, 2018); en las finanzas para la predicción de la rentabilidad de las acciones (Wong et al., 2021); en la medicina para la ayuda en el diagnóstico de enfermedades (Khan et al., 2019; Swietlik y Bialowas, 2019); en la robótica para el control de trayectorias (Bozek et al., 2020), entre otros. En el caso del desarrollo del software son diversos los trabajos vinculados a las RNA para la estimación del costo y esfuerzo. Para proyectar el costo, (González, 2017) realiza una revisión de diferentes técnicas para la predicción en diversos proyectos. (Dhanopiya et al., 2017) utilizan una RNA multicapa y (Venkataiah, Mohanty y M. Nagaratna, 2018) usa una RNA de tipo Spiking, para operar en la misma dirección. En el ámbito de la estimación del esfuerzo constituyen un prolífico campo de estudio. Este trabajo tiene como objetivo demostrar la eficiencia del uso de las RNA cuando es aplicada a la estimación del esfuerzo mediante una revisión de la bibliografía.

DESARROLLO

La investigación realizada sigue la ruta cuantitativa con un enfoque descriptivo según (Hernandez-Sampieri y Torre, 2018). Se realizó una revisión sistemática de la literatura siguiendo la metodología propuesta por (García-Peñalvo, 2019). En este sentido, se recopilaron artículos en inglés y español del periodo comprendido del 2016 al 2020, publicados en revistas indexadas en Springer, Scopus, IEEE y ELSEVIER. El proceso de selección estuvo dado por las siguientes características: artículos centrados en la estimación del esfuerzo en proyectos de software empleando RNA; poseen en común un conjunto de datos (dataset) de proyectos como entradas, de modo que se pueda realizar una comparación del resultado del empleo de RNA utilizando combinaciones de algoritmos para su entrenamiento y aprendizaje; como criterios de evaluación los artículos debían reflejar al menos la magnitud del error relativo (MRE), la magnitud media del error relativo (MMRE) o la mediana del error relativo (MdMRE), y estos valores ser relativamente bajos.

Como resultado del proceso de selección se analizan 5 estudios (Rijwani y Jain, 2016), (Rao, Reddi y Rani, 2017), (Azath, Mohanapriya y Rajalakshmi, 2018), (Kaushik y Singal, 2019) y (Kodmelwar, Joshi y Khanna, 2018), que demostraron la eficiencia en la estimación del esfuerzo haciendo uso de las RNA.

El estudio 1, propone un modelo basado en una RNA Multi Layered FeedForward (MLFFN) entrenada con el algoritmo Back Propagation (BP). Utiliza como entrada 63 proyectos del dataset de COCOMO II, la salida es el esfuerzo de desarrollo medido en meses-hombre. Los criterios para la evaluación se basaron en los resultados MRE y MdMRE. Se eligieron 13 proyectos de manera aleatoria para la realización del experimento (Rijwani y Jain, 2016). El resultado muestra una significativa reducción del error relativo con la propuesta, Tabla 1.

Tabla 1 Valores comparados de MRE (Proyecto 1) (Rijwani y Jain, 2016). 

El estudio 2, hace uso de un algoritmo híbrido que combina los principios del algoritmo Colonia de abejas artificiales (ABC por sus siglas en inglés) con los procedimientos de búsqueda local para estimar el esfuerzo, y como red neuronal la MultiLayer Perceptron Neural Network (MLPNN). Para la evaluación se toman 63 proyectos del dataset de COCOMO81 y fueron descritos para la medición 16 atributos. Los atributos fueron transformados utilizando Análisis del Componente Principal (PCA) (Rao, Reddi y Rani, 2017). Los criterios para la evaluación se basaron en los resultados del MMRE y MdMRE. En un inicio y para comparar la eficiencia de la técnica híbrida se hicieron experimentos con diversas técnicas sin el uso de la red, y luego se aplicó el protocolo propuesto. El resultado se muestra la Tabla 2.

Tabla 2 Valores comparados de MMRE y MdMRE (Rao, Reddi y Rani, 2017). 

La propuesta de optimización del método híbrido para valores MMRE muestra mejores resultados que las otras técnicas, y supera en gran medida los valores de SVM-RBF por 37.34% y a la RNA propuesta por 4.52 %. Sucede igual para valores de MdMRE superando a la técnica SVM-RBF por 21.45% y a la RNA por 0.99%.

El estudio 3, utiliza una clusterización media difusa modificada para los dataset. Una vez realizada la clusterización, se obtienen varias reglas que son ofrecidas como datos de entrada. La red neuronal se optimiza empleando los algoritmos artificiales ABC, cuckoo search (MCS) modificado y el algoritmo híbrido ABC-MCS. Los conjuntos de datos o dataset utilizados pertenecen a Desharnais, COCOMO 81, NASA 60, y NASA 93. NASA60 incluye 60 proyectos con 17 variables autónomas y 15 incondicionales. NASA93, incluye 93 proyectos, 17 variables autónomas y 15 incondicionales. Desharnais, incluye 81 proyectos, 9 variables independientes y 1 dependiente. COCOMO81, incluye 81 proyectos, 17 atributos y 63 instancias (Azath, Mohanapriya y Rajalakshmi, 2018).

Las Figura 1 y Figura 2 muestran los resultados de MMRE y MARE (error relativo medio absoluto) para uno de los dataset y el comportamiento del MMRE de otros métodos en comparación con la propuesta para distintos dataset respectivamente. Las imágenes demuestran la eficiencia del método propuesto en la optimización de la red neuronal para la estimación del esfuerzo.

Fig. 1 Representación gráfica del valor MMRE y MARE después de la optimización para los dataset de Desharnais. 

Fig. 2 Representación gráfica de la comparación de los valores MMRE del método propuesto con otros. 

El estudio 4, propone una técnica no algorítmica para la estimación del esfuerzo. Consiste en un modelo híbrido de una red neuronal Wavelet con un algoritmo metaheurístico que combina el algoritmo luciérnaga (FA) y el algoritmo de murciélago (bat). Como función de activación se utilizan 2 variantes: Morlet y Gaussian. Los dataset de China, Maxwell, COCOMO81 y NASA93 son utilizados para evaluar la tecnología propuesta (Kaushik y Singal, 2019). En Maxwell hay 62 proyectos, cada uno con 26 características. COCOMO tiene 63 proyectos y 93 proyectos en la NASA93. Como resultado de las diferentes variantes se obtuvo que para los dataset de COCOMO81, la red Wavelet con el algoritmo bat usando las funciones de activación arriba descritas, tiene un buen rendimiento y supera las otras combinaciones para los valores de MMRE y MdMRE. Para los dataset NASA93 y Maxwell los valores de MMRE son efectivos para la combinación Wavelet con FA. Para el dataset CHINA la combinación Wavelet con FA fue eficiente para ambos criterios. La Figura 3 muestra los resultados relevantes. Se concluye que el uso de metaheurísticas para la red Wavelet es eficaz, pero no se puede determinar qué algoritmo es el mejor para distintos tipos de datos.

Fig. 3 Comparación de valores MMRE y MdMRE de técnicas diferentes para los dataset de COCOMO81 y CHINA (Estudio 4).  

El estudio 5, propone una RNA de tipo Deep learning modificada (DeepMNN) para la estimación eficiente del esfuerzo. Se utiliza el dataset de COCOMO. La red es entrenada utilizando el algoritmo de búsqueda cuckoo search (Kodmelwar, Joshi y Khanna, 2018). El proceso de optimización es ejecutado mientras se seleccionan los pesos, lo que ayuda a mejorar la clasificación del modelo. Se toman 50 instancias para la evaluación, los resultados fueron obtenidos después de la adición de 10 instancias. El resultado se muestra en la Figura 4 para valores de MRE, MMRE, PRED (porcentaje de predicción) y Error relativo, demostrando la efectividad de la propuesta.

Fig. 4 Resultados de los valores de MRE, MMRE, PRED y Error relativo para la técnica propuesta.  

RESULTADOS Y DISCUSIÓN

En los estudios abordados en el artículo, se describen algoritmos que permiten la optimización de RNA para la estimación del esfuerzo en proyectos de desarrollo de software. Su eficiencia depende del tipo de arquitectura, el entrenamiento y aprendizaje de la red. Para los ejemplos anteriores, los mejores resultados se obtuvieron a partir del uso de métodos híbridos como muestra la Figura 5.

Fig. 5 Cuadro Resumen. 

Fuente: Elaboración Propia.

A pesar de las ventajas que ofrecen las RNA, los resultados muestran que una arquitectura no funciona igual para diferentes conjuntos de datos de entrada. Sin embargo, el uso de algoritmos de optimización basados en el comportamiento de insectos y animales de la naturaleza como ABC, FA, MCS y bat, presentados en el artículo, permiten resolver de manera eficaz problemas complejos como la estimación en proyectos de desarrollo, no solo en la industria del software sino en otros campos de la ciencia mencionados anteriormente.

CONCLUSIONES

Existen en la literatura diversos trabajos relacionados con la estimación del esfuerzo en proyectos de desarrollo de software que emplean RNA. La presente investigación enfatiza en el uso de modelos híbridos para su optimización, aportando una sistematización novedosa en este campo. Este tipo de estudio continúa siendo de interés en el ámbito de la industria de software y la comunidad científica, para lograr precisión en las estimaciones tempranas durante la planificación.

Aunque los modelos paramétricos todavía desempeñan un papel importante, se destaca la tendencia hacia el estudio de las RNA. Los artículos estudiados ponen de manifiesto que, si bien persisten reservas en la precisión de las estimaciones, se aprecian mejoras significativas en este sentido. Los algoritmos de optimización ABC, FA, MCS, bat y BP para el aprendizaje de las RNA, son idóneos y pueden tomarse como referencia para futuras investigaciones, debido a que los valores de MRE, MdMRE y MMRE son bajos y la tasa de exactitud para la estimación es alta.

Los métodos descritos en el artículo resultarán útiles en la estimación del esfuerzo de nuevos proyectos, considerando las características del software y el equipo del proyecto. Esto reducirá la probabilidad de que se produzcan retrasos en los plazos de entrega, y propiciará la satisfacción de los clientes. Este trabajo constituye un punto de partida para el desarrollo de nuevas técnicas de estimación empleando RNA y algoritmos híbridos, dado que la reducción de la incertidumbre en las estimaciones se sostiene como un objeto de estudio para la planificación en la gestión de proyectos.

REFERENCIAS

Aggarwal, C.C., 2019. Neural Networks And Deep Learning. S.L.: Ibm T. J. Watson Research Center. [ Links ]

Altun, A. Y Efe, M.O., 2019. Aircraf Control With Neural Networks. 6th International Conference On Control, Decision And Information Technologies. Paris, Francia: S.N., Pp. 429-433. Isbn 9781728105215. [ Links ]

Arnal, M.G., 2018. Estudio Y Aplicación De Las Redes Neuronales Convolucionales 3d. Tesis De Grado. Barcelona, España: Universidad Politécnica De Catalunya. [ Links ]

Asanza, W.R. Y Olivo, B.M., 2018. Redes Neuronales Artificiales Aplicadas Al Reconocimiento De Patrones. 1ra. S.L.: S.N. Isbn 9789942241009. [ Links ]

Avellaneda, J.M.C., 2017. Especificación De Un Modelo De Medición Y Estimación De Proyectos De Software Para La Banca Central. Maestría. Bogotá, Colombia: Universidad Nacional De Colombia. [ Links ]

Azath, H., Mohanapriya, M. Y Rajalakshmi, S., 2018. Software Effort Estimation Using Modified Fuzzy C Means Clustering And Hybrid Abc-Mcs Optimization In Neural Network. , Pp. 1-13. Doi Https://Doi.Org/10.1515/Jisys-2017-0121. [ Links ]

Bozek, P., Karavaev, Y.L., Ardentov, A.A. Y Yefremov, K.S., 2020. Neural Network Control Of A Wheeled Mobile Robot Based On Optimal Trajectories. , Vol. 17, No. 2. Doi Https://Doi.Org/10.1177/1729881420916077. [ Links ]

Dhanopiya, K., Goyal, A., Mishra, N. Y Mohit Dayma, 2017. Estimating Softwre Cost Using Multilayer Neural Network. , Vol. 5, No. 12. [ Links ]

Diwani, D., Chougule, A. Y Mukhopadhyay, D., 2020. Artificial Intelligence Based Missile Guidance System. 7th International Conference On Signal Processing And Integrated Networks. S.L.: S.N., Doi 10.1109/Spin48934.2020.9071152. [ Links ]

García-Peñalvo, F.J., 2019. Metodología De Revisión Sistemática De Literatura. S.L.: S.N. [ Links ]

González, J.R., 2017. Redes Neuronales Artificiales En La Predicción De Costos De Diversos Proyectos: Revisión. , Vol. 1, No. 2, Pp. 36-43. [ Links ]

Hernandez-Sampieri, R. Y Torre, C.P.M., 2018. Definición Del Alcance De La Investigación En La Ruta Cuantitativa: Exploratorio, Descriptivo, Correlacional O Explicativo. Metodología De La Investigación: Las Rutas Cuantitativas, Cualitativas Y Mixtas. S.L.: Mcgraw-Hill Interamericana Editores, Pp. 108-109. Isbn 9781456260965. [ Links ]

Kaushik, A. Y Singal, N., 2019. A Hybrid Model Of Wavelet Neural Network And Metaheuristic Algorithm For Software Development Effort Estimation. , Doi Https://Doi.Org/10.1007/S41870-019-00339-1. [ Links ]

Khan, M.T., Kaushik, A.C., Ji, L. Y Iqbal, S., 2019. Artificial Neural Networks For Prediction Of Tuberculosis Disease. , Doi Https://Doi.Org/10.3389/Fmicb.2019.00395. [ Links ]

Kodmelwar, M.K., Joshi, S.D. Y Khanna, V., 2018. A Deep Learning Modified Neural Network Used For Efficient Effort Estimation. , Vol. 15, No. 11/12, Pp. 3492-3500. Doi Https://Doi.Org/10.1166/Jctn.2018.7651. [ Links ]

Matel, E., Vhadatikhaki, F., Hosseinyalamdary, S. Y Thijs Evers, 2019. An Artificial Neural Network Approach For Cost Estimation Of Engineering Services. , Vol. 14, No. 1, Pp. 1-14. Doi Https://Doi.Org/10.1080/15623599.2019.1692400. [ Links ]

Méndez, E.R., 2018. Estimación Del Esfuerzo En Proyectos De Desarrollo De Software Con Metodologías Ágiles. Maestría. Valencia: Universidad Politécnica De Valencia. [ Links ]

Nielsen, M., 2018. Neural Networks And Deep Learnning. S.L.: S.N. [ Links ]

Rao, S., Reddi, D.K.K. Y Rani, D.U., 2017. Optimization Of Neural Network For Software Effort Estimation. International Conference On Algorithms, Methodology, Models And Aplications In Emerging Technologies (Icammaet). Chennai: S.N., Pp. 1-7. [ Links ]

Raveendran, R., Suresh, A., Rajaram, V. Y Shankar C Subramanian, 2019. Artificial Neural Network Approach For Air Brake Pushrod Stroke Prediction In Heavy Commercial Road Vehicles. , Vol. 233, No. 10, Pp. 2467-2478. Doi Https://Doi.Org/10.1177/0954407018794594. [ Links ]

Rekha, T. Y Dr. P. K., R., 2017. Machine Learning Methods Of Effort Estimation And It’s Performance Evaluation Criteria. International Journal Of Computer Science And Mobile Computing [En Línea], Vol. 6, No. 1. Issn 2320-088x. Disponible En: Www.Ijcsmc.Com. [ Links ]

Rijwani, P. Y Jain, S., 2016. Enhanced Software Effort Estimation Using Multi Layered Feed Forward Artificial Neural Network Technique. , Pp. 307-312. Doi Http://Doi.Org/10.1016/J.Procs.2016.06.073. [ Links ]

Rosa, J.P. Da S., 2018. Using Artificial Neural Networks To Size Analog Integrated Circuits. Maestría. S.L.: Universidad De Lisboa. [ Links ]

Saini, A., Ahuja, L. Y Khatri, S.K., 2018. Effort Estimation Of Agile Development Using Fuzzy Logic. 7th International Conference On Reliability, Infocom Technologies And Optimization. Noida, India: S.N., Doi 10.1109/Icrito.2018.8748381. [ Links ]

Saruwatari, T., Jin, A., Hamuro, D. Y Hoshino, T., 2019. Estimation Of Business Rules Using Associations Analysis. Knowledge-Based Software Engineering. S.L.: S.N., Doi Https://Doi.Org/10.1007/978-3-319-97679-2_4. [ Links ]

Sharma, A. Y Chaudhary, N., 2020. Software Cost Estimation For Python Projects Using Genetic Algorithm. , Doi Https://Doi.Org/10.1007/978-981-15-3325-9. [ Links ]

Swietlik, D. Y Bialowas, J., 2019. Application Of Artificial Neural Networks To Identify Alzheimer´S Disease Usisng Cerebral Perfusion Spect Data. , Vol. 16, No. 7, Pp. 1-19. Doi 10.3390/Ijerph16071303. [ Links ]

Venkataiah, V., Mohanty, R. Y M. Nagaratna, 2018. Prediction Of Software Cost Estimtion Using Spiking Neural Networks. Smart Intelligent Computing And Applications. S.L.: S.N., Doi Https://Doi.Org/10.1007/978-981-13-1927-3_11. [ Links ]

Wong, S., Chan, J., Azizi, L. Y Xu, R., 2021. Time-Varying Neural Networks For Stock Return Prediction. ,Vol. 4, Pp. 1-35. Doi Arxvi:2003.02515 [Q-Fin.Cp]. [ Links ]

Yousef, Q.M., Alshaer, Y.A. Y Alhammad, N.K., 2017. Dragonfly Estimator: A Hybrid Software Projects’ Efforts Estimation Model Using Artificial Neural Network And Dragonfly Algorithm. , Pp. 13. [ Links ]

Recibido: 20 de Enero de 2021; Aprobado: 26 de Marzo de 2021

*Autor para la correspondencia. (wcamposw@uci.cu)

Los autores autorizan la distribución y uso de su artículo.

Conceptualización: Wisleidys Campos Wright

Curación de datos: Yaimí Trujillo Casañola

Análisis formal: Wisleidys Campos Wright

Adquisición de fondos: -

Investigación: Wisleidys Campos Wright

Metodología: Yaimí Trujillo Casañola

Administración del proyecto: Yaimí Trujillo Casañola

Recursos: Wisleidys Campos Wright

Software: -

Supervisión: Yaimí Trujillo Casañola

Validación: Wisleidys Campos Wright

Visualización: Yaimí Trujillo Casañola

Redacción - borrador original: Wisleidys Campos Wright

Redacción: Yaimí Trujillo Casañola

Creative Commons License Este es un artículo publicado en acceso abierto bajo una licencia Creative Commons