El documento describe el proceso de estimación de puntos de función (PF), una métrica para medir el tamaño de un sistema de software. Explica cómo identificar los componentes de un sistema, asignar pesos basados en complejidad, calcular los PF sin ajustar y ajustados, y estimar el esfuerzo, duración y presupuesto de un proyecto basado en los PF.
Fundación Universitaria Konrad Lorenz-Ingeniería de Sistemas
Estimación Software por Puntos de Función
1. Estimación por Puntos de Función Grupo Sara Serrato Benigno Lozano Hernando Camargo Leonardo Jiménez Moscovitz Bogotá, Mayo de 2006 http://www.fukl.edu FUNDACIÓN UNIVERSITARIA KONRAD LORENZ FACULTAD DE MATEMÁTICAS E INGENIERÍAS PROGRAMA DE ESPECIALIZACIÓN EN INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN INGENIERÍA Y CALIDAD DEL SOFTWARE Profesor: Bernardo Díaz
2.
3. Qué son los Puntos de Función Es una métrica que permite traducir en un número el tamaño de la funcionalidad que brinda un producto de software desde el punto de vista del usuario, a través de una suma ponderada de las características del producto. Componentes: EI : Procesos en los que se introducen datos y que suponen la actualización de cualquier archivo interno. EO: Procesos en los que se envía datos al exterior de la aplicación. EQ: Procesos consistentes en la combinación de una entrada y una salida, en el que la entrada no produce ningún cambio en ningún archivo y la salida no contiene información derivada. ILF: Grupos de datos relacionados entre sí internos al sistema. EIF: Grupos de datos que se mantienen externamente.
4. Tabla de ponderaciones para EI, EQ y EO Una vez obtenidos los diferentes elementos del sistema se utilizan las siguientes tablas para asignar pesos en función del número de atributos que tengan y el número de archivos a los que afecte. Fundación Universitaria Konrad Lorenz
6. Proceso de Estimación Mediante PF No. Entradas al Sistema (EI) No. Salidas del Sistema (EO) No. Consultas BD (EQ) No. Ficheros (ILF - EIF) Factor Corrección por Complejidad: No. Atributos de Entradas x Factor Corrección por Complejidad: No. Atributos de Salidas x Factor... x Factor Corrección por Complejidad: No. Atributos de Ficheros x + Puntos de Función Sin Ajustar Puntos de Función Ajustados Ajuste de Complejidad Técnica Estimación del Esfuerzo Estimación del Tiempo de Desarrollo Datos de Productividad del Equipo Escala de 14 Factores de Complejidad Estimación del Presupuesto
7. Cálculo de los Puntos de Función Sin Ajustar Por tanto los PFSA (Puntos de Función Sin Ajustar) se calculan como la suma de los productos de cada componente por su peso determinado en la tabla correspondiente. PFSA = PFTe + PFTo + PFTq + PFTif + PFTef Componente Bajo Medio Alto Total EI Eb * 3 = _ Em * 4 = _ Ea * 6 = _ PFTe EO Ob * 4 = _ Om * 5 = _ Oa * 7 = _ PFTo EQ Qb * 3 = _ Qm * 4 = _ Qa * 6 = _ PFTq ILF IFb * 7 = _ IFm * 10 = _ IFa * 15 = _ PFTif EIF EFb * 5 = _ EFm * 7 = _ EFa * 10 = _ PFTef PFSA
8. Descripción de Totales por componente PFTe : Total Puntos de Función para las entradas del sistema. PFTo : Total Puntos de Función para las salidas del sistema. PFTq: Total Puntos de Función para las consultas del sistema. PFTif: Total Puntos de Función para los archivos internos del sistema. PFTef: Total Puntos de Función para los archivos externos del sistema.
9. Descripción del problema ejemplo Para mostrar la métrica de Puntos de Función se tomó como ejemplo las condiciones de un sistema de gestión de un hotel, en el cual se tuvieron en cuenta los subsistemas, Gestión de cocina, Gestión de mostrador, Gestión de administración y la Gestión de configuración del sistema. En este sistema se consideran 8 archivos internos (platos del menú, pedidos de cocina, clientes, habitaciones, reservas, estancias, configuración y usuarios). El diagrama de contexto y el diagrama de flujo de datos nivel 0 se describen a continuación.
10. Obtener Información del Sistema Se requiere conocimiento global del sistema y construir un Modelo de entidades primarias. Ejemplo: 1
11. Obtener Información del Sistema Se requiere conocimiento global del sistema y construir un Modelo de entidades primarias. Ejemplo: 1
12.
13. Calcular No. Elementos y su Complejidad Contar los Elementos de cada Componente y su Complejidad 3 Componentes Identificados Salidas Entradas Consultas Ficheros Lógicos Internos Ficheros Externos Cantidad Complejidad Cantidad Complejidad
14. Definición de los Componentes del Sistema Salidas: 9 salidas de complejidad alta y 1 de complejidad media para el subsistema mostrador, 3 salidas de complejidad alta y 1 de complejidad baja para el subsistema cocina, 2 salidas de complejidad baja, 4 salidas de complejidad media y 3 salidas de complejidad alta para el subsistema administración y sólo una salida de complejidad baja para el subsistema configuración. Entradas: 9 entradas de complejidad alta para el subsistema mostrador, 3 entradas de complejidad alta para el subsistema cocina, 2 entradas de complejidad baja y 4 entradas de complejidad media para el subsistema administración y 4 entradas de complejidad baja para el subsistema configuración. Consultas: 2 consultas de complejidad baja para el subsistema mostrador, 3 consultas de complejidad baja para el subsistema cocina, 1 consulta de complejidad baja y 3 de complejidad alta para el subsistema administración y finalmente una consulta de complejidad baja para el subsistema configuración. Ficheros Lógicos Internos: 8 almacenes intermedios de datos de complejidad alta. Ficheros Externos: No se utilizaron almacenes externos de datos.
16. Obtener los PF Sin Ajustar Asignar los Puntos de Función a cada Componente de acuerdo a las tablas 4 Componentes Identificados Salidas Entradas Consultas Ficheros Lógicos Internos Ficheros Externos Cantidad Complejidad PFSA Tablas Correspondientes a cada Componente
17. Obtener los PF Ajustados Obtener PF Ajustados 5 Componentes Identificados Entradas PFSA = 306 PFA=PFSA* [0.65+[0.01*ACT]] Obtención ACT Puntaje Factor de Ajuste Min Max Comunicación de Datos 0 5 Proceso Distribuido 0 5 Objetivos de Rendimiento 0 5 Configuración de Explotación Compartida 0 4 Tasa de transacciones 0 5 Entrada de Datos en Línea 0 5 Eficiencia con el Usuario Final 0 5 Actualizaciones en Línea 0 5 Lógica de Proceso Interno Compleja 0 5 Reusabilidad del Código 0 5 Conversión e Instalación contempladas 0 5 Facilidad de Operación 0 5 Instalaciones Múltiples 0 5 Facilidad de Cambios 0 5
18. Obtener los PF Ajustados Obtener Ajuste de la Complejidad Técnica 5 El sistema para determinar la valoración de uno de los Factores de Ajuste: Ej: Comunicación de Datos: Los datos usados en el sistema se envían o reciben por líneas de comunicaciones. La valoración para este factor se determina a través de la elección de las siguientes alternativas: a) 0 = Sistema Aislado del exterior (sólo usuarios directos) b) 1 = Aplicación batch con entrada de datos remota o (exclusiva) utilización de periféricos de salida remotos. c) 2 = Aplicación batch con entrada de datos remota y utilización de periféricos de salida remotos. d) 3 = Aplicación de captura de datos En-Línea o hay un sistema de teleproceso que pasa los datos a la aplicación batch o sistema de consulta. e) 4 = Varios teleprocesos pero con el mismo protocolo de comunicaciones. (para el presente caso) f) 5 = Hay teleproceso con varios protocolos de comunicación. Sistema Abierto y con interfaces de todo tipo al exterior. NOTA: (la sumatoria de las valoraciones de los 14 factores dará el valor para el ACT Nº de Factor Nº de Factor Valor 0..5 1 Comunicación de Datos 4 2 Proceso Distribuido 4 3 Objetivos de Rendimiento 1 4 Configuración de Explotación Compartida 1 5 Tasa de transacciones 3 6 Entrada de Datos en Línea 5 7 Eficiencia con el Usuario Final 2 8 Actualizaciones en Línea 3 9 Lógica de Proceso Interno Compleja 1 10 Reusabilidad del Código 1 11 Conversión e Instalación contempladas 0 12 Facilidad de Operación 1 13 Instalaciones Múltiples 2 14 Facilidad de Cambios 4 Ajuste de Complejidad Técnica (ACT) 32
19. Cálculo del Esfuerzo Cálculo del Esfuerzo 6 PFA = 296.82 Esfuerzo horas/persona = PFA / [1 / 8 persona / hora)] = 296.82 / 0.125 = 2374.5 horas/persona LÍNEAS DE CÓDIGO = PFA * (LINEAS POR PF) Cambiar horas/efectivas por horas productivas estimadas Esfuerzo Entorno y Lenguaje Líneas de Código por PF Horas por PF Lenguajes 2GL: Ensamblador, C,… 300 20 a 30 Lenguajes 3GL: Cobol 100 10 a 20 Lenguajes 4GL: VisualXX 20 5 a 10
20. Cálculo de la Duración del Proyecto Cálculo de la Duración del Proyecto 7 DURACIÓN DEL PROYECTO EN HORAS = 2374.5 horas/persona / 5 personas = 474.91 horas por miembro DURACIÓN EN MESES = 474.91 horas / 100 horas/mes = 4 meses 15 dias HORAS POR PERSONA = 2374.5 Horas/mes productivas estimadas en el proyecto Calculadas de 20 días laborables y De 5 horas productivas estimadas de las 8 de la jornada laboral normal diaria Se asigna la cantidad de participantes en el proyecto
21. Cálculo del Presupuesto del Proyecto Cálculo del Presupuesto del Proyecto 8 Costo Total del Proyecto = sueldos 1 participante del proyecto * 5 participantes * 5 meses + Otros costos necesarios durante la realización del proyecto = 2000 * 5 * 5 = 50000 DURACIÓN DEL PROYECTO EN MESES = 5 meses Participante 1: Sueldo Participante 2: Sueldo Participante n: Sueldo En la práctica se deben especificar Otros costos de operación para determinar el presupuesto total del proyecto