Beruflich Dokumente
Kultur Dokumente
El mtodo de Puntos Casos de Uso (Use Case Points) fue desarrollado en 1993
por Gustav Kamer, bajo la supervisin de Ivar Jacobson (creador de los casos de
uso y gran promovedor del desarrollo de UML y el Proceso Unificado).
Tabla con los pesos en funcin de la complejidad de la interaccin con los actores
R1 Sistema Distribuido 2 n
R2 Objetivos de rendimiento 1 n
R4 Procesamiento complejo 1 q
R5 Cdigo reutilizable 1 r
R8 Portabilidad 2 u
R9 Fcil de cambiar 1 v
R5 Motivacin 1,0 n5
6) Obtencin de los Puntos Casos de Uso Ajustados. Una vez calculados los
dos factores calculamos el valor ajustado de Puntos Casos de Uso con la
siguiente frmula:
Este esfuerzo calculado no abarcara a todas las fases del proyecto sino
nicamente a la codificacin de los Casos de Uso no estando contemplada otras
fases del desarrollo.
Por tanto, para calcular el esfuerzo total del proyecto habra que estimar el
esfuerzo en realizar el resto de actividades del proyecto y sumarlas a las
obtenidas por el mtodo de Puntos Casos de Uso.
Estimacin Basada en Puntos de Funcin
Una vez presentado el mtodo, su autor realiz mejoras sobre el modelo inicial y
ha publicado diferentes versiones del mismo. En 1986, Allan Albrecht funda
el Grupo Internacional de Usuarios de Puntos de Funcin (en ingls International
Function Point User Group IFPUG). Esta organizacin se encarga de la difusin
del mtodo y de la publicacin de manuales de uso y documentos de cmo sacar
provecho del mismo.
Los Puntos de Funcin fueron diseados originariamente para ser aplicados
a sistemas de informacin de gestin, es por ello que se puso nfasis en la
dimensin de datos, excluyendo las dimensiones funcionales y de control. Su
aplicacin no era del todo adecuada para sistemas de ingeniera y embebidos,
pero con el correr del tiempo, se fueron subsanando estos inconvenientes. An
as, han surgido algunas variantes, entre las que se pueden contar:
Feature Points (Puntos de Caractersticas): este mtodo fue propuesto por
Caper Jones [Jones, 1987] como una alternativa que permitiera obtener puntos de
funcin en software cientfico y de ingeniera. Para evitar confusiones con los
Puntos de Funcin, Jones lo denomin puntos de caracterstica (en ingls feature
points). Actualmente es usado con mucho xito en software del tipo CAD (del
ingls Computer Aided Design), sistemas embebidos y sistemas en tiempo real.
MK II FPA: propuesto por Charles R. Symons [Symons, 1998], este mtodo es
una derivacin de los Puntos de Funcin de Albrecht, el que considera al sistema
que se est analizando, compuesto por cinco tipos de componentes (entradas
externas, salidas externas, consultas externas, grupos de datos lgicos internos y
externos), mientras que el MK II FPA mira al sistema como una coleccin de
transacciones lgicas discretas, compuestas cada una de ellas por
entrada, proceso y salida. Si se usan herramientas modernas de diseo para
el desarrollo del software, y esas herramientas permiten identificar fcilmente las
transacciones lgicas, resulta apropiado el uso de este mtodo.
3-D Function Point: entre los aos 1989 y 1992, Scott Whitmire [Whitmire, 1992]
desarroll un mtodo para la empresa internacional de aeronavegacin Boing.
El objetivo fue ampliar su espectro a sistemas con elevada complejidad como los
sistemas en tiempo real. El trmino 3D, se refiere a que considera tres
dimensiones en las que puede proyectarse un sistema software; ellas son:
datos, funciones y control. Visto de esta forma, resulta atractivo el uso del mtodo,
para aquel tipo de software, pero presenta el inconveniente de la necesidad de
disponer de mayor cantidad de informacin acerca del sistema, sobre todo de la
complejidad de los algoritmos a implementarse; esta informacin no siempre est
disponible en las primeras etapas del desarrollo.
Full Function Points (Puntos de Funcin Completos): esta tcnica ha sido
desarrollada por un equipo de la Universidad de Qubec en Montreal (Canad)
[Abran A., et al., 1998], siendo muy eficiente en la medicin de puntos de funcin
en sistemas de control, tiempo real y embebido. Particularmente, los sistemas en
tiempo real presentan dos factores crticos: primero, el tiempo de respuesta y en
segundo lugar, su interaccin con entidades externas. Los puntos de funcin de
Albrecht tienen limitaciones para medir sistemas software en tiempo real. Estos
ltimos trabajan con dos tipos de estructura de datos de control: grupo lgico de
ocurrencia mltiple, que puede tener ms de una instancia por cada tipo
de registro y el grupo lgico de ocurrencia nica, que puede tener solamente una
instancia por cada tipo de registro. En lo que respecta a las transacciones, los
sistemas en tiempo real, presentan una variacin importante en la cantidad de
subprocesos por proceso; es decir, el mtodo debera contemplar que
unos procesos contaran con unos pocos subprocesos y otros en cambio, con un
nmero significativo de ellos. Los puntos de funcin se basan ms en el nmero
de procesos que en el de subprocesos. Para paliar este inconveniente, Full
Function Points introduce en el clculo no solamente a los procesos, sino que
tambin incluye a los subprocesos.
COSMIC FFP: a finales de 1998, un grupo de expertos en mtricas de software,
establecieron el Common Software Measurement International Consortium
(COSMIC FFP). La iniciativa de COSMIC, ha sido bsicamente la de dar
respuesta a proveedores y a clientes de servicios de desarrollo de software,
principalmente en aquellos contratos de terceros donde no haba reglas claras
acerca del valor de este tipo de servicio. En tal sentido COSMIC apunta a
satisfacer tanto a proveedores de software que deben traducir los requerimientos
del cliente en un tamao del software como un paso clave en la estimacin de
los costos del proyecto, como a los clientes que quieren conocer ese tamao
recibido como un componente importante para la medicin del rendimiento del
proveedor. El mtodo se puede aplicar a dominios de software de gestin, tiempo
real e hbridos.
Los valores constantes de la ecuacin (1) y los factores de peso que se aplican a
las cuentas de los dominios de informacin se determinan empricamente. Una
vez que se han calculado los puntos de funcin, se utilizan de forma anloga a las
lneas de cdigo como forma de normalizar las medidas
de productividad, calidad y otros atributos del software.
Una vez calculado los puntos de funcin se usan de forma analgica a las lneas
de cdigo como medida de la productividad, calidad y otros productos del
software.
Productividad = PF / persona-mes
Calidad = Errores / PF
Costo = Dlares / PF
Documentacin = Pags. Doc / PF
El proceso de clculo y obtencin de puntos de funcin y su posible
transformacin a lneas de cdigo se esquematiza en la figura:
Muchos intentos se han realizado para tratar de establecer una relacin entre
puntos funcin y los esfuerzos asociados con el desarrollo de software. La
dificultad de establecer esta relacin estriba en el hecho de que solo la relacin
entre puntos funcin y el ciclo de vida completo del software son examinados. Esta
seccin examina la relacin entre puntos funcin y las pruebas -- en particular la
relacin entre los casos de prueba y los puntos funcin. La relacin entre puntos
funcin y el nmero de casos de prueba es muy fuerte. Capers Jones estima que
el nmero de casos de prueba aproximadamente ser igual al nmero de puntos
funcin elevado a la potencia 1.2 (FP 1.2). Esto es, los casos de prueba crecen en
una proporcin mayor que los puntos funcin. Esto es intuitivo porque cuando una
aplicacin crece, el nmero de interrelaciones dentro de la aplicacin se vuelven
ms complejas.
Por ejemplo, si una aplicacin de desarrollo tiene 1,000 puntos funcin, debe
haber aproximadamente 4,000 casos de prueba. Obviamente, el equipo de
desarrollo debe empezar a crear casos de prueba tan pronto como sea posible. Si
el equipo de desarrollo espera hasta que el cdigo ha sido completado,
posiblemente slo lograrn crear menos de 4,000 casos de prueba.
El uso de puntos funcin para ayudar a entender rangos de productividad amplios
Una vez que los proyectos han sido determinados, obtener los siguientes datos:
Medida histrica de entrega (horas por punto funcin) de proyectos similares
Programas histricos (duracin de programas por punto funcin) de proyectos
similares
Costos histricos (dlares por punto funcin)
Una vez que el tamao del proyecto se ha determinado en puntos funcin, el
estimado de horas, costo y programa se puede calcular. Los clculos se deben
hacer con datos de proyectos similares como se describi anteriormente.
Por ejemplo, si se determina que el tamao del proyecto actual es de 500 puntos
funcin y la medida de entrega de un proyecto similar es $10 por punto funcin,
entonces el costo total esperado para el proyecto sera $10 ($/punto funcin) x
500 PFs = $5,000 dlares. Pueden hacerse clculos similares para programas,
duracin y horas.
El uso de puntos funcin para ayudar a entender los costos de mantenimiento
Por supuesto, los puntos funcin necesitan usarse en asociacin con las otras
medidas. De hecho, los puntos funcin por s mismos proveen poco o nada de
beneficio. Muchas mtricas necesitan ser reportadas al nivel organizativo. Por
ejemplo, tanto la mtrica de productividad/costo como la mtrica de calidad
necesitan ser reportadas al nivel organizativo. Las mtricas de productividad/costo
son usadas para demostrar la medida y el costo de la funcionalidad que se est
entregando. Las mtricas de calidad son usadas para demostrar niveles existentes
de calidad y para monitorizar los esfuerzos continuos de mejoramiento en el
proceso de desarrollo del software. Estas mtricas deben ser monitorizadas y
estudiadas en sus tendencias.
Resultados de una Experiencia en la Determinacin del Tamao de un Software.
Meses totales del proyecto (dependiendo de factores tales como los atributos de
fiabilidad requerida del software, tamao de la base de datos, complejidad del
producto, limitaciones en el tiempo de ejecucin, limitaciones
de memoria principal, volatilidad de la mquina virtual, frecuencia de cambio en el
modelo de explotacin del ordenador, capacitacin de los analistas, experiencia en
aplicaciones, capacitacin de los programadores, experiencia en la mquina
virtual, experiencia en el lenguaje de programacin, prcticas modernas de
programacin, uso de herramientas para el desarrollo del software y limitaciones
en la planificacin).