En las estimaciones basadas en puntos de función, se realiza una descomposición del ámbito del software la que se centra en las características del dominio de información, la funcionalidad que beneficia el sistema y los factores de complejidad. La funcionalidad que brinda el sistema son aquellos elementos que dan soporte a formularios de entrada, salidas y ficheros a los que debe dar soporte la aplicación. Los factores de complejidad son indicadores del entorno en que se ha de desarrollar y explotar la aplicación informática.
Este tipo de estimación contempla la aplicación a desarrollar como una caja negra, es decir, no se interesa pos las interioridades de la aplicación, sino que se centra en lo que puede ver el usuario.
Del ámbito del software, se identifican los puntos de función de transacción (entradas, salidas y peticiones) y puntos de función de datos (archivos e interfaces externas).
Desarrollo de SICPA
Puntos de función de transacción
Se representa la funcionalidad proporcionada al usuario para permitir la aplicación del procesamiento de datos.
Entradas de usuario
Se cuenta cada entrada de usuario que proporciona diferentes datos orientados a la aplicación. Las entradas son diferentes de las peticiones o consultas de usuarios. Alta de: Registro proveedor, suministros, galera, lotes, tipo de suministros.
Baja de: Registro proveedor, suministros, galera, tipo de suministros.
Modificación de: Registro proveedor, insumos, galera, lotes, tipo de suministros, usuarios y permisos de usuarios.
Salidas de usuario
Se cuenta cada salida que proporciona al usuario información orientada a la aplicación. Es importante destacar que los elementos de datos particulares dentro de un informe no se cuentan de forma separada.
Dentro de los reportes que el sistema deberá realizar se encuentra, consumo de suministros por lote, mortalidad por lote, matanza por lote, matanza por periodo, inventario al día de hoy.
Los mensajes que el sistema emitirá serán, aviso de datos requeridos en registro de proveedor, suministros, galera, tipo de insumos.
Desarrollo de SICPA
Consultas al sistema
Es una entrada interactiva que produce la generación de alguna respuesta del software inmediata en forma de salida interactiva; se cuenta cada salida por separado como son:
o Consultas de consumo por lotes.
o Consultas de mortandad.
o Consultas de proveedores.
o Consultas de existencia de suministros.
o Consulta del estado de galeras (disponible o no disponible).
Puntos de función de datos
Archivos o ficheros lógicos internos
Se cuenta cada archivo maestro lógico, bien puede ser un grupo lógico de datos que puede ser una parte de una gran base de datos o un archivo independiente.
Entrada de suministros Proveedores
Entrada de suministros detalle Suministros
Galeras Tipos de suministros
Lotes Manejo de lote
Interfaces externas o ficheros interfaces externas
En esta sección se cuentan toda las interfaces legibles por la máquina, que se utilizan para trasmitir información. En este producto de software no es necesario que el sistema se comunique con otras aplicaciones (0). Se recopilan todos los puntos de función, a la cuenta se le asocia un valor de complejidad (peso).67 (Ver Tabla No. 7.1)
67 Ver Pressman. Capitulo IV Pág. 60
Desarrollo de SICPA
Tabla 7.4 Cálculo de puntos de función
Valor de dominio de la información Cuenta Estimada Peso Cuenta PF
Número de entrada de información 16 4 54
Número de salida 12 5 60
Número de peticiones 5 4 20
Número de archivos 8 10 80
Número de interfaces externas 0 7 0
Cuenta total 214
Fuente: Elaboración propia
Para calcular puntos de función ajustados, se utiliza la siguiente relación:
PFajustado = Cuenta Total x 0.65 + 0.01 x 6 (Fi)]
Donde:
Cuenta Total = Es la suma de todas las entradas PF obtenidas de la Tabla 7.4.
Fi = Los valores de ajustes a la complejidad (ver tabla 7.5). Cada una de las preguntas es respondida usando una escala con rango desde cero (no importante o no aplicable) hasta cinco (absolutamente esencial).
PFajustado = 214x 0.65 + 0.01 x (6 x 30)
PFajustado = 214x (0.65 + 1.80) = 214x (2.45) = 524.3 PFajustado = 524
Tabla 7.5 Factores de ajuste a la complejidad
Factor de complejidad Valor
Requiere el sistema copias de seguridad y recuperación fiables 3
Se requiere de documentación de datos 2
Existen funciones de procesamientos distribuidos 4
Es critico el rendimiento 0
Se ejecutará el sistema en un entorno operativo existente y fuertemente utilizado 1
Desarrollo de SICPA
Requiere la entrada de datos interactivos que las transacciones de entrada se lleven a cabo sobre
múltiples pantallas u operaciones 0
Se actualizan los archivos maestros de forma interactiva 2 Son complejas las entradas, las salidas, los archivos o las peticiones 3
Es complejo el procesamiento interno 1
Se ha diseñado el código para ser reutilizable 5 Están incluidas en el diseño la conversión y la instalación 1 Se ha diseñado el sistema para soportar múltiples instalaciones en diferentes organizaciones 2 Se ha diseñado la aplicación para facilitar los cambios y para ser fácilmente utilizada por el usuario 3
Total de factores de complejidad 30
Fuente: Elaboración propia
El siguiente paso es estimar el número medio de líneas de código que se requiere para construir los puntos de función estimados. El lenguaje a utilizar es Visual Basic (Ver Tabla No. 7.6), por lo tanto el número de líneas de código necesarias esta dada por la siguiente relación matemática:
LDC/PF = 32
Donde:
LDC = Número de línea de código PF = Puntos de Función
LDC= 32 x 524 LDC= 16,768
Tabla No. 7.6 Relación entre las líneas de código y los puntos de función
Lenguaje de programación LDC/PF (media)
Ensamblador 320 C 128 Cobol 106 Fortran 106 Pascal 90 C++ 64
Desarrollo de SICPA
Ada95 53
Visual Basic 32
Smaltalk 22
PowerBuilder (generador de códigos) 16
SQL 12
Fuente: Elaboración propia
Considerando que un programa de promedio puede desarrollar 50 LDC/ día, se tiene que las líneas de código por programador son:
LDCmes = 50 LDC/ día * 20 día / mes
LDCmes =1,000 LDC/mes
Para determinar el esfuerzo se inicia calculando la relación, que se cumple si el desarrollo esta a cargo de una sola persona.
LDC estimado/ LDC mes/prog. = 16,768/1000 = 16.768 mes
Si el desarrollo del software se planifica para 5 meses, la cantidad de LDC requerida por mes serian:
LDCmes= 16,768 LDC / 5meses = 3,353.6 LDC/mes
Con una productividad media de 1,000 LDC/persona el esfuerzo estimado sería:
Esfuerzo = (3,353.6 LDC/mes / (1,000 LDC/persona)
Esfuerzo = 3.353 3 personas/mes