Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net/publication/283031958
CITATIONS READS
0 605
4 authors:
Some of the authors of this publication are also working on these related projects:
Increasing the sustainability in agricultural enterprises through the application of precision agriculture View project
All content following this page was uploaded by Luis Alberto Quintero-Domínguez on 21 October 2015.
Resumen
Entre los modelos algorítmicos de estimación de costo y esfuerzo más populares se encuentran
COCOMO, SLIM, Puntos de Función. No obstante, desde los años 90, los modelos basados en
técnicas de Inteligencia Artificial, fundamentalmente en técnicas de Aprendizaje Automático, han
sido utilizados para mejorar la precisión de las estimaciones. Estos modelos se fundamentan en
dos aspectos fundamentales: la utilización de los datos recogidos en proyectos anteriores en los
que se realizaron estimaciones y la aplicación de diferentes técnicas de extracción de
conocimiento, con la idea de realizar estimaciones de manera más eficiente, eficaz y, si fuera
posible, con mayor precisión. El objetivo de este artículo consiste en presentar un análisis de
algunas de estas técnicas, y cómo las mismas están sido aplicadas en la estimación del esfuerzo
en proyectos de software.
Palabras claves:
Gestión de proyectos, estimación de esfuerzo, ingeniería de software, inteligencia artificial,
aprendizaje automático.
Abstract
Among the most popular algorithmic cost and efforts estimation models are COCOMO, SLIM,
Function Points. However, since the 90s, the models based on Artificial Intelligence techniques,
mainly in Machine Learning techniques have been used to improve the accuracy of the estimates.
These models are based on two fundamental aspects: the use of data collected in previous
projects where estimates were performed and the application of various knowledge extraction
techniques, with the idea of making estimates more efficiently, effectively and, if possible, with
greater precision. The aim of this paper is to present an analysis of some of these techniques and
how they are been applied in estimating the effort of software projects.
1. INTRODUCCIÓN
La estimación del esfuerzo de producción es una necesidad en todas las áreas de la industria y
una actividad imprescindible para el estudio de viabilidad de los proyectos. Desde el momento en
que las empresas comenzaron a considerar las aplicaciones informáticas como productos
industriales, aparecieron algunos problemas fundamentales que resolver, entre ellos el
cumplimiento de los plazos de entrega dentro de costes establecidos manteniendo niveles de
calidad; así como poder realizar un seguimiento y control de la evolución de los proyectos. De
ahí que el establecimiento de métodos que permitan determinar y, posteriormente, alcanzar estos
objetivos de una forma lo más realista y exacta posible ha sido un factor cada vez más importante
para la Ingeniería Informática en su conjunto. Dichos métodos se han fundamentado en
conocimientos adquiridos por distintas disciplinas de esta ciencia, desde la ingeniería del
software hasta la inteligencia artificial.
Los métodos para determinar a priori los costos de producción de la industria informática
dependen principalmente de la “mano de obra”. En consecuencia, casi todas las estimaciones se
basan en el denominado “esfuerzo” de producción que, habitualmente, se mide en unidades
“tiempo-hombre”. Para el cálculo o estimación del esfuerzo, en general, se utilizan formulaciones
matemáticas con parámetros cuantitativos. Pero, la obtención de estas cantidades numéricas se
hace en función de conceptos cualitativos que se asocian a juicios de valor inherentemente
humanos.
Desde los años sesenta hasta hoy en día se han publicado numerosos modelos de estimación en
Ingeniería del Software. También se han propuesto distintas clasificaciones de los mismos en
estudios doctorales realizados, sobre la base de diferentes criterios (1; 2) entre otros. Así, por
ejemplo, en (1) se hace referencia a la clasificación establecida por Capers Jones en su libro
“Estimating Software Cost” donde se proponen seis métodos asociados a dos grandes grupos:
métodos manuales y métodos automáticos. También se cita a Boehm, quien propone seis
posibilidades de acuerdo a los principios conceptuales de los modelos: estáticos, conocimiento de
expertos, aprendizaje automático, modelos dinámicos, modelos estadísticos y modelos
compuestos. Una clasificación más actualizada se establece en el propio trabajo donde los
modelos para la estimación aparecen clasificados en: modelos matemáticos paramétricos,
estimación basada en analogías, modelos dinámicos y modelos basados en técnicas de
Inteligencia Artificial. Estos últimos constituyen el objetivo principal de este trabajo, en el cual se
presenta una caracterización de algunos de ellos en su aplicación a la temática de la estimación
dentro de la ingeniería de software.
La presentación que sigue explora en la sección 2 algunos conceptos teóricos relacionados con
las métricas más utilizadas en la evaluación de los modelos de estimación basados en técnicas de
Iberoamerican Journal of Project Management (IJoPM). www.ijopm.org.
ISSNe 2346-9161. Vol.6, No.1, A.R.B., pp.01-22. 2015.
Recepción: 11/02/2014. Aceptación: 16/10/2014. Publicación: 10/06/2015
2
Inteligencia Artificial y las bases de datos internacionales sobre las cuales se han realizado las
evaluaciones y comparaciones de los resultados de los modelos tratados en este trabajo. Estos
modelos son caracterizados en la sección 3 mediante una descripción breve de los mismos y su
aplicación a la estimación del esfuerzo en proyectos de software. En la sección 4 se presentan, a
modo de conclusiones, los aspectos más significativos tratados.
2. CONCEPTOS teóricos
2.1 CRITERIOS de evaluación de los modelos de estimación
Para evaluar los modelos de estimación del esfuerzo en proyectos de software han sido utilizadas
varias métricas. Sin embargo, tres de estas sobresalen debido a su amplia utilización.
La media de la magnitud del error relativo (Mean Magnitude of Relative Error - MMRE), es la
más utilizada de todas. Se define como el promedio de la magnitud del error relativo (Magnitude
of Relative Error - MRE).
n
MMRE MREi / n
i 1
Dónde:
MRE Esfuerzo _ real Esfuerzo _ estimado *100 / Esfuerzo _ real
y n es la cantidad de proyectos (la multiplicación por 100 en la fórmula del MRE indica que el
mismo está dado en por ciento).
Otra de las medidas utilizadas es PRED (l ) definida como:
PRED (l ) K *100 / n
Otras medidas de precisión, como el cuadrado del error medio ajustado (AMSE) y la magnitud
del error relativo medio balanceado (BMMRE) pueden localizarse en (6).
4. CONCLUSIONES
Existe una gran variedad de técnicas de Inteligencia Artificial que han sido empleadas para la
estimación de esfuerzo en proyectos de software. Entre las más usadas se encuentran el
Razonamiento Basado en Casos, las Redes Neuronales Artificiales y los Árboles de Decisión.
También se destaca la utilización generalizada de enfoques híbridos, donde algunas técnicas de
aprendizaje automático, se combinan con otras. En esta combinación las técnicas que más han
sido utilizadas son los Algoritmos Genéticos y algunos enfoques recientes que utilizan la Lógica
Difusa. No obstante, ninguno de los modelos empleados muestra superioridad absoluta.
En el estudio de la literatura especializada se apreció la existencia de un conjunto de repositorios
de proyectos con disímiles características, donde no existe un consenso en las variables que se
almacenan. Esto hace difícil la selección del mejor modelo de estimación ya que las pruebas no
son realizadas sobre los mismos datos. No obstante, la comunidad científica tiende a utilizar los
repositorios PROMISE e ISBSG.
La evaluación de las diferentes técnicas empleadas también varía entre los investigadores de la
temática. Las medidas de evaluación preferidas son MMRE y Pred (25), aunque pudiera
ampliarse la evaluación con el uso de residuales absolutos y técnicas estadísticas.
5. REFERENCIAS
(1) CRESPO YÁÑEZ, F. J. (2003) “Un modelo paramétrico difuso para la estimación del
esfuerzo de desarrollo del software”. Departamento de Ciencias de la Computación. Alcalá,
Universidad de Alcalá.
(2) SALVETTO DE LEÓN, P. F. (2006) “Modelos automatizables de estimación muy temprana
del tiempo y esfuerzo de desarrollo de sistemas de información”. Departamento de Lenguajes
y Sistemas Informáticos e Ingeniería de Software. Madrid, Universidad Politécnica de Madrid.
(3) WEN, J., LI, S., LIN, Z., HU, Y. & HUANG, C. (2012) “Systematic literature review of
machine learning based software development effort estimation models”. Information and
Software Technology, 54, 41–59.
(4) BRIAND, L. C. & WUST, J. (2001) Modeling Development Effort in Object-Oriented
Systems Using Design Properties. IEEE Transactions on Software Engineering, 27.
(5) CORAZZA, A., DI MARTINO, S., FERRUCCI, F., GRAVINO, C. & MENDES, E. (2011a)
“Investigating the use of Support Vector Regression for web effort estimation”. Empirical
Software Engineering, 16, 211–243.
Iberoamerican Journal of Project Management (IJoPM). www.ijopm.org.
ISSNe 2346-9161. Vol.6, No.1, A.R.B., pp.01-22. 2015.
Recepción: 11/02/2014. Aceptación: 16/10/2014. Publicación: 10/06/2015
18
(6) BURGESS, C. & LEFLEY, M. (2001) “Can genetic programming improve software effort
estimation? A comparative evaluation”. Information and Software Technology, 43, 863-873.
(7) FOSS, T., STENSRUD, E., KITCHENHAM, B. & MYRTVEIT, I. (2002) “A Simulation
Study of the Model Evaluation Criterion MMRE”. Norwegian School of Management BI.
(8) KITCHENHAM, B. & MENDES, E. (2009) “Why comparative effort prediction studies may
be invalid”.
(9) VAN KOTEN, C. & GRAY, A. R. (2006) “Bayesian statistical effort prediction models for
data-centered 4GL software development”. Information and Software Technology, 48, 1056–
1067.
(10) CORAZZA, A., DI MARTINO, S., FERRUCCI, F., GRAVINO, C., MENDES, E. &
SARRO, F. (2011) “Using tabu search to configure support vector regression for effort
estimation”. Empirical Software Engineering.
(11) OLIVEIRA, A. L. I., BRAGA, P. L., LIMA, R. M. F. & CORNÉLIO, M. L. (2010) “GA-
based method for feature selection and parameters optimization for machine learning
regression applied to software effort estimation”. Information and Software Technology, 52,
1155-1166.
(12) SAYYAD SHIRABAD, J. & MENZIES, T.J. (2005) “The PROMISE Repository of
Software Engineering Databases”. School of Information Technology and Engineering,
University of Ottawa, Canada. Disponible en: http://promise.site.uottawa.ca/SERepository.
(13) CHEIKHI L. & ABRAN A. (2014) “An Analysis of the PROMISE and ISBSG Software
Engineering Data Repositories”. Internation Journal of Computers and Technology, 13 (5),
4456-4474.
(14) IDRI, A. & ELYASSAMI, S. (2011) “Applying Fuzzy ID3 Decision Tree for Software
Effort Estimation”. International Journal of Computer Science, 8.
(15) RAMSEY, C. L. & BASILI, V. R. (1989) “An Evaluation of Expert Systems for Software
Engineering Management”. IEEE Transactions on Software Engineering, 15.
(16) MUKHOPADHYAY, T., VICINANZA, S. S. & PRIETULA, M. J. (1992) “Examining the
Feasibility of a Case Based Reasoning Model for Software Effort Estimation”. MIS Quarterly.
(17) HEEMSTRA, F. J. (1992) “Software cost estimation”. Information and Software
Technology, 34, 627-639.
(18) JØRGENSEN, M., INDAHL, U. & SJØBERG, D. (2003) “Software effort estimation by
analogy and ‘‘regression toward the mean’’”. Journal of Systems and Software, 68, 253-262.
(19) BRIAND, L. C., BASILI, V. R. & THOMAS, W. M. (1992) “A pattern recognition
approach for software engineering data analysis”. IEEE Transactions on Software
Engineering, 18, 931-942.
CORRESPONDENCIA
Gheisa Lucía Ferreira Lorenzo
Departamento Ciencia de la Computación
Universidad Central “Marta Abreu” de Las Villas
Carretera a Camajuaní Km 5 ½. Santa Clara. Cuba
Código Postal: 50100
Teléfono: 5342281515
Correo electrónico: gheisa@uclv.edu.cu