estimacionproxies
TRANSCRIPT
DESARROLLO SOFTWARE
PERSONAL
ESTIMACIÓN DE TAMAÑO - PARTE 1
ESTIMACIÓN DE TAMAÑO -
PARTE 1
¿Por qué estimar el tamaño?
Trasfondo de la estimación
Principios de la estimación de tamaño
Enfoques de Estimación
Proxies de estimación
¿POR QUÉ ESTIMAR
TAMAÑOS?
Las estimaciones de tamaño permiten hacer mejores planes.
al ajustar mejor el tamaño del trabajo
al dividir el trabajo en elementos separables
Las estimaciones de trabajos te ayudan a seguir el progreso.
puedes juzgar cuando cambia el alcance del trabajo
puedes medir mejor el trabajo
Valor para este curso
aprender los métodos de estimación
formar en hábitos para estimar
TRASFONDO DE LA
ESTIMACIÓN
Los modelos de estimación en otros campos
tienen una amplia base histórica
de uso amplio
generan datos de planificación detallados
requieren del tamaño de la estimación como entrada
Experiencia estimación de tamaños software
errores de +100% son algo normal
solo algunos pocos desarrolladores estiman
y un grupo mas reducido usa métodos metódicos
PRINCIPIOS DE LA
ESTIMACIÓN DE TAMAÑO - 1
Estimar es un proceso con incertidumbre.
Nadie conoce cual será el tamaño final.
Al principio al estimar, lo conocido es mínimo.
La estimación puede estar sesgada por el negocio y por otras presiones.
Estimar es un proceso de aprendizaje intuitivo.
La habilidad mejora con la experiencia y los datos.
Algunas personas estiman mejor que otras.
PRINCIPIOS DE LA
ESTIMACIÓN DE TAMAÑO - 2
Estimar es una habilidad.
La mejora será gradual.
Puede que nunca alcances a ser excelente.
El objetivo, sin embargo, es llegar a ser consistente.
Entonces comprenderás la variabilidad de tus estimaciones.
Buscaras un equilibrio entre subestimar y sobreestimar.
-200
-100
0
100
200
300
400
500
1 2 3 4 5 6 7 8 9 10
% E
rro
r
Programa Numero
Rango Error Estimación de tamaño
MM
-100
0
100
200
300
400
500
600
1 2 3 4 5 6 7 8 9 10
% E
stim
ate
Err
or
Program Number
Time Estimating Accuracy - % Error
MaCla
PRINCIPIOS DE LA
ESTIMACIÓN DE TAMAÑO - 3
Las principales ventajas de usar un método de estimación definido son las siguientes:
Has conocido prácticas que tu puedes trabajar para mejorar.
Proporciona un marco de trabajo para recolectar los datos de estimación.
Al usar métodos ordenados y datos históricos, tus estimaciones serán mas consistentes.
EL MARCO DE TRABAJO PARA LA
ESTIMACIÓN DE TAMAÑO
Entrega
Producto
Informes de
Seguimiento
Definir
Necesidades
Producir
Diseño
Conceptual
Estimar
Tamaño
Estimar
Recursos
Producir
Calendario
Desarrollar
Producto
Datos Tamaño,
Recursos,
Plazos
Proceso
Análisis
Recursos
Disponibles
Base de datos
de tamaño
Base datos de
productividad
ENFOQUES PARA ESTIMAR
Lógica Fuzzy
Puntos Función
Componente Estándar
Delphi
ESTIMACIÓN TAMAÑO CON
LÓGICA FUZZY - 1
Recoger datos de tamaño de programas desarrollados previamente.
Subdividir esos datos en categorías de tamaño:
muy grande, grande, medio, pequeño, muy pequeño
establecer rangos de tamaño
incluir todos productos existentes y esperados
Subdividir cada rango en subcategorías.
ESTIMACIÓN TAMAÑO CON
LÓGICA FUZZY - 2
Asignar los datos disponibles a las categorías.
Establecer subcategoría dentro del rango de tamaño.
Cuando se estima un nuevo programa, juzgar en que categoría y subcategoría encajaría.
UN EJEMPLO DE LÓGICA
FUZZY - 1
Se tiene datos históricos sobre cinco programas:
una utilidad de ficheros de 1,844 LOC
un programa de gestión de ficheros de 5,834 LOC
un programa de datos de personal 6,845 LOC
un paquete de generación de informes de 18,386 LOC
un programa de gestión de inventarios de 25,943 LOC
UN EJEMPLO DE LÓGICA
FUZZY - 2
Entonces se establecen los cinco rangos de tamaño:
log(1844) = 3.266
log(25,943) = 4.414
la diferencia es 1.148
¼ de esta diferencia es 0.287
El espaciamientos entre los cinco rangos es de 0.287
los límites de estos rangos están a 0.1435 por encima y debajo del punto medio de cada rango
UN EJEMPLO DE LÓGICA
FUZZY - 3
Los cinco rangos de tamaño son
muy pequeño - 1,325 a 2,566: utilidad de ficheros
pequeño - 2,566 a 4,970: sin programas
medio - 4,970 a 9,626: gestión de ficheros y programa de personal
grande - 9,626 a 18,641: generador de informes
muy grande - 18,641 a 36,104: gestión de inventarios
UN EJEMPLO DE LÓGICA
FUZZY - 4
Tu nuevo programa tiene los siguientes requisitos:
Analizar el rendimiento de marketing por línea de producto.
Proyectar las potenciales ventas en cada categoría de producto.
Asignar estas ventas a zonas de marketing y temporadas.
Producir un informe mensual de las proyecciones y de los resultados actuales.
UN EJEMPLO DE LÓGICA
FUZZY - 5
Comparando el nuevo programa con los datos históricos, tu puedes hacer los siguientes apreciaciones:
Es un programa mas complejo que la gestión de ficheros o el programa de personal.
No es tan complejo como el programa de gestión de inventarios.
Parece tener mas funciones que el paquete de informes.
Puedes concluir que el nuevo programa se encontraría en la parte baja del rango “muy grande” o de 18 a 25 KLOC.
LÓGICA FUZZY - RESUMEN
Para hacer una estimación con lógica fuzzy:
1. Divide los datos históricos de tamaño de producto en rangos de tamaño.
2. Compara el producto previsto con estos productos anteriores.
3. Basado en esta comparación, selecciona el tamaño que parecería mas apropiado para el nuevo producto.
ESTIMACIÓN CON LÓGICA
FUZZY - VENTAJAS
La lógica Fuzzy tiene las siguientes ventajas.
Basada en datos históricos relevantes.
Es fácil de usar.
No requiere de herramientas o formación especiales.
Proporciona de manera razonable buenas estimaciones, cuando el trabajo se parece a experiencias anteriores.
ESTIMACIÓN CON LÓGICA
FUZZY - DESVENTAJAS
Las desventajas de la lógica fuzzy son:
Requiere muchos datos.
Los estimadores deben estar familiarizados con los programas anteriormente desarrollados.
Solo proporciona una estimación cruda del tamaño.
No es útil para nuevos tipos de programa.
No es útil para programas mucho mas grandes o pequeños que los datos históricos.
ESTIMACIÓN PUNTOS
FUNCIÓN - 1
Un punto función es una unidad arbitraria
basado en funciones de la aplicación (entradas, salidas, ficheros, consultas)
Según la escala de simple, media, compleja
De acuerdo complejidad del trabajo, se ajusta un +/- 35%
ESTIMACIÓN CON PUNTOS
FUNCIÓN - 2
Procedimiento
Determinar la cantidad de cada función tipo en la aplicación.
Juzgar la escala y la complejidad de cada función.
Calcular el total de puntos función.
Usar datos históricos sobre coste de desarrollo por punto función para tener estimaciones.
Multiplica los puntos función por el factor de tiempo para obtener la estimación.
UN EJEMPLO DE PUNTOS
FUNCIÓN - 1
Tu nuevo programa tiene los siguientes requisitos:
Análisis del rendimiento de marketing por línea de producto.
Proyectar las ventas posibles en cada categoría de producto.
Asigna las ventas a las regiones de venta y periodos de tiempo.
Produce un informe mensual de esas proyecciones y de los resultados actuales.
UN EJEMPLO DE PUNTOS
FUNCIÓN - 2
Tu primero estima las cantidades de los puntos función sin ajustar, de esta manera:
12 entradas: 12 x 4 = 48
7 salidas: 7 x 5 = 35
0 consultas: 0 x 4 = 0
3 ficheros lógicos: 3 x 10 = 30
2 interfaces: 2 x 7 = 14
total puntos función sin ajustar: 127
UN EJEMPLO DE PUNTOS
FUNCIÓN - 3
Después ajustas los factores de influencia:
Comunicación de datos: 4
Entrada datos on-line: 4
Complejidad de procesamiento: 3
Facilidad operacional: 5
Facilitad de cambio: 5
total factores influencia: 21
Multiplicador por Complejidad = 0.65+21x0.01=0.86
UN EJEMPLO DE PUNTOS
FUNCIÓN - 4
El total de puntos función es: 127x0.86=109.22
Basado en los datos históricos de horas por puntos función, se puede calcular el tiempo de desarrollo del proyecto.
VENTAJAS DE PUNTOS
FUNCIÓN
Las ventajas de puntos función son las siguientes:
Se pueden usar en las etapas iniciales de la fase de requisitos.
Son independientes de los lenguajes de programación, diseño del producto o estilo de programación.
Existe una gran cantidad de datos históricos.
Es un método muy bien documentado.
Existe un grupo de usuarios activos.
DESVENTAJAS DE PUNTOS
FUNCIÓN
Las desventajas de puntos función son las siguientes:
Tu no puedes contar directamente el contenido de un producto ya existente.
Sin datos históricos, es difícil mejorar las habilidades de estimación.
Los puntos función no reflejan diferencias entre lenguajes, diseño o estilo.
Los puntos función están diseñados para estimar aplicaciones comerciales de proceso de datos.
MIDIENDO COMPONENTES
ESTÁNDAR - 1
Establecer en los niveles principales del producto.
Componentes, módulos, pantallas, etc.
Determinar los tamaños típicos de cada nivel.
Para un producto nuevo
Determinar el nivel de componentes en el cual la estimación es practica.
Estimar cuantos de cada componente podrá disponer el producto.
Determinar el número máximo y mínimo posible.
MIDIENDO COMPONENTES
ESTÁNDAR - 2
Calcular el tamaño como el:
numero de componentes de cada tipo por el tamaño típico de cada tipo
el valor total da el tamaño
Calcular para el número máximo, mínimo, y el probable de componentes.
Calcular el tamaño como
{máximo+4*(probable)+mínimo}/6
EJEMPLO DE COMPONENTES
ESTÁNDAR - 1
Tu nuevo programa tiene los siguientes requisitos:
Analiza el rendimiento marketing por línea de producto.
Proyecta las ventas posibles por cada categoría de producto.
Asigna esas ventas por áreas y temporada de venta.
Produce un informe mensual de esas previsiones y de los resultados actualizados.
EJEMPLO DE COMPONENTES
ESTÁNDAR - 2
Tu tienes los siguientes datos históricos de componentes estándar:
entrada de datos: 1,108 LOC
salida: 675 LOC
ficheros: 1,585 LOC
control: 2,550 LOC
cálculos: 475 LOC
EJEMPLO DE COMPONENTES
ESTÁNDAR - 3
Primero, estima el número mínimo, probable, máximo de componentes similares en el nuevo producto:
entrada datos: 1, 4, 7
salida: 1, 3, 5
ficheros: 2, 4, 8
control: 1, 2, 3
cálculo: 1, 3, 7
EJEMPLO DE COMPONENTES
ESTÁNDAR - 4
Segundo, calcula el tamaño mínimo, probable, y máximo:
entrada datos: 1108, 4432, 7756
salida: 675, 2025, 3375
ficheros: 3170, 6340, 12680
control: 2550, 5100, 7650
cálculo: 475, 1425, 3325
EJEMPLO DE COMPONENTES
ESTÁNDAR - 5
Tercero, calcula el número de LOC mínimo, probable, y máximo:
mínimo: 7,978
probable: 13,616
máximo: 34,786
La estimación de tamaño es
LOC = (7978+4*13616+34786)/6 = 16,205 LOC
La desviación estándar (34786-7978)/6=4468.
El rango de estimación es: de 11,737 a 20,673 LOC.
MEDICIÓN COMPONENTES
ESTÁNDAR – VENTAJAS E
DESVENTAJAS
Ventajas
basado en datos históricos relevantes
fácil de usar
no requiere de herramientas especiales o entrenamiento
proporciona un robusto rango de estimación
Desventajas
debe usarse muchos componentes al principios del proyecto
datos limitados sobre grandes componentes
ESTIMACIÓN DELPHI
Utiliza varios estimadores
Cada uno realiza una estimación independiente.
Cada uno envía la estimación al coordinador.
Coordinador
calcula la estimación media
anota en una tarjeta: media, otras estimaciones (anónimas), y la anterior estimación
Cuando la estimación se estabiliza
la media es la estimación
rango es el rango de la estimación original
EJEMPLO DELPHI - 1
Se pregunta a tres estimadores por el producto.
Sus estimaciones son
A - 13,800 LOC
B - 15,700 LOC
C - 21,000 LOC
El coordinador entonces
calcula la estimación media como 16,833 LOC
devuelve las estimaciones originales con la media, a los estimadores.
EJEMPLO DELPHI - 2
Los estimadores se reúnen y discuten las estimaciones.
Sus segundas estimaciones son
A - 18,500 LOC
B - 19,500 LOC
C - 20,000 LOC
El coordinador entonces
calcula la estimación media 19,333 LOC
pregunta a los estimadores si están de acuerdo con esta estimación
ESTIMACIÓN DELPHI - 3
Ventajas
puede producir resultados muy precisos
utiliza el conocimiento de la organización
puede trabajar para cualquier tamaño
Desventajas
se basa sobre unos pocos expertos
consume tiempo
esta sujeta a sesgos
PROXIES DE ESTIMACIÓN DE
TAMAÑOS - 1
El aspecto básico
Las buenas medidas de tamaño son las detalladas.
Estimadores iniciales difícilmente pueden pensar en detalle.
Alternativas
Esperar a estimar hasta que tengas detalle.
Hacer tus mejores estimaciones.
Identificar un proxy ajustable.
PROXIES DE ESTIMACIÓN DE
TAMAÑOS - 2
Un buen proxy debe correlacionar los costes de desarrollo.
Un buen proxy podría ser fácil para ser presentado al comienzo del desarrollo.
Debería también ser una entidad física que sea contable.
EJEMPLO DE PROXIES
Puntos Función
Objetos
Elementos del Producto
componentes
pantallas, informes, scripts, ficheros
capítulos de libro
PUNTOS FUNCIÓN COMO
PROXIES - 1
Los datos muestran que la cuenta de puntos función correlacionan bien con el tiempo de desarrollo.
Los puntos función pueden ser presentados al principio del desarrollo.
Para usar los puntos función de modo apropiado, se necesitan estimadores bien entrenados.
PUNTOS FUNCIÓN COMO
PROXIES - 2
Los puntos función no pueden ser contados de un modo inmediato,
Los factores de conversión están disponibles para contar LOC y calcular los puntos función a partir del valor de LOC.
El grupo de usuarios de puntos función (IFPUG) está continuamente refinando el método.
COMPONENTES ESTÁNDAR
COMO PROXIES
La correlación del número de componentes con el desarrollo depende de los componentes que se trate.
Se necesita una gran cantidad de datos de desarrollo.
El recuento de componentes es difícil de prever al comienzo del desarrollo.
Los componentes se pueden contar de manera automática.
OBJETOS COMO PROXIES - 1
La correlación con las horas de desarrollo
El número de objetos correlaciona de manera razonablemente bien.
Las LOC de Objetos correlacionan de manera fuerte.
Las LOC de los Objetos pueden estimarse usando método de estimación de componente estándar.
Entonces calcula la estimación de LOC a partir de la relación histórica entre LOC de objetos y LOC de programas.
OBJETOS COMO PROXIES - 2
Cuando los objetos se eligen como entidades de la aplicación, entonces pueden previstos al principio del desarrollo.
Las funciones y procedimientos pueden ser estimados normalmente de la misma forma.
Los objetos, funciones, procedimientos y sus LOC puede ser contados de manera automática.
CORRELACIÓN DE LOC DE OBJETOS
CON HORAS DE DESARROLLO
0
20
40
60
80
100
120
140
160
180
0 200 400 600 800 1000 1200 1400 1600 1800
Object LOC
Ho
urs
EJEMPLO PROXIES - OTROS
Posibles candidatos
pantallas, informes, scripts, ficheros
capítulos de libros
Si el número de elementos correlaciona con el desarrollo, entonces estima el número de elementos.
Con la medida de tamaño proxy ajustado, podrás estimar el tamaño.
PÁGINAS DE CAPITULO VS.
TIEMPO
0
20
40
60
80
100
120
0 5 10 15 20 25 30 35 40 45
Pages
Tim
e (
ho
urs
)
SIGUIENTE CLASE DE
ESTIMACIÓN DE TAMAÑO – 2ª
PARTE
El método de estimación PROBE
Consideraciones estadísticas de estimación
Un ejemplo de estimación de tamaño
Consideraciones en la estimación
PRÁCTICA PROPUESTA #3 - 1
Leer Capítulo 5
Con el PSP0.1, escribir el programa 2A:
Generar el recuento total de LOC del programa.
PRÁCTICA PROPUESTA #3 - 2
Utilizar el programa 2A para contar los programas 1A, 2A, e informar de los resultados en el informe de pruebas.
Producir un informe sobre los tiempos de corrección de defectos para los programas 1A,2A y
Ver las especificaciones del programa y de la práctica propuesta en los Apéndices C y D.
IMPORTANTE RECORDAR DE
LA LECCIÓN #3
1. Estimaciones de tamaño exactas te ayudarán a hacer mejores planes.
2. La estimación de tamaño es una habilidad que mejora con la práctica.
3. Un proceso medido y definido te proporciona una base repetible para la mejora.
4. Hay muchas maneras de realizar estimaciones de tamaños.