Sie sind auf Seite 1von 63

ESTIMACIN DE

PROYECTOS DE
SOFTWARE
Escuela de Ingeniera de Sistemas y Computacin
Desarrollo de Software II

PLANEACIN DE UN PROYECTO
DE SOFTWARE ACTIVIDADES Establecer el mbito del proyecto
Determinar la factibilidad
Analizar los riesgos
Definir los recursos requeridos
Determinar los recursos humanos
Definir los recursos de software reutilizables
Identificar los recursos del entorno

PLANEACIN DE UN PROYECTO
DE SOFTWARE ACTIVIDADES Estimar costo y esfuerzo
Descomponer el problema
Desarrollar dos o ms estimaciones empleando tamao,
puntos de funcin, tareas de proceso
Reconciliar las estimaciones
Desarrollar el plan del proyecto
Establecer un conjunto de tareas significativas
Usar herramientas de planificacin para realizar un
cronograma
Definir mecanismos de seguimiento del programa de
trabajo

ESTIMACIN
DEFINICIN:
Intenta determinar cunto dinero, esfuerzo, recursos y
tiempo tomar construir un sistema o producto especfico
basado en software
Se quiere conocer el costo de desarrollar un sistema
(tiempo-persona, dinero, etc.)
Se quiere conocer el costo pronto
Una vez conocido el esfuerzo, hay que asignarlo a las
tareas y personas
La estimacin del costo de desarrollo determinaran la
viabilidad del mismo y su posterior precio.

ESTIMACIN
Siempre que se realizan estimaciones se observa el futuro y se
acepta automticamente algn grado de incertidumbre
La estimacin coloca los cimientos para las dems actividades
de planificacin del proyecto, y sta proporciona la ruta de
ingeniera del software exitosa
La estimacin de recursos, costo y programa de trabajo para una
tarea de ingeniera de software requiere:
Experiencia
Acceso a buena informacin histrica (mtricas)
El valor para realizar predicciones cuantitativas cuando
existe informacin cualitativa

RECURSOS

ESTIMACIN DE UN PROYECTO
El mbito del proyecto debe ser
entendido
Elaborar una descomposicin si
es necesario
Las mtricas histricas ayudan
Usar al menos dos tcnicas
La incertidumbre es inherente al
proceso

ESTIMACIN DE UN PROYECTO

La estimacin del costo y el


esfuerzo nunca ser una ciencia
exacta. Demasiadas variables
humanas, tcnicas, ambientales,
polticas pueden afectar el costo
final del software y el esfuerzo
aplicado a desarrollarlo.
Pero se puede transformar en un prctica que
proporciona estimaciones con un riesgo aceptable

ESTIMACIN DE UN PROYECTO
Para lograr estimaciones confiables
de costo y esfuerzo se tienen varias
opciones:
Demorar la estimacin lo mximo
posible
Basar las estimaciones en proyectos similares
Emplear tcnicas convencionales:
Descomposicin de tareas y estimacin del esfuerzo
Tamao (Ej: puntos de funcin estimados)
Emplear uno o ms modelos empricos
Usar herramientas automatizadas

TAMAO DEL SOFTWARE


Cmo se mide el tamao del software que se planea
construir?
El tamao se refiere a un resultado cuantificable del proyecto
de software.
El tamao se puede medir en lneas de cdigo (LDC) o se
representa como puntos de funcin (PF)

PRECISIN DE LA ESTIMACIN
Se manifiesta en varios factores:
El grado de precisin con que se estim el tamao del
producto a construir.
La habilidad para trasladar el tamao estimado en esfuerzo
humano, calendarios de tiempo y pesos.
El grado en el cual el plan del proyecto refleja las
habilidades del equipo de software.
La estabilidad de los requerimientos del producto y el
ambiente que soporta el esfuerzo de ingeniera de software.

MTODOS CONVENCIONALES
Dentro de los mtodos convencionales se encuentran.
Estimacin basada en LDC
Estimacin basada en PF
Son indicadores del esfuerzo y el costo de desarrollo de software.
Requieren establecer una lnea de referencia histrica de informacin
Las LDC y los PF se utilizan de dos formas al estimar el proyecto de
software:
1. Como una variable de la estimacin para el tamao de cada
elemento del software
1. Como mtricas de lnea base recolectadas a partir de proyectos
previos para desarrollar proyecciones de costo y esfuerzo en
conjuncin con variables de estimacin

MTODOS CONVENCIONALES
Las tcnicas de estimacin LDC y PF difieren en cuanto al
detalle requerido para descomposicin y el objetivo de la
particin.
Al emplear LDC como variable de estimacin la
descomposicin es absolutamente esencial. Mientras mayor
sea el grado de particin es ms probable que se desarrolle
un estimacin razonablemente precisa de LDC
En las estimaciones de PF la descomposicin funciona de
manera diferente. Se estima cada una de las cinco
caractersticas de dominio de informacin, as como los 14
valores de ajuste de complejidad

MTODOS CONVENCIONALES
Sin importar la variable de estimacin que se utilice, el
planificador del proyecto comienza estimando una gama de
valores para cada funcin o valor del dominio de informacin.
Al emplear datos histricos o (cuando lo dems falla) intuicin,
el planificador estima un valor de tamao optimista, ms
probable, y pesimista para cada funcin o cuenta para cada
valor de dominio de la informacin
Funcin

Optimista

Probable

S=( S opt +4S m +S pes )/6

Pesimista

Estimado

Valor esperado

Estimacin basada en Lneas de


cdigo
Ejemplo:
Desarrollo de una aplicacin de software de diseo asistido por
computador (CAD) destinado a componentes mecnicos.

El software se ejecutar en una estacin de trabajo de


ingeniera y debe tener interfaz con varios perifricos que
incluyen ratn, digitalizador, monitor de color de alta resolucin
e impresora lser.

Ejemplo de estimacin basada en LDC


Descripcin preliminar del mbito del software:
El software CAD mecnico aceptar del ingeniero datos geomtricos de
dos y tres dimensiones.
El ing. interactuar y controlar el sistema CAD a travs de una interfaz
del usuario que exhibir caractersticas de buen diseo de interfaz
humano mquina.
Todos los datos geomtricos y otra informacin de soporte se
conservarn en una base de datos.
Se desarrollarn mdulos de anlisis de diseo para producir la salida
requerida, la cual se desplegar en una diversidad de dispositivos
grficos.
El software se disear para controlar e interactuar con dispositivos
perifricos que incluyen ratn, digitalizador, impresora lser, ploter.

Ejemplo de estimacin basada en


LDC
Se identifican las funciones de software. En cada funcin se desarrolla un rango
de estimaciones LDC.El rango de estimaciones LDC para la funcin AG3D es :
Optimista, 4600 LDC; ms probable, 6900LDC; y pesimista, 8600LDC. Al aplicar la
ecuacin de valor esperado da como resultado 6800 LDC estimadas para esa
funcin

S=( S opt +4S m +S pes )/6

Valor esperado para la


estimacin en tamao (S)

Ejemplo de estimacin basada en


LDC
Una revisin de los datos histricos indica que el promedio
organizacional de productividad para sistemas de este tipo es de
620 LDC/pm (persona/mes).
Tarifa laboral = us$ 8000 por mes, el costo de una lnea de cdigo
es aproximadamente us$ 13 ( 8000/620)
Con base en la estimacin LDC y los datos histricos de
productividad, el costo total estimado del proyecto es de 431000
dlares y el esfuerzo estimado es de 54 personas-mes
(33200 *13) = 431600
(431600 / (620*13)) 54 Personas / mes

Ejemplo de estimacin basada en


LDC
Una revisin de los datos histricos indica que el promedio
organizacional de productividad para sistemas de este tipo es de
620 LDC/pm (persona/mes).
(En este caso, la productividad es una mtrica muy importante )

Tarifa laboral = us$ 8000 por mes, el costo de una lnea de cdigo es
aproximadamente us$ 13 ( 8000/620)
Con base en la estimacin LDC y los datos histricos de productividad, el costo total
estimado del proyecto es de 431000 dlares y el esfuerzo estimado es de 54
personas-mes

(33200 *13) = 431600


(431600 / (620*13)) 54 Personas / mes

Estimacin basada en puntos


funcionales
Mtricas basadas en la funcin.
Propuestas por Albretch en 1979 como una manera efectiva de
medir la funcionalidad que entrega un sistema empleando datos
histricos. Se usa para:
Estimar el costo o el esfuerzo requerido para disear, codificar y
probar el software.
Predecir el nmero de errores que se encontrarn en una prueba
Pronosticar el nmero de componentes, lneas de cdigo
proyectadas, o ambas en el sistema implementado.

Estimacin basada en puntos


funcionales
Conceptos bsicos
a) Elementos de tipo de datos (Data Element Type)
- Campos de usuario que se comportan dinmicamente
- Controles: Cosas que invocan acciones

Estimacin basada en puntos


funcionales
Conceptos bsicos
a)Elementos de tipo de datos (Data Element Type)

DETs

Estimacin basada en puntos


funcionales
Conceptos bsicos
a)Elementos de tipo de registro (Record Element Type)

Subgrupo de elementos de datos en un archivo lgico interno o un archivo de


interfaz externa

Para bases de datos relaciones, una tabla corresponde a un elemento de tipo de


registro

Estimacin basada en puntos


funcionales
Conceptos bsicos
a)Elementos de tipo de registro (Record Element Type)
Documento
Libro
Libro

1 RET

Articulo

Articulo

2 RET

Ejemplo de estimacin basado en


PF
El clculo del punto de funcin se basa en caractersticas del
dominio de informacin y la complejidad del software
Valores del dominio de la informacin:

Nmero de Entradas Externas (EE)


Nmero de salidas externas (SE)

Nmero de Consultas Externas (CE)


Nmero de archivos lgicos internos (ALI)

Nmero de archivos externos de interfaz (AEI)

Estimacin basado en PF
Frontera del sistema
Entradas
externas

Salidas
externas

Archivos
lgicos
internos

Archivos de
interfaz
externa

Consultas
externas

Estimacin basada en PF
Valores del dominio de la informacin:

Entradas Externas
Procesos elementales que hacen llegar datos desde el exterior
(usuario, otra aplicacin)
Slo desde el exterior hacia el interior
Siempre se actualiza un ALI
Ej:
Pantallas para la entrada de datos
Lecturas de cdigo de barras, voz, etc.
Una misma Interfaz se puede contar varias veces si est asociado
a una lgica distinta

Estimacin basada en PF
Entradas Externas

Bajo =

Archivos
referenciados

Elementos de datos
1-4

5-15

> 15

Bajo

Bajo

Promedio

Bajo

Promedio

Alto

>2

Promedio

Alto

Alto

3 puntos de funcin

Promedio = 4 puntos de funcin


Alto =

6 puntos de funcin

Estimacin basada en PF
Entradas Externas

Bajo =

Archivos
referenciados

Elementos de datos
1-4

5-15

> 15

Bajo

Bajo

Promedio

Bajo

Promedio

Alto

>2

Promedio

Alto

Alto

3 puntos de funcin

Promedio = 4 puntos de funcin


Alto =

6 puntos de funcin

Ejemplo de estimacin basado en


PF
Valores del dominio de la informacin:
Salidas Externas
Procesos elementales que hacen llegar datos al exterior (usuario,
otra aplicacin)
Slo desde el interior al exterior
Generan datos derivados
Ej:
Reportes
Listados
Salidas especiales (grabacin de cintas, etc)
Transferencias de datos a otras aplicaciones
Algoritmos, clculos

Estimacin basada en PF
Salidas Externas (Generan datos derivados)

Bajo =

Archivos
referenciados

Elementos de datos
1-5

6-19

> 19

Bajo

Bajo

Promedio

2-3

Bajo

Promedio

Alto

>3

Promedio

Alto

Alto

4 puntos de funcin

Promedio = 5 puntos de funcin


Alto =

7 puntos de funcin

Estimacin basada en PF
Salidas Externas (Generan datos derivados)

Bajo =

Archivos
referenciados

Elementos de datos
1-5

6-19

> 19

Bajo

Bajo

Promedio

2-3

Bajo

Promedio

Alto

>3

Promedio

Alto

Alto

4 puntos de funcin

Promedio = 5 puntos de funcin


Alto =

7 puntos de funcin

Ejemplo de estimacin basado en


PF
Valores del dominio de la informacin:

Consultas Externas
Procesos elementales formados por una combinacin de
entrada y salida
No genera datos derivados
No modifica ningn Fichero Lgico Interno
Ej: Obtener estudiantes matriculados en DS2

Estimacin basada en PF
Consultas Externas

Bajo =

Archivos
referenciados

Elementos de datos
1-5

6-19

> 19

Bajo

Bajo

Promedio

2-3

Bajo

Promedio

Alto

>3

Promedio

Alto

Alto

3 puntos de funcin

Promedio = 4 puntos de funcin


Alto =

6 puntos de funcin

Estimacin basada en PF
Consultas Externas

Bajo =

Archivos
referenciados

Elementos de datos
1-5

6-19

> 19

Bajo

Bajo

Promedio

2-3

Bajo

Promedio

Alto

>3

Promedio

Alto

Alto

3 puntos de funcin

Promedio = 4 puntos de funcin


Alto =

6 puntos de funcin

Ejemplo de estimacin basado en


PF
Valores del dominio de la informacin:

Archivos Lgicos Internos


Grupo de datos relacionados identificados por el usuario y
mantenidos por el sistema
Ej: Alumno, Asignatura, Matrcula,
El grupo de datos es mantenido mediante un proceso
elemental
La agrupacin de datos no ha sido contada como un Interfaz
externa

Estimacin basada en PF
Archivos lgicos internos
Elementos de registro

Bajo =

Elementos de datos
1-19

20-50

> 50

Bajo

Bajo

Promedio

2-5

Bajo

Promedio

Alto

>5

Promedio

Alto

Alto

7 puntos de funcin

Promedio = 10 puntos de funcin


Alto =

15 puntos de funcin

Estimacin basada en PF
Archivos lgicos internos
Elementos de registro

Bajo =

Elementos de datos
1-19

20-50

> 50

Bajo

Bajo

Promedio

2-5

Bajo

Promedio

Alto

>5

Promedio

Alto

Alto

7 puntos de funcin

Promedio = 10 puntos de funcin


Alto =

15 puntos de funcin

Ejemplo de estimacin basado en


PF
Valores del dominio de la informacin:

Archivos de Interfaz Externos


Grupo de datos relacionados identificados por el usuario y
NO mantenidos por el sistema
Archivos generados y mantenidos por otra aplicacin
Es un Archivo Lgico Interno de la otra aplicacin
La agrupacin de datos no ha sido contada como un Archivo
Lgico Interno

Estimacin basada en PF
Archivos de interfaz externos
Elementos de registro

Bajo =

Elementos de datos
1-19

20-50

> 50

Bajo

Bajo

Promedio

2-5

Bajo

Promedio

Alto

>5

Promedio

Alto

Alto

5 puntos de funcin

Promedio = 7 puntos de funcin


Alto =

10 puntos de funcin

Ejemplo de estimacin basado en


PF
Una vez se han recolectado los datos, se completa la siguiente
tabla y se asocia un valor de complejidad con cada conteo
Valor del dominio de
informacin

Conteo

Factor de Ponderacin
Simple Promedio Complejo

Entradas externas (EE)

Salidas externas (SE)


Consultas externas (CE)

X
X

4
3

5
4

7
6

=
=

Archivos de lgica interna (ALI)


Archivos de interfaz externa (AIE)

X
X

7
5

10
7

15 =
10 =

Total de conteos

Plantilla estimacin basado en PF


Una vez se han recolectado los datos, se completa la siguiente tabla y se
asocia un valor de complejidad con cada conteo
Componente

Bajo

Medio

Alto

E. Externas

e*3=

e* 4=

e *5 =

S. Externas

s*4=

s*5=

s*7=

C. Externas

ce * 3 =

ce * 4 =

ce * 6 =

Archivos
Lgicos
Internos

ali * 7 =

ali * 10 =

ali * 15 =

Archivos de I.
Externa

aie * 5 =

aie * 5 =

aie * 5 =

Total

Suma total de puntos funcionales


e, s, ce, ali, aie: Son la cantidad de elementos contados de cada componente

Ejemplo de estimacin basado en


PF
Para calcular los puntos de funcin se utiliza la siguiente relacin

PF= conteo total X [0.65 + 0.01 X (Fi)]


Donde conteo total es la suma de todas las entradas de PF
obtenidas y
Fi= (i=1 a 14) son factores de ajuste de valor
respuestas a las siguientes preguntas:

basados en las

Ejemplo de estimacin basado en PF


Caractersticas para calcular el factor de ajuste
1. El sistema requiere respaldo y recuperacin confiables
2. Se requieren comunicaciones de datos especializadas para transferir
informacin a la aplicacin, u obtenerla de ella
3. Hay funciones distribuidas de procesamiento
4. El desempeo es crtico
5. El sistema se ejecutar en un entorno existente que tiene un uso
pesado de operaciones
6. El sistema requiere entrada de datos en lnea

Ejemplo de estimacin basado en


PF
Caractersticas para calcular el factor de ajuste
7.La entrada de datos en lnea requiere que la transmisin de
entrada se construya en varias pantallas u operaciones
8. Los ALI se actualizan en lnea
9. Las entradas, las salidas, los archivos o las consultas son
complejos
10. Es complejo el procesamiento interno
11. El cdigo diseado ser reutilizable

Ejemplo de estimacin basado en


PF
Caractersticas para calcular el factor de ajuste
12. Se incluyen la conversin e instalacin en el diseo
13. Est diseado el sistema para instalaciones mltiples o
diferentes organizaciones
14. Aplicacin diseada para cambio

Ejemplo de estimacin basado en


PF
A cada caractersticas se le asigna un valor

0 = no est presente o no influye


1 = influencia incidental
2 = influencia moderada
3 = influencia promedio
4 = influencia significativa
5 = influencia fuerte

Ejemplo de estimacin basado en


PF
Estimacin de valores de dominio de informacin
Valor de dominio de informacin

# entradas externas
# salidas externas
# de preguntas externas
# de archivos lgicos internos
# de archivos de interfase
externos
Conteo total

Optimista

Probable

Pesimista

Conteo
estimado

20
12
16
4
2

24
15
22
4
2

30
22
28
5
3

24
16
22
4
2

Peso

Conteo
PF

4
5
5
10
7

96
80
110
40
14
340

Sin ajustar

Ejemplo de estimacin basado en PF


Estimacin de valores de las caractersticas
Factor

Valor

1. Respaldo y recuperacin

2. Comunicacin de datos

3. Procesamiento distribuido

4. Desempeo crtico

5. Entorno operativo existente

6. Entrada de datos en lnea

7. Transaccin de entrada sobre pantallas mltiples

8. ALI actualizado en lnea

9. Complejo de valores de dominio de informacin

10. Complejo de procesamiento interno

11. Cdigo diseado para reutilizacin

12. Conversin / instalacin en diseo

13. Instalaciones mltiples

14. Aplicacin diseada para cambio

Ejemplo de estimacin basado en


PF
Finalmente el nmero estimado de PF es
PFestimado = conteo total x [0.65 +0.01X (Fi)]
Donde el factor de ajuste de valor es
[0.65 +0.01X (Fi)] = 1.17
Y la (Fi)=52
El PFestimado 398

(Ajustado)

Ejemplo de estimacin basado en


PF
La productividad organizacional promedio para sistemas de
este tipo es de 6.5 PF/pm
Tarifa laboral=us$8000 por mes, el costo por PF es
aproximadamente us$1230 ( 8000/6.5)
Con base en la estimacin de PF y los datos de
productividad histricos, el costo total estimado es de
us$489540 (1230x398)
El esfuerzo estimado es de 61 personas por mes
(489540/(6.5*1230))

ESTIMACIN BASADA EN EL
PROCESO
Se divide en tareas y se calcula el esfuerzo para cada tarea

ESTIMACIN BASADA EN EL
PROCESO
Tabla de estimacin basada en el proceso
Tarifa laboral =
us$8000 por mes,
el costo total
estimado del
proyecto
es de
us$368 000
y el esfuerzo
estimado es de
46 personas/mes

Estimacin basada en Casos de Uso


Una de las tcnicas ms novedosas para realizar estimacin de
proyectos es la determinacin de tamao a travs del clculo de
los llamados Puntos de Casos de Uso.

Los Puntos de Casos de Uso son un mtodo de estimacin de


proyectos que emplea los casos de uso del proyecto para producir
una adecuada estimacin de tamao y esfuerzo.

Este mtodo de estimacin requiere que sea posible el conteo del


nmero de transacciones en cada caso de uso.

Estimacin basada en Casos de Uso


Actividades
a) Calcular valores no ajustados de pesos de Actores
b) Calcular valores no ajustados de Casos de Uso

c) Calcular los puntos de casos de uso no ajustados (Con base en


a y b)

d) Ajustar los puntos de casos de uso no ajustados con base en


factores tcnicos y factores de ambiente.

Estimacin basada en Casos de Uso


Calcular el peso de los actores
Categora

Actor
Factor de Peso Definicin

Simple

Otro sistema con un API definido

Promedio

Otro sistema interactuando a travs de


un protocolo como por ejemplo TCP/IP

Complejo

Persona interactuando con el sistema a


travs de una interfaz grfica de
usuario.

Unadjusted Actor Weigth (UAW)


Cantidad de actores de cada categora multiplicando por su peso y
sumando esos productos

Estimacin basada en Casos de Uso


Pesos de Casos de Uso

Categora

Casos de Uso
Factor de Peso Definicin

Simple

Igual o menor que 3 transacciones

Promedio
Complejo

10
15

Entre 4 y 7 transacciones
Ms de 7 transacciones

Use Case Weigth (UUCW)


Cantidad de Casos de Uso de cada categora multiplicando por su peso y
sumando esos productos

Estimacin basada en Casos de Uso


Casos de Uso no ajustados
UUCP= UAW +UUCW

UUCP, son los puntos de casos de uso no ajustados


UAW, peso de los actores no ajustado (Unadjusted Actor Weigth)
UUCW, peso de casos de uso no ajustado

Estimacin basada en Casos de Uso


Factor

Factores de Complejidad Tcnicos


Descripcin

T1
T2

Sistema Distribuido
Objetivos de Desempeo (Performance), Respuesta (Response)

T3
T4
T5
T6
T7
T8
T9
T10
T11
T12
T13

Eficiencia de usuario final


Procesamiento interno complejo
Cdigo Reutilizable
Fcil de instalar
Fcil de usar
Portable
Fcil de cambiar
Concurrente
Incluye caractersticas de seguridad
Provee Acceso para third parties
Facilidades especiales de entrenamiento a usuario son requeridas

Peso
2
2
1
1
1
0,5
0,5
2
1
1
1
1
1

Estimacin basada en Casos de Uso


Factor
F1
F2
F3
F4
F5
F6
F7
F8

Factores de Ambiente
Descripcin
Familiaridad con el Rational Unified Process
Experiencia en Aplicacin
Experiencia en orientacin a objetos
Capacidad de anlisis
Motivacin
Requerimientos estables
Trabajadores medio tiempo
Dificultades en el lenguaje de programacin

Peso
1,5
0,5
1
0,5
1
2
-1
-1

A cada factor es asignado un valor entre 0 y 5. Un valor de 0 quiere decir que el


factor es irrelevante para el proyecto y un valor de 5 significa que es esencial.

Estimacin basada en Casos de Uso


Factor de complejidad tcnica (TCF
Multiplicar el valor de cada factor (T1-T13) por su peso y sumando todos
esos nmeros para obtener el llamado TFactor

Factor de Ambiente Environment Factor

Casos de Uso ajustados

Estimacin basada en Casos de Uso


Productividad
Se contabilizan cuntos factores de los que afectan al factor de ambiente estn por
debajo del valor medio (3), para los factores E1 a E6.
Se contabilizan cuntos factores de los que afectan al Factor de ambiente estn por
encima del valor medio (3), para los factores E7 y E8

Si conteo <=2 entonces 20 horas-hombre por punto CU


Si 3 >= conteo <= 4 entonces 28 horas-hombre por punto
CU
Si conteo >= 5 Entonces hacer ajustes (Hay riesgo)

Lecturas recomendadas
Ingenieria de Software, Ian Sommerville. 7th Edicin.
(Capitulo 26).
Basado en el Libro Ingeniera de Software un enfoque
prctico de Roger Pressman