Punto de función


El punto de función es una "unidad de medida" para expresar la cantidad de funcionalidad comercial que un sistema de información (como producto) proporciona a un usuario. Los puntos de función se utilizan para calcular una medición de tamaño funcional (FSM) de software. El costo (en dólares u horas) de una sola unidad se calcula a partir de proyectos anteriores. [1]

Hay varios estándares reconocidos y / o especificaciones públicas para el dimensionamiento del software basado en Function Point.

Los primeros cinco estándares son implementaciones del estándar general para la medición de tamaño funcional ISO / IEC 14143. [2] La especificación OMG Automated Function Point (AFP), dirigida por el Consortium for IT Software Quality , proporciona un estándar para automatizar la función. Conteo de puntos de acuerdo con las pautas del International Function Point User Group ( IFPUG ) Sin embargo, las implementaciones actuales de este estándar tienen una limitación para poder distinguir la salida externa (EO) de las consultas externas (EQ) de forma inmediata, sin algunos configuración inicial. [3]

Los puntos de función se definieron en 1979 en Midiendo la productividad del desarrollo de aplicaciones por Allan Albrecht en IBM . [4] Los requisitos funcionales del usuariodel software se identifican y cada uno se clasifica en uno de cinco tipos: salidas, consultas, entradas, archivos internos e interfaces externas. Una vez que la función se identifica y categoriza en un tipo, se evalúa su complejidad y se le asignan varios puntos de función. Cada uno de estos requisitos funcionales del usuario se asigna a una función comercial del usuario final, como una entrada de datos para una Entrada o una consulta de usuario para una Consulta. Esta distinción es importante porque tiende a hacer que las funciones medidas en puntos de función se correspondan fácilmente con los requisitos orientados al usuario, pero también tiende a ocultar funciones internas (por ejemplo, algoritmos), que también requieren recursos para su implementación.

Actualmente no existe un método FSM reconocido por ISO que incluya complejidad algorítmica en el resultado del dimensionamiento. Recientemente, se han propuesto diferentes enfoques para hacer frente a esta debilidad percibida, implementados en varios productos de software comerciales. Las variaciones del método IFPUG basado en Albrecht diseñadas para compensar esta (y otras debilidades) incluyen:

Albrecht observó en su investigación que los puntos de función estaban altamente correlacionados con las líneas de código, [9] lo que ha resultado en un cuestionamiento del valor de tal medida si se dispone de una medida más objetiva, es decir, contar líneas de código. Además, ha habido múltiples intentos de abordar las deficiencias percibidas con la medida aumentando el régimen de conteo. [10] [11] [12] [13] [14] [15] Otros han ofrecido soluciones para sortear los desafíos mediante el desarrollo de métodos alternativos que crean un proxy para la cantidad de funcionalidad entregada. [dieciséis]