Universidad Técnica Federico Santa María Departamento de Informática Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 1 Puntos de función (FP) © 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. Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © Usos industriales de puntos de función: © © © © Productividad: FP/Esfuerzo Responsiveness: FP/Tiempo calendario Calidad: Defectos/FP Negocio: Costo/FP Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 2 Costos de puntos de función FP Diseño Construcción Total 1501-2000 2001-2500 2501-3000 3001-3500 3501-4000 US$242 US$255 US$265 US$274 US$284 US$967 US$1019 US$1058 US$1094 US$1134 US$725 US$764 US$793 US$820 US$850 Fuente: RDI (USA) Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Rangos de productividad en PF/MM Tamaños Seleccionados Tasas de Productividad PF/MM 100 PF 1000 PF 10000 PF > 100 75 a 100 50 a 75 25 a 50 15 a 25 5 a 15 1a5 >1 1.0% 3.0% 7.0% 15.0% 40.0% 25.0% 10.0% 4.0% 0.01% 0.1% 1.0% 5.0% 10.0% 50.0% 30.0% 4.0% 0.0% 0.0% 0.0% 0.1% 1.4% 13.5% 70.0% 15.0% Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 3 Factores de conversión PF a LOC Lenguaje Assembler C ALGOL COBOL FORTRAN Pascal RPG PL/1 Modula-2 Prolog LISP BASIC 4GL para BD APL Smalltalk Query Spreadsheet Íconos Gráficos Instrucciones Fuente por PF (aprox) 320 128 105 105 105 91 80 80 80 64 64 64 40 32 29 13 6 4 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 4 Puntos de función (FP) Ejemplo de aplicación guía telefónica Recepcionista Administrativo Actualiza guía Fronteras Requiere, recupera, despliega información de los datos de la guía telefónica Guía Telefónica Listado telefónico Imprime listado mensual Datos guía telefónica Determina si es empleado Personal Datos empleados Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 5 Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © Paso 2: Identificar fronteras de la aplicación Usuario externo Salida externa Entrada externa Consulta externa Salida externa Archivo Externo de Interfaz Archivo Interno Lógico Entrada externa Frontera de la aplicación Otras aplicaciones Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 6 Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 7 Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 8 Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 9 Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 10 Puntos de función (FP) © Ejercicio: Utilizando sus conocimientos actuales, su criterio y sentido común, ejecute los 7 pasos del cálculo de FP en el siguiente caso Ingeniería de Software Avanzada Dr. Marcello Visconti Z. 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. Ingeniería de Software Avanzada Dr. Marcello Visconti Z. 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. Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © El cálculo de puntos de función se hace siguiendo las reglas definidas en el IFPUG Counting Practices Manual V4.0 de 1994 © capítulos 4,5,6 entregados Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 12 Puntos de función (FP) © Variaciones © © © © FP “tradicional” (1979, 1984) Feature points (1986) British Mark II (1988) otros Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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) Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 13 Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Puntos de función (FP) © 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 Ingeniería de Software Avanzada Dr. Marcello Visconti Z. Page 14