PDF de programación - Segmentación Recursiva de Proyectos Software para la Estimación del Esfuerzo de Desarrollo Software

Imágen de pdf Segmentación Recursiva de Proyectos Software para la Estimación del Esfuerzo de Desarrollo Software

Segmentación Recursiva de Proyectos Software para la Estimación del Esfuerzo de Desarrollo Softwaregráfica de visualizaciones

Publicado el 9 de Febrero del 2017
635 visualizaciones desde el 9 de Febrero del 2017
124,2 KB
8 paginas
Creado hace 19a (29/10/2004)
Segmentación Recursiva de Proyectos Software para la Estimación

del Esfuerzo de Desarrollo Software

J. Cuadrado Gallego1, Miguel Ángel Sicilia1, Miguel Garre Rubio1

1 Dpto de Ciencias de la Computación, Universidad de Alcalá,
28871, Ctra. de Barcelona, 33.6, Alcalá de Henares, España

[email protected]
[email protected]
[email protected]

Abstract. En este artículo se continúa con el trabajo realizado por J. Cuadrado y M.A. Sicilia sobre la
idea de mejora en la estimación del esfuerzo en el desarrollo de software. Esta mejora se debe al
hecho de usar varios modelos de regresión, uno por grupo de proyectos obtenido, en vez de uno solo
que incluya a todos los proyectos. Estos proyectos son heterogéneos e inducen a pensar que la
estimación sería más fiable si se agrupase por proyectos lo más homogéneos posible entre sí. Por lo
tanto, hemos realizado nuevas agrupaciones recursivas, utilizando la base de datos ISBSG y el
algoritmo EM, hasta llegar a obtener modelos de regresión segmentados con diferentes parámetros
que nos proporcionan unas estimaciones bastante aceptables. Por último hemos comprobado que
haciendo sucesivas divisiones recursivas llegamos a clusters indivisibles, cuyas características
proporcionan las mejores estimaciones posibles.

1 Introducción

La correcta estimación del esfuerzo que va a requerir realizar un proyecto software es un aspecto crucial
para una empresa de desarrollo software. Una estimación errónea puede hacerle perder mucho dinero,
además de a futuros clientes. De ahí la importancia de que las estimaciones se realicen de la forma más
eficaz posible.

Tal y como se indica en el artículo de J. Cuadrado2, los métodos de estimación del esfuerzo basados en
la utilización de técnicas estadísticas aplicadas a bases de datos de proyectos históricas, proporcionan
ecuaciones matemáticas en las que la variable dependiente es el esfuerzo o el tiempo, y las variables
independientes son diferentes aspectos del proyecto o del producto o de ambos. Estas ecuaciones son
como por ejemplo las que utilizan la función potencia del tipo e=a·sb, donde e es el esfuerzo estimado y s
alguna medida del tamaño del proyecto. El utilizar una única ecuación de este tipo para toda la base de
datos de proyectos, donde los proyectos son heterogéneos, proporciona unos resultados muy pobres. Por
ejemplo, utilizando la herramienta Reality de la base de datos de proyectos ISBSG versión 8
(Internacional Software Benchmarking Standard Group†), aplicada a 709 proyectos, se obtiene la
siguiente ecuación:

e=47.73 · s0,76,

(1)

donde el esfuerzo se expresa en horas, y el tamaño en puntos de función. Un análisis de la bondad del
ajuste nos da como resultado MMRE=1.18 y PRED(.30)=25.6%. Ambas medidas son difícilmente
aceptables, dado el alto grado de desviación sobre la inmensa mayoría de los datos.

Algunos autores1,4 han sugerido que la segmentación de los datos contenidos en las bases de datos
históricas podría ser un camino adecuado para la obtención de ecuaciones matemáticas que proporcionen
una mayor exactitud en las estimaciones. Una forma de obtener mejores ajustes consiste en utilizar
algoritmos de agrupamiento (clustering) conocidos, para dividir el dominio de proyectos, y en caso de
que el ajuste aún no sea “suficientemente” bueno, producir de forma recursiva nuevas divisiones.



† http://www.isbsg.org/

Cluster 0-0
Cluster 0-1
Cluster 0-2
Cluster 1
Cluster 2
Cluster 3
Cluster 4
Media

e
e
e
e
e
e
e

=
=
=
=
=
=
=





,0

,0

fp
9,246
fp
5716


fp
54220

fp
9647
3,0


fp
26670

fp
29120

fp
152600



0225



4994


8357



,0


27.0



083.0



1286



.0



0,47
0,37
0,13
0,39
0,37
0,53
0,28
0,36

34,4%
55%
94%
46,2%
53%
43%
72%
57%

3,2
1,9
1,71
1,03
0,78
0,74
0,6


6%
21,5%
30,5%
30%
20.5%
18%
9%




32
102
36
255
185
88
11


Los resultados obtenidos, aplicando el algoritmo EM sobre los 709 proyectos, son los siguientes:

Table 1. Calidad de los modelos de regresión obtenidos tras la segunda segmentación.



Modelo

MMRE

PRED(.3) MMRE
(original)

PRED(.3)
(original)

Proyectos


Se han obtenido siete clusters, con valores de MMRE y PRED(.30) mucho mejores que los que
proporciona el algoritmo Reality para todos los proyectos. Sin embargo estos valores podrían mejorar si
se siguiese el proceso de división recursiva. Y esto es lo que vamos a realizar en el presente trabajo:
partiendo de los datos obtenidos en la tabla 1, realizar sucesivas segmentaciones hasta obtener unos
valores medios de MMRE<=0,25 y PRED(.3)>=75%. Más aún, trataremos de obtener estos valores para
cada cluster obtenido. Y por último, establecer cuál debe ser el límite de división realizado, si es que
existe.

El resto del artículo se organiza de la siguiente manera. En la segunda sección se describe la técnica
utilizada para la obtención del modelo de estimación segmentado. En la tercera sección se describe como
caso de estudio un análisis cuantitativo de la efectividad de la técnica sobre los datos de la tabla 1.
Finalmente, las conclusiones de la investigación y algunas posibles líneas de continuación futura se
describen en la cuarta sección.

2 Descripción de la técnica de obtención del modelo segmentado

La técnica de segmentación y regresión recursiva puede describirse esquemáticamente mediante el
siguiente pseudocódigo:


Generar_modelo(CD:conjunto_datos, MMRE_deseado, PRED_deseado,

PRED_PARAM: real; TIPO_MODELO: funcion): Modelo;

MODELO:=obtener_modelo(CD, TIPO_MODELO);

MMRE := calcular_mmre(CD, MODELO);

PRED := calcular_pred(CD, PRED_PARAM, MODELO);

Si (MMRE >= MMRE_deseado o PRED <=PRED_deseado

o <<pocos datos>>) Entonces

Clusters :=Dividir(CD);

Desde i:=1 hasta Clusters.longitud hacer

Modelos[i]:=Generar_modelo(CD{Clusters[i]},

MMRE_Deseado, PRED_Deseado, PRED_PARAM,

TIPO_MODELO);

Fin_Desde

Return Modelos;

Fin_Si

Return MODELO;

Fin

tantas posiciones como grupos obtenidos, en


En el pseudocódigo anterior, se asume que la salida del algoritmo de clustering (invocación a Dividir)
es una estructura de datos con
la cual,
Clusters[i][centro] indica el “centro” estimado del cluster, Clusters[i][alcance] el
alcance estimado del radio del grupo respecto al centro, y Clusters[i][tamaño] el tamaño
aproximado en número de elementos del grupo. Esos datos se utilizan para filtrar el conjunto de datos
original, lo cual se expresa mediante CD{Clusters[i]}.

El algoritmo descrito podría aún hacerse más genérico en varias direcciones. Por ejemplo, podrían
especificarse otros tipos o criterios de medidas de calidad del ajuste, utilizar varios algoritmos de
agrupamiento simultáneamente, examinando qué alternativa es mejor, o podrían utilizarse combinaciones
de modelos matemáticos para las funciones de estimación.

3 Caso de estudio

Nuestro objetivo es obtener unos modelos de regresión segmentados con un valor medio de
MMRE<=0,25 y PRED(.30)>=75%. Para ello partimos de los datos obtenidos en la tabla 1, y aplicamos
de forma recursiva el algoritmo EM, sobre los clusters que creemos pueden ofrecer mejores resultados.

Como algoritmo de clustering, se ha utilizado la implementación del algoritmo EM proporcionada en
las herramientas de fuente abierto WEKA†. El algoritmo de agrupamiento EM (Expectation-
Maximization)3 es una variante de algoritmos de agrupamiento en árbol que calcula probabilidades de
pertenencia a un cluster, basadas en una o más distribuciones de probabilidad, utilizando como objetivo la
maximización de la probabilidad global. Este algoritmo es especialmente adecuado para casos en los que
no se precisa pre-determinar el número de clusters que han de generarse como salida. Dado que en el
contexto que aquí tratamos no se tiene ninguna información a priori sobre la forma o número de grupos
en la base de datos de proyectos, el algoritmo EM es preferible a algoritmos que predeterminan el número
de grupos de salida, aunque EM también se puede utilizar indicando el número de clusters de salida que
queremos obtener. El algoritmo EM asigna una probabilidad de pertenencia a cada elemento de cada
cluster, sin embargo en este estudio se utiliza una asignación de puntos a clusters determinados,
determinada por el centro (media) de los clusters en el dominio del tamaño del software, que será el que
se utilice al hacer estimaciones de proyectos concretos.

En lo que sigue se describen los datos obtenidos según el esquema algorítmico descrito en la sección
anterior.

Lo primero que nos planteamos es la elección del primer cluster a subdividir, para ello observamos la
tabla 1 y vemos que el cluster 0-0 tiene un valor muy bajo de PRED(.30), sin embargo se descarta por
estar formado por muy pocos elementos. Otro posible candidato es el cluster 3, ya que proporciona el
peor valor de MMRE (MMRE=0,53), por lo tanto parece muy factible su posibilidad de mejora. Éste será,
por lo tanto, el primer cluster que subdividamos. Al aplicar el algoritmo EM sobre los 88 proyectos del
cluster 3 obtenemos los siguientes clusters de segundo nivel:

Std. Dev (fp)

Approx. Size

624,8073
783,1552
267,1391

31
19
38


Teniendo en cuenta los tres nuevos sub-grupos obtenidos, el análisi
  • Links de descarga
http://lwp-l.com/pdf2373

Comentarios de: Segmentación Recursiva de Proyectos Software para la Estimación del Esfuerzo de Desarrollo Software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad