Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD V
MEDICION DE LA PRODUCTIVIDAD
productiv idad=
El estndar ISO 9126 nos provee de un modelo para definir los atributos que debe tener un software de calidad.
Ya hemos estudiado tambin que el esfuerzo total de desarrollo consiste en medir los recursos utilizados en el
proceso de desarrollo: monetarios, temporales, humanos, materiales, etc.
Cuando se trata de un proceso de desarrollo terminado, el clculo de la productividad resultar sencillo de
calcular, en la medida en que ya conocemos ambas variables.
Sin embargo, uno de los problemas ms comunes a la hora de iniciar un proyecto de desarrollo es la estimacin.
Cuando un cliente nos solicita el desarrollo de un software, cmo podemos saber qu tan grande es ese
software?, cmo saber cunto esfuerzo requiere su desarrollo?, y por ende; cunto tiempo necesitamos para su
desarrollo?, cunto debemos cobrar por ese proyecto?.
Ya hemos mencionado, en la Unidad I; cuales son los costos que se deben considerar en un proyecto. En la fase
de Planificacin, estos costos estarn determinados por las actividades que se hayan definido para la realizacin
del proyecto, los recursos necesarios para realizar estas actividades y el tiempo de cada actividad.
El proceso de Programacin de proyectos por lo tanto, requiere de un punto de partida para definir estas
variables (actividades, tiempos y recursos).
Durante las primeras etapas de la evolucin del proceso de desarrollo de software, se crearon una serie de
mtricas que respondan a la tecnologa y tcnicas utilizadas para el desarrollo:
Medidas relacionadas con el tamao: Estas mtricas se relacionan con el tamao de la salidas de alguna
actividad (proceso en el software). Las ms comunes son: lneas de cdigo fuente entregadas, nmero de
instrucciones de cdigo objeto entregado, nmero de pginas de documentacin del sistema.
Medidas relacionadas con la funcin: Estas mtricas se relacionan con la funcionalidad total del software
entregado. Las ms conocidas fueron: Puntos de Funcin, Puntos Caracterstica y Puntos Objeto.
Algunas de estas mtricas han quedado en desuso con el tiempo, debido a que ya no se ajustan a las tcnicas o a
la tecnologa utilizada para el desarrollo.
A. PUNTOS DE FUNCION
La mtrica Punto de Funcin (Function Points FP-), fue creada por Allan Albrecht en 1979. como una tcnica
de estimacin del tamao del software sobre la base de la funcionalidad entregada al usuario,
independientemente de la tecnologa utilizada para su desarrollo. La mtrica ha sobrevivido hasta nuestra poca,
habindose desarrollado muchas variantes.
Uno de los consensos ms importantes sobre su aplicacin es la necesidad de establecer qu se debe medir y
cmo se medir. Esto generalmente responde al hecho de que las estimaciones de software a travs de esta
mtrica pueden darse en etapas muy tempranas del desarrollo. Desde la planificacin, donde se cuentan con
informacin muy bsica sobre lo que ser el software, hasta etapas finales donde ya se tienen claras las
caractersticas del software construido. De hecho, esta mtrica es usualmente aplicada en fase de anlisis, donde
ya se tiene una idea ms clara sobre las caractersticas del software que se est desarrollando, y sirve para
revaluar la estimacin realizada al inicio.
El uso de Puntos de Funcin para proyectos de mejora requieren de otras consideraciones que no abordaremos
en esta asignatura. Nos centraremos en la aplicacin del mtodo para un proyecto de desarrollo.
Antes de describir como realizar el conteo de los elementos que conforman la mtrica, hay que definir los
siguientes trminos:
Identificable por el usuario. Se refiere a los requerimientos definidos para procesos y grupos de datos
acordados y comprendidos por los usuarios y el equipo de desarrollo.
Proceso elemental. Un proceso elemental es la unidad ms pequea de una actividad que tiene un
significado para el usuario. Por ejemplo, un requerimiento de usuario puede ser la capacidad para
agregar un nuevo empleado a travs de una aplicacin para la gestin de planillas. La informacin de un
empleado incluye el salario y el puesto. Desde la perspectiva del usuario, la unidad ms pequea es
agregar un nuevo empleado, y no ingresar el salario o el puesto.
Un proceso elemental puede ser de entrada, de salida o de consulta. Un proceso elemental de entrada se
referir a la creacin, actualizacin o eliminacin de grupos de datos. Podemos ver este proceso como
las operaciones C, U y D de un proceso CRUD (Create, Read, Update, Delete).
Un proceso elemental de salida se referir a la presentacin de datos almacenados. Podemos ver este
proceso como una operacin R de un proceso CRUD. De igual manera, un proceso elemental de
consulta ser visto como una operacin R de un proceso CRUD.
Mantenimiento. Se refiere a la capacidad de acceder y modificar los datos a travs de un proceso
elemental. En este documento, cuando nos refiramos a mantener, nos referiremos a esa capacidad.
Informacin de control. Es un dato que influye en un proceso elemental de la aplicacin, y que
especifica qu, cundo o cmo los datos son procesados.
Lgica de procesamiento. La lgica de procesamiento es definida como requerimientos especficos por
el usuario para completar un proceso elemental. Esos requerimientos pueden incluir: validaciones,
frmulas matemticas, conversiones de datos, filtrado de datos, condiciones para aplicar las reglas del
negocio, la actualizacin de uno o ms archivos lgicos internos, referencias a uno o ms archivos
lgicos internos o archivos de interfaz externa, retorno de informacin de control.
Archivos planos
Opcionales. Los tipos de RET opcionales son subgrupos de elementos de datos que no son necesarios
para crear una instancia de datos.
Obligatorios. Los tipos de RET obligatorios son subgrupos de elementos de datos que el usuario deber
usar (al menos uno), para crear una instancia de datos.
Desde un enfoque ER, los RET se refieren a las relaciones obligatorias (mandatorias), que se expresan en las
llaves forneas, y a aquellos atributos obligatorios (NOT NULL) de las tablas. Cada una de las llaves forneas
obligatorias debe contar como un RET, los atributos obligatorios pertenecientes a la tabla (propios) como otro
RET y los atributos que que son opcionales (incluyendo las llaves forneas) como otro RET.
Note que este concepto tiene una implicacin conceptual. Por ejemplo, los grupos que se generan a partir de las
llaves forneas representan el hecho de qu, para crear una instancia de datos de la tabla en anlisis, se requiere
que las otras instancias sean creadas previamente.
Se debe contar un RET para cada subgrupo identificado en el ILF o EIF. Cuando no se reconozca ningn RET en
un ILF o ELF, deber contarse como 1.
Para calcular la complejidad de los ILF usaremos la cantidad de los DET que contenga en relacin a los RET,
usando la siguiente tabla:
RET/DET
1-19
20-50
51+
Simple
Simple
Complejo
2-5
Simple
Medio
Complejo
6+
Medio
Complejo
Complejo
Reglas de identificacin:
Para ser contado como ILF, el conjunto de datos debe cumplir con las siguientes reglas:
1. Es lgica e identificable por el usuario.
2. Es mantenible a travs de un proceso elemental de la aplicacin.
Tipo de Referencia de Archivo (File Reference Type) (FTR). Una FRT puede ser:
El nivel de complejidad de las EI se mide en funcin de la cantidad de los tipos de elementos de dato (DET) y
las tipos de referencia de archivo (FTR).
FTR/DET
1-4
5-15
16+
0-1
Simple
Simple
Complejo
Simple
Medio
Complejo
3+
Medio
Complejo
Complejo
Reglas de identificacin:
1. Los datos o informacin de control deben provenir de fuera de la aplicacin
2. Al menos un ILF debe ser mantenido si los datos de entrada no son de control. En caso de que se trate de
informacin de control, debe alterar el comportamiento del sistema.
3. Al menos una de las tras condiciones descritas a continuacin se cumple:
La lgica de procesamiento es nica, respecto a la lgica de procesamiento realizado por otras EI.
El conjunto de elementos de dato es diferente del conjunto de datos identificados en otras EI.
Los ILF o EIF son diferentes de otros archivos referenciados por otra EI.
Reglas para identificar los DET y FRT en las EI:
1. No se debe contar los campos que son devueltos o derivados por el sistema y almacenados en un ILF
durante el proceso elemental si el campo no cruza los lmites de la aplicacin. Por ejemplo, cuando se
agrega una orden de un cliente, el precio unitario es devuelto automticamente por cada item que se
agrega a la orden y almacenado en el registro de la factura. El precio unitario no debe contarse como
elemento de dato para la entrada externa, porque dicho dato se encuentra almacenado en el sistema.
2. Los mensajes de error, confirmacin o cualquier tipo de mensaje de respuesta del sistema deben contarse
como un solo DET.
3. Aunque existan varias formas de iniciar, confirmar, cancelar o continuar un proceso, debe ser contado
como un nico DET.
4. Se debe contar un FRT para cada ILF mantenido.
5. Contar un FRT para cada ILF o EIF ledo durante el proceso entrada.
6. Contar solo un FRT por cada ILF si dicho archivo es mantenido y ledo.
FRT/DET
1-5
6-19
20+
0-1
Simple
Simple
Complejo
2-3
Simple
Medio
Complejo
4+
Medio
Complejo
Complejo
Reglas de identificacin:
1. Al menos una de las siguientes reglas de proceso elemental debe cumplirse:
1. La lgica de procesamiento del proceso elemental contiene al menos una frmula matemtica o
clculo.
2. La lgica de procesamiento del proceso elemental crea datos derivados.
3. La lgica de procesamiento del proceso elemental mantiene al menos a un ILF.
4. La lgica de procesamiento del proceso elemental produce alteraciones en el comportamiento del
sistema.
Reglas para la identificacin de DET y FRT en las EO:
1. Contar un FRT para cada ILF mantenido durante el proceso elemental.
2. Contar solo un FRT por cada ILF cuando dicho archivo sea mantenido y ledo durante el proceso
elemental.
PARAMETRO DE MEDIDA
FACTOR DE PESO
SIMPLE
MEDIO
COMPLEJO
10
15
10
Entradas Externas
Salidas Externas
Consultas Externas
Contaremos de forma individual los parmetros de medida por cada factor de peso. Es decir, se contarn por
separados los parmetros segn el peso que tengan. Por ejemplo, se pueden tener 3 entradas Simples, 4 promedio
y 5 complejas.
El total de puntos de funcin sern los puntos de funcin no ajustados (UPF).
EJEMPLO:
En el proceso de desarrollo de una aplicacin para la administracin de Recursos Humanos para una empresa
transnacional, el usuario requiere lo siguiente:
1. La capacidad de mantener informacin de los empleados. Esto es ingresar, consultar y generar reportes
sobre los empleados. Al registrar un empleado nuevo, la fecha estimada de retiro es calculada
automticamente y almacenada como parte del registro del empleado. El reporte a generar debe mostrar
la lista de los empleados con sus fechas estimadas de retiro. La informacin del empleado es:
Cdigo del empleado, que debe ser generado por el sistema.
Nombre del empleado
Direccin
Salario
Puesto asignado
Fecha estimada de retiro
2. Ingresar, consular y generar reportes de los puestos de trabajo. Los datos de los puestos de trabajo son:
Cdigo de puesto
Nombre nominal del puesto
Salario base
Cdigo de puesto ocupado.
Nombre funcional del puesto
La planilla es generada mensualmente, y al salario base de cada empleado debe sumarse y restarse
respectivamente, las bonificaciones y los descuentos.
La empresa cuenta con sucursales en 20 pases al rededor del mundo y cada sucursal tiene un promedio de 15
empleados.
Las cuentas bancarias promedio son de 2 por pas.
Note que aunque no es un requerimiento explcito, es necesario proveer al usuario una forma de asignar los
puestos a los empleados. De otra manera no podra consultar los puestos asignados.
ILF
RET
DET
COMPLEJIDAD
empleado
Simple
planilla
Simple
puesto
Simple
cuenta_bancaria
Simple
ILF
RET
DET
COMPLEJIDAD
detalle_planilla
Simple
cheque
Simple
descripcion_puesto
Simple
asignacion
Simple
configuracion_impresion
Simple
PARAMETRO DE MEDIDA
FACTOR DE PESO
COMPLEJO
TOTAL
63
63
EIF
edificio
RET
DET
COMPLEJIDAD
Simple
PARAMETO DE MEDIDA
FACTOR DE PESO
COMPLEJO
TOTAL
7
7
Identificando las EI
El requerimiento 1 especifica: La capacidad de mantener informacin de los empleados. Esto es ingresar,
consultar y generar reportes sobre los empleados. Al registrar un empleado nuevo, la fecha estimada de retiro
es calculada automticamente y almacenada como parte del registro del empleado. El requerimiento del
usuario incluye la capacidad para generar la lista de los empleados con sus fechas estimadas de retiro.
Resulta evidente que el requerimiento incluye una entrada de datos, ya que para almacenar los datos de un nuevo
empleado, los datos deben provenir de fuera de la aplicacin. Para registrar un empleado, la entrada har
referencia a un solo ILF: empleado. Los DET sern 5, ya que aunque tanto el cdigo del empleado como la fecha
estimada de retiro son calculados por el sistema, sern mostrados al usuario una vez guardados los datos.
Para el requerimiento de modificacin de los datos de un empleado debe considerarse la regla de conteo de EI
relacionada al proceso elemental: La lgica de procesamiento es nica, respecto a la lgica de procesamiento
realizado por otras EI?, El conjunto de elementos de dato es diferente del conjunto de datos identificados en
otras EI?, Los ILF o EIF son diferentes de otros archivos referenciados por otra EI?. Podemos concluir que el
requerimiento de edicin corresponde al mismo proceso elemental que el de registro.
Ntese que el requerimiento de Registro/Edicin de puestos hace referencia a las 2 tablas, que corresponde a una
entidad fuerte (puesto) y una dbil (descripcion_puesto). Adems, supondremos que los campos ID sern
identificadores autogenerados por la base de datos y que no sern mostrados al usuario en las interfaces de
entrada, de manera que los DET referenciados por la entrada solamente incluyen los datos ingresados por el
sistema.
Ntese tambin que el proceso asignacin de puestos conlleva dos consultas. La primera, una consulta sobre
cmo identificaremos al empleado al que deseamos asignar el puesto y el puesto que deseamos asignarle. Estos
procesos elementales sern contados en los respectivos apartados. Es importante resaltar tambin que los DET de
dicho requerimiento cuentan los IDs de las llaves forneas, puesto que salen (durante las consultas descritas
anteriormente) e ingresan nuevamente (cuando el usuario selecciona los elementos de dato correspondientes).
La interfaz para cumplir con el requerimiento de configuracin de los reportes de puestos puede suponerse de la
siguiente forma:
Como ya se mencion, la informacin recolectada por la EI no es informacin del dominio del sistema, sino
informacin de control. La identificacin de los DET supone que la lista desplegable con los nombres de los
campos est quemada en la interfaz, puesto que dichos campos no estn almacenados en ningn archivo fsico
o en una tabla de la base de datos.
Si partiramos del otro supuesto, tanto los FRT como los DET se veran afectados.
No obstante, es importante retomar la regla de identificacin de DET para EI: Contar un DET por la capacidad
de enviar un mensaje de error o confirmacin. Por tal razn, los DET identificados para esta entrada sern 3.
REQUERIMIENTO
FRT
DET
COMPLEJIDAD
Registro/Edicin de empleados
Simple
Registro/Edicin de puestos
Medio
Simple
Simple
FACTOR DE PESO
Entradas Externas
13
PROCESO ELEMENTAL
FRT
DET
COMPLEJIDAD
Imprimir cheque
Simple
Simple
10
Medio
PARAMETRO DE MEDIDA
FACTOR DE PESO
CUENTA SIMPLE
MEDIO
COMPLEJO TOTAL
Salidas Externas
Salidas Externas
13
Identificando consultas
Las consultas pueden ocurrir como una requerimiento del usuario o como parte de una entrada. Las consultas
requeridas explcitamente por el usuario normalmente tienen implcita una entrada, el formulario a travs de los
que se especifican los criterios de filtrado. Tpicamente estos criterios de filtrado son acordados con el usuario.
En los casos de que no se tenga dicha especificacin, se puede asumir que los criterios de bsqueda sern todos
aquellos campos que no acepten valores nulos y que no contengan valores de texto muy largos como
descripciones, direcciones, etc.
El caso ms comn de las consultas que no son requerimientos especficos del usuario, que son llamadas
Consultas implcitas, son las listas desplegables (ComboBox) de los formularios de entrada.
Este es el caso de la EI de la asignacin de puestos. Para asignar un puesto a un empleado, primero hay que
seleccionarlo, por lo que es necesaria una consulta para mostrar los empleados al usuario. Una vez seleccionado
el usuario es necesario indicar qu puesto es el que se le va asignar. Para ello, es necesario mostrar los puestos
para que el usuario los seleccione en una lista desplegable.
En esta entrada, la consulta de empleados no cumplen con la regla de que, la lgica de procesamiento de la
consulta y los archivos referenciados sean diferentes a otras consultas identificadas, porque ya existen como
parte de la edicin de empelados. Sin embargo, la consulta de puestos, utilizada para llenar la lista desplegable
difiere respecto a la lgica de procesamiento de la consulta de puestos para edicin. En el primer caso, se
recuperan todos los puestos y en la segunda, se filtran de acuerdo a los criterios especificados por el usuario.
Lo mismo ocurre con la consulta de puestos asignados, puesto que la regla debe aplicarse para EO y EQ.
Tanto las consultas como las salidas pueden tener asociadas entradas para especificar los valores que el usuario
desea ver. Esto es lo que se conoce como la parte de entrada de la salida o la consulta. Sin embargo, esto no
debe ser contado como entrada.
REQUERIMIENTO
FRT
DET
COMPLEJIDAD
Registro/Edicin de Empleados
Simple
Registro/Edicin de puestos
Simple
Medio
Simple
Registro/Edicin de
(Consulta de puestos)
asignaciones
de
puestos
FACTOR DE PESO
CUENTA SIMPLE
MEDIO
COMPLEJO TOTAL
Consultas Externas
Consultas Externas
PARAMETRO DE MEDIDA
13
TOTAL
63
Entradas Externas
13
Salidas Externas
13
Consultas Externas
13
TOTAL UFP
109
Donde los Fi son 14 valores de ajuste a la complejidad. Dichos valores son una serie de consideraciones para las
que debemos valuar el impacto que puedan tener en el sistema en desarrollo. Esta valuacin puede tomar valores
enteros entre 0 y 5, donde 0 ser un bajo impacto o necesidad de implementar dicho factor y 5 un alto impacto o
necesidad de implementar dicho factor.
Control sensible. Por ejemplo: procesos de auditora especiales o procesos de seguridad especficos.
Alto nivel de procesamiento lgico.
Alto nivel de procesamiento matemtico.
Cantidad alta de excepciones en el procesamiento dan como resultado, que deben ser procesados
nuevamente.
Procesamiento complejo para manejar mltiples posibilidades de entradas/salidas.
10. Reusabilidad. Puede referirse a dos cosas:
1. El cdigo fuente debe ser reutilizable.
2. El software ser reutilizado para otros propsitos.
11. Fcil de instalar. Se refiere al nivel de dificultad para instalar la aplicacin.
12. Facilidad de operar. Se refiere a la efectividad y automatizacin del inicio, respaldo y procesos de
recuperacin.
13. Mltiples ubicaciones. Si los usuarios estn diseminados en ubicaciones de pases diferentes o
geogrficamente distantes, ser necesario el soporte de caractersticas distintas para cada ubicacin:
moneda, reglas transaccionales como impuestos, etc.
14. Facilidad de cambios. Facilidad de mantenimiento.
Para el ejemplo que nos ocupa podemos decir que los criterios que deben considerarse son:
CRITERIO
VALOR
DESCRIPCION
Comunicacin de datos
Taza de transaccin
Actualizacin en lnea
Complejidad de procesamiento
Mltiples ubicaciones
Facilidad de cambios
TOTAL
Mensual
Uno de los requerimientos nos indica que el usuario desea una
aplicacin con altos niveles de usabilidad
37
El esfuerzo es la cantidad de personas por meses que requeriremos para el proyecto. En este caso,
aproximadamente 3 analistas-programadores por mes. Pero Cmo calculamos el tiempo del proyecto?.
Si el esfuerzo hubiera sido 12.75, requeriramos aproximadamente 13 analistas por mes. Aqu, tendramos que
encontrar el mejor de los escenarios para estimar el tiempo del proyecto, podemos suponer que tenemos 3
analistas, en cuyo caso el tiempo del proyecto ser de 4.25 meses, aproximadamente 17 semanas. Si suponemos
que contamos con 2 analistas-programadores, requeriramos de 6.375 meses, aproximadamente 17 semanas.
Para el ejemplo que nos ocupa. Si partimos de que tendremos 3 analistas programadores, el proyecto tendra una
duracin de 0.9265 meses, aproximadamente 1 mes. Si suponemos que tenemos 2 analistas programadores,
requeriramos 1.38975 meses, aproximadamente 6 semanas.
El costo por punto de funcin se calcula:
Costo total
FP
La estimacin realizada est centrada nicamente en los requerimientos especficos descritos por el usuario. En
nuestro anlisis hemos dejado fuera el proceso de generacin de planilla y el mantenimiento de las cuentas
bancarias. Por otro lado, hemos omitido los procesos elementales de eliminacin, que se cuentan como entradas
y usualmente conllevan mensajes de confirmacin. Tambin hemos omitido mensajes de errores producto de los
procesos elementales estimados, excepto el que fue requerido por el usuario explcitamente.
Todos estas caractersticas influirn en la estimacin de los FP y por ende en el esfuerzo.
Contine desarrollando el problema considerando que:
1. A la hora de generar la planilla el sistema deber generar los registros (tuplas) de la tabla
detalle_planilla. Una vez generados esos registros, el usuario deber ingresar los descuentos y
bonificaciones a cada empleado, dado que ambos elementos estn fuera del alcance del sistema.
2. A la hora de generar los cheques, el sistema asumir por defecto que el campo a_favor_de del cheque es
el nombre del empleado, por lo que deber copiar ese dato en el campo, proveniente de la tabla
empleado. Sin embargo, el usuario puede modificar dicho campo en caso de ser necesario. Por ejemplo,
el empleado a delegado a un apoderado para que cobre su salario mientras est fuera del pas.
3. Para generar los cheques es necesario que el usuario pueda filtrar a los empleados (por su puesto o
unidad en la que trabaja) e indique con qu cuenta bancaria se pagarn dichos cheques. Note que el
nombre de la oficina en la que trabaja debe provenir de la aplicacin de Activos fijos.
Evale la diferencia entre los resultados de las mtricas si se incorpora al sistema la capacidad para llevar un
control de los descuentos por: seguro social, fondo de pensiones, impuesto sobre la renta y otros tipos de
descuento como prstamos, cuotas de paternidad, inasistencias, etc.
El sistema deber calcular automticamente los descuentos de ley, y deber permitir al usuario ingresar los
descuentos adicionales como prstamos, cuotas de paternidad, inasistencias, etc.
considera que para una consulta externa debe especificar una opcin de filtrado, y dado que desplegar todos los
clientes de la empresa, no cuenta con dicho filtro, debe ser contada como salida externa. Sin embargo, para
IFPUG, las salidas deben contener al menos un clculo matemtico..
CONSULTA IMPLCITA
Cuando se modifica o se elimina un dato, los datos a menudo son presentados primero al usuario. Esto es
llamado una consulta implcita.
Para NESMA, el objetivo subyacente de una funcin siempre es el principal. NESMA por lo tanto no considera
la consulta implcita como una funcin de transaccin adicional, sino la asume como parte integral de la
modificacin (o la eliminacin). El tipo de elemento de dato presentado al usuario por la consulta implcita es
contada como parte de la modificacin (o eliminacin). NESMA solamente cuenta la consulta externa si esta es
especficamente identificada por el usuario para ese propsito o para consultas de datos.
IFPUG no cuenta con reglas especficas respecto a esta situacin. Generalmente, estas consultas implcitas son
contadas como consultas externas separadas en el estndar IFPUG, si no se han contado como otra funcin.
TABLAS DE CDIGOS
NESMA define las tablas de cdigos o tablas FPA (Funtcion Point Analisys Tables) como tablas que tienen
cualquiera de las siguientes caractersticas:
1. Una tabla que contiene un solo registro. Por ejemplo, una tabla que contiene informacin acerca de una
empresa en particular: nombre y direccin.
2. Una tabla que contiene solo datos constantes. Por ejemplo, una tabla que contiene los elementos de la
tabla peridica.
3. Catlogos de datos que contienen campos con la misma informacin en diferentes formatos. Por
ejemplo: La tabla tipo de cliente puede contener la descripcin del tipo de cliente y una abreviatura. Un
catlogo de productos puede contener, adems del cdigo del producto, una descripcin del producto en
diferentes idiomas: espaol, ingls, francs, etc.
4. Las tablas que contienen valores lmites, valores mnimos y mximos.
El proceso de conteo, NESMA clasificar todas las tablas de cdigos como un ILF o EIF segn sea el caso. El
nmero de RET ser el nmero de tablas de cdigo identificadas. Todas las tablas de cdigo generarn una IE,
EQ y EO. Si se trata de un EIF no se contarn como funciones de transaccin, aunque se existan EO o EQ.
IFPUG considera las tablas de cdigos como aspectos tcnicos de implementacin o requerimientos de calidad
del usuario, y no como parte de los requerimientos funcionales del usuario. IFPUG por lo tanto, no cuenta las
tablas de cdigo y las funciones transaccionales asociadas a ellas.
MEDIOS FSICOS
Dado que NESMA se centra en la funcionalidad subyacente, ignora los medios fsicos en el conteo de lo factores
de puntos de funcin.
Independientemente del medio desde que ingresen los datos al sistema, sern contados como una EI. Lo mismo
aplica cuando los datos sean almacenados en algn medio externo.
IFPUG no define ninguna regla al respecto, por lo que podemos suponer que al igual que NESMA, los datos
sern contados en las respectivas funciones.
Simple. Se trata de otra aplicacin externa, que deber interactuar con la aplicacin que deseamos
estimar. Esta interaccin se realizar mediante una interfaz de programacin definida y conocida
(Application Programming Interface API-).
Medio. Se refiere a otra aplicacin externa que deber interactuar con la aplicacin que deseamos
estimar. Esta vez, a travs de un protocolo de comunicacin. Un ejemplo de esto son los servicios Web
(SOAP, RESTful, etc.)
Complejo. Un usuario fsico que se espera interaccione a travs de una interfaz de usuario.
Los pesos de cada uno de los tipos de actores (AW) se muestran en la siguiente tabla:
TIPO
PESO
Simple
Medio
Complejo
Enfoque transaccional
Ivar Jacobson (creador del concepto de casos de uso) describe una transaccin de caso de uso como un viaje ida
y vuelta, que inicia con el actor hacia el sistema y retorna al actor. Una transaccin es finalizada cuando el
sistema queda esperando por una nueva entrada.
En otras palabras, una transaccin es un evento, que el sistema debe responder y quedar en espera de una nueva
accin. Por ejemplo:
Supongamos un formulario en el que un usuario tenga que seleccionar un departamento del pas, y el sistema
debe mostrar en otra lista, los municipios que corresponden a ese departamento. La seleccin que hace el usuario
a la lista de departamentos, constituye un evento al que el sistema debe responder. El sistema llenar la lista de
municipios que corresponden y quedar en espera de un nuevo evento.
Posteriormente el usuario llena otros campos del formulario en cuestin y hace clic en el botn Guardar.
El sistema guarda los datos, limpia el formulario y finaliza el caso de uso.
En este ejemplo, el caso de uso tendr 2 transacciones. La primera ser, responder al evento de seleccionar un
departamento y la siguiente ser el de responder a la solicitud de almacenar los datos.
Cuntas transacciones tendra el caso de uso si ambas listas, la de departamentos y la de municipios fueran
llenadas desde que se carga el formulario y no se requiriera que se filtren los municipios?. El caso de uso
solamente tendra una transaccin.
para su verificacin/modificacin y hasta una segunda iteracin guardarlos a solicitud del actor.
En este caso, los clculos realizados por el sistema constituyen una transaccin, sin haber realizado
ninguna operacin de base de datos.
3. Se debe mantener las transacciones de casos de uso en el nivel adecuado. Supongamos que un
requerimiento de usabilidad del cliente es que se incorporen mtodos abreviados o combinaciones de
teclas para acceder a ciertas operaciones del sistema (como Ctrl + G). El sistema reaccionar ante una
combinacin de teclas, pero eso no necesariamente debe ser contado como una transaccin, sino ms
bien como uno de sus pasos.
4. Transacciones y flujos de eventos. Debe tomarse en cuenta que las especificaciones de los casos de uso
persiguen ser abstractas y por ende genricas. En el ejemplo anterior del formulario de departamentos y
municipios, si el usuario selecciona primero el departamento de San Salvador y posteriormente el de San
Miguel, no se trata de dos transacciones del caso de uso, sino ms bien de uno solo.
5. Los flujos alternativos tendrn al menos una transaccin. Supongamos que al momento de iniciar el
proceso de almacenamiento del formulario del ejemplo anterior ocurre un error. La transaccin del flujo
normal (el proceso de almacenamiento), iniciar una nueva transaccin para que el sistema muestre un
mensaje de error al usuario y queda en espera de que el usuario modifique los datos o cancele la
operacin. O que muestre al usuario una forma alternativa de realizar el proceso.
PESO
Simple
Medio
10
Complejo
15
Enfoque estructural
Este enfoque est basado en las clases de anlisis, que considera el nmero de clases que usar cada caso de uso
para realizar lo requerido.
En este enfoque la complejidad de los casos de uso se define como sigue:
PESO
Simple
Medio
10
Complejo
15
Este enfoque es menos utilizado, dado que requiere de un anlisis ms profundo de los requerimientos. Un
modelo conceptual de clases es requerido para la aplicacin de este enfoque.
Los puntos de casos de uso ajustados (o simplemente puntos de casos de uso, Use Case Points -UCP-). Se
calculan multiplicando los UUCP, por los TCF, por los EF, as:
Los factores pueden ser valuados con valores discretos entre 0 y 5. Donde el valor de 0 significa que el factor es
relevante y 5 significa que el factor es esencial
FACTOR
DESCRIPCION
PESO
T1.
Sistema distribuido
T2.
Rendimiento
T3.
T4.
T5.
Reusabilidad
T6.
Fcil de instalar
0.5
T7.
Facilidad de uso
0.5
T8.
Portabilidad
T9.
Facilidad de cambios
T10.
Concurrencia
T11.
Seguridad
T12.
T13.
Donde WTi son los pesos correspondientes a cada uno de los factores de ajuste y VTi son los valores asignados.
El TCF se calcula:
FACTOR
DESCRIPCION
PESO
E1.
1.5
E2.
Experiencia en la aplicacin
0.5
E3.
E4.
0.5
E5.
0.5
E6.
E7.
-1
E8.
-1
Donde WEi son los pesos correspondientes a cada factor, y VEi son los valores asignados.
El EF se calcula:
ESFUERZO (E)
Para el clculo del esfuerzo utilizaremos la propuesta de Scheider y Winters. La propuesta consiste en utilizar los
EF para estimar el esfuerzo individual de cada miembro del equipo de trabajo, utilizando los siguientes factores
de conversin (CF).
Se contabilizan cuantos factores que afectan al EF estn por debajo del valor medio (3), para los factores
E1 a E6.
Se contabilizan cuantos factores que afectan al EF estn por encima del valor medio (3), para los
factores E7 y E8.
Este conteo permitir eligir el factor de conversin de Horas-Persona/UCP, de acuerdo a la siguiente tabla:
HORAS-PERSONA (CF)
INTERVALO
20
<=2
28
<=4
36
>=5
Esta estimacin asume que el esfuerzo estimado corresponde nicamente a la fase de programacin del proyecto.
Para calcular el esfuerzo total del proyecto se utiliza la siguiente tabla:
ACTIVIDAD
PORCENTAJE
Anlisis
10%
Diseo
20%
Programacin
40%
Pruebas
15%
Implementacin
15%
La suposicin de que el esfuerzo estimado corresponde nicamente al 40% del esfuerzo total del proyecto suele
dar como resultado tiempos muy grandes en relacin a otras mtricas. 1
1. El esfuerzo de desarrollo orientado a objetos usualmente conlleva metodologas no secuenciales, por lo que el
esfuerzo calculado debera representar al menos las fases de anlisis, diseo y programacin, que representan el
70% del esfuerzo total del proyecto. [Nota del autor]
EJEMPLO
Retomaremos el ejemplo desarrollado a travs de Puntos de funcin.
Identificando actores
Dada la definicin de los actores de los casos de uso, podemos observar claramente que tendremos dos actores.
El usuario de RRHH o Encargado de planilla y el Sistema de Activos Fijos.
Asumiremos que la interfaz a travs de la que se comunicar con el Sistema de Activos Fijos ser a travs de
componentes de software programados a travs de un API conocido. Esto es, que desarrollaremos un
componente del software que se conectar a la base de dicho sistema para acceder a los datos.
ACTOR
CANTIDAD
TIPO
Usuario RRHH
Complejo
Simple
TIPOS DE
ACTORES
CUENTA
FACTOR
TOTAL
Simple
Complejo
TOTAL DE UWA
CASO DE USO
TRANSACCIONES
TIPO
Consultar empleados
Simple
Ingresar/Editar empleados
Simple
Simple
Simple
Simple
Simple
Simple
Generar cheques
Simple
TIPOS DE CASOS
DE USO
Simple
CUENTA
FACTOR
TOTAL
40
TOTAL DE UWC
UUCP= 4+ 40=44
40
DESCRIPCION
VALOR
PESO
TOTAL
T2. Rendimiento
T3.Eficiencia del usuario final
0.5
2.5
T11. Seguridad
TOTAL DE TF
22.5
Identificando los EF
FACTOR
VALOR
PESO
TOTAL
1.5
0.5
Capacidad y experiencia
0.5
2.5
0.5
2.5
10
-1
-1
E8. Lenguaje
complejo
de
DESCRIPCION
20
Calculando el esfuerzo
Identificando el factor de conversin
EF que estn debajo de la media de E1 a E6: 2
EF que estn encima de la media de E7 y E8: 0
CF: 20 horas-persona
E=UCPxCF=29 . 04 x 20=580.8
El esfuerzo requerido ser de 580.8 horas-persona. Suponiendo que tenemos un equipo de desarrollo de 3
personas. La fase de programacin del proyecto se realizar en 1.21 meses. Es decir, aproximadamente 5
semanas.
ACTIVIDAD
PORCENTAJE
TIEMPO (Meses)
Anlisis
10%
0.30
Diseo
20%
0.61
Programacin
40%
1.21
Pruebas
15%
0.45
Implementacin
15%
0.45
TOTAL
3.025
Para contrastar esta respuesta, calcularemos cuanto ser el tiempo de desarrollo si asumimos que la estimacin
incluye las tres primeras fases del proceso de desarrollo:
ACTIVIDAD
PORCENTAJE
Anlisis
10%
Diseo
20%
Programacin
40%
Pruebas
15%
0.26
Implementacin
15%
0.26
TOTAL
TIEMPO (Meses)
1.21
1.73