78
Function Points Introducción y Revisión Básica Antonio Fernández Armas – IT Specialist 27 de Mayo 2016

Function points

Embed Size (px)

Citation preview

Page 1: Function points

Function Points

Introducción y Revisión Básica

Antonio Fernández Armas – IT Specialist27 de Mayo 2016

Page 2: Function points

Antonio Alejandro Fernández Armas:

Licenciado en Computación, con más de 30 años en el sector de TI, con experiencia en Consultoría de Sistemas en empresas lideres en Perú, Sudamérica y Europa, Jefatura de Proyectos de TI en empresas de mediana y gran envergadura, tanto del ámbito local como regional, amplia experiencia en negociación, definición y evaluación de requerimientos en proyectos relacionados con las siguientes industrias:Hidrocarburos (15 años), Ingeniería Civil y Geológica, Telecomunicaciones, Minero, Banca, Entidades Gubernamentales, Automotriz, Agroindustrial, Metal-mecánicos, entre otros.

Jefe de Proyecto Regional para proyectos en Perú, Venezuela, Argentina y México. Consultoría y Análisis de Procesos de (Telefónica-España, Financiera Sudamericana-Colombia, Banco de Pichincha-Ecuador,

Banco de Crédito, Banco Wiese Sudameris, Grupo Romero e IBM Worldwide entre otras). Participación activa en el Proyecto Piloto de Migración de Plataforma Mainframe/AIX en el Banco Central de Reserva del

Perú; de Base de datos DATACOM/DB a DB2 en el Banco de la Nación (Proyecto Piloto), Migración de Aplicaciones de VM a MVS para IBM LA, entre otros

Miembro del Equipo de Certificación CMM- 2 y CMM 3 y CMMI – 4. Participación en proyectos de mantenimiento y desarrollo de aplicaciones, en diferentes líneas de negocio de compañías

internacionales y nacionales de prestigio. Participación como Business Analyst en Proyectos de Testing y Automatización de Testing en Empresas de Banca, Telco y

Proyectos Internos de IBM Worldwide. Dominio de herramientas y lenguajes de desarrollo de software en Plataforma mainframe y relacionados.

Page 3: Function points

Qué son Puntos de Función

Breve historia del Análisis de Puntos de Funcion

Qué necesitamos y porqué usamos Puntos de Función

“Cómo contar” Puntos de Función – Revisión Básica

Beneficios de contar Puntos de Función – Pros y Contras

Recomendaciones

Ejemplo de conteo de Puntos de Función

Referencias

Agenda

Page 4: Function points

• Punto de Función es una unidad de medida para expresar el monto de funcionalidad del negocio que un Sistema de información provee a un Usuario

• El número de puntos de función esta determinada por la identificación de los componentes del Sistema desde el punto de vista del Usuario:o Las entradaso Las salidaso Las consultaso Las interfases con otros sistemas, yo Los archivos lógicos internos

• Los componentes son clasificados como simple, promedio o complejo• Los valores son asignados para conseguir un total de puntos de función no ajustados• Un factor de peso (valor de ajuste) de +/- el 35% es aplicado de acuerdo a 14 factores

de complejidad para producir la cuenta de puntos de función ajustados• Existen algunos procesos ISO que cubren los puntos de función. El más común es

IFPUG

Qué son Puntos de Función

Page 5: Function points

• Solo aplica para projectos de AD que entregan funciones de negocio – de tal manera que no aplica a todos los projectos AD como los de manejo de imágenes

• Preponderantemente mide datos en movimientos (transacciones) y datos estáticos (files).Por lo tanto por definición, los puntos de función no son adecuados para medir el tamaño de algunos tipos de proyectos como: o Sistemas con procesos con mucha información, pero pobres en datoso Sistemas que muestran complejidad en algoritmos/cálculos – por ejm. Aplicaciones de modelos

económicoso Aplicaciones científicas – por ejm. aplicaciones de modelos climáticoso Tiempo real, sistemas de control de procesos – sistemas de alarmas, sistemas que controlan

equipos• Requiere entrenamiento y esfuerzo.• Puede requerir interpretación para algunos escenarios• Puede estimar pobremente aplicaciones con pesado esfuerzo de modificación, o aplicaciones

“spaghetti code”• Puede ser percibido como una solución muy pesada

Desafios de los Puntos de Función

Page 6: Function points

Funciones de datosILF - Internal Logical File

Es un grupo de datos lógicamente relacionado o control de información reconocible por el Usuario que es mantenido dentro de los límites de la aplicación a ser medida

EIF – External Interfase FileEs un grupo de datos lógicamente relacionado o control de información reconocible por el Usuario, que es referenciada por la aplicación a ser medida pero que es mantenido dentro de los límites de otra aplicaciónEl EIF contado debe ser un ILF de otra aplicación

Medición de las Funciones de datosRET – Record Element Type

Son tipo de subgrupos de datos lógicamente relacionados, reconocible por el Usuario, dentro de una función de datos (ILF o EIF)Un RET esta compuesto por 2 o más DETsPor ejemplo una dirección esta compuesta por el nro. de la casa, el nombre de la calle, ciudad, código postal.

DET – Data Element TypeUn tipo de dato elemental es un único, reconocible por el Usuario, atributo no repetitivoDET es un campo dentro de un ILF o EIFEjemplo de DET es primer nombre, segundo nombre, ciudad, etc.

Acrónimos en Puntos de Función – Datos

Page 7: Function points

Funciones de transacción – provee funcionalidad a un Usuario o Aplicación externaEI – External Input

Procesa información, de datos o de control, que es enviado desde afuera de la fronteraPor ejem. Agregar un nuevo cliente, cambiar la dirección de un cliente o eliminar un cliente

EO – External OutputEnvia información, de datos o control, fuera de los límites de la aplicaciónTipicamente presenta información procesada a un UsuarioPor ejm. muestra un reporte de ventas en pantalla, imprime una carta o produce un archivo

EQ – External InquiryEnvia información, de datos o control, fuera de los límites de la aplicaciónTipicamente presenta información no procesada a un UsuarioPor ejm. Simples queries para ver o listar información

Medición de las Funciones de transacciónFTR – File Type Referenced

Funciones de datos leidas y/o mantenidas por una función transacciónEs un ILF o EIF

DET – Data Element TypeUn tipo de dato elemental es un único atributo no repetitivo, reconocible por el Usuario DET es un campo dentro de un ILF o EIFEjemplo de DET es primer nombre, segundo nombre, ciudad, etc.

Acrónimos de Puntos de Función – Transacciones

Page 8: Function points

Qué son Puntos de Función

Breve historia del Análisis de Puntos de Funcion

Qué necesitamos y porqué usamos Puntos de Función

“Cómo contar” Puntos de Función – Revisión Básica

Beneficios de contar Puntos de Función – Pros y Contras

Recomendaciones

Ejemplo de conteo de Puntos de Función

Referencias

Agenda

Page 9: Function points

• Allan Albrecht, de IBM, desarrolló en 1979 un método de conteo de funciones desde el punto de vista del Usuario.

• En 1984 la técnica fue refinada para mejorar el método de medición de funciones de usuario y las características generales de una Aplicación y fue liberada por IBM como Albrecht 84.

• Debido al interés de contar con un standard en la industria de IT para la medición del desarrollo de software, en 1986 se formó la International Function Point Users Group (IFPUG) del cual IBM es participante.

• Desde 1986 la IFPUG ha publicado varias versiones del Manual de Conteo de Puntos de Función. Sin embargo, una nueva version es publicada solo después de un sólido proceso salvaguardando los estandares de modificaciones. La version actual es la 4.3.1. que fue publicada en junio de 2010.

• IFPUG: http://www.ifpug.org/ . Online.

Breve historia del Análisis de Puntos de Función

Page 10: Function points

Qué son Puntos de Función

Breve historia del Análisis de Puntos de Funcion

Qué necesitamos y porqué usamos Puntos de Función

“Cómo contar” Puntos de Función – Revisión Básica

Beneficios de contar Puntos de Función – Pros y Contras

Recomendaciones

Ejemplo de conteo de Puntos de Función

Referencias

Agenda

Page 11: Function points

• Los recursos adecuados:o Los usuarios principales de la Aplicación.o Los desarrolladores de programas / Personas que estan familiarizados con el

programa (lógica).o Los clientes o propietarios de la aplicación.o Analistas de Sistemaso Gerente de Proyectoo Especialistas de Puntos de funcióno Analistas de Medición

Qué necesitamos

Page 12: Function points

• La documentación adecuada:o Ayudas que proporcionen una visión de las funcionalidades que estan siendo

contadas

Una arquitectura de alto nivel de la aplicaciónUn modelo lógico de datosEspecificaciones detalladas del diseño y de los requerimientos, incluyendo

requerimientos funcionalesLos modelos del negocio por función / procesoManuales del usuarioPantallas impresasDiseño de los reportes impresosEl manual de Function Point Counting Practices

Qué más necesitamos

Page 13: Function points

• No se puede controlar lo que no se puede medir

• El conteo de Software puede ser:o Semántico

El conteo de lineas de código solo se puede hacer al final del desarrollo No es comprensible por el Usuario

o Funcional Se puede realizar desde las fases más tempranas de desarrollo de software. Es entendible por el Usuario. Es independiente de la tecnología y de la implementación

• El conteo de Puntos de Función esta alineado con las procesos de CMMI.• Alineado con las prácticas ISO (ISO / IEC 14143)• Esta soportado por organizaciones que garantizan la metodología del conteo como la IFPUG, NESMA, etc. con más de 25

años de experiencia• El proceso de conteo tiene una validación rigurosa y los analistas de conteo deben ser especialistas entrenados. Existe el

programa de certificación CFPS — Cer ti fied Func tion Point Spe ci a list — que reconoce a los profesionales con la capacidad de realizar conteos de puntos de función de una manera adecuada y consistente y que conocen las últimas prácticas de conteo del IFPUG.

• Existen centros de desarrollo en diversos países (México, India, entre otros) que pueden realizar y validar los conteos realizados. Además de absolver consultas al respecto.

Porqué usamos Puntos de Función

Page 14: Function points

14May 1, 2023

AgendaQué son Puntos de FunciónBreve historia del Análisis de Puntos de FuncionQué necesitamos y porqué usamos Puntos de Función“Cómo contar” Puntos de Función – Revisión BásicaBeneficios de contar Puntos de Función – Pros y ContrasRecomendacionesEjemplo de conteo de Puntos de FunciónReferencias

Page 15: Function points

Cómo contar Puntos de Función – Proceso de Conteo

Page 16: Function points

Cómo contar Puntos de Función – Determinar Tipo de Conteo

Nuevo Desarrollo: Primera instalación de un sistema. Incluye conversión de datos

Mejora: Cambios sobre un sistema ya instalado. Incluye conversión de datos

Aplicación: Análisis de un sistema en Producción que no se va a cambiar. Sirve para establecer la línea Base

Page 17: Function points

Cómo contar Puntos de Función – Identificación del Alcance y Límites

El Alcance define el conjunto de funcionalidades que se van a contar.

Los límites separa la aplicación del mundo externo del Usuario y otras aplicaciones:

Identificar los datos del negocio manejados y la data del negocio que es solo referenciada

Considerar las vistas o lista de interrelaciones del negocio

Page 18: Function points
Page 19: Function points

Cómo contar Puntos de Función – Conteo de las funciones de datos

Representan la funcionalidad que se proporciona al Usuario para satisfacer los requerimientos de datos internos y externos:

Internal Logical Files (ILFs) – medido mediante Record Element Types (RETs) y Data Element Types (DETs)

External Interface Files (EIFs) – medido mediante Record Element Types y Data Element Types

Definición de DET: Es un tipo de elemento de datos único, reconocible por el Usuario y no repetitible

Definición de RET: Es un subgrupo de elementos de datos reconocible por el Usuario

Page 20: Function points

Cómo contar Puntos de Función – Conteo de las funciones de transacciones

Representan la funcionalidad que se proporciona al Usuario para el procesamiento de los datos por la aplicación:External Input (EIs) – medido mediante Data Element Types y Files Types

Referenced (FTR)External Outputs (EOs) – medido mediante Data Element Types y Files Types

Referenced (FTR)External Inquiries (EQs) - medido mediante Data Element Types y Files Types

Referenced (FTR) Definición de DET: Es un tipo de elemento de datos único, reconocible por el

Usuario y no repetitible Definición de FTR: Un tipo de file referenciado es:

Es un file interno lógico leído o mantenido por una Función transaccional, oUn file externo de interfase leído por una Función transaccional.

Page 21: Function points

Funciones de Datos:A cada ILF y a cada EIF se le da una rango de complejidad basado en el número de DETs y RETs contenidos en el ILF

Funciones de Transacción:

A cada EI se le da una rango de complejidad basado en el número de FTRs y DETs contenidos en el EI

A cada EO y a cada EQ se le da una rango de complejidad basado en el número de FTRs y DETs contenidos en el EO / EQ

Matriz de Clasificación

Page 22: Function points

Determinación de la complejidad/tamaño de los Puntos de Función

La complejidad/tamaño de Puntos de Función (FPs) de una función transaccional esta basada en el número de File Types Referenced (FTRs) y Data Element Types (DETs) usados: EI – 3 a 6 FPs EO – 4 a 7 FPs EQ – 3 a 6 FPsLa complejidad/tamaño de Puntos de Función (FPs) de una función de datos esta basada en el número de Record Element Types (RETs) y Data Element Types (DETs) usados: ILF – 7 a 15 FPs EIF – 5 a 10 FPs

Tipo de Función Bajo Promedio Alto

EI x 3 x 4 x 6

EO x 4 x 5

EQ x 3 x 4 x 6

ILF x 7 x 10 x 15

EIF x 5 x 7 x 10

Page 23: Function points

Cómo contar Puntos de Función – Determinar el Valor del factor de Ajuste (VAF)

En paralelo con el cálculo de los UFPs podemos calcular el valor del factor de ajuste (Value Adjustment Factor o VAF)

Representa la funcionalidad general que se le da al Usuario de la aplicación

Está compuesto por las 14 características generales del sistema (General System Characteristics o GSCs)

Cada una tiene una descripción para determinar el grado de influencia sobre la aplicación que estamos contando. Se valora el grado de influencia de 0 a 5

Page 24: Function points

Las 14 GSCs Comunicaciones de datos, grado por el cual la aplicación se comunica directamente con el procesador Proceso de datos distribuidos, grado por el cual la aplicación transfiere data a través de los componentes físicos de la aplicación Rendimiento, grado por el cual el tiempo de respuesta y las consideraciones de performance influencian el desarrollo de la aplicación Uso de la configuración, grado por el cual las restricciones de recursos de cómputo influencian el desarrollo de la aplicación. Configuraciones

operacionales usados fuertemente pueden requerir especiales consideraciones cuando se diseña la aplicación Ratio de transacciones, cómo la frecuencia de transacciones del negocio influencian el desarrollo de la aplicación Entrada de datos on-line, grado por el cual la data es ingresada o recuperada a través de las transacciones interactivas. Entradas de datos, funciones

de control, reportes y consultas son provistas en la aplicación Eficiencia del usuario final, grado de consideración para los factores humanos y la facilidad de uso para el Usuario de la aplicación medida. Las

funciones on-line proveen énfasis en un diseño para la eficiencia del usuario Actualización on-line, grado por el cual los Internal logical files (ILFs) son actualizados on-line. La aplicación provee actualizaciones on-line para los

ILFs Complejidad del proceso, grado por el cual el procesamiento lógico influencia el desarrollo de la aplicación Reutilización, grado por el cual la aplicación y el código en la aplicación han sido específicamente diseñados, desarrollados y soportados para ser

reusables en otras aplicaciones Facilidad de instalación, grado por el cual conversiones de ambientes previos influencian el desarrollo de la aplicación. Un plan de conversión /

instalación o herramientas serán provistas Facilidad de Operación, grado por el cual la aplicación contempla los aspectos operacionales, tales como arranque, back-up, y procesos de

recuperación Sitios Múltiples, cuando la aplicación ha sido desarrollada para diferentes ambientes de hardware y software Facilidad de cambios, grado por el cual la aplicación ha sido desarrollada facilitando la modificación del procesamiento lógico o estructura de datos.

Realizado hasta en dos parte: consultas flexibles y datos de control de datos del negocio

Page 25: Function points

Hallando el VAF

Sumando los Grados de Influencia (DI) de cada una de las 14 GSCs calculamos el Grado Total de Influencia (TDI)

Aplicamos la siguiente fórmula:

• VAF = (TDI * 0.01) + 0.65

El VAF puede ajustar los UFPs en +/- 35%

Page 26: Function points

Cómo contar Puntos de Función – Cálculo de los Puntos de Función Ajustados

Conteo de la Aplicación:

• AFP = UFP x VAF

Page 27: Function points

Ejemplo – Escenario

Una aplicación que mantiene los datos del Cliente y los datos de Productos, y referencia la información de stock del producto del sistema externo de Proveedores

Datos del ClienteAgrega, Cambia, Elimina datos del ClienteConsulta de Clientes1 reporte sobre Clientes

Datos del ProductoAgrega, Cambia, Elimina datos del ProductoConsulta de Productos1 reporte sobre Productos

Proveedores Información de referencia del stock de producto

Page 28: Function points
Page 29: Function points
Page 30: Function points
Page 31: Function points

Qué son Puntos de Función

Breve historia del Análisis de Puntos de Funcion

Qué necesitamos y porqué usamos Puntos de Función

“Cómo contar” Puntos de Función – Revisión Básica

Beneficios de contar Puntos de Función – Pros y Contras

Recomendaciones

Ejemplo de conteo de Puntos de Función

Referencias

Agenda

Page 32: Function points

Beneficios de usar Puntos de Función – Pros y Contras

Beneficios generales:

Independiente de la tecnologia

Independiente de los Lenguajes de Programación

Se puede medir desde una fase temprana

Lo único que se necesita para el conteo de Puntos de Función son los requerimientos

Provee un método que facilita la comunicación con los grupos de negocio.

Otorga un vision clara del tamaño, costo y productividad

Mantiene a todas las partes involucradas en la estimación

Provee de manera natural una sólida base de la documentación

Page 33: Function points

Beneficios de usar Puntos de Función – Pros y Contras

Contras:

Puede consumir mucho tiempo

Para comparar un proyecto con otro los conteos deben estar supervisados por una persona certificada

Requiere una buena base de data histórica y de conteo de puntos de función pasados

Requiere un Contador de puntos de función entrenado

Las técnicas de conteo pueden variar de un Contador a otro

Implantarlos cuesta tiempo y dinero, ya que hay que vencer la resistencia al cambio, formación, etc.

Page 34: Function points

Qué son Puntos de Función

Breve historia del Análisis de Puntos de Funcion

Qué necesitamos y porqué usamos Puntos de Función

“Cómo contar” Puntos de Función – Revisión Básica

Beneficios de contar Puntos de Función – Pros y Contras

Recomendaciones

Ejemplo de conteo de Puntos de Función

Referencias

Agenda

Page 35: Function points

Recomendaciones para su uso

La planificación para el uso del Análisis de Puntos de Función debe considerar entre otros puntos, los siguientes: Todos los integrantes del Proyecto y relacionados con él deben seguir un curso de

Puntos de Función y el Laboratorio Se debe realizar el conteo de la Aplicación o aplicaciones con el objeto de establecer

la linea base Se deben seguir los lineamientos establecidos en la organización para la Gestión del

Uso de los Puntos de Función Se debe designar Analistas especializados en conteo quienes serán los encargados de

realizar el conteo y seguir el procedimiento definido Se deben validar todos los conteos realizados con la finalidad de establecer un criterio

común en el conteo de los Puntos de Función Debe crearse una base histórica de conteo con la finalidad de ir afinando esta

estimación y de crear las respectivas métricas de tiempo y costo.

Page 36: Function points

Qué son Puntos de Función

Breve historia del Análisis de Puntos de Funcion

Qué necesitamos y porqué usamos Puntos de Función

“Cómo contar” Puntos de Función – Revisión Básica

Beneficios de contar Puntos de Función – Pros y Contras

Recomendaciones

Ejemplo de conteo de Puntos de Función

Referencias

Agenda

Page 37: Function points

Caso WebLa Agencia de Viajes ACME Business Travel ha decidido agregar funcionalidad a su suite BT Express System de aplicaciones mediante la creación de una versión Web.Los Usuarios de BT Express ahora podrán agregar, actualizar, consultar y eliminar registros de Clientes y registros de Itinerarios de los clientes y del archivo de Itinerarios, via Internet.BT Express aún lee el archivo de Agentes que es aún mantenido por el ACME BT Agent System, y el archivo de Reservaciones de Aerolineas que es aún mantenido por el Direct Order Reservation System.La funcionalidad de ayuda es accesada por el botón “Help” de cada página. El Help es mantenido por el administrador de BT Express. BT Express provee un medio para el administrador para actualizar el texto de help (esto no está mostrado)Los mensaje de errores son hardcode dentro de los programas (los desarrolladores agregan, cambian y eliminan éstos).Los Clientes pueden obtener una copia de sus itinerarios por medio de la Web site de BT Express y ver o imprimir éstos por ellos mismos. La capacidad de Imprimir es provista por el proveedor de Internet y no por el BT Express.Se provee la siguiente documentación: Arreglo jerárquico de las pantallas de BT Express El Diagrama de Flujo de datos de BT Express Documentación de los layouts de las pantallas y funciones. Documentación de las General System Characteristics (GSC)

Page 38: Function points
Page 39: Function points

Data Flow Diagram of BT Express System

Page 40: Function points
Page 41: Function points
Page 42: Function points
Page 43: Function points
Page 44: Function points
Page 45: Function points
Page 46: Function points
Page 47: Function points
Page 48: Function points
Page 49: Function points
Page 50: Function points
Page 51: Function points
Page 52: Function points
Page 53: Function points
Page 54: Function points
Page 55: Function points
Page 56: Function points
Page 57: Function points
Page 58: Function points
Page 59: Function points
Page 60: Function points

Resultados para caso Web

Page 61: Function points
Page 62: Function points
Page 63: Function points
Page 64: Function points
Page 65: Function points
Page 66: Function points
Page 67: Function points

Internal logical Files

Page 68: Function points

Internal Logical Files ( Cont.)

Page 69: Function points
Page 70: Function points
Page 71: Function points
Page 72: Function points

Maintain Itinerary ( Cont.)

Page 73: Function points
Page 74: Function points
Page 75: Function points
Page 76: Function points
Page 77: Function points

Qué son Puntos de Función

Breve historia del Análisis de Puntos de Funcion

Qué necesitamos y porqué usamos Puntos de Función

“Cómo contar” Puntos de Función – Revisión Básica

Beneficios de contar Puntos de Función – Pros y Contras

Recomendaciones

Ejemplo de conteo de Puntos de Función

Referencias

Agenda

Page 78: Function points

Referencias