Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T4 EstimacionSoftware
T4 EstimacionSoftware
Tema 4
Estimación del software
Marian Moraga, Félix García
Objetivos
• Etapas de la estimación
▪ Estimación del tamaño
▪ Estimación del esfuerzo
▪ Estimación de la duración
• Etapas de la estimación
▪ Estimación del tamaño
▪ Estimación del esfuerzo
▪ Estimación de la duración
• Estimación vs Medición
• Estimación vs Planificación
• La naturaleza de la estimación Software (Connell, 1997)
0,25
0,1
Definición inicial Definición del Especificación Diseño preliminar Diseño detallado Producto
del producto producto de terminado
acabada requerimientos
• Etapas de la estimación
▪ Estimación del tamaño
▪ Estimación del esfuerzo
▪ Estimación de la duración
▪ Modelos Paramétricos:
▪ empleando un método algorítmico para convertir la estimación del
tamaño (en LDC o en PF) a una estimación del esfuerzo (Método
COCOMO).
• Etapas de la estimación
▪ Estimación del tamaño
▪ Estimación del esfuerzo
▪ Estimación de la duración
▪ Juicio de expertos.
• Tiene un impacto directo sobre la eficiencia sobre cómo se utilizan los recursos y
cómo se administran los presupuestos.
2) Ajustar lo anterior para tener en cuenta la "complejidad del proceso". Para ello,
se valora el grado de influencia de 14 factores diferentes.
Ficheros
Lógicos
Externos
Cálculo de Puntos
(ELFs)
Función
Entradas (EI)
Funciones de
transacciones Salidas (EO)
2-. Identificar los 5
Elementos
Consultas (EQ)
Funcionales
UCLM-ESI Marian Moraga, Félix García - GPS 26
Técnicas de estimación del softwarePuntos Función. Proceso de Cálculo
• 1ª Etapa. Se definen cinco tipos de Funciones de Usuario:
▪ Entradas externas (entradas):
▪ cualquier entrada (pantalla, formulario, cuadro de diálogo, control o mensaje) que
tenga un formato único o un solo procesamiento, a través de la cual el usuario u otro
programa puede añadir, borrar o cambiar datos.
▪ Salidas externas (salidas):
▪ cualquier salida (pantalla, informe, gráfico, mensaje) que tenga un formato diferente
o requiera un procesamiento diferente a otros tipos de salida, generada para el
usuario u otro programa.
▪ Consultas externas (consultas):
▪ combinaciones de entrada/salida en las que cada entrada genera una salida simple e
inmediata.
▪ Archivos lógicos internos (archivos):
▪ principales grupos lógicos de datos de usuarios o de control que están controlados
completamente por el programa (ej: tabla de un SGBDR).
▪ Archivos de interfaz externos (consultas):
▪ cada uno de los grupos de datos lógicos o información de control que entra o sale
del programa.
Consulta:
1. ¿Cuantas palabras
llevamos procesadas Comprobador
Usuario
Ortográfico
Archivo Interno:
Salida: 1. Diccionario
1. Numero total de palabras revisadas
2. Numero total de errores detectados
3. Lista de palabras con errores ortográficos
▪ Reglas de Identificación:
▪ R1: El grupo de datos o información de control es un grupo de datos lógico
identificable por el usuario.
▪ R2: El grupo de datos es referenciado por la aplicación que se está midiendo,
y es externo a ella.
▪ R3: El grupo de datos no es mantenido por la aplicación que se está
midiendo.
▪ R4: El grupo de datos es mantenido en un ILF de otra aplicación.
▪ Reglas:
▪ R1: La función envía información de control o datos fuera de los límites
▪ R2: Una de las tres siguientes reglas deben aplicarse al proceso identificado:
• El proceso lógico es único para el tratamiento lógico realizado por otras EQ
• El conjunto de datos elementales es diferente de los conjuntos de otras EQ
• Los ILFs y ELFs utilizados son diferentes de los archivos utilizados por otras EQ
▪ R3: La lógica del proceso elem. recupera datos o inf. control de un ILF/ELF.
▪ R4: La lógica del proceso elem. no contiene cálculo o fórmula matemática.
▪ R5: La lógica de proceso del proceso elemental no crea datos derivados.
▪ R6: La lógica del proceso del proceso elemental no mantiene un ILF.
▪ R7: La lógica de proceso del proceso elemental no altera el funcionamiento del
sistema.
• RET.
▪ 1. “Contar un RET para cada subgrupo en un ILF o ELF
opcional u obligatorio”.
▪ 2. “Si no hay subgrupos contar como 1 RET”
• Ejemplo:
Emplead Asignación de Trabajo
o Nómina
Emp.
Emp por horas Trabajo
Descripción Trabajo
Localización
UCLM-ESI Marian Moraga, Félix García - GPS 42
Técnicas de estimación del software
Puntos Función. Complejidad de Funciones de Usuario
Campos Proceso Conteo Campos Proceso Conteo
Empleado No se cuenta como RET Descripción Trab. No se cuenta. Existe por
porque tiene dos subgrupos tecnología
Nombre DET1 Identificador Contado antes
NSS DET2 Número de Línea Existe por tecnología.
Num. DET3 Descripción Línea DET4
Dependientes
Asignación Trabajo ILF con 1 RET
Tipo DET4
Fecha_Inicio DET1
Nombre_Localiz DET5
ación Salario DET2
Empleado RET 1 (empleado) Ratio Rendimiento DET3
Nómina
Íd_Trabajo DET4
Nivel DET6 NSS_Empleado DET5
Empleado RET2 (empleado)
Horas Localización ELF con 1 RET
Horario estand DET7 Nombre DET1
Colectivo DET8 Dirección DET2
Negociador Código_Interoficina DET3
Trabajo ILF con 1 RET
Identificador DET1 Empleado (ILF) → 8 DETs, 2
Nombre DET2
Trabajo (ILF) → 4 DETs, 1
RETs
Salario General DET3
Asign. Trab. (ILF) → 5 DETs, 1
RETs
UCLM-ESI Marian Moraga, Félix García - GPS 43
Localización → 3 DETs, 1 RET
RET
Técnicas de estimación del software
Puntos Función. Complejidad de Funciones de Usuario
Nº tipos registros Nº tipos de elementos de datos incluidos
referenciados 1-4 5-15 >=16
0-1 Baja Baja Media
2-3 Baja Media alta
>=4 Media Alta Alta
Complejidad de las Entradas
• PF=PFSA*(0,65+0.01*SUMA(GI)) siendo
▪ PF los Puntos Función totales,
▪ PFSA los Puntos Función sin ajustar, y
▪ SUMA(GI) la suma de los grados de influencia de 14 factores que influyen en la
complejidad del proceso.
GI Líneas Guía
0 La aplicación es un proceso por lotes puro o un PC stand alone.
1 Proceso por lotes con impresión remota o entrada remota de datos.
2 Proceso por lotes con impresión remota y entrada remota de datos .
3 El TP es la interfaz para un proceso por lotes.
4 La aplicación está basada en un TP interactivo, pero con un solo
protocolo de comunicaciones
5 La aplicación está basada en un TP interactivo, pero con más de un
protocolo de
48
UCLM-ESI
Técnicas de estimación del software
Puntos Función. Factores de Influencia
2. Procesamiento de datos distribuido: concerniente a si una aplicación es
monolítica y se ejecuta en un único procesador, o si la aplicación
consiste en código independiente ejecutándose en procesadores
distintos y persiguiendo un fin común.
• Tiene cierta relación con el factor de influencia 1
GI Líneas Guía
0 La aplicación no tiene el objetivo de transferir datos o funciones de
procesamiento entre componentes del sistema
1 Datos preparados por la aplicación para su procesamiento por el usuario final
sobre otro componente del sistema (hoja de cálculo, base de datos)
2 La aplicación prepara los datos para transferirlos; luego se transfieren y se
procesan sobre otro componente/máquina del sistema (no usuario final)
3 Proceso distribuido con transferencia de datos on line en una dirección.
4 Como el anterior, pero con transferencia de datos en ambas direcciones.
5 Las funciones de procesamiento se realizan dinámicamente sobre el
componente del sistema más apropiado
GI Líneas Guía
0 Las transacciones no están afectadas por picos de tráfico.
1 Se preveen periodos de picos de tráfico mensuales, cuatrimestrales,..
2 Se preveen periodos de picos de tráfico semanales
3 Se preveen periodos de picos de tráfico diarios
4 Los picos de transacción indicados por el usuario en los requisitos o en
acuerdos a nivel de servicio son suficientemente altos como para incluir tareas
de análisis de rendimiento en la fase de diseño
5 Además, se requieren herramientas de análisis de rendimiento en las fases de
diseño, desarrollo y / o instalación.
GI Líneas Guía
0 Todas las transacciones son tratadas por lotes..
1 Entre el 1 y el 7% de las funciones son entradas interactivas de datos.
2 Entre el 8 y el 15% de las funciones son entradas interactivas de datos.
3 Entre el 16 y el 23% de las funciones son entradas interactivas de datos.
4 Entre el 24 y el 30% de las funciones son entradas interactivas de datos.
5 Más del 30% de las funciones son entradas interactivas de datos.
GI . Líneas Guía
0 Ninguna.
1 Actualización en línea de uno a tres ficheros de control. El volumen de
actualización es bajo y la recuperación fácil.
2 Actualización en línea de cuatro o más ficheros de control. El volumen de
actualización es bajo y la recuperación fácil.
3 Actualización en línea de importantes ficheros internos
4 También, se considera esencial la protección contra pérdida de información y ha
sido especialmente diseñada y programada en el sistema.
.
GI Líneas Guía
0 No hay que reutilizar el código.
1 Se emplea código reutilizable dentro de la aplicación.
2 Menos del 10% de la aplicación se considera reutilizable.
3 El 10% o más de la aplicación se considera reusable.
4 La aplicación está específicamente preparada y documentada para facilitar la
reutilización y se adapta para cumplir las necesidades del usuario específicas
sobre el código fuente.
5 La aplicación está específicamente preparada y documentada para facilitar la
reutilización y, además, se adapta para su uso mediante el mantenimiento de
parámetros de usuario.
GI Líneas Guía
0 No hay consideraciones especiales de operación aparte de los procesos normales
. back-up establecidos por el usuario.
de
1-4 Uno, alguno, o todos los elementos siguientes se aplican. Cada elemento vale 1:
-Se proporcionan procesos efectivos de arranque, back-up y recuperación pero se
requiere la intervención del operador
- Lo anterior pero sin requerirse la intervención del operador (cuenta como 2)
- La aplicación minimiza la necesidad de montaje de cintas.
- La aplicación minimiza la necesidad de manejo de papel.
GI Líneas Guía
0 . No hay requisitos de usuario para soporte a la instalación en más de un lugar.
61
.
UCLM-ESI Marian Moraga, Félix García - GPS
Técnicas de estimación del software
Puntos Función. Factores de Influencia (Ejemplo)
• Una empresa de fabricación está desarrollando una aplicación Web
para dar soporte técnico a los ingenieros de servicio que están
desempeñando las tareas de mantenimiento de la maquinaria.
Requisitos:
▪ El sistema necesita estar activo las 24h los 7 días de la semana.
▪ Actualmente el sistema tiene 3000 usuarios y se calcula que 300 de ellos
lo podrían usar de forma concurrente.
▪ Turnos de uso del sistema: de 6 a 14 , de 14 a 22 y de 22 a 6. El pico de
utilización se alcanza de 9 a 14.
▪ El usuario requiere un nivel de rendimiento similar a los otros sistemas,
que tienen un tiempo de respuesta ante cargas de trabajo máximas de
2,4 segundos para la mayoría de las transacciones.
▪ El sistema debe facilitar el crecimiento fácil de los volúmenes de datos.
▪ Se requieres facilidades para el backup y la recuperación
▪ El cliente requiere soporte a los navegadores: IE 6.5, Netscape y
posiblemente un navegador Mac. Si el sistema soporta múltiples
navegadores, el cliente desea especificar la versión que quiere usar en
cada momento.
• Ventajas:
▪ Contempla el sistema como un todo que se divide en
determinadas funciones.
▪ Es independiente del entorno tecnológico en que se ha de
desarrollar el sistema.
▪ Es independiente de la metodología que vaya a ser
utilizada.
▪ Es independiente de la experiencia y del estilo de
programación.
▪ Es fácil de entender por el usuario
69
UCLM-ESI Marian Moraga, Félix García - GPS
Técnicas de estimación del software Puntos Objeto
• Los puntos de objeto son una medida alternativa
relacionada con la funcionalidad cuando se utilizan
lenguajes 4GLs o similares para el desarrollo
• Los puntos de objeto NO son clases de objetos
• El número de puntos de objeto en un programa es
una estimación ponderada de:
▪ El número de pantallas que son visualizadas por separado
▪ El número de informes que se producen por el sistema
▪ El número de módulos 3GL que deben desarrollarse para
complementar el código 4GL
• Procedimiento:
5
10
15
UCP= UUCP*TCF*EF
EJEMPLO
Aplicación Web para la gestión de información telefónica, de informes de
averías, y de estadísticas de los estados de los teléfonos de un Centro de
Educación Superior (CES). Actualmente este proceso se realiza manualmente,
provocando dificultades en la organización y control de la información
referente a los equipos telefónicos y a sus respectivos usuarios. La aplicación
es desarrollada en la plataforma .Net, con lenguaje C#.
1.UAW = sum(cantidadDeUnTipoDeActor*Peso)
UAW=9
2. UUCW = Sum(CantidadDeUnTipoDeCasoUso*Peso)
UUCW =160
3. UUCP = UAW + UUCW
UUCP = 9+160=169
4.
4. TCF=0.6+0.1*42= 1.02
5.
5. EF=1.4-0.03*22=0.74
6. UCP=UUCP*TCF*EF
UCP= 169*1.02*0.74= 127.56
E = UCP * CF donde:
E: esfuerzo estimado en horas-hombre.
UCP: Puntos de casos de uso ajustados.
CF: Factor de conversión (20 horas-hombre por defecto).
E = 127.56 * 20
E = 2551.2 Horas-personas
•
Generadores de
Aplicaciones y Composición de Integración de
Ayudas para Aplicaciones Sistemas
Composición
Generadores de
Aplicaciones y Composición de Integración de
Ayudas para Aplicaciones Sistemas
Composición
• Composición de Aplicaciones:
▪ Modelo ACM (Application Composition Model).
• Modelo EDM:
▪ Usado en las etapas iniciales cuando se conoce poco sobre el tamaño del
producto, la plataforma, el personal o el proceso.
• Modelo PAM:
Se diferencia de EDM en que:
▪ Está orientado a las etapas de desarrollo y mantenimiento de un
producto software.
PM nominal = A * ( Size) B
•Ecuación básica de los modelos EDM y PAM para calcular el esfuerzo en
personas-mes (PM) necesario para desarrollar un software.
▪ Size = tamaño en KLCDF (miles de LDCF) de la aplicación, igual a la suma
total de los tamaños estimados de todos los módulos.
▪ Si el tamaño se estima en PFNA, éstos se deben convertir a LDCF (tablas).
▪ A = constante de calibración (su valor actual es 2‘94).
▪ B = factor de escala para tener en cuenta las diversas economías de
escala, positivas o negativas, existentes en proyectos software.
▪ En el modelo ACM su valor es 1'0 (ajuste lineal entre PM y Size).
▪ En los modelos EDM y PAM su valor depende de 5 factores de escala, asignando
a cada uno un peso de 0 (muy alto) a 5 (muy bajo).
5
B = 0.91 + 0.01 * Wi
i =1
UCLM-ESI Marian Moraga, Félix García - GPS 102
Técnicas de estimación del software COCOMO II. Ajuste del Tamaño
BRAK
SizeBREAK = 1 + * Size
100
UCLM-ESI Marian Moraga, Félix García - GPS 103
Técnicas de estimación del software COCOMO II. Ajuste del Tamaño
SU
SizeM = ( Sizeañadido + Sizemod ificado ) * 1 + * UNFM
100
siendo
▪ SizeM: el tamaño de mantenimiento (en LDCF o PF),
▪ Size añadido: las LDCF/PF a añadir,
▪ Size modificado: las LDCF/PF a modificar, 105
UCLM-ESI Marian Moraga, Félix García - GPS
Técnicas de estimación del software
COCOMO II. Multiplicadores de Esfuerzo
•Son conductores de costes, utilizados en los modelos EDM y PAM
para ajustar el esfuerzo nominal de manera multiplicativa:
N siendo EM los multiplicadores de esfuerzo.
PM = PM nominal * EM i
A cada EM se le asigna un ratio entre 1 y 5-7
(según el multiplicador).
i =1
En el modelo EDM son 7:
▪ RCPX: Fiabilidad y complejidad del producto.
▪ RUSE: Reutilización requerida.
▪ PDIF: Dificultad de la plataforma.
▪ PERS: Capacidad del personal.
▪ PREX: Experiencia del personal.
▪ FCIL: Medios (facilities).
▪ SCED: Calendario.
En el modelo PAM son 17, obtenidos al desglosar los 7 anteriores. Se agrupan
en 4 categorías:
▪ del Producto, de la Plataforma, del Personal, y del Proyecto.
UCLM-ESI Marian Moraga, Félix García - GPS 106
Técnicas de estimación del software
COCOMO II. Multiplicadores de Esfuerzo
• Factores del Producto: equivalentes a RCPX -los tres primeros- y
RUSE -el último- en el modelo EDM.
▪ RELY: Fiabilidad del producto requerida.
▪ DATA: Tamaño de la base de datos.
▪ CPLX: Complejidad del producto.
▪ DOCU: Adecuación de la documentación a las necesidades del ciclo de
vida.
▪ RUSE: Reutilización requerida.
• Factores de la Plataforma:
• PREC y FLEX:
Ejemplo:
Si PM = 50 personas-mes, con factor de escala lineal (B=1.0) y
SCED%=100
TDEV = 3.67 * 50 ^(0.30) * 1.00 = 11.9 meses