Vous êtes sur la page 1sur 45

614 - Estimacin y Planeacin

de Soluciones Computacionales

Proxies y mtodo PROBE

LCC. David Daniel Carreo Prez, MTI.
Temas de la Leccin
Visin General de Planeacin
Por qu estimar el tamao?
Principios de estimacin de tamao
El mtodo de estimacin PROBE
Proxies de estimacin de tamao
Ejemplos de estimacin
Visin General de Planeacin
Planes
Te permiten hacer compromisos que puedes cumplir.
Te dan la base para ponerte de acuerdo en un
esquema de trabajo, horario y recursos.
Gua el trabajo.
Facilita el proceso de seguimiento y reportes.
Ayuda a asegurar que las tareas principales no se
pasen por alto.
Esquema de Planeacin de
Proyectos
Product
delivery
Tracking
reports
Define
requirements
Produce
conceptual
design
Estimate
size
Estimate
resources
Produce
schedule
Develop
product
Size, resource,
schedule
data
Process
analysis
Resources
available
Size
database
Productivity
database
El Proceso de Planeacin
Antes de hacer el plan, debes tener el requerimiento.
Entre mejor sea el requerimiento, mejor ser el plan.
Si hay requerimientos mal definidos, se tendrn que hacer
actualizaciones frecuentes al plan.

Los planes son ms acertados cuando se basan en
estimacin de tamao y datos histricos.

Con una estimacin de tamao y datos histricos
puedes:
Identificar los datos en el trabajo anterior ms similar.
Basar el estimado de recursos en esos datos.
Principios de Estimacin de
Tamao
Estimar es un proceso incierto.
Nadie sabe que tan grande ser el producto.
Entre ms temprana sea la estimacin, menos se sabe.
Los estimados pueden estar afectados por el negocio u
otras presiones.

Estimar es un proceso de aprendizaje intuitivo.
La habilidad mejora con la experiencia y los datos.
Algunas personas sern mejores en estimar que otras.
Estimar es una habilidad.
La mejora ser gradual.
Puede que nunca seas muy bueno.

El objetivo es ser consistente.
Entonces comprenders la variabilidad de tus estimados.
Buscars un balance entre sub y sobre estimaciones.
Principios de Estimacin de
Tamao
Estimados Balanceados
La mayora subestiman.



Balance entre sub y
sobre estimaciones.



Balance ms cercano
alrededor de cero.
PSP 0
PSP 1
PSP 2
100% 0% - 100% - 200% 100% 0% - 100% - 200%
0
20
40
0
20
40
100% 0% - 100% - 200% 100% 0% - 100% - 200%
0
20
40
0
20
40
100% 0% - 100% - 200% 100% 0% - 100% - 200%
0
20
40
0
20
40

Las ventajas de usar mtodos definidos de estimacin
son:
Que tienes practicas conocidas que puedes mejorar.
Que tienes un esquema para recolectar datos estimados.
Que puedes usar datos histricos consistentemente para
producir estimados balanceados.
Principios de Estimacin de
Tamao
El PSP usa el mtodo PROBE para estimar o planear
proyectos.

PROBE significa Estimacin Basada en PROxy (ingls).

El PROBE usa proxies para estimar el tamao del
programa y el tiempo de desarrollo.

Un buen proxy te ayudar a hacer estimados ms
exactos.
Estimar con PROBE
El Mtodo de Estimacin con
PROBE
Conceptual
design
Start
Identify and size the proxies
Number of
items
Part
Type
Relative
size
Reuse
categories
Estimate other
element sizes
Estimate
program size
Calculate
prediction interval
Size estimate
and range
Estimate
resources
Calculate
prediction interval
Resource estimate
and range
Diseo Conceptual
El primer paso para la estimacin es hacer un diseo
conceptual.
Relacionar los requerimientos con el producto.
Definir los elementos del producto que producirn las
funciones deseadas.
Estimar el tamao de lo que planeas construir.

Para la mayora de los proyectos, el diseo conceptual
se puede llevar a cabo relativamente rpido.

Para los ejercicios de programas PSP, trata de limitar tu
tiempo de diseo conceptual a 10 o mximo 20
minutos.
Diseo Conceptual

Para hacer diseo conceptual, identifica las funciones
del producto y las partes del programa necesarias para
producirlas.

Tendrs que decir: Si tengo las siguientes partes, podr
construir este producto.

Luego, compara las partes de programas que ya hayas
escrito y estima sus tamaos.

Diseo Conceptual

Finalmente, combina las estimaciones de partes para
tener el tamao total.

Si no entiendes el producto lo suficientemente bien
para hacer un diseo conceptual, no sabes lo suficiente
para hacer un plan.

Proxies de Estimacin de Tamao
El punto principal:
Las buenas medidas de tamao son detalladas.
Es generalmente difcil visualizar los detalles de un
producto en una etapa temprana de un proyecto.

Alternativas:
Espera a estimar hasta que tengas los detalles.
Hacer la mejor aproximacin posible.
Identificar un proxy adecuado.
Proxies de Estimacin de Tamao

Un buen proxy debe correlacionarse estrechamente
con los costos de desarrollo.

Un buen proxy debe ser fcil de visualizar en las
primeras etapas de desarrollo.

Tambin debe ser una entidad fsica que pueda ser
medida.
Ejemplo: Costos de Construccin
Problema
El constructor necesita saber el rea del piso (en m
2
)
para estimar el costo de la construccin.
Los clientes por lo general no pueden describir su
necesidad en m
2
.
Por lo general pueden describir el tipo y nmero de
habitaciones que quieren.

Solucin
Usar las habitaciones como proxy de tamao.
Usar datos histricos (tpicos) para traducir de
habitaciones a pies cuadrados.

Ejemplo: Requerimientos del
Cliente
Recmaras: 1 grande, 2 medianos y 1 pequeo
Baos: 1 grande y 2 medianos
Cocina: 1 mediano
Sala: 1 grande
Comedor: 1 mediano
Cuarto de TV: 1 grande
Bodega: 1 mediano
Datos de Construccin Histrica
Pequeo Mediano Grande
Cuartos 90 140 200
Baos 25 60 120
Cocinas 100 130 160
Salas 150 250 400
Comedores 100 140 200
Cuartos de TV 150 240 340
Bodegas 25 50 80
Clculo de Proxy
Recmara 1 grande = 1 x 200 = 200
Recmara 2 medianos = 2 x 140 = 280
Recmara 1 pequeo = 1 x 90 = 90
Bao 1 grande = 1 x 120 = 120
Bao 2 medianos = 2 x 60 = 120
Cocina 1 mediano = 1 x 130 = 130
Sala 1 grande = 1 x 400 = 400
Comedor 1 mediano = 1 x 140 = 140
Cuarto TV 1 grande = 1 x 340 = 340
Bodega 1 mediano = 1 x 50 = 50
Total (pies
2
) = 1870
Ejemplo: El Estimado del Constructor
El primer paso de estimacin le da al constructor los
datos de proxy de tamao de la habitacin.

Sin embargo, hay muchos otros costos en la construccin
de casas.

Los constructores por lo general tienen datos extensos
de tamaos de habitaciones y otros costos de
construccin.

Con los planes iniciales acordados, los constructores
tpicamente requieren de especificaciones de arquitectura
detalladas y estimados antes de cotizar un precio.

Ejemplo de Proxies de Producto
Clases, funciones y procedimientos.

Elementos del producto:
Elementos de bases de datos.
Pantallas, reportes, scripts, archivos.
Captulos de libro.
Clases como Proxies
Correlacin con horas de desarrollo:
Los nmeros de clases se correlacionan razonablemente
bien.
El tamao de la clase se correlaciona estrechamente.
El tamao de la clase se puede estimar usando datos
histricos.
El estimado del tamao del programa se puede calcular
con la relacin histrica entre el total del tamao de la
clase y del programa.

Con una buena correlacin, calcula el tamao del
programa entre la relacin entre clase y tamao de
programa.
Proxies como Clases
Cuando se seleccionan las clases como aplicacin de
entidades, se pueden visualizar en etapas tempranas del
desarrollo.

Las funciones y procedimientos a menudo se pueden
estimar de la misma forma.

Las clases, funciones, procedimientos y sus tamaos se
pueden contar automticamente.
Correlacin de Clase LOC con
Horas de Desarrollo
0
20
40
60
80
100
120
140
160
180
0 200 400 600 800 1000 1200 1400 1600 1800
Class LOC
H
o
u
r
s
Otros Ejemplos de Proxies
Posibles candidatos:
Pantallas, reportes, scripts, archivos.
Captulos de libros.

Si el nmero de tems se correlacionan con el
desarrollo, estimas el nmero de tems.

Con una proxy adecuada, puedes estimar el tamao del
proxy.
Pginas de Captulos Versus
Tiempo
0
5
10
15
20
25
30
35
40
45
0 5 10 15 20
Chapter Pages
W
r
i
t
i
n
g

T
i
m
e
Elementos de Base de Datos
Versus Tiempo
0
5
10
15
20
25
30
0 20 40 60 80 100 120 140 160 180
Actual Size - database elements
A
c
t
u
a
l

T
i
m
e

-

h
o
u
r
s
Estimar con Proxies
Ya que seleccionaste el proxy, debes:
Obtener datos del proxy.
Organizar los datos para usarlos en la estimacin.
Usar los datos para estimar el tamao de proxies en el
nuevo programa.
Combinar los estimados de proxies al estimado de
producto.
Hacer un estimado de recursos.
Hacer un plan de proyecto.

El mtodo de PROBE muestra como puedes realizar
estos pasos.


Organizar los Datos de Proxy
Una forma comn de estimar es:
Dividir el producto planeado en partes.
Relacionar estas partes planeadas a partes que ya hayas
construido.
Usar el tamao de las partes construidas anteriormente
para estimar el tamao de las partes nuevas.

Para hacer esto, necesitas rangos de tamao para tipos
de partes que desarrollas tpicamente.

Para cada tipo de producto, tambin necesitars rangos
para ayudarte a estimar los tamaos de nuevas partes.
Ejemplo de Rangos de Tamao de
Clase C++
Tipo VS S M L VL
Clculo 2.34 5.13 11.25 24.66 54.04
Datos 2.60 4.79 8.84 16.31 30.09
I/O 9.01 12.06 16.15 21.62 28.93
Lgica 7.55 10.98 15.98 23.25 33.83
Set-up 3.88 5.04 6.56 8.53 11.09
Texto 3.75 8.00 17.07 36.41 77.66
LOC por tem
Estimar Tamao de Programa
As como las casas tienen metros cuadrados que no
estn en las habitaciones, los programas tienen cdigo
que no est en las partes del programa.
Includes
Declaraciones.
Otras funciones.

Sin embargo el trabajo de desarrollo, debe producir
este cdigo.

El tamao de este cdigo adicional es usualmente
proporcional al tamao de las partes del programa.
Estimar Tiempo de Desarrollo
Con mtodos de estimacin firmes, el tamao real del
programa estar estrechamente relacionado con el
estimado de tamao del programa.

Las diferencias estarn en el cdigo adicional y errores
de estimacin.

El tiempo real de desarrollo tambin estar
relacionado con el estimado del tamao del programa.

Con mtodos firmes, las diferencias sern en gran
parte por las actividades extras y errores de
estimacin.
Estimados Basados en Estadsticas
El PROBE usa datos histricos, regresiones lineales y
predicciones de intervalos para producir estimados
correctos.

La regresin provee la mejor medida, con mnima
variacin de una lnea de esos datos.

La varianza de los datos es usada para determinar la
probabilidad de un error de estimacin.

Entre mayor sea la varianza, mayor ser la probabilidad
de error.
Regresin Lineal Para Tamao de
Programa
0
100
200
300
400
500
600
700
800
0 100 200 300 400 500
Estimated Class Size
A
c
t
u
a
l

A
d
d
e
d

a
n
d

M
o
d
i
f
i
e
d

S
i
z
e
27 C++ programs
Regresin Lineal Para Tiempo de
Desarrollo
-10
0
10
20
30
40
50
60
70
80
90
0 100 200 300 400 500
Estimated Class Size
A
c
t
u
a
l

D
e
v
e
l
o
p
m
e
n
t

T
i
m
e

-

h
o
u
r
s
27 C++ programs
Estimar Tamao y Tiempo
Para proyectar el tamao de un programa o el tiempo
de desarrollo, se debe encontrar la ecuacin para la
regresin lineal.

Luego hay que usar la formula de regresin para el
tamao y tiempo del proyecto.

E es el estimado de tamao de proxy.

E Time t Developmen
E Size Modified Added
x y
time time
size size
k k
* _
* _ &
*
1 0
1 0
1 0






Estimar Tamao y Tiempo
Calcula los parmetros de regresin
0
y
1
de los
datos de programas previamente programados.
Para x, usa el estimado de tamao de proxy (E).
Para y, usa el real:
Tamao agregado y modificado al estimado de tamao.
Tiempo total de desarrollo para el estimado de tiempo.

Calcula los dos sets de
0
y
1
de parmetros de
regresin: uno para el tamao y el otro para el tiempo.
Calcular el Total del Tamao del
Programa
El total del tamao del programa incluye cdigo agregado,
modificado, borrado, base y reutilizado.

Cuando se modifica un programa ya existente, el cdigo
base es el tamao del programa existente sin modificar.

Cuando se modifican programas, hay que incluir el tamao
sin modificar en el cdigo base no en reusado.

Aunque el cdigo modificado sea una forma de reso, el
PSP solo cuenta el cdigo sin modificar de la biblioteca de
reso como reusado.
Completar el Estimado
Para completar el estimado de tamao, hay que
calcular:
Proyeccin de tamao modificado y agregado con los
parmetros de regresin.
Tamao total del programa incluyendo cdigo agregado,
modificado, borrado, base y reusado.
Nuevo estimado de cdigo reusable que ser
agregado a la biblioteca de reso.

El estimado completo incluye tiempo estimado de
desarrollo calculado con los parmetros de regresin
de tiempo.
Completar el Estimado
Con los estimados de tiempo y tamao, calcular:
El 70% de prediccin de intervalos superiores (UPI) e
inferiores (LPI) para el tamao del programa proyectado.
El 70% de prediccin de intervalos superiores (UPI) e
inferiores (LPI) para el tiempo de desarrollo.

La prediccin de intervalo se cubre a detalle en la siguiente
clase terica.

Los mtodos para estimar con datos limitados se
cubren en el tutorial de PROBE y se discuten ms en la
siguiente clase terica.
Ejemplo Completo
Programa Base(B) 695 LOC
Borrado (D) 0 LOC
Modificado (M) 5 LOC
Adiciones Base(BA) 0 LOC
Partes agregadas(PA) 115+197+49 = 361LOC
Partes reusadas(R) 169 LOC
Tamao Estimado E = BA + PA + M = 366 LOC
Empezando con E = 366, usa los parmetros de
regresin para calcular el tamao proyectado (P).


0Size
= 62 and
1Size
= 1.3

Tamao proyectado P = 62 + 1.3 * 366 = 538 LOC

Tamao Total T = 538 + 695 - 5 + 169 = 1397 LOC

Total estimado con nuevo reusado = 49 LOC *
Ejemplo Completo
Nota: el tamao modificado est restado para que no se incluya doble.
Ejemplo Completo
Empezando con E = 366, usa los parmetros de
regresin de tiempo para calcular el tiempo de
desarrollo.
E Time t Developmen
time time
* _
1 0

0Time
= 108 and
1Time
= 2.95

Tiempo de desarrollo = 108 + 2.95 * 366 = 1186 min.
Mensajes Para Recordar
Los estimados exactos te ayudarn a hacer mejores
planes de desarrollo.

La habilidad de estimar mejora con la prctica.

Un proceso definido y medido provee una base
respetable para la mejora.

Para hacer estimados exactos, deben usarse datos
histricos y mtodos comprobados.

El mtodo PROBE te demuestra cmo hacer esto.

Vous aimerez peut-être aussi