Universidad Técnica Federico Santa María Departamento de Informática Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Origen : Allan Albrecht, IBM Suma ponderada de parámetros básicos para dimensionar funcionalmente una aplicación Considera características externas relevantes para los usuarios Pueden ser determinados en etapas tempranas del desarrollo Page 1
Son independientes de lenguajes, y a la vez convertibles a LOC (promedio) para lenguajes específicos Suma ponderada de parámetros básicos Usos: estudios de producción, consumo, calidad de software Puntos de función: unidad natural de consumo. Usos industriales de puntos de función: Productividad: FP/Esfuerzo Responsiveness: FP/Tiempo calendario Calidad: Defectos/FP Negocio: Costo/FP Page 2
Costos de puntos de función FP Diseño Construcción Total 1501-2000 US$242 US$725 US$967 2001-2500 US$255 US$764 US$1019 2501-3000 US$265 US$793 US$1058 3001-3500 US$274 US$820 US$1094 3501-4000 US$284 US$850 US$1134 Fuente: RDI (USA) Rangos de productividad en PF/MM Tamaños Seleccionados Tasas de Productividad PF/MM 100 PF 1000 PF 10000 PF > 100 1.0% 0.01% 0.0% 75 a 100 3.0% 0.1% 0.0% 50 a 75 7.0% 1.0% 0.0% 25 a 50 15.0% 5.0% 0.1% 15 a 25 40.0% 10.0% 1.4% 5 a 15 25.0% 50.0% 13.5% 1 a 5 10.0% 30.0% 70.0% <1 4.0% 4.0% 15.0% Page 3
Factores de conversión PF a LOC Instrucciones Fuente Lenguaje por PF (aprox) Assembler 320 C 128 ALGOL 105 COBOL 105 FORTRAN 105 Pascal 91 RPG 80 PL/1 80 Modula-2 80 Prolog 64 LISP 64 BASIC 64 4GL para BD 40 APL 32 Smalltalk 29 Query 13 Spreadsheet 6 Íconos Gráficos 4 7 pasos para el cálculo: Determinar tipo de contabilización Identificar fronteras de la aplicación Identificar las funciones de datos y su complejidad Identificar las funciones transaccionales y su complejidad Determinar FP no ajustados Determinar el factor de ajuste - 14 características Calcular valor final FP ajustados Page 4
Ejemplo de aplicación guía telefónica Recepcionista Requiere, recupera, despliega información de los datos de la guía telefónica Administrativo Actualiza guía Guía Telefónica Datos guía telefónica Listado telefónico Imprime listado mensual Fronteras Personal Determina si es empleado Datos empleados Paso 1: Determinar tipo de contabilización 3 tipos de contabilizaciones de FP Desarrollo - funcionalidad provista a los usuarios finales con la primera instalación de la aplicación Mejoramiento - modificaciones a aplicaciones existentes, agragaciones, eliminaciones, actualizaciones Aplicación - aplicación instalada (baselines) que se mantiene En este curso veremos solo el primer tipo En ejemplo anterior, asumamos que es un nuevo desarrollo Page 5
Paso 2: Identificar fronteras de la aplicación en el ejemplo, las fronteras separan al administrador, el recepcionista, el listado telefónico, y la aplicación Personal de la aplicación Guía Telefónica Paso 2: Identificar fronteras de la aplicación Usuario externo Entrada externa Salida externa Consulta externa Salida externa Archivo Externo de Interfaz Archivo Interno Lógico Entrada externa Frontera de la aplicación Otras aplicaciones Page 6
Paso 3: Identificar las funciones de datos y su complejidad Archivos internos lógicos Datos guía telefónica Archivos externos de interfaz Datos de empleados Paso 4: Identificar las funciones transaccionales y su complejidad Entradas externas Actualización de directorio Salidas externas Listado telefónico Consultas externas Requiere, recupera y despliega Page 7
Paso 5: Determinar FP no ajustados Cada parámetro puede ser de complejidad baja, promedio o alta Se contabilizan cuántos parámetros corresponde a cada complejidad Se multiplica cada cantidad por la correspondiente ponderación Se suman los totales para determinar PFNA Paso 5: Determinar FP no ajustados Archivos Internos Lógicos (ILF) x7 x10 x15 Archivos Externos de Interfaz (EIF) x5 x7 x10 Entrada Externa (EI) x3 x4 x6 Salida Externa (EO) x4 x5 x7 Consulta Externa (EQ) x3 x4 x6 Page 8
Paso 6: Determinar el factor de ajuste - 14 características A cada factor debe asignarse un valor de 0 a 5 Se suman los 14 factores, rango posible es 0 a 70 Se normaliza el valor a un factor de ajuste f en el rango 0.65 a 1.35 Paso 6: Determinar el factor de ajuste - 14 características Comunicación de datos Procesamiento de datos distribuido Rendimiento (Performance) Configuración usada fuertemente Tasa de transacción Entrada de datos en línea Eficiencia del usuario final Page 9
Paso 6: Determinar el factor de ajuste - 14 características Actualización en línea Procesamiento complejo Reusabilidad Facilidad de instalación Facilidad operacional Sitios múltiples Facilitamiento del cambio Paso 7: Calcular valor final FP ajustados Se calcula multiplicando el número de puntos de función no ajustados por el factor de ajuste PFA = PFNA * f Page 10
Ejercicio: Utilizando sus conocimientos actuales, su criterio y sentido común, ejecute los 7 pasos del cálculo de FP en el siguiente caso Se va a desarrollar una aplicación simple para mantener y actualizar datos de alumnos que se matriculan en cursos del programa de educación a distancia del Departamento de Informática de la Universidad. Los datos de alumnos que se manejarán son los siguiente: nombre, rol, carrera, fecha de contacto, dirección, teléfono, fax, dirección electrónica. Estos datos se ingresarán inicialmente cuando un alumno se contacte por primera vez con este sistema a través de una página web utilizando su rol como clave fundamental, una password y una tecla Fn. Adicionalmente los coordinadores del programa de educación a distancia tendrán la capacidad de cambiar, vía una página web y utilizando su rol, su password y una tecla Fn, la información de cualquier alumno ya ingresado al sistema (para estos efectos se puede considerar a los coordinadores como superusuarios). Se va a incluir cuatro campos adicionales en estos datos de alumnos, pero se actualizarán a través de una transacción separada, que corresponderá a la matrícula de un curso específico. Estos campos adicionales son: curso matriculado, semestre, año, y fecha de matrícula. Page 11
La matrícula en un curso específico se hará a través de una página web que el alumno podrá accesar directamente, utilizando su rol, su password, y una tecla Fn, y a través de la cual ingresará la información mencionada para completar su matrícula. Todas las passwords estarán en el archivo de passwords, mantenido externamente por otra aplicación. El archivo de passwords contendrá la siguiente información: rol, password. La funcionalidad permitirá que en cualquier momento se recupere la información de los cursos matriculados por un alumno, utilizando su rol, su password y una tecla Fn. Si esta opción la activan los coordinadores se desplegará además tres campos de texto con información adicional. Además semanalmente la aplicación enviará en forma automática un archivo actualizado con toda la información de las matrículas al sistema de matrículas centralizado de la universidad. Cada vez que se produzca un error en alguna de las transacciones se enviará un mensaje de error que se recuperará de un archivo de errores que tiene 3 campos, mantenido externamente. Además, cada vez que se pulse la tecla F1 se desplegará información de ayuda correspondiente a un texto que se mantiene en un repositorio de la aplicación. El cálculo de puntos de función se hace siguiendo las reglas definidas en el IFPUG Counting Practices Manual V4.0 de 1994 Page 12
Variaciones FP tradicional (1979, 1984) Feature points (1986) British Mark II (1988) otros IFPUG (International Function Points User Group) establecido en 1987 para promover el uso de FP a través de conferencias, publicaciones, etc algunos comités education curriculum counting practices management reporting certification new environments benchmarking otros comités formados (Italia, Francia, UK, Holanda entre otros) Page 13
Errores típicos principal: recolectar entradas inadecuados (entradas: 5 parámetros básicos, 14 características generales) tratar de incluir todo lo descrito en los requerimientos reconocer los grupos de datos (archivos) incluir entradas externas que no corresponden Atajos propuestos considerar todos los parámetros de complejidad promedio (razón: determinar la complejidad toma hasta un 30% del esfuerzo total) combinar EO y EQ (razón: no hay claridad si hay diferencias, además las ponderaciones son similares) eliminar el factor de ajuste de complejidad f (razón:en la práctica, f afecta solo +/- 10%) utilizar un f fijo, para realidades típicas Page 14