Estimación de proyectos
Puntos de función: cómo medir el tamaño de un software antes de construirlo
Los puntos de función miden el tamaño de un software por lo que hace para quien lo usa, no por sus líneas de código. Se cuentan los datos que guarda y las operaciones que ofrece, cada uno con un peso, y el total se convierte en horas con la productividad de tu equipo. Por eso sirven antes de escribir una sola línea.
Por Ricardo Perez, desarrollador de software con 6 años de experiencia · · 8 min de lectura
Qué son los puntos de función
Allan Albrecht los propuso en IBM a fines de los años 70 para comparar la productividad de proyectos hechos en lenguajes distintos. La idea sigue vigente: si mides el software por lo que entrega (guardar un pedido, mostrar un listado, emitir un comprobante), la medida no cambia porque lo programes en un lenguaje u otro.
Hoy hay varios métodos normalizados por ISO: IFPUG (el original), NESMA (ISO/IEC 24570) y COSMIC. Esta guía usa el NESMA estimado, pensado para etapas tempranas, cuando sabes qué hará la app pero no tienes cada pantalla especificada.
Los cinco tipos de función
Todo lo que hace una aplicación se clasifica en dos archivos de datos y tres tipos de transacción:
ILFArchivo lógico interno
- Qué es
- Un grupo de datos que la app guarda y mantiene
- Ejemplo en una tienda
- Usuario, producto, pedido
- Peso
- 7
EIFArchivo de interfaz externo
- Qué es
- Datos que la app usa pero mantiene otro sistema
- Ejemplo en una tienda
- La pasarela de pagos, el proveedor de login
- Peso
- 5
EIEntrada externa
- Qué es
- Una operación que crea o cambia datos
- Ejemplo en una tienda
- Registrarse, agregar al carrito, pagar
- Peso
- 4
EOSalida externa
- Qué es
- Información que la app calcula o genera
- Ejemplo en una tienda
- El comprobante de compra, un gráfico, un correo
- Peso
- 5
EQConsulta externa
- Qué es
- Información que se lee tal como está guardada
- Ejemplo en una tienda
- Ver el perfil, el listado o el detalle de un producto
- Peso
- 4
En un conteo detallado cada función tiene complejidad baja, media o alta según cuántos datos toca. El NESMA estimado la fija de antemano: baja para los archivos (7 y 5) y media para las transacciones (4, 5 y 4). Así basta con identificar las funciones. Hay una versión aún más rápida, el NESMA indicativo, que solo cuenta archivos: 35 puntos por cada ILF y 15 por cada EIF.
Ejemplo: los puntos de función de una tienda en línea
Tomemos una tienda acotada: catálogo, detalle de producto, carrito, pago con pasarela y login. Esto es lo que se cuenta:
- ILF: usuario, producto, pedido y pago.
- EIF: cada servicio de terceros integrado, aquí la pasarela de pagos y el proveedor de autenticación.
- EI: registrarse, iniciar sesión, agregar al pedido y pagar.
- EO: el comprobante de compra.
- EQ: ver el perfil, el listado del catálogo y el detalle de un producto.
ILF
- Cantidad
- 4
- Peso
- × 7
- Puntos
- 28
EIF
- Cantidad
- 2
- Peso
- × 5
- Puntos
- 10
EI
- Cantidad
- 4
- Peso
- × 4
- Puntos
- 16
EO
- Cantidad
- 1
- Peso
- × 5
- Puntos
- 5
EQ
- Cantidad
- 3
- Peso
- × 4
- Puntos
- 12
Total
- Puntos
- 71 PF
De puntos de función a horas
El tamaño se pasa a esfuerzo con la productividad, en horas por punto de función de ciclo completo (requisitos, diseño, construcción, pruebas y puesta en producción):
horas = puntos de función × horas por punto × factor de complejidad
Con 6 horas por punto y complejidad media, la tienda suma 71 × 6 = 426 horas. La estimación por piezas de la misma tienda, con la estimación de tres puntos, da una media de 499 horas: una diferencia de 15 %, así que manda la estimación por piezas, que es la mayor.
Ojo con la productividad: 6 horas por punto es el valor que usa hoy Arkrays, calibrado con apps tipo y no con proyectos reales de tu equipo. Varía mucho según la tecnología, la experiencia y el tipo de sistema. La única cifra confiable es la tuya: horas reales de proyectos cerrados divididas por sus puntos de función.
Para qué sirven (y para qué no)
- Sirven para detectar alcance escondido. Si los puntos de función dan bastante más que la suma de piezas, casi siempre falta algo en la arquitectura: un SaaS tiene organizaciones y miembros, un marketplace tiene vendedores y liquidaciones, aunque no se vean en el diagrama.
- Sirven para comparar cotizaciones. Dos ofertas con el mismo precio pueden cubrir tamaños muy distintos; los puntos de función ponen ambas en la misma unidad.
- No miden la dificultad técnica. Una integración frágil o un requisito de rendimiento exigente pesa lo mismo que una operación simple. Por eso conviene contrastarlos con una estimación por piezas, no reemplazarla.
- No dicen cuánto se tarda. El tamaño no considera qué tareas dependen de otras; eso lo resuelve la ruta crítica del proyecto.
Cómo los usa el cotizador
El cotizador de software cuenta los puntos de función de tu arquitectura con el NESMA estimado y los compara con la suma de piezas. Si difieren en más de 25 %, te avisa; el total usa siempre el mayor de los dos, el más conservador. El detalle del método está en los métodos de estimación de Arkrays.
Cuenta los puntos de función de tu app
El cotizador cuenta los puntos de función de tu arquitectura y los contrasta con la estimación por piezas: si difieren, te avisa y manda el más conservador.
Preguntas frecuentes
¿Qué son los puntos de función?
Una medida del tamaño funcional de un software: cuántos datos mantiene y cuántas operaciones ofrece al usuario, cada una con un peso. No depende del lenguaje ni de la tecnología, por eso se puede medir antes de construir.
¿Cómo se calculan los puntos de función?
Se identifican los archivos lógicos (ILF y EIF) y las transacciones (EI, EO y EQ), se multiplica cada uno por su peso según su complejidad y se suman. El total se pasa a horas multiplicando por la productividad, en horas por punto de función.
¿Cuántas horas son un punto de función?
Depende del equipo, la tecnología y el tipo de proyecto, y varía mucho de una organización a otra. La cifra confiable es la propia: horas reales de proyectos cerrados divididas por sus puntos de función.
¿Qué diferencia hay entre IFPUG, NESMA y COSMIC?
IFPUG es el método original de conteo detallado. NESMA comparte sus reglas y agrega conteos tempranos (indicativo y estimado) para cuando el alcance aún no está cerrado. COSMIC mide movimientos de datos y se usa también en software embebido.