Este documento trata sobre la estimación del esfuerzo en el desarrollo de software. Explica que la estimación del esfuerzo es importante para determinar los costos y plazos de un proyecto. Luego describe varios métodos para la estimación como los basados en la experiencia, en los recursos, en los componentes del producto y métodos algorítmicos como COCOMO. Finalmente, muestra un ejemplo de cómo calcular el esfuerzo requerido utilizando los Puntos de Función y datos históricos de la organización.
1. 4. Estimación del
esfuerzo
1
TEMA 4. ESTIMACIÓN DEL
ESFUERZO EN EL
DESARROLLO DE
SOFTWARE
Jose Onofre Montesa Andrés
Universidad Politécnica de Valencia
Escuela Universitaria de Informática
2000
2. 4. Estimación del
esfuerzo
2
Problemática de la estimación.
Averiguar lo que costara de desarrollar una
aplicación.(meses-persona, ptas., …)
Momento en que se desea conocer el coste
(gráfico de Boehm)
Siempre se quiere muy pronto (Yourdon)
3. 4. Estimación del
esfuerzo
3
Precisión de las estimaciones en
función de la fase del proyecto.
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Viabilidad
Planificación
y
requisitos
Diseño
General
Diseño
Detallado
Desarrollo
y
test
Entrega
4. 4. Estimación del
esfuerzo
4
Proceso de Estimación propuesto.
Medir lo que
quiere el
usuario
Estimar lo
que Costara
(esfuerzo)
Descomponer
por fases y
tareas
Historial
Empresa
Especificación de
requerimientos
Requisitos a
Cumplir
Medida de lo que
quiere el usuario
Estimación
del Esfuerzo
Tareas a
realizar
7. 4. Estimación del
esfuerzo
7
Métodos utilizados para la
estimación de proyectos.
Basados en la experiencia.
Basado exclusivamente en los recursos.
Método basado exclusivamente en el
mercado.
Basado en los componentes del producto o
en el proceso de desarrollo.
Métodos algorítmicos
8. 4. Estimación del
esfuerzo
8
Métodos basados exclusivamente
en la experiencia:
Juicio experto
– Puro,
– Delphi
Analogía
Distribución de la utilización de recursos en
el ciclo de vida
9. 4. Estimación del
esfuerzo
9
Juicio experto: Puro
Un experto estudia las
especificaciones y haces su
estimación.
Se basa fundamentalmente
en los conocimientos del
experto.
Si desaparece el experto, la
empresa deja de estimar
10. 4. Estimación del
esfuerzo
10
Juicio experto: Wideband Delphi
Un grupo de personas son informadas y
tratan de adivinar lo que costara el
desarrollo tanto en esfuerzo, como su
duración.
Las estimaciones
en grupo suelen
ser mejores que
las individuales.
11. 4. Estimación del
esfuerzo
11
Método de trabajo del Wideband
Delphi
Se dan las especificaciones a un grupo de expertos.
Se les reúne para que discutan tanto el producto como la
estimación.
Remiten sus estimaciones individuales al coordinador.
Cada estimador recibe información sobre su estimación, y
las ajenas pero de forma anónima.
Se reúnen de nuevo para discutir las estimaciones.
Cada uno revisa su propia estimación y la envía al
coordinador.
Se repite el proceso hasta que la estimación converge de
forma razonable.
12. 4. Estimación del
esfuerzo
12
Método de trabajo del Wideband
Delphi
Juan *
Alicia *
José *
María *
Estimaciones
Juan *
Alicia *
José *
María *
Estimaciones
14. 4. Estimación del
esfuerzo
14
Analogía, pueden variar los
siguientes factores:
Tamaño: ¿mayor o menor?
Complejidad: ¿Más complejo de lo usual?
Usuarios: Si hay más usuarios habrán más
complicaciones.
Otros factores:
• Sistema Operativo, entornos (la primera vez más).
• Hardware, ¿Es la primera vez que se va a utilizar?
• Personal del proyecto, ¿nuevos en la organización?
15. 4. Estimación del
esfuerzo
15
2 m. ?
Estudio
Viabilidad
Planificación
y Requisitos
Diseño
General
Diseño
Detallado
Desarrollo Prueba
10% 17% 15% 15% 33% 10%
Distribución de la utilización de
recursos en el ciclo de vida
Usualmente las organizaciones tienen una
estructura de costes similar entre proyectos.
Si en un proyecto ya hemos realizado
algunas fases, es de esperar que los costes
se distribuyan de manera proporciona.
16. 4. Estimación del
esfuerzo
16
Método basado exclusivamente
en los recursos: Parkinson
En la estimación consiste en ver de cuanto
personal y durante cuanto tiempo se
dispone de el, haciendo esa estimación.
En la realización:
“El trabajo se expande hasta
consumir todos los recursos
disponibles”
(Ley de Parkinson)
17. 4. Estimación del
esfuerzo
17
Método basado exclusivamente en
el mercado: precio para vender.
Lo importante es conseguir el contrato.
El precio se fija en función de lo que creemos
que esta dispuesto a pagar el cliente.
Si se usa en conjunción con otros
métodos puede ser aceptable,
para ajustar la oferta.
Peligro si es el único método
utilizado.
18. 4. Estimación del
esfuerzo
18
Basado en los componentes del
producto o proceso de desarrollo:
Bottom-up
– Se descompone el proyecto en las unidades lo
menores posibles.
– Se estima cada unidad y se calcula el coste total.
Top-Down
– Se ve todo el proyecto, se descompone en
grandes bloques o fases.
– Se estima el coste de cada componente.
19. 4. Estimación del
esfuerzo
19
Aplicación a
desarrollar
Coste
...
f(x)
x
y
z
v
u
Métodos algorítmicos
Se basan en la utilización de fórmulas que
aplicadas sobre modelos top-down o
bottom-up producen una estimación de
coste del proyecto
20. 4. Estimación del
esfuerzo
20
0
2
4
6
8
10
12
14
16
0
2
4
6
8
1
0
1
2
1
4
1
6
1
8
2
0
2
2
2
4
Meses de Desarrollo
Esfuerzo
Asignado
Putnam
Relaciona cantidad de personas-
mes y la duración del proyecto.
Y=2Kate-at²
Y = Personas-mes en cada punto
K = Esfuerzo total del proyecto,
(Área bajo la curva)
a = Cte. asociada a la aceleración
de entrada de personas en el
proyecto,
t = instante del tiempo.
21. 4. Estimación del
esfuerzo
21
COCOMO
Partimos de conocer el número de líneas
que tendrá la futura aplicación.
Orgánico, hay otros dos
– MM-nominal = 3.2 (KLOC)1.5
– T.desarrollo= 2.5 (MM)0.38
22. 4. Estimación del
esfuerzo
22
COCOMO
Determinar los multiplicadores del
esfuerzo:
– Tamaño B.D., experiencia analistas,
herramientas, … (15 en total, varían de 0.75-
1.66)
Estimación esfuerzo con las correcciones.
Estimación de factores relacionados ($,
duración fases,…)
23. 4. Estimación del
esfuerzo
23
Métrica de los Puntos de Función
Es una métrica que se puede aplicar en las
primeras fases de desarrollo.
Se basa en características fundamentalmente
“Externas” de la aplicación a desarrollar.
Mide dos tipos de características:
– Los elementos de función (entradas, salidas,
ficheros, etc.)
– Los factores de Complejidad.