Está en la página 1de 23

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/283031958

TÉCNICAS DE INTELIGENCIA ARTIFICIAL PARA LA ESTIMACIÓN DEL


ESFUERZO EN PROYECTOS DE DESARROLLO DE SOFTWARE

Article · June 2015

CITATIONS READS

0 605

4 authors:

Gheisa Ferreira Lorenzo Daniel Gálvez


Universidad Central "Marta Abreu" de las Villas Universidad Central "Marta Abreu" de las Villas
7 PUBLICATIONS   12 CITATIONS    15 PUBLICATIONS   7 CITATIONS   

SEE PROFILE SEE PROFILE

Luis Alberto Quintero-Domínguez Jarvin Alberto Antón-Vargas


Universidad Central "Marta Abreu" de las Villas University of Ciego de Ávila
11 PUBLICATIONS   6 CITATIONS    17 PUBLICATIONS   9 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Effort Estimation in Software Projects View project

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.

The user has requested enhancement of the downloaded file.


TÉCNICAS DE INTELIGENCIA ARTIFICIAL PARA LA ESTIMACIÓN DEL
ESFUERZO EN PROYECTOS DE DESARROLLO DE SOFTWARE

ARTIFICIAL INTELLIGENCE TECHNIQUES FOR ESTIMATING THE


EFFORT IN SOFTWARE DEVELOPMENT PROJECTS
Ferreira, G., Gálvez, D., Quintero, L. y Antón, J.

Universidad Central “Marta Abreu” de Las Villas

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.

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
1
Keywords:
Project management, effort estimation, software engineering, artificial intelligence, machine
learning.

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

Donde n es el número de proyectos y K es el número de proyectos en los cuales la magnitud del


MRE es menor o igual a l . Según (3) un modelo de estimación de costo de software se considera
aceptablemente preciso si MMRE = 25% y Pred(25) = 75%.
La mediana de la magnitud del error relativo (Median Magnitude of Relative Error – MdMRE),
es la otra medida que varios estudios han usado para analizar la precisión de las predicciones (4;
5).
Algunos autores han tratado de complementar la información brindada por estas métricas con
otros criterios. Por ejemplo, en (6) se analiza la diferencia del MRE entre el peor y el mejor caso
para medir la consistencia. También en (7; 8) se examinan ventajas y desventajas de utilizar
algunas de estas métricas. En (5; 9; 10; 11) se proponen otras métricas que pueden ser utilizadas,
por ejemplo, las medidas basadas en residuales absolutos (Abs_res) como la suma, la mediana y
la desviación estándar de los residuales absolutos, donde:
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
3
Abs _ res  Esfuerzo _ real  Esfuerzo _ estimado

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).

2.2 BASES de datos de proyectos de software


Las bases de datos internacionales de proyectos de software (o repositorios de proyectos) deben
su origen a la necesidad de reunir información de diversas características o atributos de proyectos
de software, con el fin de construir modelos de estimación genéricos para las empresas y también
para poder comparar su productividad. El uso de estos repositorios es otro de los recursos
utilizados para evaluar y comparar los resultados de los modelos de estimación de esfuerzo en
proyectos de software basados en técnicas de Inteligencia Artificial, con aquellos que se
presentan con enfoques más tradicionales.
El repositorio PROMISE (PRedictOr Models In Software Engineering) (12) proporciona una
diversidad de bases de datos de proyectos agrupadas en varios tópicos: predicción de defectos de
software, predicción de esfuerzo, minería de textos, ingeniería de software basada en modelos y
otras generales. En particular, para la predicción de esfuerzo, en (13) se presentan 12 bases de
datos disponibles. Algunas de estas bases de datos son utilizadas en las secciones siguientes.
Tukutuku Benchmarking Project (http://www.metriq.biz/tukutuku/index.html) es una iniciativa
que también intenta reunir datos para construir modelos de estimación de costos sobre proyectos
Web. Tiene recopilada información de 169 proyectos Web. En (5; 14) aparece la referencia a este
repositorio como uno de los utilizados en la evaluación de modelos de estimación. En la
recolección de datos de cada proyecto, este repositorio incluye características como: tipo de
aplicación Web, lenguaje de programación utilizado, número máximo del equipo de desarrollo,
tiempo de experiencia promedio del equipo con el lenguaje de desarrollo, uso o no de un proceso
de desarrollo de software, de un programa de mejora del software y de un programa de métricas
de software.
Otro de los repositorios que aparece citado en la literatura es el perteneciente al International
Software Benchmarking Standard Group (ISBSG - http://www.isbsg.org). En este repositorio se
almacena información de más de 6000 proyectos. En (13) se hace referencia a que el 14% de las
bases de datos para proyectos son utilizadas en la estimación del esfuerzo e incluyen información
sobre la composición del personal del proyecto, el esfuerzo por fase, los métodos de desarrollo y
técnicas, el tamaño del equipo, tipo de proyecto, tipo de organización, procesos de software, junto
con los diferentes fases del ciclo, las herramientas utilizadas para desarrollar y llevar a cabo el
proyecto, las características del producto de software, atributos de tamaño funcionales, defectos
notificados, entre otros atributos.

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
4
3. MODELOS basados en técnicas de inteligencia artificial
Las técnicas de Inteligencia Artificial (IA) tradicionalmente no han sido utilizadas en la
estimación del esfuerzo de desarrollo del software, aunque han sido propuestas y utilizadas en
otras áreas de la Ingeniería del Software (15). No obstante, desde los años 90 los modelos
basados en estas técnicas, fundamentalmente en técnicas de aprendizaje automático (Machine
Learning - ML), han sido utilizados para mejorar la precisión de las estimaciones. Estos modelos
se fundamentan en el uso de 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 el objetivo
de realizar estimaciones de manera más eficiente, eficaz y, si fuera posible, con mayor precisión.
Una exploración en esta área del conocimiento refleja que las técnicas de IA más utilizadas son
las siguientes:
1. Razonamiento Basado en Casos (RBC).
2. Redes Neuronales Artificiales (RNA).
3. Árboles de decisión (AD).
4. Redes bayesianas (RB).
5. Support Vector Regression (SVR).
6. Algoritmos genéticos (AG).
7. Programación genética (PG).
En los epígrafes que siguen se detalla la aplicación de cada técnica en la estimación del esfuerzo
en proyectos de software.

3.1 RAZONAMIENTO basado en casos (RBC)


Según (16), los modelos matemáticos paramétricos existentes han fallado en el intento de
producir estimaciones precisas del esfuerzo de desarrollo del software, afirmándose que las
estimaciones analíticas no son suficientes. En esa investigación, se trata de resolver el problema
de la estimación utilizando RBC, cuyo principio fundamental es el razonamiento por analogías.
De ahí que se dedique un breve espacio a este enfoque general.
En un reporte de 1992 de un estudio realizado a cerca de 600 organizaciones (17), se afirma que
la estimación por analogía es el método más comúnmente utilizado en la industria del software.
La estimación por analogía es el proceso de encontrar uno o más proyectos similares a otro que
va a ser estimado y entonces derivar el estimado, desde los valores de esos proyectos. Según (18)
este tipo de estimación puede ser desarrollada como:
 Estimación puramente por el experto (la “base de datos” de los proyectos previos está en
la cabeza del experto).
 Estimación por el experto, informalmente soportada por una base de datos conteniendo
información acerca de proyectos concluidos.
 Estimación basada en el uso de algoritmos de clusterización para encontrar proyectos
similares. Modelos de estimación de este tipo pueden encontrarse en (19; 20; 21).

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
5
En esta última clasificación se ubica el RBC, ratificándose en (22) que es un enfoque de
estimación por analogía, y un proceso cíclico compuesto fundamentalmente por cuatro estados:
1. Recuperar el proyecto más similar (caso).
2. Reusar este proyecto para intentar resolver el problema.
3. Revisar la solución sugerida si es necesario.
4. Retener la solución y el nuevo problema como un nuevo proyecto.
En (23) se pueden encontrar múltiples ventajas que ofrece el RBC. Entre ellas se localizan las
siguientes:
 Evita problemas asociados con la adquisición y codificación de conocimiento.
 Soporta mejor la colaboración con los usuarios, quienes están frecuentemente más
dispuestos a aceptar soluciones que provienen de sistemas basados en analogías pues se
derivan de una forma de razonamiento más parecida a la forma humana de resolver
problemas.
 Hace frente a dominios pobremente conocidos (por ejemplo, varios aspectos de Ingeniería
de Software como es el caso de la estimación en la gestión de proyectos) ya que las
soluciones están basadas en lo que realmente pasó al contrario de modelos hipotéticos.
 Sin embargo, la misma fuente bibliográfica hace mención a que las medidas de similitud
utilizadas en RBC, traen consigo algunas desventajas entre las que se pueden citar:
 Que los rasgos simbólicos son problemáticos, ya que aunque hay varios algoritmos que
han sido propuestos para acomodar los rasgos categóricos, estos tienden a ser bastante
crudos pues tienden a adoptar una aproximación booleana donde los rasgos coinciden o
fallan en la comparación con ningún punto medio.
 Que pueden fallar al tomar en cuenta información que puede estar derivada de estructuras
de datos, es decir que son débiles para rasgos de alto orden de interrelación como los que
se pueden esperar en los sistemas legales.
 También existen dominios de problemas que no son bien manejados por el RBC. Algunas
características que pueden provocar esto son:
 La falta de casos relevantes, lo cual puede ocurrir cuando se trabaja con dominios
extremadamente nuevos.
 La escasez de casos disponibles debido a la falta de datos organizados sistemáticamente,
lo que puede estar provocado porque la información no es guardada o porque está
primariamente en formato de lenguaje natural, y los modelos de RBC no tratan con
grandes cantidades de texto no estructurado.
El modelo computacional Estor propuesto en (16) realiza estos procesos y obtiene el
conocimiento específico del dominio de una base de conocimientos que incluye la representación
de los casos (es decir, proyectos de software), el conocimiento para seleccionar un caso análogo
apropiado para cada caso objetivo (base de reglas) y el conocimiento para ajustar la estimación
basado en la interacción entre la representación del caso fuente y el caso objetivo (heurística de
selección).

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
6
En Estor, se tomaron en consideración las estimaciones realizadas a diez proyectos de software
terminados (según un estudio que aparece en (24)), contemplándose 37 factores del proyecto
además del esfuerzo real de desarrollo. Se consideró como proyecto objetivo o “experto de
referencia” para la construcción de Estor, uno de los proyectos de una compañía con varios años
de experiencia en la estimación de software.
Para ilustrar este enfoque en la práctica, se tomó un proyecto que tardó 277 personas-mes en
completarse y se realizaron cuatro tipos de estimaciones: por juicio del experto, por Estor,
utilizando COCOMO y por Puntos de Función (PF) a 15 proyectos de software. La estimación
del experto aportó un valor de 250 personas-mes, la solución por Estor fue de 287 personas-mes.
COCOMO estimó 1238.6 personas-mes y con PF los resultados fueron de 344.3 personas-mes.
La comparación del rendimiento fue realizada en términos de precisión y consistencia. La medida
de precisión utilizada fue el promedio de la magnitud del error relativo (MMRE) (25).
La consistencia fue medida como el coeficiente de correlación entre el esfuerzo real y el esfuerzo
estimado a través de una muestra de problemas que en este caso resultó ser de 15 proyectos (10
proyectos fueron utilizados como conjunto de entrenamiento y los 5 restantes como prueba).
La magnitud del error relativo (MRE) de Estor (52.79 %) no fue tan buena como la del experto
humano, pero si fue superior a la correspondiente a COCOMO y PF. Lo mismo ocurrió con el
coeficiente de correlación, confirmándose que los resultados del experto y de Estor son
igualmente consistentes y a su vez más consistentes que los que se obtuvieron con los modelos
algorítmicos.
Es de esperar que los cuatro métodos empleados en la estimación no sean igualmente precisos y
consistentes debido a sus características intrínsecas. Sin embargo, para Estor y para el RBC en
general, quedan cuestiones por analizar tales como:
 ¿Qué atributos o características del software el experto debe utilizar, que no
necesariamente estén restringidos a las entradas utilizadas en los métodos como
COCOMO y PF?
 ¿Qué reglas debe utilizar el experto?
 ¿Se deben considerar todos los atributos o una elección de los mismos?
 ¿Cuáles atributos son más importantes para ajustar el conocimiento?
 ¿Qué cantidad de casos es la apropiada para garantizar un buen rendimiento del modelo?
Algunas respuestas a las interrogantes anteriores son consideradas en otra aplicación de RBC en
la estimación de esfuerzo en proyectos de software analizada en (26). En este caso la solución por
RBC es comparada con otros enfoques: PF, RNA y Modelos de Regresión. De manera similar a
la discusión anterior, el rendimiento se determina en términos de precisión a partir del MMRE.
Aquí se dispone de un número mayor de proyectos (299 en total), 249 de ellos tomados como
“casos de entrenamiento” y los 50 restantes como casos de prueba para evaluar la calidad del
modelo. Esto puede indicar que la ampliación del tamaño de la muestra puede ser beneficiosa

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
7
para garantizar mejores resultados del modelo. Los datos de los proyectos fueron tomados de un
estudio estadístico referenciado en (27).
El concepto clave utilizado para determinar la adaptación de los casos fue el de identificar
factores o características del software que contribuyeran a mostrar diferencias significativas en la
productividad entre los casos. Los factores o características generales del sistema (cgs) provienen
de la estimación por PF y son evaluados de 0 a 5. Se determinó que solamente seis de las cgs
mostraron alguna diferencia entre un rango bajo de evaluación (de 0 a 2) y rango alto de
evaluación (de 3 a 5). Estos factores fueron: rendimiento, entrada de datos on-line, eficiencia en
el usuario final, complejidad del procesamiento, sitos múltiples y facilidad de cambio.
Con estos factores, el tamaño del software (medido en PF sin ajustar) y la proporción de entradas,
salidas, peticiones, archivos internos y externos del total de PF sin ajustar, se desarrolló un
sistema de RBC que para los 50 casos de prueba tuvo un MMRE de 0.362 con un 80% de casos
estimados con error menor que 0.5.
Nótese que tanto el tamaño de la base de casos así como los atributos utilizados aportan
diferentes resultados y en este último caso, mejores, en la estimación. Por otra parte el RBC
permite el desarrollo de una base de casos dinámica con los datos de nuevos proyectos que se
incorporan automáticamente a la misma y se convierten en disponibles para el análisis de una
nueva solución. No obstante, la determinación y actualización de las reglas no es una tarea fácil y
está muy ligada al tipo de proyecto.
En (6) también se utiliza el RBC para la estimación y se compara con otras técnicas: RNA y PG.
En esa investigación se utilizan nueve variables independientes y una variable dependiente, el
esfuerzo, analizándose 81 proyectos, tomados de la base de datos Desharnais
(http://promise.site.uottawa.ca/SERepository/datasets/desharnais.arff) localizada en el repositorio
PROMISE. Los resultados son favorables y se insiste en las bondades del RBC dadas por la
posibilidad de proporcionar un orden a los proyectos por grados de similaridad con el proyecto
objetivo. Esto suministra un valor explicativo significativo cuando se consideran los usuarios
finales.
Referencias al RBC igualmente pueden encontrarse en (28; 29). Se ha utilizado también este
enfoque como método de comparación en (22; 30; 31).
De acuerdo con (3) puede afirmarse que el RBC es la técnica de ML que más se ha reportado en
la literatura especializada. Recientemente se han encontrado referencias donde el RBC se
combina con enfoques heurísticos para la optimización de los pesos en la función de similaridad
con resultados satisfactorios (32). También se evalúa el grado de similaridad entre dos proyectos
utilizando la lógica difusa como aparece en (33).

3.2 REDES neuronales artificiales (RNA)


Las RNA tienen la habilidad de modelar complejas relaciones no lineales y características que las
hacen atractivas para resolver tareas de reconocimiento de patrones sin tener que construir un
modelo explícito del sistema. En un sentido amplio, la red neuronal es un modelo debido a que la
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
8
topología de la red, así como las funciones de transferencia de los nodos son usualmente
formuladas para coincidir con el problema actual. Pueden conducir a desarrollar modelos que
pueden ser precisos a través de un ejemplo dado, pero fallan cuando las condiciones cambian.
Carecen de la capacidad de explicación o justificación de la estimación realizada y no proveen un
ambiente para una adaptación directa por el usurario de los datos, es decir una recalibración del
modelo. Para poder incorporar un nuevo caso al conjunto de casos válidos del propio modelo,
necesitan ser reentrenadas, generando un modelo nuevo (26).
Han sido desarrolladas diversas arquitecturas de redes neuronales. Una de ellas, back-
propagation, es utilizada para la estimación del esfuerzo en (26; 34). En (26), por ejemplo, fueron
desarrolladas varias RNA para comparar el error de la estimación. La RNA que mejores
resultados produjo incluye como variables de entrada el tamaño del software (determinado en
PF), las cgs y el ambiente de programación. La única salida es el esfuerzo de desarrollo estimado.
Fueron necesarias cinco neuronas en la capa oculta y el MMRE resultante fue de 0.35, un
resultado similar al que se obtuvo con RBC discutido en el epígrafe anterior.
Desarrollos similares en este sentido aparecen en (25; 35; 36; 37). En (35) se utilizaron 25 nodos
de entrada (similares a los que se proponen en el modelo estadístico COCOMO) y dos nodos de
salida: personas-mes y tiempo de desarrollo. En (25) fueron adoptados 33 nodos de entrada y un
nodo de salida con 63 casos de entrenamiento y 15 casos de prueba. En (36) se utilizó una
arquitectura del tipo Albus perceptron con resultados superiores a los obtenidos por una regresión
lineal.
También se realizan comparaciones utilizando una RNA en (6). Estos resultados resultan menos
precisos que los presentados en (26), aunque son superiores o equivalentes a técnicas de
programación genética al emplearse AMSE para evaluar la precisión.
En (38), se hace un estudio de investigaciones anteriores donde se evalúa el funcionamiento de
las RNA con otros modelos como los modelos de regresión, inducción de reglas y RBC. Aquí se
evidencia que las RNA presentan una exactitud superior a los modelos de regresión y una
exactitud muy cercana a la de los modelos basados en RBC. Son muy buenas cuando existen
valores atípicos en los datos. Se tomaron como variables de entrada: el número de reportes, el
número de pantallas, el número de creaciones, el número de actualizaciones, el ambiente de
programación, las LOC, 14 características generales del sistema y las variables utilizadas en los
modelos de análisis por PF.
En ese estudio se propuso el análisis a tres topologías distintas de RNA y se evaluó la precisión
de estos modelos con modelos clásicos de regresión y el juicio de un experto, arrojando como
resultado que el modelo de RNA con siete variables de entrada fue el que menor MMRE
presentó, evidenciándose que la estimación realizada por un modelo basado en RNA depende
mucho de las variables de entrada.
Sin embargo, aunque las RNA se han mostrado competitivas con relación a otros enfoques en la
estimación, el hecho de que el ambiente de computación (variable de entrada que se considera en
(26)) cambie rápidamente en términos de lenguajes de programación, herramientas de desarrollo
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
9
y metodologías, hace poco flexibles y difícil de mantener el desempeño de los modelos de
estimación para nuevos tipos de proyectos.
Este es el punto de partida que se relaciona en (39) donde se propone un método de búsqueda que
encuentra los mejores casos relevantes para el modelo de red neuronal, reduciendo la red por la
eliminación de factores cualitativos de entrada con los mismos valores.
Puede apreciarse en la revisión de los diferentes enfoques para la estimación, que las variables de
entrada, factores, o características generales del sistema como también se les ha llamado,
constituyen un punto neurálgico en los modelos propuestos. Una revisión interesante de algunos
de estos factores también se presenta en (39), agrupados en cinco categorías: requisitos del
proyecto, características del producto, habilidades del equipo, plataforma computacional y
atributos del usuario. En esa ocasión fueron utilizados 23 factores seleccionados por la opinión de
30 expertos y se presenta el resultado en términos de personas-mes. Los factores fueron
clasificados en cuantitativos y cualitativos. Estos últimos pueden constituir tanto variables de
entrada como clasificadores del conjunto de casos. Los resultados finales muestran que la
magnitud del error relativo medio se redujo de 17.2% (para la RNA completa) a 12.1% (para la
RNA reducida).
Se puede adoptar el enfoque anterior si se desarrolla un sistema para la toma de decisiones donde
el esfuerzo del software pueda estimarse en dependencia de la mejor adaptación de la RNA a los
cambios del ambiente computacional. De esta forma, una de las limitaciones del empleo de RNA
para la estimación es su generalización. Los resultados y el desempeño están muy ligados a la
estructura de la RNA y a las variables de entrada, cuestión esta también señalada en (40).
Otros desarrollos similares pueden encontrarse en (22; 31; 41; 42). En (42) se utiliza una RNA
como método de estimación para la comparación con otros enfoques. Esta idea también se
desarrolla en (41) donde se utiliza una red neuronal como modelo de estimación y se compara
con un modelo de regresión múltiple, además de otros modelos algorítmicos como SLIM, PF y
COCOMO. Aquí se utiliza la base de datos COCOMO referenciada por Boehm en 1981 (12), sin
embargo se reconoce que diferentes resultados pueden ocurrir si se consideran otros conjuntos de
datos, como por ejemplo la base de datos del ISBSG.
De manera general, se sostiene en (6) que el uso de técnicas de estimación más elaboradas como
RNA y PG proporciona mejores resultados pero necesitan más esfuerzo en la configuración y
entrenamiento. Un compromiso entre la precisión y la facilidad de interpretación también parece
inevitable.
Recientemente han surgido enfoques híbridos de utilización de RNA tales como los que aparecen
en (43; 44). En (43) se utiliza una RNA combinada con la lógica difusa para mejorar el
desempeño del modelo COCOMO, aprovechando las características ventajosas del enfoque
neuro-fuzzy de habilidad de aprendizaje y mejor interoperabilidad. Una red neuronal
probabilística es la propuesta de (44), enfoque para estimar simultáneamente el esfuerzo (o
tamaño) del software y la probabilidad de que el valor real de este parámetro sea menor que su
valor estimado.
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
10
3.3 ÁRBOLES de decisión (AD)
AD es una técnica que construye un modelo en forma de árbol, dividiendo recursivamente el
conjunto de datos hasta que un criterio de parada es satisfecho. Esta división se realiza con el
propósito de alcanzar la máxima homogeneidad posible, relativa a la variable de salida o
dependiente, entre los ejemplos que alcanzan el nodo. Todos los nodos en el árbol, menos los
terminales (también llamados hojas), especifican una condición basada en una de las variables
que tienen influencia en la variable dependiente. Luego de que el árbol es generado, el mismo se
puede usar para realizar predicciones siguiendo un camino a través del árbol de acuerdo con los
valores específicos de las variables del nuevo caso (14). Los AD han demostrado su superioridad
en términos de exactitud de la predicción en varios campos. Los algoritmos más usados para la
construcción de AD son ID3, C4.5 y Árbol de Clasificación y Regresión (Clasification And
Regression Tree – CART).
Entre las ventajas fundamentales del uso de la estimación mediante AD se encuentran:
 Pueden ser considerados como “cajas blancas”. Es simple entender y fácil explicar su
proceso a los usuarios, al contrario de otros métodos de aprendizaje.
 Por sí mismo realiza selección de rasgos, lo que evita la utilización de otras técnicas para
determinar los rasgos que verdaderamente influyen en el esfuerzo en los modelos de
estimación.
Los Árboles de Regresión (AR) son un tipo especial de AD desarrollado para tareas de regresión.
En este tipo específico de AD la elección de cada nodo está usualmente guiada por el criterio del
error cuadrado mínimo (45). En los AR los valores de la media o la mediana del nodo terminal
pueden ser usados como el valor predicho.
Como mismo los AR son un tipo especial de AD, los model trees son un tipo especial de AR. En
(45) se expresa que la principal diferencia entre AR y model trees es que las hojas en los AR
presentan un valor numérico mientras que las hojas en los model trees tienen una función lineal.
Los AR constituyen una de las técnicas más usadas para la estimación de esfuerzo de desarrollo
en proyectos de software. En el estudio que se muestra en (38) se examinan los resultados
obtenidos con varias técnicas como son: Regresión Ordinaria de Mínimos Cuadrados (Ordinary
Least-Squares Regression - OLS), Análisis de Varianza progresivo (Analysis of Variance -
ANOVA) para bases de datos no balanceadas, RBC, AR (algoritmo CART) y la combinación de
CART con regresión y RBC. Luego de comparar los resultados obtenidos con cada técnica se
determinó que las técnicas OLS y ANOVA brindan resultados significativamente superiores a los
obtenidos con las demás técnicas. También se resalta la facilidad de interpretación y uso de
CART para la construcción de un modelo de estimación.
En (4) se utiliza la regresión Poisson y AR, así como su combinación, para construir modelos de
predicción de esfuerzo a partir de medidas de tamaño y diseño. En este estudio los resultados
arrojan que el uso de modelos híbridos combinando la regresión Poisson y árboles de regresión
CART claramente superan la exactitud de modelos que usan solamente la regresión Poisson.

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
11
Por su parte, el estudio publicado en (46) analiza la precisión de diferentes técnicas de estimación
y examina su comportamiento basado en bases de proyectos tanto de distintas compañías como
de una misma compañía. Entre las técnicas que se usaron en esa investigación, una versión de
árbol CART fue de las que mejores resultados brindó cuando se trabajó con datos de una misma
compañía. Sin embargo, al utilizar los datos de varias compañías, fue la técnica que peores
resultados ofreció. Al compararse las estimaciones basadas en una compañía y las basadas en
varias, fue evidente que para casi todas las técnicas los resultados basados en una sola compañía
fueron significativamente superiores. Aunque luego de ajustarse los valores del esfuerzo
correspondientes a cada proyecto, atendiendo a la productividad de la compañía a la que
pertenece el proyecto y a la productividad general de todas la compañías, se logró una
significativa mejora para varias técnicas en la estimación sobre la base de datos con proyectos de
varias compañías y en específico CART fue la que tuvo una mejora más drástica. A pesar de esto,
en la investigación se plantean varias preguntas importantes que continúan sin respuesta, entre
ellas:
 Sin datos propios ¿cómo una organización puede determinar si una base de proyectos de
varias compañías podrá describir su tipo de operación?
 ¿Ulteriores variables para medir procesos y productos serán capaces de mejorar la
precisión de las estimaciones a partir de bases de proyectos de varias compañías?
Recientemente, los Árboles de Regresión Aditivos Múltiples (Multiple Additive Regression Trees
- MART) han sido propuestos como un novedoso avance que extiende y mejora el modelo de los
árboles basados en el algoritmo CART usando el gradiente estocástico fortalecido (stochastic
gradient boosting). Boosting es un método general que trata de “fortalecer” la precisión de algún
algoritmo de aprendizaje dado mediante el ajuste de una serie de modelos, cada uno teniendo un
índice de error pequeño y combinándolos en un conjunto que puede desempeñarse mejor. En (47)
se evalúa el potencial de este tipo de árbol para la estimación de esfuerzo de desarrollo de
proyectos de software comparado con otros modelos publicados anteriormente, en términos de
precisión. Luego de analizar los resultados logrados usando MART, con los que se aparecen
referenciados en otras publicaciones en las que se hace uso de SVR, Regresión Lineal y Redes
Neuronales, se llega a la conclusión de que el modelo obtenido con el uso de MART mejora la
exactitud de la estimación de los otros modelos. Estos resultados se obtuvieron sobre la base de
datos de proyectos de la NASA ubicados en PROMISE.
También en (42) se hace uso de AD para la estimación de esfuerzo en específico mediante el
model tree M5P. Aquí se combinan varias técnicas con algoritmos genéticos tratados
posteriormente.
En (14) se investiga el uso del algoritmo ID3 borroso para la estimación de esfuerzo. Este AD es
diseñado integrando los principios de los árboles ID3 y la teoría de los conjuntos borrosos,
permitiendo al modelo manejar datos dudosos e imprecisos cuando se describen los proyectos de
software. En dicha investigación se comparan los resultados obtenidos por el modelo propuesto
con los de la versión original de ID3 sobre bases de datos localizadas en los repositorios de
proyectos Tukutuku y PROMISE.
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
12
La principal característica de los ID3 borrosos es que un ejemplo pertenece a un nodo con un
grado de certidumbre. Los autores analizan dos modelos ID3 borrosos para la estimación de
esfuerzo, cada uno con una forma distinta de calcular la entropía borrosa, dependiendo del
operador de conjunción usado. Los resultados del estudio muestran que el uso de un nivel de
significación óptimo y una adecuada fórmula de calcular la entropía borrosa mejoran
grandemente la precisión de los estimados. Al compararse con la versión precisa del ID3 se
aprecia una gran mejora en la exactitud de la estimación.

3.4 REDES bayesianas (RB)


Una red bayesiana es una técnica de modelado para tratar interrelaciones causales basadas en
inferencias bayesianas. La red es representada como un grafo acíclico con nodos para cada
variable imprecisa y aristas dirigidas para cada interrelación entre las variables (48). Por cada
nodo o variable existe una tabla de probabilidades del nodo. Las tablas definen las interrelaciones
y las imprecisiones de las variables y sus valores usualmente son discretos con un número fijo de
estados. Para cada estado, la tabla muestra la probabilidad que tiene la variable. Si existen nodos
padres; por ejemplo, un nodo que influye sobre un nodo actual, las probabilidades se definen en
dependencia del estado de los nodos padres.
El proceso de construcción de una red bayesiana sugiere una serie de pasos importantes que no
son triviales:
1. Identificación de las principales variables que serán modeladas, representándolas como
nodos.
2. Construcción de la topología de la red.
3. Definición de la tabla de probabilidades del nodo.
Primero, la identificación de las variables incluye la suposición de que el constructor del modelo
puede decidir sobre la base de lo que es importante. Una posibilidad es incluir muchas variables y
usar un análisis de sensibilidad para eliminar nodos insignificantes. Segundo, la creación de la
topología utiliza la suposición de que el constructor del modelo puede decidir sobre la
dependencia e independencia de las variables definidas. Y tercero, el problema de la construcción
de la tabla de probabilidades de los nodos; que involucra la definición de relaciones cuantitativas
entre las variables. Existen varios métodos para esta cuantificación, como la probabilidad circular
y la regresión de datos recolectados empíricamente. Ambos tienen elementos a favor y en contra.
Un modelo completo de la situación no es usualmente flexible, porque la red se hace muy
compleja, muy complicada de construir y en la mayoría de los casos no hay conocimiento
disponible sobre varias de las variables definidas. Una de las mayores ventajas de las redes
bayesianas es su capacidad para simular diferentes escenarios. Un escenario involucra la
introducción de información adicional al modelo, es decir; adicionar una observación a un nodo
determinado. De esta forma la incertidumbre es eliminada y la incidencia para los otros nodos
puede ser calculada. En las redes bayesianas es posible hacer una inferencia tanto hacia delante
como hacia detrás, por ejemplo, la información puede ser añadida a cualquier nodo y los efectos
pueden ser calculados en cualquier dirección del grafo.
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
13
Las redes bayesianas tienen la habilidad de representar la incertidumbre explícitamente usando
probabilidades, la habilidad de incorporar el conocimiento existente de expertos dentro de los
datos empíricos y la habilidad de actualizar el modelo cuando nuevos datos están disponibles (9).
Es por eso que aunque son limitados los estudios realizados en la Ingeniería del Software usando
esta técnica, presentan características que posibilitan futuras aplicaciones.
Según (10), los modelos de redes bayesianas existentes tienen restricciones en el uso de funciones
de densidad de probabilidad continua. Consecuentemente, estas restricciones limitan el uso de
estos modelos a los casos donde se involucran solamente variables discretas.

3.5 SUPPORT vector regression (SVR)


El algoritmo Support Vector (SV) es una generalización no lineal del algoritmo Generalized
Portrait desarrollado en Rusia en los años sesenta. En su forma actual fue largamente
desarrollado en AT&T Bell Laboratories en la década del 90 del pasado siglo. En poco tiempo los
clasificadores SV se volvieron competitivos con los mejores sistemas de Reconocimiento Óptico
de Caracteres (Optical Character Recognition - OCR), pero también en regresión, tomando el
nombre de SVR, fueron obtenidos excelentes resultados rápidamente (49).
Suponiendo que se tiene un conjunto de entrenamiento con la forma
, donde denota el patrón del conjunto de entrada

(por ejemplo, ), en regresión , el objetivo es encontrar la función que tenga como


máximo una desviación de los valores objetivos reales recolectados, , para todo el conjunto
de entrenamiento. En otras palabras, no se preocupa por los errores que sean menores que , pero
no acepta ninguna desviación mayor que esa. En el problema de la estimación de esfuerzo
consistiría en el conjunto de valores que caracterizan al proyecto y sería el esfuerzo.
En , la función depende de un vector de pesos ( ) y un umbral ( ), los cuales son
escogidos optimizando el siguiente problema (50):

La constante determina el equilibrio entre la optimalidad de y el monto de las


desviaciones mayores que que son toleradas. Las variables de holgura miden el costo de
los errores en los puntos de entrenamiento, mide las desviaciones que exceden el valor del
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
14
objetivo por un valor mayor que y mide desviaciones que están más que por debajo del
valor del objetivo. La idea de SVR es minimizar una función objetivo en la cual se considere
tanto la norma del vector como las pérdidas medidas por las variables de
holgura. El algoritmo SVR incluye el uso de multiplicadores de Lagrange que pueden estar
acompañados por funciones kernel. Para obtener más detalles se puede consultar (49).
SVR ha superado el comportamiento de otras técnicas más tradicionales en la solución de varios
problemas. Por esto en (50) se propone el uso de SVR para estimar el esfuerzo en el desarrollo de
proyectos de software. Para determinar la efectividad de la estimación en ese estudio, se realizó
una comparación de los resultados obtenidos con SVR y los obtenidos con regresión lineal y la
Red Neuronal Radial Basis Function (RBF), sobre la base de proyectos de la NASA. Luego de
analizados los resultados se llegó a la conclusión de que SVR logró mejorar la precisión de la
estimación por encima de los otros dos métodos.
En (5) se analiza el empleo de SVR para la estimación de esfuerzo en el desarrollo de proyectos
Web y se comparan varias configuraciones de SVR para determinar la que brinda el mejor
comportamiento. Aquí se confrontan los resultados obtenidos utilizando dos tipos de funciones
kernel: Polinomial y RBF. Además, para determinar si la aplicación de una de estas
transformaciones kernel puede mejorar la exactitud de la predicción, también se consideró SVR
sin una transformación kernel, también conocido como kernel Lineal. Los resultados obtenidos
con SVR fueron comparados con los brindados por RBC, que es una de las técnicas más
utilizadas para la estimación de esfuerzo en proyectos de software, para determinar si SVR logra
un mejor desempeño. Para todos los análisis realizados fue utilizado el repositorio de proyectos
Tukutuku.
Después de examinar los resultados logrados con las distintas configuraciones de SVR se
determinó que el uso del kernel RBF brindó el mejor resultado. Luego de confrontar el
comportamiento de esta configuración de SVR con el obtenido por RBC, se llegó a la conclusión
de que SVR fue significativamente superior en la precisión de la estimación. Seleccionar la mejor
combinación de valores de los parámetros en SVR, puede tener una gran influencia en su
efectividad. Sin embargo no hay líneas directrices generales disponibles para seleccionar estos
parámetros, algo que también depende de las características de los datos que son usados. Esto
motivó el trabajo descrito en (10), donde se propone el uso de la meta-heurística Búsqueda Tabú
(Tabu Search - TS) para obtener los valores óptimos de los mismos. Aquí se diseñó TS para
buscar los parámetros tanto del algoritmo SVR como de la función kernel empleada, en este caso
RBF. De modo práctico se evaluó la efectividad de este método para la estimación de esfuerzo
usando diferentes bases de datos de proyectos del repositorio PROMISE y del repositorio
Tukutuku. Fueron tomadas en consideración varias medidas de comparación para evaluar ambos
aspectos, la efectividad de TS para definir los parámetros de SVR y la exactitud de la predicción
de la metodología propuesta con respecto a otras técnicas de estimación de esfuerzo ampliamente
utilizadas, como RBC, SVR (sin uso de TS), etc. En este estudio se determinó que el uso de TS
permite obtener los parámetros idóneos para ejecutar SVR. Además se concluyó que la

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
15
combinación de TS y SVR superó significativamente el comportamiento de todas las demás
técnicas con las que fue comparada.
En (45) se propone mejorar el comportamiento de diferentes métodos de regresión, para la
estimación de esfuerzo en el desarrollo de proyectos de software, aplicando Bagging a diferentes
técnicas de aprendizaje automático, entre ellas a SVR. El estudio ofreció como resultado que el
uso de Bagging fue capaz de mejorar la precisión de la estimación producida por todos los
métodos de regresión analizados menos para SVR, lo que demuestra que SVR es un método
estable para las bases de datos consideradas en los experimentos.

3.6 ALGORITMOS genéticos (AG)


Los AG fueron desarrollados como una técnica alternativa, basada en la teoría de la selección
natural, para afrontar problemas generales de optimización con largos espacios de búsqueda.
Ellos tienen la ventaja de que no necesitan ningún conocimiento anterior, opinión de un experto o
lógica relacionada con el problema en particular a resolver (6). Los AG ocasionalmente pueden
producir la solución óptima, pero para la mayoría de los problemas con grandes espacios de
búsqueda, una buena aproximación al óptimo es la salida más probable.
El proceso básico de los AG es el siguiente:
1. Generación aleatoria de una familia de soluciones.
2. Creación de una nueva familia de soluciones partiendo de la previa, aplicando los
operadores genéticos a los cromosomas o pares de cromosomas más adecuados de la
población anterior.
3. Repetición del paso 2 hasta que cualquiera de los cromosomas converja a la solución, o
cuando se haya producido un número de iteraciones anteriormente especificado.
La mejor solución de la última población es tomada como la mejor aproximación al óptimo del
problema en cuestión. El proceso completo normalmente se repite un número de veces con
diferentes poblaciones iniciales aleatorias y se escoge la mejor de las soluciones obtenidas.
Esta idea ha sido aplicada a problemas de estimación de esfuerzo en (6) con una población de
1000 y 500 generaciones en 10 corridas. Los resultados se comparan con enfoques de RBC y
RNA. Aunque se obtuvieron resultados similares que los alcanzados por las RNA, se destaca que
en ambas aproximaciones se necesita cierto grado de experticidad y en particular en la PG son
múltiples los parámetros que se requieren: funciones, rangos de reproducción y cruzamiento,
estrategia de creación y profundidad del árbol, entre otras.
Otra forma de emplear los AG en la estimación es combinándolos con otros enfoques. Tal es el
problema que se resuelve en (51), donde los AG son utilizados para generar medidas de distancia
pesadas entre pares de conductores de esfuerzo de proyectos, en un modelo de estimación del
esfuerzo basado en analogías. Los resultados experimentales fueron alentadores cuando se aplicó
AG para mejorar la precisión del esfuerzo estimado sobre las bases de datos de ISBSG e IBM
DP. Los métodos por analogía “pesados” empleados fueron superiores al método tradicional “no
pesado” y a otros enfoques aplicados como árboles de regresión y RNA.

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
16
En (52) también se aplican AG. En esa ocasión se combinaron con Análisis Relacional Gris
(Grey Relational Analisys - GRA). Un modelo de estimación de esfuerzo de software utilizando
GRA identifica uno o más proyectos históricos que son similares al proyecto que está siendo
estimado y deriva una estimación para él. El propósito de utilizar AG en este enfoque es para
mejorar u optimizar los pesos de cada uno de los rasgos involucrados en las medidas de similitud
en GRA. En este estudio se utilizaron dos bases de datos de proyectos: COCOMO y Albrecht de
PROMISE. Se obtuvieron resultados superiores en comparación con modelos de RNA, RBC y
AR, aunque se reconoce que la integración GRA y AG para la estimación de esfuerzo presenta
una complejidad superior del modelo que puede afectar su uso en la práctica.
También en (11) se utiliza AG como técnica combinada para la estimación del esfuerzo. Aquí se
mantiene la idea de la optimización, en la selección de un subconjunto óptimo de características
de entrada y en la selección de parámetros para los métodos de aprendizaje automático
empleados. Resulta interesante la representación binaria utilizada para definir un cromosoma. El
cromosoma es dividido en dos partes: la primera parte representa los parámetros de la técnica de
ML que van a ser optimizados y la segunda, las características de entrada que serán
seleccionadas.
Se valoran tres técnicas de aprendizaje automático: Multi Layer Percentron (MLP), Support
Vector Regression (SVR) y el algoritmo M5P que combina árboles de decisión y regresión lineal.
Las simulaciones son realizadas sobre las bases de datos de proyectos: Desharnais, NASA,
COCOMO y Albrecht, Kemerery localizadas en PROMISE. Los resultados son superiores al ser
comparados con los obtenidos por métodos propuestos como RNA, árboles de regresión y
modelos estadísticos con redes bayesianas.

3.7 PROGRAMACIÓN genética (PG)


PG es una extensión de los AG que elimina la restricción de que un cromosoma sea una cadena
binaria de tamaño restringido. Generalmente en PG el cromosoma es un tipo de programa que es
ejecutado para obtener los resultados requeridos. Una forma simple de estos programas es un
árbol binario que contiene operandos y operadores, es decir cada solución es una expresión
algebraica que puede ser evaluada (6).
En (53) se menciona que es posible utilizar PG y otras técnicas de aprendizaje automático como
RNA para estimar esfuerzo, tomando como variables independientes las LOC y los PF. Para esto
emplea la información de cinco bases de proyectos, concluyéndose que RNA y PG mostraron ser
métodos mucho más flexibles en comparación con las técnicas utilizadas.
En (6) se muestra una investigación donde se utiliza PG para la estimación de esfuerzo. Aquí se
realiza una comparación de los resultados obtenidos con PG y los obtenidos con otros modelos
basados en RNA y RBC. En este trabajo se llega a la conclusión de que el sistema construido
utilizando PG puede mejorar la exactitud de la predicción con respecto a las otras técnicas. Sin
embargo, se resalta la necesidad de realizar un mayor trabajo para mejorar la consistencia de la
estimación y para determinar cuáles son las medidas más apropiadas para la selección del mejor
modelo en la práctica. Además se destaca la complejidad de su configuración e interpretación.
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
17
En (53) se hace una revisión de la utilización de PG en la Ingeniería de Software.
Específicamente en la estimación de esfuerzo se precisa que no se obtiene una evidencia fuerte
que indique que la Programación Genética supere consistentemente a los demás modelos, de
acuerdo a los criterios de evaluación empleados.

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.

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
19
(20) SHEPPERD, M. & SCHOFIELD, C. (1997) “Estimating software project effort using
analogies”. IEEE Transactions on Software Engineering, 23, 736-743.
(21) WALKERDEN, F. & JEFFERY, R. (1999) “An empirical study of analogy-based software
effort estimation”. Empirical Software Engineering, 4, 35-158.
(22) SUN-JEN, H. & NAN-HSING, C. (2006) “Optimization of Analogy Weights by Genetic
Algorithm for Software Effort Estimation”. Information and Software Technology, 48, 1034-
1045.
(23) WITTIG, G. & FINNIE, G. (1997) “Estimating software development effort with
connectionist models”. Information and Software Technology 39, 469-476
(24) KEMERER, C. F. (1987) “An Empirical Validation of Software Cost Estimation Models”.
Communications of the ACM, 30, 416-429.
(25) SRINIVASAN, K. & FISHER, D. (1995) “Machine Learning Approaches to Estimating
Software Development Effort”. IEEE Transactions on Software Engineering, 21, 126-137.
(26) FINNIE, G. R., WITTIG, G. E. & DESHARNAIS, J.-M. (1997) “A Comparison of Software
Effort Estimation Techniques: Using Function Points with Neural Networks, Case-Based
Reasoning and Regression Models”. Journal Systems Software, 39, 281-289.
(27) DESHARNAIS, J. M. & AL., E. (1990) “Adjustment Model for Function Points Scope
Factors-A Statistical Study”. IFPUG Spring Conference. Florida.
(28) PATNAIK, K. S., MALHOTRA, S. & SAHOO, B. (2004) “Software Development Effort
Estimation using CBR: A Review”.
(29) ADEKILE, O. (2008) “Object-oriented software development effort prediction using design
patterns from object interaction analysis”. University of Georgia.
(30) MACDONELL, S. G. & SHEPPERD, M. J. (2003) “Combining techniques to optimize
effort predictions in software project management”. The Journal of Systems and Software 66,
91-98.
(31) SUN-JEN, H., NAN-HSING, C. & LI-WEI, C. (2008) “Integration of the Grey Relational
Analysis with Genetic Algorithm for Software Effort Estimation”. European Journal of
Operational Research, 188, 898-909.
(32) WU, D., LI, J. & LIANG, Y. (2010) “Linear combination of multiple case-based reasoning
with optimized weight for software effort estimation”. The Journal of Supercomputing.
(33) IDRI, A., ABRAN, A. & LAILA, K. (2000) “COCOMO Cost Model Using Fuzzy Logic”.
7th International Conference on Fuzzy Theory and Technology. Atlantic City, New Jersey.
(34) WITTIG, G. & FINNIE, G. (1997) “Estimating software development effort with
connectionist models”. Information and Software Technology 39, 469-476

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
20
(35) VENKATACHALAM, A. R. (1993) “Software cost estimation using artificial neural
network”. International Joint Conference on Neural Networks.
(36) SAMSON, B., ELLISON, D. & DUGARD, P. (1997) “Software cost estimation using an
Albus perceptron (CMAC)” Information and Software Technology 39, 55-60.
(37) MACDONELL, S. G. & GRAY, A. R. (1997) “A Comparison of Modeling Techniques for
Software Development Effort Prediction”. New Zealand, Springer-Verlag.
(38) BRIAND, L. C. & WEICZOREK, I. (2002) “Resource Estimation in Software Engineering”.
Encyclopedia of Software Engineering.
(39) SUP JUN, E. & KYU LEE, J. (2001) “Quasi-optimal case-sensitive neural network model
for software effort estimation”. Expert System with Applications, 1-14.
(40) PARK, H. & BAEK, S. (2008) “An empirical validation of a neural network model for
software effort estimation”. Expert Systems with Applications, 35, 929-937.
(41) BARCELOS TRONTO, I. F., SIMÕES DA SILVA, J. D. & SANT'ANNA, N. (2006)
“Comparison of Artificial Neural Network and Regression Models in Software Effort
Estimation”. Brazil, Brazilian National Institute for Space Research - INPE.
(42) 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.
(43) HUANG, X., HO, D., REN, J. & CAPRETZ, L. F. (2007) “Improving the COCOMO model
using a neuro-fuzzy approach”. Applied Soft Computing 7, 29-40.
(44) PENDHARKAR, P. C. (2010) “Probabilistic estimation of software size and effort”. Expert
Systems with Applications 37, 4435–4440.
(45) BRAGA, P. L., OLIVEIRA, A. L. I., RIBEIRO, G. H. T. & MEIRA, S. R. L. (2007)
“Bagging Predictors for Estimation of Software Project Effort”. In: International Joint
Conference on Neural Networks, Orlando, Florida.
(46) JEFFERY, R., RUHE, M. & WIECZOREK, I. (2001) “Using Public Domain Metrics to
Estimate Software Development Effort”. In: 7th International Software Metrics Symposium,
Londres, Reino Unido.
(47) ELISH, M. O. (2009) “Improved estimation of software project effort using multiple
additive regression trees”. Expert Systems with Applications, 36, 10774–10778.
(48) WAGNER, S. 2010. “A Bayesian network approach to assess and predict software quality
using activity-based quality models”. Information and Software Technology, 52.
(49) SMOLA, A. J. & SCHOLKOPF, B. (2004) “A Tutorial on Support Vector Regression”.
Statistics and Computing, 14, 199-222.

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
21
(50) OLIVEIRA, A. L. I. (2006) “Estimation of software project effort with support vector
regression”. Neurocomputing, 69, 1749–1753.
(51) HUANG, S.-J. & CHIU, N.-H. (2006) “Optimization of analogy weights by genetic
algorithm for software effort estimation”. Information and Software Technology, 48, 1034-
1045.
(52) HUANG, S.-J., CHIU, N.-H. & CHEN, L.-W. (2008) “Integration of the grey relational
analysis with genetic algorithm for software effort estimation”. European Journal of
Operational Research, 188, 898–909.
(53) AFZAL, W. & TORKAR, R. (2011) “On the application of genetic programming for
software engineering predictive modeling: A systematic review”. Expert Systems with
Applications.

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

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
22

View publication stats

También podría gustarte