Professional Documents
Culture Documents
Abstract
En este documento se da una visin general del proceso de estimacin del software. Se
indican los fundamentos matemticos de la estimacin y se la encuadra dentro de la gestin de
proyectos software. Se divide la estimacin, en prediccin del tamao, del esfuerzo y del tiempo
empleado para realizar el proyecto. Se hace especial hincapi, en la estimacin del esfuerzo
como pieza central y fundamental de todo el proceso. Se propone un proceso general de
prediccin y un marco de trabajo para seleccionar mtricas y mtodos predictivos. El proceso de
prediccin y la seleccin del marco de trabajo, resaltan la importancia de las mtricas dentro del
contexto de desarrollo de sistemas, y la necesidad de guardar los resultados y utilizar la
experiencia adquirida para mejorar la precisin de futuras estimaciones de software.
Estimacin del software. PGSI. 2
Contenido.
Abstract .................................................................................................................................................... 1
Contenido................................................................................................................................................. 2
1. Introduccin. ........................................................................................................................................ 3
1. 1. Qu es una estimacin? .................................................................................................................. 3
1.2. Evaluacin de la precisin de la estimacin...................................................................................... 4
1.3. Regresin lineal................................................................................................................................. 6
1.4. Anlisis de regresin slido. ............................................................................................................. 8
1.5. Regresin multivariante. ................................................................................................................... 8
2. Gestin del Proyecto de Software. ....................................................................................................... 9
2.1. Establecer el mbito. ......................................................................................................................... 9
2.2. Medicin y mtricas........................................................................................................................ 10
2.3. Estimacin....................................................................................................................................... 10
2.4. Anlisis de riesgos. ......................................................................................................................... 11
2.5. Planificacin. .................................................................................................................................. 11
2.6. Seguimiento. ................................................................................................................................... 11
3. Introduccin al Proceso de Estimacin. ............................................................................................. 12
3.1. Estimacin del tamao. ................................................................................................................... 12
3.1.1. Metodologa de los Puntos de Funcin. ....................................................................................... 14
3.2. Estimacin del Esfuerzo.................................................................................................................. 20
3.2.1. Proceso de Prediccin. ................................................................................................................. 21
3.2.2. Marco de Trabajo. ........................................................................................................................ 24
3.2.3. Proceso de Estimacin del Coste del Software. ........................................................................... 29
3.2.4. Modelos de Estimacin del Coste. ............................................................................................... 35
3.3. Estimacin de la planificacin. ....................................................................................................... 50
3.3.1. Observaciones de Norden. ........................................................................................................... 52
3.3.1. Planificacin basada en compromiso. .......................................................................................... 53
3.3.2. Mtodo de estimacin de primer orden de Jones. ........................................................................ 54
4. Conclusin. ........................................................................................................................................ 55
Apndice A. ........................................................................................................................................... 56
Bibliografa. ........................................................................................................................................... 58
Estimacin del software. PGSI. 3
1. Introduccin.
Estimar consiste en determinar el valor de una variable desconocida a partir de otras
conocidas, o de una pequea cantidad de valores conocidos de esa misma variable. La
estimacin forma parte de la inferencia estadstica. El razonamiento por inferencia va de lo
particular a lo general, de lo conocido a lo desconocido, y puede decirse que es lo inverso a la
deduccin, que va de lo general a lo particular. Se da el nombre de poblacin a cualquier
conjunto o conglomerado numeroso de objetos a estudiar. Pero esta definicin es tan general
que prcticamente no dice nada y, de hecho, no adquiere verdadero significado sino se asocia a
la definicin de muestra, que es alguna parte o subconjunto de una poblacin ordinariamente
seleccionada, o de modo deliberado para que las propiedades de la poblacin, se pongan de
relieve. Los valores de las diversas medidas descriptivas de poblaciones se conocen como
parmetros, pero cuando se refieren a muestras se denominan estadsticos. As como el
parmetro define una poblacin, el estadstico describe una muestra.
Puede considerarse, el estadstico de una muestra, como una estimacin del parmetro
de una poblacin. Una medida de estimacin o estimador, es una funcin de las puntuaciones de
una muestra, que da lugar a un valor denominado estimacin, el cual suministra informacin
sobre el parmetro. Por ejemplo la media de la muestra es un estimador de las puntuaciones
promedio de la poblacin.
1. 1. Qu es una estimacin?
Es importe pensar en una prediccin como en un rango mas que como un simple
nmero. Una estimacin o prediccin no es un objetivo, sino una valoracin probabilstica. El
valor que se obtiene de una estimacin es el centro del rango.
DeMarco fue uno de los primeros en explicar que una estimacin es una prediccin que
es igualmente probable que est por encima o por debajo del resultado real. Para comprender lo
que esto significa, consideremos una situacin en la cual queremos estimar (desde un conjunto
de requerimientos) el tiempo que nos llevar finalizar un proyecto. Imaginemos que pudiramos
registrar los valores reales de finalizacin de un gran nmero de proyectos, que hayan
implementado el mismo conjunto de requerimientos. Entonces podramos ser capaces de dibujar
la funcin de densidad del tiempo t necesario para finalizar el proyecto con los requerimientos
establecidos; tenemos un ejemplo en la figura 1. La funcin de densidad en la figura 1 es una
distribucin normal, pero no necesariamente ha de ser siempre as. Desde este grfico podemos
calcular la probabilidad de que cualquier proyecto basado en los requerimientos dados ser
finalizado en un intervalo de tiempo [t1,t2]; la probabilidad es simplemente el area bajo la
curva, entre t1 y t2. Por ejemplo, la probabilidad de que el proyecto se complete entre los meses
8 y 16 es aproximadamente 0,9, y la probabilidad de que el proyecto sea realizado en menos de
12 meses es de 0,5. Normalmente, estaremos interesados en que la probabilidad de que un
proyecto pueda ser finalizado en un tiempo t, es decir el intervalo ser [0,t].
Estimacin del software. PGSI. 4
Figura 1.
De este modo, para indicar el rango, la estimacin se ha de presentar como una tripleta:
el valor mas probable (que es, la mediana de la distribucin), mas los lmites superior e inferior
del valor. En trminos estadsticos a estos lmites inferior y superior se les denomina intervalos
de confianza.
V A VF (1)
MRE =
VA
____
1 n
RE = REi
n i =1 (2)
Tambin es posible calcular la magnitud del error relativo. Para n proyectos la magnitud del
error relativo ser:
______
1 n
MRE = MREi
n i =1 (3)
Si la media de la magnitud del error relativo es pequea, entonces nuestras predicciones son
buenas.
Esta nocin se usa para definir la mtrica calidad de prediccin. Para un conjunto de n
proyectos, i es el numero de ellos cuya magnitud media del error relativo es menor o igual que l.
i
pred (l ) = (4)
n
La mtrica pred proporciona una indicacin del grado de ajuste para un conjunto de datos,
basado en el valor de RE obtenido para cada dato.
EQF vara desde cero hasta infinito. Para una serie de estimaciones, DeMarco sugiere
un valor de 4 (el cual corresponde a una estimacin dentro del 25% del valor real del esfuerzo
Estimacin del software. PGSI. 6
de desarrollo), que debe ser relativamente fcil de retener, y los estimadores de coste deben
guardar valores de 8 o superior.
Figura 2
La regresin lineal es un conocido mtodo para expresar una asociacin como una
formula lineal. Cada par de atributos se expresa como un punto de datos(xi,yi), y entonces se
calcula la lnea que mejor se ajusta entre la nube de puntos. Nuestra meta es expresar el atributo
y en trminos del atributo x, en una ecuacin de la forma:
y = a + bx (5)
La teora detrs de la regresin lineal, es dibujar una linea desde cada punto verticalmente hacia
arriba o hacia debajo de la linea que denota la tendendia de los puntos. En cierto sentido la
longitud de estas lnea representa la discrepancia entre los datos y la lnea. Nuestra intencin es
conseguir que este discrepancia sea la mnima. De este modo la recta del mejor ajuste, es la
lnea que minimiza estas distancias.
Estimacin del software. PGSI. 7
Figura 3
Los clculos matemticos necesarios para determinar los coeficientes a y b, de esta lnea
del mejor ajuste son directos. La discrepancia de cada punto se denomina residual, y la
expresin para generar la lnea de regresin lineal minimiza la suma de los cuadrados de los
residuales. Podemos expresar el residual para un punto dado como:
ri = yi a bxi (6)
b=
( x m )( y m
i x i y )
(x m )
i x
2 (7)
a = m y bm x (8)
Una vez que se ha determinado la recta que mejor se ajusta, su consistencia y precisin
puede ser evaluada usando un conjunto de datos de validacin, en los cuales los valores de estos
datos se sustituyen en la ecuacin de regresin, y se determina la diferencia entre el valor
predicho y el actual. El uso de algunos conjuntos de datos que no ejercen ninguna influencia
sobre el modelo seleccionado es esencial para una estimacin no influyente de las propiedades
del modelo. Si se utiliza un conjunto de datos para estimar los parmetros del modelo para
diferentes modelos, y se emplea otro conjunto de datos para escoger el mejor modelo, entonces
Estimacin del software. PGSI. 8
es obligatorio que exista otro conjunto para determinar el funcionamiento del modelo sobre los
nuevos datos.
Se pueden emplear diferentes mtodos para estimar los errores del modelo. Estos
incluyen, las diferentes formas de correlacin. Comnmente se utiliza una pareja de indicadores
para determinar lo adecuado del modelo predictivo: La magnitud media del error relativo MRE
(ecuacin )y medida de calidad de prediccin (pred).
La idea general detrs de la regresin slida es que cambiando la medida del error
(anteriormente realizada mediante mnimos cuadrados) el modelo puede hacerse ms resistente
a valores aislados. Existen diferentes modelos de regresin slidos, frecuentemente con la
medida del error basada en la mediana, en lugar de en la media.
En la figura 4 puede verse, como un simple punto aislado tiene un efecto dramtico
sobre la regresin lineal con mnimos cuadrados basados en la media. Esto hace que el modelo
de regresin lineal LS, no nos valga para predecir puntos nuevos como A.
No siempre es posible evaluar la relacin visualmente, puesto que hay valores atpicos
que no pueden ser detectados fcilmente.
Las relaciones entre variables dependientes pueden dar como resultado ecuaciones
inestables.
La regresin lineal slida multivariante puede ser bastante complicada.
asegurarse de analizar los residuales, a fin de chequear datos atpicos, esto es puntos que tiene
residuales muy grandes.
Figura 4
Si queremos conseguir que un proyecto software se lleve a cabo con xito debemos
comprender el mbito del trabajo a realizar, los riegos en los que podemos incurrir, las tareas
que se han de llevar a cabo, las etapas que hemos de recorrer, el coste del proyecto, y el plan a
seguir. Este conocimiento nos lo proporciona la gestin del proyecto de software. Empieza antes
de que comience el trabajo tcnico, continua a medida que el software evoluciona desde un
nivel conceptual hasta la realidad y finaliza en el momento en que se abandona el software.
Una vez entendidos los objetivos y el mbito del proyecto, se han de considerar
soluciones alternativas. Aunque se estudien con muy poco detalle, las alternativas han de
permitir a los gestores y a los desarrolladores seleccionar el mejor enfoque, dadas las
restricciones impuestas por las fechas tope de entrega, los lmites presupuestarios, la
disponibilidad de personal, las interfaces tcnicas y multitud de otros factores.
2.3. Estimacin.
Los proyectos bien ejecutados pasan por tres etapas bsicas para crear una planificacin
software. Primero se estima el tamao del producto, luego el esfuerzo necesario para construir
un producto con este tamao y por ltimo la duracin cronolgica del proyecto.
Muchos gestores aplican varias tcnicas diferentes de estimacin, utilizando unas para
verificar los resultados de las otras.
Estimacin del software. PGSI. 11
2.5. Planificacin.
En realidad, la planificacin de un proyecto de software no difiere de la planificacin de
cualquier proyecto de ingeniera. Se identifica una serie de tareas del proyecto. Se establecen
interdependencias entre las tareas. Se estima el esfuerzo asociado con cada tarea. Se hace la
asignacin del personal y de otros recursos. Se crea una red de tareas. Se desarrolla una agenda
de fechas.
2.6. Seguimiento.
Una vez que se haya planificado el proyecto, hay que seguir el proceso de desarrollo
para comprobar que se est cumpliendo el plan previsto: que satisface sus objetivos de
planificacin, coste y calidad. Normalmente el control del seguimiento en el nivel de gestin
incluye listas de tareas, reuniones e informes sobre el estado, revisiones de etapas, informes de
presupuesto y dems gestiones. El control de seguimiento en el nivel tcnico normalmente
incluye las intervenciones y revisiones tcnicas y las entradas de calidad, que controlan si las
etapas se consideran terminadas.
Figura 5
Estimacin del software. PGSI. 12
Como sugiere la figura 5, en un proyecto tpico la gestin del proyecto es casi una
funcin de caja negra. Difcilmente se conoce lo que se va a hacer durante el proyecto, y solo
hay que quedarse con el resultado final. En un proyecto ideal, en todo momento se tiene el 100
por 100 de visibilidad, siendo ms normal el tener una buena visibilidad que no tener ninguna.
Estos tres pasos se pueden englobar dentro de un paso mas general, un metapaso:
Las secciones siguientes describen con detalle cada uno de estos pasos.
Las variantes a nivel de proyecto son importantes cuando no es nuevo todo el cdigo.
Un ejemplo sera el aadir funcionalidad extra a un programa existente.
Figura 6
Estimacin del software. PGSI. 14
La estimacin a posteriori del tamao del sistema utilizando lneas de cdigo, debera
ser totalmente consistente, debido a que solo puede haber una respuesta, ya que la definicin de
lneas de cdigo no cambia. Sin embargo una estimacin a priori del esfuerzo necesario para el
desarrollo del sistema, requiere una estimacin del tamao del sistema, que se ha de realizar en
las etapas iniciales del ciclo de vida del proyecto: especificacin de requerimientos o
especificacin de diseo (figura 6). Esta estimacin a priori del tamao del sistema, est
normalmente basada en la experiencia pasada, con proyectos similares, de la persona que est
realizando la estimacin.
Otra dificultad con las lneas de cdigo como una mtrica del tamao del sistema es la
dependencia del lenguaje. Consecuentemente no es posible comparar directamente la
productividad de proyectos realizados en diferentes lenguajes, usando lneas de cdigo como
medida del tamao del sistema.
A.J. Albrecht (Albrecht, Allan and Gaffney, John 1983) introdujo el concepto de puntos
de funcin en 1979 para medir la funcionalidad proporcionada por el software. Los puntos de
funcin pueden ser determinados a partir de la especificacin de requerimientos y la
especificacin del diseo. Como los puntos de funcin son una medida de la funcionalidad,
deben ser independientes de la tecnologa y lenguaje utilizado para la implementacin de
software. La posibilidad de determinar los puntos de funcin a priori, y su independencia de la
tecnologa y el lenguaje, cubren dos de las principales objeciones inherentes a las lneas de
cdigo como medida del tamao del sistema.
Archivo Externo:
1. Documento que se
ha de revisar
Entrada:
1. Nombre del documento
que se ha de revisar
Consulta:
1. Cuantas palabras
llevamos procesadas Comprobador
Usuario
Ortogrfico
Archivo Interno:
Salida: 1. Diccionario
1. Numero total de palabras revisadas
2. Numero total de errores detectados
3. Lista de palabras con errores ortogrficos
Figura 7.
Tabla 1
del software a desarrollar y de los archivos referenciados por el mismo. Por ejemplo la Tabla 2
muestra una matriz con la complejidad de las entradas externas.
Archivos Datos
referenciados
1-4 5-15 >=16
0-1 Reducida Reducida Normal
2 Reducida Media Elevada
>=3 Normal Elevada Elevada
Tabla 2
Albrecht y Gaffney (Albretcht, Allan and Gaffney,John 1983) describen los tipos de
complejidad para entradas externas como sigue:
Archivos Datos
referenciados
1-4 5-15 >=16
0-1 Reducida Reducida Normal
2 Reducida Media Elevada
>=3 Normal Elevada Elevada
Tabla 3
El factor de ajuste de complejidad para salidas externas se muestra en la Tabla 3 y es
bastante similar a la Tabla 2. La descripcin de los tipos de complejidad para salidas es
exactamente igual que para entradas. A excepcin de cuando tratamos como informes (reports)
que se han de aadir las siguientes definiciones:
Reducida: Informes de una o dos columnas. Pocas transformaciones entre datos.
Normal: Informes con mltiples de columnas con subtotales. Mltiples
transformaciones de datos.
Elevada: Intrincadas transformaciones de datos. Se hacen referencias a archivos
mltiples y complejos.
Archivos Datos
referenciados
1-4 6-19 >=20
0-1 Reducida Reducida Normal
2-3 Reducida Media Elevada
>=4 Normal Elevada Elevada
Tabla 4
Estimacin del software. PGSI. 17
Archivos Datos
referenciados
1-4 5-15 >=16
0-1 Reducida Reducida Normal
2 Reducida Media Elevada
>=3 Normal Elevada Elevada
Tabla 5
La Tabla 5 muestra los factores de ajuste para interfaces externas:
La definicin de los tipos de complejidad es, en este caso, igual que en el anterior
(archivos lgicos internos).
Archivos Datos
referenciados
1-4 5-15 >=16
0-1 Reducida Reducida Normal
2 Reducida Media Elevada
>=3 Normal Elevada Elevada
Tabla 6
El ltimo atributo que se ha de ajustar son las consultas. Este atributos es similar a los
dems pero lo hemos dividido en dos subelementos (Tabla 6 y Tabla7) las consultas de entrada
y las consultas de salida.
Archivos Datos
referenciados
1-4 5-15 >=16
0-1 Reducida Reducida Normal
2 Reducida Media Elevada
>=3 Normal Elevada Elevada
Tabla 7
11. Facilidad de instalacin: Un valor de 5 denota que la instalacin del sistema es tan
importante, que requiere un esfuerzo especial el desarrollar el software necesario para
realizarla. Ejemplo: Una aplicacin para control de equipos, que pueda ser instalada por
personal no especializado en una plataforma petrolfera en el mar.
12. Facilidad operacional: Un valor de 5 indica que el sistema realiza pocas operaciones.
Ejemplo: Un programa para el anlisis de enormes nmeros de registros financieros que ha
de procesar la informacin de modo que se minimice el nmero de veces que los operadores
de los computadores deban descargar y recargar las cintas donde se guardan los datos.
13. Multiplicidad de emplazamientos: Una puntuacin mxima indicara que el sistema se ha
diseado para soportar mltiples instalaciones en diferentes organizaciones. Ejemplo:
Programa de nminas para una empresa multinacional, que ha de tomar en cuenta las
diferentes caractersticas de los pases, con diversidad de monedas y normativas en el
impuesto sobre la renta.
14. Versatilidad: Determina si la aplicacin se ha realizado para facilitar los cambios y para ser
utilizada por el usuario. Ejemplo: Un programa de previsin financiera capaz de efectuar
pronsticos mensuales, trimestrales o anuales a la medida de un determinado gestor, quien
podra necesitar que la informacin estuviera dividida segn regiones geogrficas o lneas
de productos.
Multiplicar la suma de los factores por 0,01, para convertir la suma en un valor decimal.
Sumar la constante 0,65 al valor decimal para crear un factor multiplicador de la
complejidad.
Multiplicar el valor no ajustado del total de los puntos de funcin por el multiplicador
de la complejidad, para conseguir un valor de puntos de funcin ajustado.
Se puede observar que los 14 factores de influencia producen un multiplicador que tiene un
rango de 0,65 a 1,35. Si ninguno de los factores tiene influencia sobre el sistema, la suma de sus
puntuaciones ser 0, y solo se usar la constante 0,65 como multiplicador. Si los 14 factores
tienen la mxima influencia sobre el sistema, su suma ha de ser 70. Usando el procedimiento
anterior tenemos 70*0,01+0,65=1,35, luego el valor mximo del multiplicador es 1,35.
Tabla 8.
Estimacin del software. PGSI. 20
Tabla 9
La suma de los factores de influencia es 40, tendremos entonces un valor para el factor
de ajuste de la complejidad de:
40*0,01=0,40+0,65=1,05
147*1,05=154
Al principio, el coste del software constitua un pequeo porcentaje del coste total de los
sistemas informticos basados en computador. Un error considerable en las estimaciones del
coste del software tena relativamente poco impacto. Hoy en da, el software es el elemento ms
caro de la mayora de los sistemas informticos. Un gran error en la estimacin del coste puede
ser lo que marque la diferencia entre beneficios y prdidas. Por ejemplo si el esfuerzo es
subestimado, un coste superior al previsto puede hacer que los beneficios obtenidos sean nulos
o negativos, y una prolongacin excesiva en el tiempo de entrega puede hacer que se pierdan
futuros clientes. Sobrestimar el esfuerzo puede tambin afectar a la competitividad de la
compaa as como provocar perdida de beneficios, por ejemplo podra contratarse personal en
exceso para la realizacin del proyecto.
Fiona Walkerden y Ross Jeffery (Walkerden, Fiona and Jeffery, Ross 1996) destacan
tres puntos principales a tratar dentro de la estimacin del esfuerzo: proceso de prediccin,
marco de trabajo para seleccionar magnitudes de prediccin, y mtodos.
Estimacin del software. PGSI. 21
Tabla 10
Caracterizar el proyecto.
El primer paso en el proceso de prediccin consiste en obtener informacin acerca del
proyecto y de su entorno, la cual es relevante para determinar las restricciones y objetivos del
proyecto. El tipo de informacin obtenida es la misma que se obtendra en el primer paso de
QIP.
En nuestro escenario del nuevo sistema debe ser operativo antes que el sistema viejo sea
incapaz de cubrir la demanda de los usuarios. Los pronsticos referentes a la demanda de
usuarios establecen la fecha de entrega del proyecto. Desde la perspectiva del cliente es mas
importante reemplazar del sistema viejo que aadir mejoras. En esta situacin, una mtrica
apropiada para predecir sera aquella que indicara cuanta funcionalidad puede estar realizada y
testeada para una fecha particular. Esta prediccin puede ser utilizada para negociar con el
cliente acerca de un subconjunto de funcionalidad en la que concentrarse para una entrega
inicial, si es que el sistema completo no puede ser realizado en la fecha de entrega.
Los puntos de funcin han sido utilizados como mtricas de funcionalidad, y se han
desarrollado modelos que relacionan el esfuerzo de desarrollo con los puntos de funcin
(Albrecht, Allan and Gaffney, John 1983). Es posible predecir el numero de puntos de funcin
que se pueden desarrollar hasta la fecha de entrega. Los puntos de funcin para el sistema
completo pueden ser contados a partir de las especificaciones del sistema.
nuevas predicciones o revisar las ya realizadas. El plan desarrollado en este paso no difiere con
el que se realizara en un proceso QIP. Este plan se ejecuta durante el desarrollo del sistema.
En nuestro escenario, esfuerzo y puntos de funcin son ejemplos de los datos a ser
medidos y recolectados durante el desarrollo del sistema. El esfuerzo realizado en el desarrollo
necesitara ser medido a fin de evaluar se la suposicin original acerca de la mano de obra fue
valida. Es necesario que sean medidos los puntos de funcin regularmente durante el desarrollo
de sistema a fin de detectar incrementos de los mismos, lo cual podra retrasar sensiblemente la
fecha de entrega.
Si una prediccin puede venir condicionada por una decisin no procedente del
desarrollo del sistema, tal como sera un estudio de factibilidad, este paso ha de ser aplazado
hasta despus de que la prediccin sea realizada y la consecuente decisin sea tomada.
El cuarto paso del proceso de prediccin es anlogo al el cuarto paso de QIP, donde los
datos son recolectados y analizados para evaluar y proporcionar una realimentacin sobre si el
perfeccionamiento de metas esta siendo cumplido o no durante el desarrollo del sistema.
Algunas predicciones pueden requerir datos que aun no estn disponibles antes del
desarrollo del sistema, por esto se harn nuevas predicciones como si fueran estimaciones
revisadas durante el desarrollo del proyecto. Por ejemplo, el esfuerzo requerido para testear la
integracin del sistema, puede ser predicho basndonos en medidas de los atributos de diseo
del sistema, cuando la documentacin del diseo est disponible.
Almacenar la experiencia.
El sexto y ltimo paso implica el guardar la experiencia adquirida a fin de que sea usado
por la organizacin en el futuro. Este paso es el mismo que el paso final de QIP. Esto es
especialmente pertinente en un proceso de prediccin, ya que las predicciones precisas solo
pueden ser esperadas cuando hay experiencia previa. Las predicciones hechas sin referencia a
experiencia previa sern poco menos que conjeturadas.
Figura 8
Estimacin del software. PGSI. 25
El propsito de la prediccin.
El punto de vista de quienes usan la prediccin.
El tiempo en el cual la prediccin es realizada.
El entorno dentro del que se realiza la prediccin.
La experiencia mediante la que podemos hacer la prediccin (Figura 8).
Medidas predictivas.
Una medida es una representacin numrica de un atributo especfico o entidad. Las
medidas para el desarrollo de un sistema representa atributos de entradas de un proceso, de
salidas o del proceso en si. Por ejemplo, el numero de requerimientos es una medida de la
longitud de entrada al proceso de desarrollo del sistema, el numero de lneas de cdigo es una
medida de la longitud de salida y del numero de horas gastadas desarrollando el cdigo, es una
medida del esfuerzo en el proceso de implementacin.
Las medidas pueden ser clasificadas como directas o indirectas. El numero de lneas de
cdigo producidas es un ejemplo de medida directa. Su valor puede ser determinado aplicando
las mtricas directamente al producto de inters. Las medidas indirectas consisten en medir uno
o varios atributos. Medidas de productividad, tales como las lneas de cdigo por persona al da,
son ejemplos de medidas indirectas. Una medida del esfuerzo de desarrollo que se calcula desde
una medida del tamao, tal como las lneas de cdigo, es otro ejemplo de medidas indirectas.
Esta mtrica est basada en una relacin emprica entre dos atributos: esfuerzo y tamao del
software producido. Esta relacin numrica se formaliza mediante un modelo numrico.
Mtodos predictivos.
El marco de trabajo identifica cuatro clases de mtodos de prediccin:
Empricos.
Analgicos.
Tericos.
Heursticos.
Estimacin del software. PGSI. 26
Los mtodos empricos analizan datos para establecer un modelo numrico del
relacionante entre medidas de los atributos dentro del modelo emprico. El anlisis de regresin
es un ejemplo de mtodo emprico.
Los mtodos de prediccin analgicos, o por analoga, utilizan medidas de los atributos
del modelo emprico a fin de caracterizar el caso actual, para el que se realiza la prediccin. Las
medidas conocidas para el caso actual son usadas para buscar un conjunto de datos que
identifiquen casos anlogos. La prediccin se hace interpolando desde uno o varios casos
anlogos al caso actual.
Los mtodos heursticos suelen usarse como extensiones de otros mtodos. Las
heursticas son reglas empricas, desarrolladas mediante experiencia, que obtienen conocimiento
acerca de relacionantes entre atributos del modelo emprico. Las heursticas se pueden utilizar
para ajustar predicciones realizadas con otros mtodos.
Las opiniones de los expertos se reconocen tambin como mtodos de prediccin (por
ejemplo Boehm,1981). Las opiniones de los expertos no se incluyen dentro del marco de trabajo
para seleccionar mtodos de prediccin, ya que estos mtodos no se pueden caracterizar
fcilmente.
Propsito de la prediccin.
El propsito para el que se requiere una prediccin es el principal motivo por el que se
predicen las medidas. Algunos ejemplos de estos propsitos son:
El propsito de una prediccin tiene la mayor influencia sobre las decisiones tomadas
en base a los atributos del sistema, que determinan los tipos de medidas apropiadas. Las
medidas a predecir se pueden evidenciar a partir del propsito. En el escenario del sistema, del
que hablamos en la seccin anterior, la compaa ha de preparar un presupuesto. La mtrica
obvia es el coste del sistema. Este coste puede ser dividido entre software y hardware. El coste
hardware incluye el coste del servidor sobre el que reside la base de datos necesaria para el
servicio de informacin, y el coste del hardware cliente mas perifricos. Antes de solicitar un
presupuesto para el servidor, el equipo contable de la compaa, ha de predecir la capacidad del
almacenamiento requerida, el ancho de banda de los interfaces de comunicaciones, y la
capacidad de procesamiento requerida para manejar la demanda de los usuarios. Partiendo de
una mtrica inicial del coste total, el nmero de medidas que han de ser predichas crece segn se
descompone el problema.
Punto de vista.
El punto de vista de la persona o las personas que usarn la prediccin, tambin influye
en las medidas que han de ser predichas. A continuacin se indican las personas que podran
usar las predicciones para desarrollar el sistema:
Clientes.
Equipo contable.
Gestores del proyecto.
Desarrolladores de software.
El punto de vista, tal como el propsito, contribuye a las decisiones acerca de los
atributos del sistema susceptibles de ser medidos. Por ejemplo, el cliente que ha solicitado un
nuevo sistema y el gestor del proyecto, estn ambos interesados en cuanto tiempo tardar en
estar disponible el sistema completo para su utilizacin. El gestor del proyecto y los
desarrolladores de software estn ambos interesados en cuanto tiempo llevar la realizacin de
las tareas individuales del sistema.
El punto de vista tambin influye en la precisin con la cual una precisin necesita ser
realizada. La necesidad de una gran precisin puede influir en la seleccin de tanto la mtrica
como del mtodo. Por ejemplo, el equipo de contabilidad y los desarrolladores ven la seleccin
del sistema hardware de modo distinto. El equipo de contabilidad est interesado en realizar una
prediccin rpida de la capacidad del sistema, en orden de seleccionar el sistema hardware y
conocer su coste. Una vez que el contrato ha sido adjudicado, los desarrolladores estarn
restringidos por el coste del hardware, y por los requerimientos del sistema. Antes de realizar la
adquisicin del hardware, los desarrolladores necesitan establecer con certeza que el hardware
seleccionado es adecuado para satisfacer la demanda de los usuarios.
Estimacin del software. PGSI. 28
Para la preparacin del presupuesto, la capacidad del sistema se estim por analoga con
otro sistema similar, y las mtricas as obtenidas eran una aproximacin proporcional a la
capacidad de los dos sistemas. Los desarrolladores han de estimar tambin la capacidad del
sistema, pero usando un mtodo y unas mtricas que permitan una valoracin algo mas precisa
de si el hardware seleccionado satisface los requerimientos. Los desarrolladores construyen una
nueva prediccin de la capacidad de procesamiento requerida basada en un anlisis detallado de
los requerimientos del sistema. Esto les permite desarrollar un modelo de carga del nuevo
sistema, basndose en las medidas tomadas sobre un conjunto de usuarios que realizan
transacciones durante un periodo de tiempo. Usando estadsticas de utilizacin de la CPU para
la nueva plataforma hardware obtenidas de la base de datos del vendedor, los desarrolladores
son capaces de estimar el total de utilizacin de la CPU para un conjunto de transacciones, y
entonces comparar esto con la capacidad de CPU necesaria para las transacciones de usuario
durante un pico de utilizacin del sistema.
Tiempo.
Lo que representa el tiempo cuando se realiza una prediccin es el punto en el cual la
prediccin es realizada con respecto a los mtodos de desarrollo del sistema. El tiempo en el
cual la prediccin es hecha determina que datos estn disponibles como entradas al proceso de
prediccin.
La disponibilidad de los datos determina que mtricas pueden ser predichas y los
mtodos mediante los que se pueden predecir. Por ejemplo en nuestro escenario, los
desarrolladores necesitan hacer una precisin mas precisa de la capacidad de procesamiento
requerida. Esta prediccin puede ser hecha solamente cuando un anlisis detallado del sistema
ha sido documentado.
Entorno.
El entorno para el desarrollo de un sistema incluye objetivos y restricciones basados en
las metas del proyecto y de organizacin, entradas al proceso de desarrollo y planificacin del
proyecto. Esta visin del entorno para desarrollo del sistema est basada en la descripcin del
entorno usado en el proceso GQM.
Los objetivos y las restricciones son medidos en el proceso de prediccin, para valorar
si pueden ser cumplidos. En nuestro escenario, la primera razn del cliente para adquirir el
sistema nuevo es que el sistema existente no puede satisfacer los pronsticos de demanda de
usuario. En consecuencia, dos de las restricciones mas importantes del proyecto son el
rendimiento del sistema solicitado por el cliente, y la fecha en la que el sistema ha de estar
modificado, para satisfacer la demanda de los usuarios. Rendimiento y fecha de entrega son de
este modo atributos de gran importancia para el cliente. Esto motiva las predicciones de la
capacidad del sistema requerida para satisfacer los objetivos de rendimiento durante el
desarrollo y las predicciones de la fecha de entrega.
El entorno incluye los medios sobre los que pueden ser realizadas los medidas. La
disponibilidad de estos medios limita las medidas que pueden ser utilizadas para una prediccin.
Un ejemplo de medios disponibles en el inicio del ciclo de vida es la especificacin del cliente.
Estimacin del software. PGSI. 29
En nuestro escenario, esta es la principal informacin para que el contrato sea adjudicado. El
equipo contable ha de estimar el numero de transacciones por segundo, que el sistema ha de
manejar.
El entorno tambin incluye atributos mediante los que caracterizar el sistema y el
proceso de desarrollo, tales como domino de la aplicacin, y el personal de soporte disponible.
Medidas de atributos del sistema y del proceso de desarrollo, como estos son entradas en el
proceso de prediccin.
Los atributos del sistema y del proceso de desarrollo tambin determinan las diferencias
y similitudes entre el desarrollo del sistema nuevo y la experiencia previa dentro de una
organizacin. En nuestro escenario, la compaa ha desarrollado nicamente un sistema similar,
y la experiencia adquirida por este sistema llega a ser la base de una serie de predicciones para
el sistema nuevo.
Experiencia.
La experiencia influye en la seleccin tanto de la mtrica a predecir como en los
mtodos por los cuales realizar la prediccin, porque contribuye con datos, modelos y habilidad.
En nuestro escenario, algunas medidas del sistema similar estn disponibles. No obstante la
compaa no dispone de modelos sobre los que basar las predicciones mientras se prepara el
presupuesto. Como el presupuesto se necesita rpidamente la prediccin se hace menos exacta
por analoga con los datos que se conocen de un sistema similar. Las medidas y mtodos
seleccionados en este caso, debido a las restricciones de tiempo y a la informacin limitada,
hacen dificultoso para el equipo contable cuantificar la no certeza de sus predicciones.
En contraste con la mayora del software de estimacin de costes hay dos ejemplos de
procesos para grupos de estimacin: Wide-band Delphi y Estimeeting. Esos grupos de
estimacin, son adjuntados a los otros, mas que reemplazarlos. Ellos sugieren dos
aproximaciones distintas para implicar un numero de gente en el proceso de estimacin.
puede utilizar para calcular los lmites superior e inferior del intervalo de confianza
construido para el modelo, asumiendo una distribucin normal.
Ajustar las predicciones del modelo para tener en cuenta la significancia de los
atributos conductores del coste: El efecto de los conductores del coste sobre el
esfuerzo se estima calculando un factor de ajuste de esfuerzo y aplicndolo a la
estimacin de esfuerzo inicial. El factor de ajuste para un punto de la regresin
original es el nmero mediante el que el valor efectivo ha de ser multiplicado para
obtener el valor predicho. Un modelo de ajuste de esfuerzo se calibra utilizando
regresin lineal mltiple para determinar los coeficientes conductores del coste,
para tres atributos conductores del coste.
Proceso de Boehm.
Bohem (1981) propuso un proceso de siete pasos para estimar el coste del software:
Proceso de DeMarco.
DeMarco (1982) propone un proceso para desarrollar y aplicar modelos de coste
basados en datos recolectados localmente. El defenda el uso de modelos de coste de factores
Estimacin del software. PGSI. 31
simples derivados de la regresin lineal (ver apartado 1.3.). Un modelo de coste de factores
simples predice el esfuerzo para todo o parte del proyecto basndose en una variable
independiente. El esfuerzo estimado obtenido desde un modelo de coste de factores simples se
ha de ajustar aplicando un factor de correccin. Los factores de correccin, se derivan en el
mismo modo propuesto por Bailey y Basili.
DeMarco tambin defenda el uso de modelos sensibles al tiempo, los cuales relacionan
el esfuerzo total del proyecto con la duracin. El sugiere que se use el modelo COCOMO de
planificacin, para este propsito. A continuacin se indican las actividades llevadas a cabo para
utilizar este modelo.
Proceso de Heemstra.
Heemstra describe un proceso general de estimacin de costes. Su proceso asume el uso
de modelos de esfuerzo dependientes del tamao, y el uso de atributos conductores del coste,
unidos a estos modelos para realizar ajustes de productividad. Este proceso se divide en siete
pasos:
Estimacin del software. PGSI. 32
Proceso de Arifoglu.
El proceso de estimacin de Arifoglu consta de cuatro pasos:
PROBE.
Humphrey (1995) describe un proceso de estimacin basada en proxys (proxy-based
estimation PROBE) como parte de su proceso de software personal (PSP). El mtodo PROBE
defiende el uso de medidas seleccionadas personalmente y modelos de regresin basadas en
Estimacin del software. PGSI. 33
datos personales para estimar el tamao de un producto software. Un proxy es una medida de
tamao que puede ser utilizada para estimar la longitud de un proyecto medida en lneas de
cdigo. Por ejemplo PROBE utilizar una cuenta de objetos como un proxy de medida de
tamao. La estimacin de lneas de cdigo se utiliza para predecir el esfuerzo individual para
desarrollar el esfuerzo. Los lmites superior e inferior del intervalo de prediccin deben ser
tambin estimados.
Se utilizan modelos de regresin simples para estimar las lneas de cdigo desde las
medidas de tamao basadas en proxys y las horas de trabajo desde las lneas de cdigo. Se
realiza una vuelta atrs desde cada estimacin, comparando el valor estimado con el real. La
vuelta atrs se introduce para mejorar el rendimiento de la estimacin individual. La filosofa
del proceso personal del software es mejorar las facultades de los individuos. Esto limita la
aplicabilidad de PROBE a equipos de trabajo.
Wideband Delphi.
Es posible que la precisin de un mtodo de estimacin pueda ser mejorado mediante la
opinin y la estimacin de un grupo de personas. Boehm (1981) describe la tcnica Wideband
Delphi para combinar las opiniones de los expertos y realizar una estimacin de tamao.
Estimeeting.
Taff describe otro proceso para estimacin en grupo, Estimeeting, la cual ha sido
usada por AT&T Bell Laboratorios. Se mantiene una reunin conocida como estimeeting para
producir una estimacin del esfuerzo para desarrollar una caracterizacin del sistema.
A diferencia de Wideband Delphi que determinaba la estimacin final por consenso, los
resultados de Estimeeting son la suma de todas las estimaciones individuales. Estimeeting
permite estimaciones en mayor detalle, pero requiere un diseo de alto nivel, en el que se
conozcan los requerimientos de los subsistemas. Wideband Delphi tiene la ventaja del consenso
Estimacin del software. PGSI. 34
Los procesos de Bohem (1981) y de DeMarco (1982) incluyen pasos que implican la
seleccin de mtricas a predecir, cumpliendo de este modo el segundo paso del proceso de
prediccin. En contraste los procesos de Bailey y Basili, Hemstra y Arifoglu asumen que una
mtrica sencilla, tal como las lneas de cdigo o los puntos de funcin, se usara para generar una
prediccin completa del esfuerzo. No obstante en un escenario realista de desarrollo de
sistemas, son necesarias mas de una nica estimacin del esfuerzo y la duracin. La inclusin de
una paso que seleccione las mtricas a predecir permite que el proceso sea utilizada de manera
mas general, que el proceso que asume que las mtricas son las mismas para todos los
proyectos.
El quinto paso del proceso de prediccin analiza y evala las mtricas y los mtodos
usados para la prediccin. Mejorar las tcnicas y modelos de estimacin es uno de los objetivos
de los siguientes paso en el proceso de Bohem (1981).
Estimacin del software. PGSI. 35
Almacenar la experiencia.
El paso final del proceso de prediccin almacena lo que se ha aprendido, de manera que
estos conocimientos puedan ser reutilizados cuando se hagan predicciones futuras. Almacenar lo
que se ha aprendido con la estimacin actual, no es explcitamente una parte del proceso
descrito. Al incluir esta actividad en el proceso, lo que se hace es contribuir a facilitar la tarea en
procesos futuros.
No hay modelos que estn basados solamente en heursticas, de este modo discutiremos
brevemente, como se usan las heursticas conjuntamente con otros modelos de estimacin. Para
el resto de los modelos, de discuten las tcnicas de calibracin de modelos.
Los modelos de estimacin mas comunes son modelos paramtricos empricos. Donde
es esfuerzo es predicho basndose en una o mas medidas simples, estos modelos han sido
extendidos, en algunos casos mediante el uso de atributos conductores del coste. Las ventajas y
desventajas de los atributos conductores del coste se discuten en este contexto.
En una breve seccin discutiremos los diferentes mtodos y modelos presentados desde
la perspectiva del marco de trabajo de seleccin.
medida del tamao se tiene en cuenta alguna caracterstica del producto que se va a desarrollar,
por ejemplo el conteo de lneas de cdigo del programa. El esfuerzo se mide normalmente en
personas-mes o personas-ao.
Los modelos de datos se desarrollan creando una funcin ajustando el conjunto de pares
(tamao, esfuerzo) mediante tcnicas de regresin. Los modelos ms comunes son los que
tienen funciones lineales y exponenciales. El modelo de Albrecht y Gaffney (1983) se basa en
una relacin lineal entre el esfuerzo y los puntos de funcin. El modelo COCOMO (Bohem,
1981) se basa en una relacin exponencial entre esfuerzo y lneas de cdigo.
Este modelo ha sido investigado por Walston y Felix, Bailey y Basili, y Bohem (1981),
este ltimo como la versin bsica del modelo COCOMO. El valor del exponente b, indica la
escala en que vara el coste segn aumenta el nmero de lneas de cdigo.
Kitchenham examina diez conjuntos de datos, incluidos los conjuntos de datos de
Bailey y Basili, y Bohem, y determina que no hay soporte estadstico para suponer que el valor
del exponente es distinto de uno. En este caso la posibilidad de que la relacin sea lineal no
puede ser descartada. No obstante el modelo no tiene en cuenta el grado en que vara el coste
(por ejemplo la escala de variacin del coste segn las lneas de cdigo), dentro de un conjunto
de datos. Para investigar la posibilidad de error de estas conclusiones, Banker, Chang y Kemerer
(1994) usan un modelo de la forma:
Examinando once conjuntos de datos, encontraron que el valor del coeficiente del
trmino cuadrtico c, era considerablemente distinto de cero en seis de ellos. Estos seis incluan
Estimacin del software. PGSI. 37
los conjuntos de datos de Bailey y Basili y Bohem. Esto implicaba que algunos conjuntos de
datos no eran lineales.
La forma cuadrtica del modelo, debera ser considerada vlida sobre un rango de
valores de LOC, los cuales aparecen en el conjunto de datos, en el cual el modelo se ha
ajustado. Banker, Chang y Kemerer indican un valor negativo para el coeficiente cuadrtico en
cuatro de seis casos significativos. Esto es desalentador, porque en los casos en los que el
coeficiente cuadrtico es negativo, el esfuerzo tambin es negativo. Es mas razonable el esperar
que el esfuerzo puede realizarse de manera montona, incrementando la funcin de las lneas de
cdigo.
Los modelos basados en lneas de cdigo tienen xito explicando las variaciones del
esfuerzo, donde la formula funcional puede ser lineal o no. Conte, Dunsmore y Shen, (1986)
dan un ejemplo de modelo lineal con un coeficiente de correlacin del 82% y un error medio
absoluto relativo del 37%. Miyazaki y Mori dan un ejemplo de un modelo COCOMO calibrado
con un error medio absoluto del 20%. La dificultad de usar modelo predictivos basados en
lneas de cdigo es que las lneas de cdigo no pueden medirse hasta que el sistema est
completo.
Los puntos de funcin fueron desarrollados por Albretch en 1979, como una alternativa
a las lneas de cdigo para medir el tamao del software. Algunos investigadores (como
Albretch y Gaffney, Kemerer, Matson, Barrett y Mellichamp) investigaron modelos de la forma:
EFFORT = a + b FP (12)
Van der Poel y Schach suman a la vez, numero de ficheros, flujo de datos y procesos
para derivar el tamao del cdigo. COCOMO 2.0 (Boehm et al.,1995) introduce una mtrica de
puntos de objeto (Object-Point), que realiza la suma ponderada de pantallas, informes y
mdulos 3GL de un sistema. Se utilizan diferentes ponderaciones para graduar la cuenta de
objetos, de acuerdo con su tipo, adems se establece un grado de complejidad para los objetos:
complejidad simple, media o alta.
Aunque es difcil construir una mtrica compuesta fiable, el motivo principal por el que
tales mtricas existen, es que permiten comparar sistemas mediante un simple nmero, y los
modelos para estimar esfuerzo necesitan incluir nicamente una variable independiente. Una
alternativa es tratar cada componente de la mtrica compuesta como una variable independiente
en el modelo. Donde hay mas de un par de componentes esto incrementa la dificultad de le
anlisis estadstico. Matson, Barret y Mellichamp demostraron que era posible desarrollar un
modelo mas fiable tratando los componentes de los puntos de funcin por separado.
DeMarco (1982) propone varias mtricas, que pueden ser utilizadas para predecir el
esfuerzo para unas actividades particulares o en su totalidad. Las mtricas basadas en la
especificacin del sistema se llaman Function Bang y Data Bang,. Estas mtricas son
designadas para ser calculadas mediante diagramas de flujo de datos y diagramas entidad
relacin respectivamente. Una desventaja de estas mtricas es que no hay conteo simple.
Dependen de la ponderacin de la complejidad para modificar el conteo, antes de que la suma
total se calculada. A este respecto se comparte algunas de las desventajas de las mtricas.
Donde se cuentan las pginas escritas de material que describe el sistema, excluyendo
del cdigo fuente. Este modelo tiene xito en explicar el 85 % de la variacin total del esfuerzo,
para el conjunto de datos de 23 proyectos.
La duracin del desarrollo del sistema est claramente relacionada con el nmero de
personas que componen el equipo de desarrollo. Lo que estos modelos plantean, es como se
puede optimizar la productividad si se aumenta o disminuye l numero de personas que estn
trabajando en el sistema.
LOC = C k K 1 / 3 t d4 / 3 (18)
Esta ecuacin es la denominada ecuacin del software y en ella LOC es el tamao en lneas de
cdigo, K es el esfuerzo total durante el ciclo de vida del proyecto y td es el tiempo en el que el
sistema ha de ser entregado el esfuerzo total durante el ciclo de vida. Ck es el factor
tecnolgico, su valor depende de las caractersticas del proyecto.
Estimacin del software. PGSI. 40
COCOMO (Bohem, 1981) incluye un modelo que relaciona el tiempo con el esfuerzo
de desarrollo:
Tnom = a EFFORT
b (19)
Donde Tnom, es el valor nominal del tiempo de desarrollo en meses y el esfuerzo en personal-
mes. Basndose en una observacin emprica, Bohem teoriza con que hay una zona imposible
para desarrollo. Esta zona est definida aproximadamente por:
Se han llevado a cabo intentos de validar estos modelos, con resultados variados. Basili
y Beane en 1981 intentaron adaptar los modelos de Putnam y Parr a datos de siete proyectos,
con una media de personal inferior a 10 personas,y una duracin menor que 18 meses. Ellos
vieron que los modelos no se adecuaban bien. Los proyectos con el conjunto de datos de
Putnam eran mas largos que los que hemos planteado. Basili y Beane especularon con que poda
resultar que la distribucin del esfuerzo no era normal para proyectos con pocos datos, lo cual
entra en conflicto con la teora en la que estn basados los modelos de Putnam y Parr.
Los modelos de Putnam y COCOMO implican que reduciendo la duracin del proyecto
por debajo de lo que podra ser esperado para un proyecto de un tamao dado, se incrementar
el esfuerzo total. Un estudio de Jeffery explora la relacin existente entre el valor de esfuerzo
actual y el esperado y el tiempo transcurrido para un total de 47 proyectos. Este estudio revela
una relacin compleja entre esos valores. Mientras algunos proyectos con duracin ms corta a
la esperada, muestran un considerable incremento en el esfuerzo, son posibles otras
combinaciones: menor duracin implica menor esfuerzo , mayor duracion implica mayor
esfuerzo y mayor duracion implica menor esfuerzo. Kitchenham en 1992 confirma la existencia
de esta relacin dentro de un conjunto separado de datos.
Es posible hacer especulaciones acerca de las circunstancias que pueden llevar a uno de
los cuatro resultados anteriores. Por ejemplo, un proyecto que tarda mucho tiempo en
completarse y ms esfuerzo del esperado por su tamao, puede que est pobremente organizado,
o puede que el equipo de desarrollo sea inexperto o que el trabajo se halla expandido
intencionadamente para rellenar todo el tiempo disponible. Un proyecto que toma ms tiempo
para completarse, pero menos esfuerzo del esperado por su tamao puede haber mejorado la
Estimacin del software. PGSI. 41
Claramente hay factores a los cuales se puede recurrir en orden de explicar las
variaciones en la productividad, la cual puede ser observada regularmente. Jeffery en 1987, re-
examina sus datos, establece y encuentra que la relacin entre el tamao del proyecto y el
personal se estima en un 70% de la variacin de la productividad. Muchos modelos empricos
paramtricos usan parmetros conductores del coste para tener en cuenta los factores que
influyen en la productividad.
Los modelos discutidos en los puntos anteriores no tienen en cuenta una variedad de
factores, como la experiencia de los desarrolladores del sistema, con los que esperamos mejorar
la productividad. Estos factores de productividad son denominados habitualmente conductores o
controladores del coste. Estos parmetros son valorados en una escala ordinal, por ejemplo, baja
media o alta experiencia, o en una escala nominal, por ejemplo una clasificacin del dominio de
aplicacin del sistema.
Calibracin.
No obstante, los modelos que incluyen un gran nmero de controladores del coste son
difciles de calibrar. La dificultad inmediata, es que el conjunto de datos requeridos para calibrar
puede ser mucho mas grande que el tpicamente disponible en la organizacin. Esta dificultad
puede ser aliviada considerando nicamente los controladores del coste para los que el sistema
vara significativamente, dentro del entorno en el que el modelo est siendo calibrado.
Cuando intentamos calibrar un modelo con controladores del coste, es crucial que las
definiciones de los propios controladores del coste sean aplicadas consistentemente. Cuelenaere,
van Genuchten y Heemstra en 1987, observan que el cuando un usuario intenta por primera vez
calibrar el modelo, es probablemente la primera experiencia del usuario con el modelo, por
ejemplo cuando el sistema est siendo introducido por primera vez en la organizacin. Ellos han
desarrollado un sistema experto para ayudar a los usuarios a aplicar las definiciones de los
controladores del coste correctamente y consistentemente, cuando se calibra el modelo PRICE
SP.
Un tema mas relacionado con los controladores del coste es como calibrar los valores de
los multiplicadores de esfuerzo que se corresponden con estos. Por ejemplo si una alto nivel de
experiencia en una aplicacin, decrementa el esfuerzo esperado en un 9% en el modelo no
calibrado, la cuestin que porcentaje de decremento habra que aplicar al modelo calibrado.
Miyazaki y Mori en 1985 proponen un mtodo por el que los multiplicadores de esfuerzo del
modelo COCOMO pueden ser ajustados a su entorno particular.
Estimacion de la incertidumbre.
Un simple valor no puede ofrecer ninguna pista acerca del grado de certeza de una
estimacin. Cuando estimamos por medio de un modelo, se introduce incertidumbre adicional
porque ningn modelo ser capaz de explicar todo acerca de la variacin de una variable
dependiente, y porque los valores que aportamos como parmetros de entrada son inciertos en s
mismos.
criterios, el 25% de los valores predichos pueden diferir de los reales en mas del 25%. La
incertidumbre de los modelos de estimacin no puede ser pasada por alto. Los parmetros de
entrada son inciertos cuando son incapaces de medir sus valores directamente. Por ejemplo,
cuando usamos un modelo como COCOMO intermedio, para estimar el esfuerzo al inicio del
proyecto, el numero de lneas de cdigo debe ser estimado y se deben tomar decisiones sobre
los valores de los controladores del coste.
La incertidumbre asociada con los valores de los parmetros de entrada puede ser
eliminada si es posible medirlos directamente. No obstante, los estimadores pueden no ser
capaces de desarrollar o calibrar un modelo basado en medidas directas, porque no se disponga
de datos histricos adecuados. Los modelos de esfuerzo basados en lneas de cdigo son
frecuentemente utilizados, ya que las lneas de cdigo pueden ser estimadas indirectamente, y se
puede realizar de este modo una prediccin de esfuerzo, al principio del ciclo de vida. Las
medidas del esfuerzo total realizado y del numero total de lneas de cdigo producidas en un
proyecto son dos de las mtricas ms sencillas a realizar, esto justifica sin duda la popularidad
de estos modelos.
Low y Jeffery (1990) demuestran que los puntos de funcin pueden ser estimados de
manera mas consistente que las lneas de cdigo, esto implica que las estimaciones basadas en
puntos de funcin introducen menos incertidumbre que las basadas en lneas de cdigo. La
incertidumbre de una estimacin depende tanto de la del modelo como de la de las entradas al
modelo.
La desviacin estndar del error en la estimacin se suele utilizar para evaluar el grado
de certeza en los modelos empricos y estimar el rango de posibles valores. Por ejemplo
COCOMO 2.0 (Bohem et al., 1995) sugiere usar un rango de aproximadamente el valor de la
desviacin estndar, entorno al valor ms probable.
Donde L es el valor mas bajo, M es el valor mas probable y H es el valor mas alto para el
parmetro de entrada.
Esta tcnica fue empleada por Putnam (1978) para obtener una estimacin del tamao
del sistema, aadiendo los valores esperados de tamao a cada componente del sistema, y
estimando la desviacin estndar total como la raz cuadrada de la suma de los cuadrados de las
desviaciones estndar de cada componente. La tcnica puede ser utilizada para estimar el rango
de un valor de entrada al modelo.
Los conjuntos difusos son una alternativa para evaluar la incertidumbre de los valores
de los parmetros de entrada. Fei y Liu en 1992 propusieron f-COCOMO, la versin difusa del
modelo COCOMO. En este modelo se representan los multiplicadores asociados a los
controladores del coste, como intervalos difusos en lugar de como valores simples, a fin de
modelar la incertidumbre asociada con la influencia de los controladores del coste sobre el
esfuerzo. De esta manera se estiman los lmites superior e inferior del esfuerzo.
Cuando un modelo tiene muchos parmetros de entrada, cada uno con un rango de
posibles valores, el rango de la estimacin generada por el modelo se incrementa. Este rango se
incrementa an mas cuando la incertidumbre asociada a los valores de entrada se combina con
la incertidumbre asociada con el modelo. Por ejemplo, tomando como referencia el modelo
COCOMO Intermedio, se determina que es posible una variacin en el esfuerzo superior al
800%, cuando el rango de valor mas alto a mas bajo para cada controlador de coste es
combinado.
Podemos ser capaces de evaluar la probabilidad de que el valor actual est dentro de un
rango estimado. Esto es un poco ms difcil que estimar un posible rango de valores. Basarse
para este tipo de estimaciones en la desviacin estndar del error es cuestionable por los mismos
motivos que la desviacin estndar no es adecuada para medir la incertidumbre de un modelo.
OSR ha sido aplicado a una combinacin de los conjuntos de datos de los modelos
COCOMO y Kemerer, para predecir la productividad. Cada proyecto dentro del conjunto de
datos se representa mediante sus controladores de coste COCOMO y su valores de esfuerzo. La
tcnica OSR selecciona un subconjunto de proyectos en los que est basada la prediccin de la
productividad del nuevo. La productividad est medida en personas-mes/lneas de cdigo.
distribucin de productividad dentro del subconjunto seleccionado son medidos como buenos,
de acuerdo con un criterio estadstico establecido.
Una ventaja de OSR es que puede ser aplicado con entradas de datos incompletas. Es
posible realizar una estimacin para un proyecto donde solo un subconjunto de controladores de
coste es conocido. Otra ventaja es que los valores nominales u ordinales de los controladores del
coste, se pueden usar como entradas sin ser convertidos en valores numricos multiplicadores.
Srinivasan y Fisher en 1995 describen dos mtodos no paramtricos mas para generar
modelos de esfuerzo. El primero de ellos utiliza un algoritmo de aprendizaje para generar un
rbol de decisin. El segundo mtodo utiliza propagacin de retorno para entrenar una red
neuronal. Estos mtodos son tambin testeados utilizando un conuunto de datos combinado de
COCOMO y Kemerer. Los valores de los controladores de coste COCOMO y las lneas de
cdigo estimadas son entradas a los modelos de esfuerzo.
El esfuerzo estimado mediante la red neuronal tiene una menor media de error absoluto
que el rbol de decisin. La precisin de ambos modelos es comparable con la de OSR.
Calibracin.
Cada una de las tcnicas descritas anteriormente, requiere un gran numero de datos,
debido al gran nmero de variables independientes y rangos de valores cubiertas por los
modelos. Los autores que trabajan en este tema, destacan la necesidad de un pequeo conjunto
de datos COCOMO (63 proyectos) para aplicar sus tcnicas, as como que el entorno de los
proyectos de conjunto de datos sea el mismo.
Los rboles de decisin, las redes neuronales y las tcnicas OSR pueden ser aplicados
donde el nmero de variables independiente sea reducido para completar el tamao del conjunto
de datos disponible, por ejemplo lneas de cdigo con una simple variable independiente. No
obstante, no est claro si estas tcnicas son superiores a la regresin simple bajo esas
circunstancias.
Estimacin de la incertidumbre.
La incertidumbre de un modelo puede ser evaluada por medio del error relativo. Brian,
Basili y Thomas sugieren que la incertidumbre de una estimacin OSR puede ser evaluada por
medio de la entropa de la distribucin de probabilidad. El valor de esta medida de entropa, es
la que es minimizada cuando se selecciona el subconjunto de proyectos optimo. Ellos
observaron que este valor correlaciona bien con la media del error relativo.
Estimacin del software. PGSI. 46
Modelos analgicos.
Modelos de esfuerzo.
El proceso para predecir la estimacin del software, se puede dividir en los siguientes
pasos:
Seleccin de analogas.
Evaluacin de similitudes y diferencias.
Evaluacin de la calidad de la analoga.
Consideracin de casos especiales.
Creacin de la estimacin.
Figura 9
Evaluacin de la calidad de la analoga: Las medidas que determinan la calidad son las
siguientes:
- Error absoluto.
- Porcentaje de error y media del porcentaje de error.
- Magnitud del error relativo (MRE) y media de la magnitud del error relativo
(MMRE).
- Mtrica de calidad de prediccin dentro de un 25% pred(0,25).
Los resultados de este punto, pueden ser utilizado por el proceso de analoga para
examinar los resultados obtenidos con otras estimaciones, y de este modo realizar un proceso de
realimentacin.
En ESTOR los casos son proyectos software y cada uno se representa mediante los
valores de este conjunto de medidas. Las mtricas utilizadas por ESTOR son puntos de funcin
y entradas al modelo COCOMO intermedio. ESTOR recupera un caso para actuar como fuente
de la analoga, basndose en el valor de los puntos de funcin del proyecto a estimar. Se calcula
un vector distancia para encontrar el proyecto vecino mas cercano. La solucin inicial es el
valor de esfuerzo para el proyecto anlogo. Las diferencias entre el proyecto anlogo y el nuevo
se determinan comparando los valores de sus medidas. El valor del esfuerzo correspondiente al
proyecto anlogo se ajusta teniendo en cuanta esas diferencias, aplicando un conjunto de reglas.
Las reglas utilizadas por ESTOR se derivan de las opiniones de un experto, cuya estimacin era
precisa para el conjunto de datos usado. Las reglas ajustan el esfuerzo mediante un
multiplicador, si las precondiciones particulares de los proyectos fuente y destino se conocen
previamente.
En ANGEL, el usuario puede especificar las mtricas en las que se basa la bsqueda de
proyectos anlogos. ANGEL puede determinar automticamente un subconjunto ptimo de
medidas para un conjunto de datos particular.
Calibracin.
El conjunto de datos que se explora para encontrar casos anlogos, deben ser
representativos del caso para el que se quiere hacer la estimacin. Las diferencias entre el caso
fuente y el caso objetivo han de ser tan pocas como sea posible.
Para soportar la estimacin para una gran variedad de proyectos, son necesarios muchos
puntos de datos y un rango de valores muy elevados. No obstante la estimacin basada en
analoga puede ser aplicada con xito con pequeos conjuntos de datos que estn dentro del
mismo entorno. En realidad particionar los conjuntos de datos de manera acorde con los
atributos del entorno mejora la precisin de modelos de estimacin como ANGEL.
Estimacin del software. PGSI. 49
Estimacin de la incertidumbre.
La incertidumbre de un modelo puede ser evaluada por medio del error relativo y un
rango de estimacin puede ser generado calculando valores de estimacin basados en el rango
de entrada. No obstante, como suceda en los modelos empricos no paramtricos, la estimacin
basada en un rango de entrada muestra una entrada que vara de modo discontinuo, debido a las
diferentes analogas seleccionadas.
Es tambin posible que los casos fuente seleccionados puedan compartir los mismos
valores que el caso objetivo, pero no ser representativo del caso objetivo debido a factores que
no se consideran en la representacin de los casos. Esto puede cuantificar la precisin de
estimaciones basadas en conjuntos de datos particionados.
Modelos tericos.
Un modelo de esfuerzo.
Calibracin.
Cuando este modelo se aplica a un nuevo entorno, las suposiciones de modelo han de
ser examinadas para ver si son vlidas. Por ejemplo, si el modelo depende de suposiciones
acerca de las polticas de gestin, y estas son imprecisas en un entorno nuevo el modelo ser
invlido.
Estimacin de la incertidumbre.
Heursticas.
Los controladores del coste son un ejemplo de cmo las heursticas son incorporadas
dentro de los modelos paramtricos de estimacin de esfuerzo. La influencia de los
controladores del coste puede ser explorada estadsticamente, la evaluacin inicial de los
factores con mas probabilidad de influir en el coste es un ejemplo de heurstica. Los esfuerzos
multiplicadores correspondientes a los controladores del coste pueden ser determinados de
manera heurstica, si los datos disponibles para cuantificar el efecto de los controladores del
coste estadsticamente son insuficientes.
De este modo, las heursticas pueden utilizarse en dominios tales como la estimacin del
coste del software, donde existen unos cuantos modelos tericos de relaciones causales y donde
interactuan muchos facotres de modo que resulta dificultosa la aplicacin de modelos empricos.
Segn McConnell (1996), una vez que se han estimado el tamao y el esfuerzo, estimar
la planificacin resulta casi trivial. Una regla es calcular la planificacin a partir de la
estimacin del esfuerzo:
TDEV = 3 , 0 ( EFFORT ) 1 / 3 (23)
Los investigadores han descubierto que las estimaciones entran dentro de precisiones
previsibles en varios estados del proyecto. El grfico de convergencia de la figura 10 muestra
Estimacin del software. PGSI. 51
como la estimacin se hace mas precisa segn avanza el proyecto. En la tabla 11 tenemos
representados numricamente los rasgos de estimacin implicados en la figura 10.
Figura 10
Estimacin del software. PGSI. 52
Tabla 11
En los aos 50 Peter V. Norden de IBM encontro una relacin entre el personal que est
desarrollando un proyecto y el tiempo necesario para realizar este trabajo. Esta relacin puede
representarse mediante la curva de la figura 11. A esta curva se le denomina curva de Rayleigh-
Norden, pues la forma que toma esta curva fue descrita analticamente por Lord Rayleigh.
Estimacin del software. PGSI. 53
Figura 11
Esta curva tiene una ecuacin, que permite manejar la relacin entre tiempo y esfuerzo
mediante mtodos algebraicos.
y (t ) = 2 K a t e at
2
(24)
Donde a = (1/ 2td ) , td es el tiempo para el que y es mximo, K es el area bajo la curva
2
desde t=0 hasta infinito y representa el esfuerzo nomianl en personas-ao, y(t) representa el
esfuerzo realizado en un tiempo t en personas-ao.
Basndose en este patrn Putnam desarrollo la ecuacin del software (ec. 18) (Putnam,
Lawrence 1978). Partiendo de esta ecuacin se puede estimar el tiempo necesario para
desarrollar un poryecto del siguiente modo:
3/ 4
LOC
td =
1/ 3 (25)
Ck K
Donde LOC es el tamao en lneas de cdigo, K es el esfuerzo total durante el ciclo de vida del
proyecto y td es el tiempo en el que el sistema ha de ser entregado el esfuerzo total durante el
ciclo de vida. Ck es el factor tecnolgico, su valor depende de las caractersticas del proyecto.
periodo inmediato al compromiso y ayuda a que los desarrolladores hagan bastantes horas
extras totalmente voluntarias.
El compromiso tiene su sitio en el desarrollo rpido, pero tal y como se lleva a cabo este
tipo de planificacin, no sirve de gran ayuda en las planificaciones pequeas. Es esencial que el
compromiso sea realista y factible, de forma que el equipo pueda conseguir grandes xitos en
lugar de fracasar.
Tabla 12.
En esta tabla se clasifica el software en tres tipos: de sistemas, de gestin y prt--
porter. El software de sistemas incluye el sistema operativo, controladores de dispositivos,
compiladores y bibliotecas de cdigo. El software de gestin se refiere a sistemas internos, que
se utilizan en un nica empresa. Funciona sobre un hardware limitado, quizs un nico
computador. Los ejemplos tpicos son sistemas de control de nminas, contabilidad o control de
almacn. El software prt--porter es software empaquetado y que se vende comercialmente.
Incluye tanto productos para el mercado horizontal (como tratamiento de texto y hojas de
clculo), como productos para el mercado vertical (como programas de anlisis finaciero,
escritura de guiones y gestin de informacin legal).
4. Conclusin.
Como hemos podido observar en este trabajo, la estimacin de los parmetros del
software es una tarea fundamental en la gestin del proyecto. Sobre todo la estimacin de los
parmetros econmicamente sensibles, tales como el tamao del cdigo, el numero de personas
que componen el equipo de desarrollo y el tiempo necesario para finalizar el proyecto.
Podramos decir que este trabajo, no es mas que una ventana sobre los mtodos y el
proceso de estimacin, y si la desplazamos un poco nos proporcionar material suficiente como
para realizar otro trabajo sobre este mismo tema.
Estimacin del software. PGSI. 56
Apndice A.
Conjuntos de datos.
En la tabla 13 tenemos un resumen del conjunto de datos de COCOMO. El conjunto de
datos completo se puede encontrar en (Bohem 1981).
Tabla 13
Estimacin del software. PGSI. 57
Tabla 14
Bibliografa.
- Albrecht, Allan and Gaffney, John 1983 Software Funtion, Source Lines of Code,
and Effort Prediction: A Software Science Validation IEEE Transactions on
Software Engineering vol. SE-9 no. 6 pp. 639-648.
- Boehm, Barry W. et al. 1995a Cost Models for Future Software Life Cycle
Processes: COCOMO 2.0 [Online] Disponible en:
http://sunset.usc.edu/COCOMOII/Docs/C2ASE_submitted.ps
- Boehm, Barry W. et al. 1995b The COCOMO 2.0 software Cost Estimation Model
[Online] Disponible en:
http://sunset.usc.edu/COCOMOII/Docs/ispa95.ps
- Boehm, Barry W. et al. 1995c An Overview of the COCOMO 2.0 Software Cost
Model. [Online] Disponible en:
http://sunset.usc.edu/COCOMOII/Docs/stc.ps
- Briand, Lionel C. 1997 COBRA: A Hybrid Method for Software Cost Estimation,
Benchmarking, and Risk Assessment [Online] Disponible en:
http://www.iese.fhg.de/ISERN/pub/technical_reports/isern-97-24.ps
- Gray, Andrew and MacDonell, Stephen 1997a GQM++ A Full Life Cycle
Framework for the Development and Implementationof Software Metric Programs.
[Online] Disponible en:
http://divcom.otago.ac.nz:800/COM/INFOSCI/SMRTL/pub/papers/gray97b.ps
- Jones, Carper 1996 Applied Software Measurement 2nd Edition. McGraw-Hill. New
York.
- Low, Grahan and Jeffery, Ross 1990 Function Points in the Estimation and
Evaluation of the Software Process IEEE Transactions on Software Engineering
vol. 16 no. 1 pp. 64-71.
- MacDonell, Stephen and Gray, Andrew 1996 Alternatives to Regression Models for
Estimating Software Projects.[Online] Disponible en:
http://divcom.otago.ac.nz:800/COM/INFOSCI/SMRTL/pub/papers/macd96b.ps
- Walkerden, Fiona and Jeffery, Ross 1996 Software Cost Estimation: A Review of
Models Process and Practice. [Online] Disponible en:
http://infosys7.infosys.unsw.edu.au/caesar/tech/zips/ctr96-1.zip