estimacionproxies

56
DESARROLLO SOFTWARE PERSONAL E STIMACIÓN DE T AMAÑO -P ARTE 1

Upload: ernesto-rios

Post on 30-Jun-2015

872 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EstimacionProxies

DESARROLLO SOFTWARE

PERSONAL

ESTIMACIÓN DE TAMAÑO - PARTE 1

Page 2: EstimacionProxies

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

Page 3: EstimacionProxies

¿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

Page 4: EstimacionProxies

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

Page 5: EstimacionProxies

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.

Page 6: EstimacionProxies

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.

Page 7: EstimacionProxies

-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

Page 8: EstimacionProxies

-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

Page 9: EstimacionProxies

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.

Page 10: EstimacionProxies

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

Page 11: EstimacionProxies

ENFOQUES PARA ESTIMAR

Lógica Fuzzy

Puntos Función

Componente Estándar

Delphi

Page 12: EstimacionProxies

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.

Page 13: EstimacionProxies

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.

Page 14: EstimacionProxies

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

Page 15: EstimacionProxies

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

Page 16: EstimacionProxies

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

Page 17: EstimacionProxies

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.

Page 18: EstimacionProxies

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.

Page 19: EstimacionProxies

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.

Page 20: EstimacionProxies

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.

Page 21: EstimacionProxies

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.

Page 22: EstimacionProxies

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%

Page 23: EstimacionProxies

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.

Page 24: EstimacionProxies

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.

Page 25: EstimacionProxies

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

Page 26: EstimacionProxies

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

Page 27: EstimacionProxies

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.

Page 28: EstimacionProxies

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.

Page 29: EstimacionProxies

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.

Page 30: EstimacionProxies

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.

Page 31: EstimacionProxies

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

Page 32: EstimacionProxies

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.

Page 33: EstimacionProxies

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

Page 34: EstimacionProxies

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

Page 35: EstimacionProxies

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

Page 36: EstimacionProxies

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.

Page 37: EstimacionProxies

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

Page 38: EstimacionProxies

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

Page 39: EstimacionProxies

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.

Page 40: EstimacionProxies

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

Page 41: EstimacionProxies

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

Page 42: EstimacionProxies

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.

Page 43: EstimacionProxies

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.

Page 44: EstimacionProxies

EJEMPLO DE PROXIES

Puntos Función

Objetos

Elementos del Producto

componentes

pantallas, informes, scripts, ficheros

capítulos de libro

Page 45: EstimacionProxies

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.

Page 46: EstimacionProxies

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.

Page 47: EstimacionProxies

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.

Page 48: EstimacionProxies

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.

Page 49: EstimacionProxies

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.

Page 50: EstimacionProxies

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

Page 51: EstimacionProxies

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.

Page 52: EstimacionProxies

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

)

Page 53: EstimacionProxies

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

Page 54: EstimacionProxies

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.

Page 55: EstimacionProxies

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.

Page 56: EstimacionProxies

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.