Sei sulla pagina 1di 42

Estimación de Proyectos

1 ©2006 MJC
Objetivos de la Estimación

 Identificar los requerimientos de recursos


necesarios para desarrollar el proyecto
 Hardware
 Software
Recurso humano

HW
 Dinero
 Tamaño
 Esfuerzo $$$ SW
 Tiempo
 Etc. RH

2 ©2006 MJC
Métricas de la Complejidad del Software

 Líneas de Código (LDC)


 Medida del tamaño físico del software
 Cuenta el número de líneas de código fuente

 Puntos de Función (PF)


 Medida del tamaño de la funcionalidad del
software
 Cuenta los componentes que implementan la
funcionalidad del programa

3 ©2006 MJC
Conteo de LDC: Ejemplo
[KR78]

#define MIN 0 /* límite inferior de la tabla */


#define MAX 300 /* límite superior de la tabla */
#define INC 20 /* tamaño del incremento */

main() /* genera tabla de Fahrenheit a centigrados*/


{
int fahr;
for(fahr=MIN; fahr<=MAX; fahr=fahr+INC)
printf(“%4d %6.1f\n”, fahr, (5.0/9.0)*(fahr-32) );
}

4 ©2006 MJC
Conteo de LDC: Ejemplo
[Park92]

12

10

# de res-
6
puestas

0
1 2 3 4 5 6 7 8 9
# de LDC
5 ©2006 MJC
Desventajas de las LDC

 Son dependientes del lenguaje de programación


 No existen estándares de conteo
 No consideran el uso de
 4GL’s
 Herramientas CASE
 Reusabilidad

6 ©2006 MJC
Puntos de Función (PF)

 Método empírico de estimación del


tamaño del software
 Se basa en dos aspectos
 Funcionalidad
 Complejidad

7 ©2006 MJC
Utilidad de los Puntos de Función

 Permiten establecer líneas de base para la


estimación de proyectos
 Permiten llevar a cabo evaluaciones
comparativas (“benchmarking”)
 Permiten definir métricas de software
independientes de la implementación
Productividad = PF / mes-persona
Calidad = # defectos / PF
Costo = $ / PF
Documentación = # páginas / PF

8 ©2006 MJC
Método de Conteo

1. Determinar tipo de conteo


2. Identificar los límites de la aplicación
3. Identificar las funciones de datos y su complejidad
4. Identificar las funciones transaccionales y su
complejidad
5. Calcular los puntos de función sin ajustar
6. Calcular el factor de ajuste
7. Calcular los puntos de función finales

9 ©2006 MJC
1. Determinar Tipo de Conteo

 Determina el tipo de conteo a realizar


 Para desarrollo de proyectos
 Para mejoras de proyectos
 Conteo de puntos de función de aplicaciones

10 ©2006 MJC
2. Identificar Límites de la Aplicación

 Establece el alcance del software a medir


 Determinar qué componentes se consideran propios de la
aplicación
 Se establece una diferenciación entre la aplicación en sí, otras
aplicaciones externas, y el usuario del software

Admisión
Becas

Matrícula

Graduaciones
Expedientes

11 ©2006 MJC
3. Identificar las funciones de datos
y su complejidad

 Identificación de los siguientes componentes:


 Internal Logical Files (ILF’s)
– Grupo de datos o información de control lógicamente
relacionada identificable por el usuario y que se mantiene
dentro de los límites de la aplicación
 External Interface Files (EIF’s)
– Grupo de datos o información de control lógicamente
relacionada identificable por el usuario que es referenciado
por la aplicación pero que se mantiene fuera de los límites
de ésta.

12 ©2006 MJC
3. Identificar las funciones de datos
y su complejidad (cont.)

 Determinar la complejidad de los ILF’s y los EIF’s con


base en una matriz de coeficientes que proporciona el
método
 Data Element Type (DET)
– Campo o atributo único identificable por el usuario que se
mantiene dentro de un ILF o EIF.
 Record Element Type (RET)
– Subgrupo de datos reconocible por el usuario que se
mantiene dentro de un ILF o EIF.

13 ©2006 MJC
3. Identificar las funciones de datos
y su complejidad (cont.)

Nº de DET´s
Nº de RET´s 1 - 19 20 - 50 51 o más
<2 L L A
2-5 L A H
>5 A H H

14 ©2006 MJC
4. Identificar las funciones transaccionales
y su complejidad

 Identificación de las:
 External Input s (EI’s)
– Proceso elemental de la aplicación que procesa los datos o
información de control que proceden desde fuera de los
límites de la aplicación al interior de ésta.

Nº de DET´s
Nº de FTR´s 1-4 5 - 15 16 o más
<2 L L A
2 L A H
>2 A H H

15 ©2006 MJC
4. Identificar las funciones transaccionales
y su complejidad (cont.)

 External Outputs (EO’s)


– Proceso elemental de la aplicación que genera datos o
información de control que va desde el interior al exterior
de los límites de la aplicación.

Nº de FTR´s Nº de DET´s
1-5 6 - 19 20 o más
<2 L L A
2-3 L A H
>3 A H H

16 ©2006 MJC
4. Identificar las funciones transaccionales
y su complejidad (cont.)

 External Inquiries (EQ’s)


– Proceso elemental de la aplicación que se compone de
entradas y salidas involucradas en recuperación de datos.
– Las entradas las constituyen la información de control para
especificar la consulta y el formato que tendrán las salidas.
 File Types Referenced (FTR’s)
– Número de ILF’s y EIF’s mantenidos, leídos o referenciados
por cada una de las transacciones anteriores ( EI’s, EO’s y
EQ’s ).

17 ©2006 MJC
5. Determinar los PF sin Ajustar (UFP)

 Determinar un conteo de puntos de función sin ajustar


(UFP), que será ajustado en la etapa siguiente del
método.

Complejidades
Componentes L A H Totales
ILF´s X7 X 10 X 15
EIF´s X5 X7 X 10
EI´s X3 X4 X6
EO´s X4 X5 X7
EQ´s X3 X4 X6
Total

18 ©2006 MJC
6. Calcular el Factor de Ajuste (VAF)

 Se calcula basado en las catorce características


cualitativas generales del software
 A cada característica se le asigna un valor entre 0 y 5
dependiendo de qué tan presente está la característica
en el software
0 no está presente o no influye
1 influencia incidental
2 influencia moderada
3 influencia promedio
4 influencia significativa
5 influencia fuerte

19 ©2006 MJC
6. Calcular el Factor de Ajuste (cont.)

 Las catorce características son:


1. Comunicación de datos 8. Actualización en línea
2. Procesamiento distribuido 9. Procesamiento complejo
3. Desempeño 10. Reusabilidad
4. Facilidad de Configuración 11. Facilidad de instalación
5. Tasa de transacciones 12. Facilidad operacional
6. Entrada de datos en línea 13. Adaptabilidad a múltiples sitios
7. Eficiencia requerida del 14. Facilidad de cambio
usuario final

 Se evalúan en términos de su grado de influencia

20 ©2006 MJC
Ejemplo: Comunicación de datos

 Los datos de la aplicación son enviados y recividos a través de


dispositivos de comunicación utilizando algún protocolo
0 La aplicación trabaja solo en batch o una sola PC
1 La aplicación trabaja en batch pero realiza entrada remota de
datos o impresión remota
2 La aplicación trabaja en batch pero realiza entrada remota de
datos e impresión remota
3 Recolección de datos en línea (front-end) para un sistema batch
4 Más que un front-end pero la aplicación soporta sólo un tipo de
protocolo de comunicación
5 Más que un front-end pero la aplicación soporta más de un tipo de
protocolo de comunicación

21 ©2006 MJC
6. Calcular el Factor de Ajuste (cont.)

 Grado Total de Influencia ( TDI )


14
TDI = Ci
i =1

 Factor de ajuste ( VAF )


VAF = ( TDI * 0.01 ) + 0.65

22 ©2006 MJC
7. Determinar el conteo final de puntos de
función ajustado

 Determinar el conteo final de puntos de función


ajustado
FP = VAF * UFP

23 ©2006 MJC
Ejemplo: Exactus de C.R.
[Garro y Rojas 97]

 Módulo de Recursos Humanos del sistema Exactus


versión 2.10
 Desarrollado en SQL Windows (Centura)
 Tecnología Cliente - Servidor de 16 bits para Windows 3.1
 Conectividad con múltiples manejadores de bases de datos
ODBC
 Utiliza 33 tablas relacionales
– 22 son propias
– 11 son referenciadas de otros módulos del sistema
 54.111 LDC
 41% del código fuente es reutilizado

24 ©2006 MJC
Ejemplo: Exactus de C.R

 Funcionalidad del módulo


 Definición y administración de empleados y sus parientes
 Calendarios de actividades de empleados
 Mantenimiento de estudios académicos del personal
 Registro de ausencias del personal
 Registro de accidentes laborales
 Manejo y procesamiento de diversas categorías de acciones
de personal
 Registro de contratos de personal
 Registro de evaluaciones de empleados
 Definición y asignación de puestos de empleados

25 ©2006 MJC
Ejemplo: Exactus de C.R (cont.)

 Funcionalidad del módulo (cont.)


 Definición y asignación de departamentos
 Definición y asignación de plazas por puesto
 Registro y asignación de horarios de trabajo
 Manejo de estados de empleado
 Registro de encuestas salariales
 Proceso de aumentos masivos de salario
 Diversos reportes incluyendo rotación de personal, rotación de
puestos, avisos, ocupación de plazas, etc.
 Integración con otros módulos del sistema Exactus, incluyendo
Control de Nómina y Administración del Sistema.

26 ©2006 MJC
Ejemplo: Exactus de C.R (cont.)

 Puntos de función sin ajustar (UFP)

Complejidades
Componentes L A H Totales
ILF´s 21 X 7 1 X 10 0 X 15 157
EIF´s 9X5 0X7 2 X 10 65
EI´s 33 X 3 15 X 4 12 X 6 231
EO´s 33 X 4 8X5 4X7 200
EQ´s 29 X 3 11 X 4 5X6 161
Total 814

27 ©2006 MJC
Ejemplo: Exactus de C.R (cont.)

Factor de Ajuste (VAF)


1. Comunicación de datos (4) 8. Actualización en línea (3)
2. Procesamiento distribuido (2) 9. Procesamiento complejo (3)
3. Desempeño (3) 10. Reusabilidad (5)
4. Facilidad de Configuración (3) 11. Facilidad de instalación (4)
5. Tasa de transacciones (2) 12. Facilidad operacional (2)
6. Entrada de datos en línea (5) 13. Adaptabilidad a múltiples sitios (5)
7. Eficiencia requerida del 14. Facilidad de cambio (4)
usuario final (4)

TDI = 49

=> VAF = (49 * 0.01) + 0.65


= 1.14

28 ©2006 MJC
Ejemplo: Exactus de C.R (cont.)

 Determinar el conteo final de puntos de función


ajustado
FP = VAF * UFP
= 1.14 * 814
= 927.96

=> La aplicación tiene 928 puntos de función

29 ©2006 MJC
Técnicas derivadas de PF

 Mark II Charles Symons 1988)


 Agrega 6 nuevos factores de complejidad

 Puntos de característica (Capers Jones 1986)


 Agrega la complejidad algorítmica como un elemento a contar

 Puntos de Función 3D (Boeing 1989)


 Tres dimensiones: datos, funcionalidad, control.

30 ©2006 MJC
Ventajas de los Puntos de Función

 Toma en cuenta la complejidad de las diversas


funcionalidades
 Forma de categorización muy natural pues los
diversos elementos que reconoce de una
aplicación lucen muy lógicos durante el proceso
de aplicación del método.
 Abarca la totalidad de las funciones del software.
 Es aplicable en las primeras etapas del ciclo de
desarrollo

31 ©2006 MJC
Desventajas de los Puntos de Función

 Es manual
 Es necesario emplear criterios muy subjetivos
según la interpretación de la persona que aplica el
método
 Se requiere un tiempo considerable en las primeras
aplicaciones mientras el personal se familiariza con
el método
 No le da el peso suficiente al código reusable ya
existente

32 ©2006 MJC
Estimación de Proyectos

33 ©2006 MJC
Métricas base

 Las LDC y PF pueden ser utilizadas de dos formas en la


estimación de proyectos:
 Como variables de estimación para medir el tamaño del
software
 Como métricas base recolectadas en proyectos anteriores
(datos históricos) para derivar estimaciones de esfuerzo y
costo
– Se descompone el sistema en componentes (e.g., módulos,
clases, objetos, etc.)
– Se estiman las LDC o PF para cada componente
– Se aplican las métricas base de productividad a esta
medida para derivar el esfuerzo y el costo.

34 ©2006 MJC
Técnicas de Estimación

 Descomposición
 Se basan en LDC o PF
 Dividen el problema en subproblemas
 Dos principales
– Descomposición del tamaño
– Descomposición del esfuerzo

 Modelos empíricos
 Se basan en LDC o PF
 Estiman el tamaño a partir de parámetros empíricos
– COCOMO 2.0 [Boehm 1995] utiliza LDC

35 ©2006 MJC
Descomposición del Tamaño

1. Seleccionar LDC o PF
2. Estimar para cada componente:
a = estimación más optimista
m = estimación más probable
b = estimación más pesimista

3. Calcular el esfuerzo como:


E = a + 4*m + b
6

36 ©2006 MJC
Descomposición del Tamaño: Ejemplo con LDC

Componente a m b E $/LDC LDC/mes Costo MP


Interface de usuario 1.800 2.400 2.650 2.340 $7 315 $16.380 7.4
Análisis geométrico bidimencional 4.100 5.200 7.400 5.380 $ 10 220 $53.800 24.4
Análisis geométrico tridimencional 4.600 6.900 8.600 6.800 $ 10 220 $68.000 30.9
Estructuras de datos 2.950 3.400 3.600 3.350 $9 240 $30.150 13.9
Visualización de gráficos 4.050 4.900 6.200 4.950 $ 11 200 $54.450 24.7
Control de periféricos 2.000 2.100 2.450 2.140 $ 14 140 $29.960 15.2
Análisis del diseño 6.600 8.500 9.800 8.400 $9 300 $75.600 28.0
Totales 33.360 $328.340 144.5

37 ©2006 MJC
Descomposición del Esfuerzo: Ejemplo con LDC

Componente Análisis Diseño Programación Pruebas Total


Interface de usuario 1.0 2.0 0.5 3.5 7.0
Análisis geométrico bidimencional 2.0 10.0 4.5 9.5 26.0
Análisis geométrico tridimencional 2.5 12.0 6.0 11.0 31.5
Estructuras de datos 2.0 6.0 3.0 4.0 15.0
Visualización de gráficos 1.5 11.0 4.0 10.5 27.0
Control de periféricos 1.5 6.0 3.5 5.0 16.0
Análisis del diseño 4.0 14.0 5.0 7.0 30.0
Totales (MP) 14.5 61.0 26.5 50.5 152.5
$ / MP $ 2.600 $ 2.400 $ 2125 $ 2.250

Costo Total $ 37.700 $ 146.400 $ 56.312.5 $ 113.625 $ 354.037.5

38 ©2006 MJC
Descomposición del Esfuerzo: Ejemplo con PF
Tipo a m b E Peso PF
(medio)
Archivo lógico interno (ILF) 4 4 5 4 10 40
Archivo lógico externo (ELF) 2 2 3 2 7 14
Entrada externa (EI) 20 24 30 24 4 96
Salida externa (EO) 12 15 22 16 5 80
Consulta externa (EQ) 16 22 28 22 6 132
Total 362

Característica Valor Entonces:


1. Comunicación de datos 2 VAF = (46 * 0.01) + 0.65 = 1.11
2. Funciones distribuidas 0
3. Rendimiento 4 PFest = 362 * 1.11 = 401.82
4. Configuración 4 => PFest = 402
5. Razón de Transacciones 4
6. Entrada de datos en línea 4 Suponiendo Productividad = 6.5 PF/MP
7. Eficiencia del usuario final 2 Eest = 402 PFest / 6.5 PFest /MP
8. Actualización de datos en línea 3
9. Procesamiento complejo 5 = 61.8 MP
10. Reusabilidad 4 Dado Costo = $2.500/MP
11. Facilidad de instalación 3
12. Facilidad de operación 1 Cest = 61.8 MP X $2.500/MP
13. Múltiples instalaciones 5 = $154.500
14. Facilidad de cambio 5
Total 46
39 ©2006 MJC
LDC versus PF

Lenguaje LDC/PF
Assembler 320
C 128
COBOL 106
FORTRAN 106
Pascal 90
C++ 64
Ada95 53
Visual Basic 32
Smalltalk 22
PowerBuilder 16
SQL 12
40 ©2006 MJC
Conclusiones: Estimación de Proyectos

“Un buen método de estimación puede lograr


estimar proyectos con una desviación del
20% en el 70% de los casos”.
[Boehm 81]

41 ©2006 MJC
Gracias !

42 ©2006 MJC

Potrebbero piacerti anche