Está en la página 1de 6

ESTIMACIÓN COSMIC

INTRODUCCIÓN

Cuando se solicita una medición a un desarrollador para entregar un programa y el


provee una estimación de 12 horas, lo más probable es que esté correcto porque
se trata de una pieza cuya dificultad o probabilidad de error es pequeña. Por lo
tanto, la solución para todos los problemas de estimación es descomponer un
proyecto en sus partes constituyentes y hacer sus respectivas estimaciones. Con
esto, los escenarios en los que la estimación es difícil y su probabilidad de error es
alta, no serán más un problema.

DERIVACIÓN DE LA UNIDAD DE PRODUCTO DE LOS


REQUERIMIENTOS FUNCIONALES

Contar los requerimientos funcionales parece ser una buena alternativa para
representar las unidades de producto del software. Sin embargo, no todos los
requerimientos son iguales y se corre el riesgo de no diferenciarlos. Para eso, la
ISO/IEC definió un estándar para ese tipo de medición, denominado Medición del
Tamaño Funcional, y cuyo método más moderno es supervisado por el Consorcio
Internacional de Medición de Software en General o COSMIC.

EL MÉTODO COSMIC

El método de Medición de COSMIC es la segunda generación de métodos de


medición de tamaño funcional. Éste ofrece un nivel de confiabilidad compatible
con todos los tipos de software. Es de dominio público y el acceso a su
documentación no tiene costo. El método tiene reconocimiento total de la ISO/IEC.
Posee una base conceptual compatible con la ingeniería de software moderna.
Los métodos anteriores no siempre tienen una aplicación amplia o suficiente para
atender las necesidades del mercado ni funcionan apenas con acceso restringido.
La planeación y medición del desempeño tiene mayor exactitud y además tiene la
habilidad de capturar el tamaño a partir de múltiples perspectivas.

1
OBJETIVO DE LA MEDICIÓN

Toda medición depende de los objetivos que la motivaron. Por ejemplo, la


medición del área de una edificación en metros cuadrados es hecha de cierta
forma si el objetivo es poner el piso y de otra si se pretende calcular cuánto hierro
es necesario para la elaboración de la losa de concreto. Por lo anterior, el primer
insumo en la medición del tamaño funcional usando el método de COSMIC es su
objetivo.

Requerimientos funcionales
El objetivo de la medición son los requerimientos funcionales. Cuando se trata de
una función, se debe considerar su usuario, ya que los requerimientos funcionales
describen lo que el software debe hacer para sus usuarios. Ellos son los
destinatarios y remitentes de los datos del software que está siendo medido.

Teniendo el usuario como referencia, la medición debe desconsiderar aspectos


técnicos o de calidad que influyen en cómo se mide el software. Por esto, la
función es relativa al proceso de información que el software debe ejecutar para
sus usuarios.

La medición

El método de medición consiste en un conjunto de modelos, principios, reglas y


procedimientos que se aplican a los dos insumos mencionados anteriormente.
Todo esto, con el propósito de generar el valor de una magnitud para la
funcionalidad entregada por el software expresado en puntos de función COSMIC.
Tamaño funcional

El resultado de la medición

El resultado de la medición es el valor de una cantidad de funcionalidad entregada


por el software en puntos de función COSMIC.

El proceso de medición

La medición es muy simple. En la fase de la estrategia se describe el contexto en


el cual el software es adicionado de acuerdo al objetivo de la medición. Además,
delimita el software a ser medido y el usuario externo, que no es necesariamente

2
una persona. La siguiente fase, el mapeo de medición, identifica los procesos en
aquel contexto.

En cada proceso, son identificados movimientos de datos.

Finalmente, la fase de medición tiene por objetivo consolidar los movimientos


identificados considerando el equivalente a un punto de función COSMIC para
cada movimiento de datos identificado.

La medición requiere que se establezca una frontera conceptual entre el software


y el usuario. La frontera no debe ser confundida con cualquier línea diseñada en
un diagrama para delimitar o alcance de una parte del software o camada. La
frontera permite hacer distinción clara entre cualquier parte del software medido
(dentro) y cualquier parte del ambiente de los usuarios funcionales (fuera). Los
usuarios funcionales interactúan con el software a través de la frontera vía dos
tipos de movimientos de datos (entries(E) y exits(X)). El software también
intercambia datos con el dispositivo de almacenamiento persistente vía dos tipos
de movimientos de datos (reads(R) y writes(W)). El dispositivo de almacenamiento
no es considerado como un usuario del software y, por tanto, está dentro de la
frontera del software. Cada movimiento contribuye con el equivalente a un punto
de función COSMIC

PLANTEAMIENTO DEL PROBLEMA

Dadas las consideraciones anteriores y tomando como base el ejemplo práctico


(C-Reg) dentro de la plataforma (ver documentos tanto en inglés 1 como en
español, referentes al caso de estudio), realizar la estimación del sistema de citas
médicas, cuyos requerimientos funcionales se describen a continuación (Nota: de
la misma manera en que se describieron los requerimientos funcionales del C-
Reg, estos requerimientos no están completos ni son todos, sin embargo esto no
impide que se pueda hacer una estimación COSMIC).

CitaMedica

CitaMedica es un sistema automatizado que permite a sus usuarios (Pacientes y


Administradores del sistema) acceder a su funcionalidad a través de un menú de
opciones que permite:

1. Requisitos para Pacientes


1.1 Registrar una cita médica
1.2 Eliminar una cita médica

1
https://cosmic-sizing.org/publications/course-registration-c-reg-system-case-study/

3
1.1 Registrar una cita médica

Este requisito permite a un Paciente registrarse en el sistema para agendar o


programar una cita con el médico especialista deseado. Obsérvese el diagrama
anexo del Modelo de dominio de Cita Médica para referirse a los atributos/grupos
de datos para el Paciente y demás objetos de interés.

Se anexa también un diagrama de contexto (nivel 0) que ilustra el registro de una


cita médica.

Descripción del requerimiento


El Paciente debe seleccionar en todo momento la opción de “Registrar Cita
Médica”, tras lo cual el sistema le presentará el formulario de registro con las
especialidades médicas pre-cargadas. Una vez que el Paciente seleccione la
especialidad deseada, el sistema le mostrará la lista de médicos disponibles de
acuerdo a dicha especialidad. El Paciente deberá seleccionar el médico y al
hacerlo se muestran los horarios disponibles (dia/hora). Tras haber seleccionado
el horario el sistema agenda la cita y devuelve al Paciente un número de folio o
clave de la cita.
En caso de generarse un error o excepción debido a consultorios no disponibles,
el sistema le devuelve un mensaje al usuario y le solicita elegir otro horario.

(Nota: Revisar CU anexo que describe a mayor detalle este requerimiento, con
flujo principal y alternativos/excepcionales).

1.2 Eliminar una cita médica

Este requisito permite a un Paciente eliminar una cita médica que previamente
agendó.

El Paciente selecciona la opción “Eliminar Cita Médica”. El sistema le solicita


ingresar el folio o clave de la cita. Al ingresar dicha clave el sistema busca y
devuelve los detalles de la cita (read only). El sistema presenta al Paciente la
opción de eliminar la cita, advirtiendo al usuario que la acción es irreversible. El
Paciente selecciona la opción “Aceptar”. El sistema elimina la cita y devuelve al
usuario el mensaje de operación realizada exitosamente correspondiente.

En caso de que el usuario no tenga a la mano o haya olvidado la clave de la cita o


folio correspondiente, el Paciente tiene en todo momento la opción de ingresar su
Número de seguridad social. En este escenario, el sistema le muestra una lista de
todas las citas médicas vigentes que a la fecha tiene el Paciente, conjuntamente
con la opción de seleccionar de manera individual la cita que desea eliminar. Una
vez seleccionada la cita a eliminar y seleccionar la opción “Aceptar”, el sistema
elimina la cita y confirma la operación realizada exitosamente.

4
Si la clave de la cita o folio no existe en el sistema, éste devuelve al Paciente el
mensaje de error correspondiente permitiéndole ingresar nuevamente el folio o
cita.

Consideraciones para el entregable final

Con los requisitos y la documentación auxiliar proporcionada se pretende estimar


dicha parte de la funcionalidad del sistema de Cita Médica. Se debe implementar
el método COSMIC haciendo la estimación de CFP y estimación de número de
desarrolladores necesarios para cumplir con el desarrollo de este caso para este
entregable.

(Nota: No se ha proporcionado el CU para el requerimiento 1.2 Eliminar Cita


Médica, por lo que la estimación CFP deberá realizarse usando la descripción del
requerimiento como se detalla arriba)

Por lo tanto, se pide, para ambos requerimientos:

a) Identificar el(los) proceso(s) funcional(es)


b) Identificar los objetos de interés y atributos de datos (se pueden obtener
fácilmente de los diagramas anexos)
c) Identificar tabla de movimientos de datos (Entries, EXists, Reads and
Writes), que incluya la estimación/cálculo de los “Cosmic Function Points”
(CFP) de manera similar al ejemplo práctico que ya se ha resuelto (ver caso
de estudio del C-Reg).
d) Utiliza la plantilla de Microsoft Excel (ver plantilla anexa) para tu estimación
del entregable para los incisos a) al c). Debes completar o llenar en las
celdas que están en azul según el dato que se solicita (son 3 hojas).
e) Una vez que has obtenido la estimación del tamaño del software en puntos
de función COSMIC, contesta las siguientes preguntas (auxíliate de las
fórmulas que se proveen al final de este documento):
 Número total de horas que requerirá el proyecto. Basándote en cada
CFP estima el número de horas que le llevará a un desarrollador
completar cada CFP que has identificado. Toma en cuenta de que solo
estamos hablando de desarrolladores (por acotamiento).
 Número de horas-hombre por día del proyecto. Deberás considerar que
se tiene, como restricción, solo 3 días para completar el desarrollo.
 Número de desarrolladores necesarios para completar el proyecto.
Toma en cuenta que un desarrollador Sr, trabaja en menor tiempo, pero
su costo es mayor, y viceversa para un desarrollador Jr, cuyo costo es
menor, pero se incrementa su tiempo de desarrollo. Solo como
apreciación dado que para este entregable no se están considerando
costos. Sin embargo este punto es importante ya que impacta en el
número de horas necesarias para desarrollar cada CFP.

5
A continuación las fórmulas que necesitarás:

 Horas totales del proyecto / duración del proyecto = Número de horas


hombre al día

 A continuación, el total de número de horas hombre diarias se divide por 8


hrs (equivalente a un día de esfuerzo o por 6, si queremos ser precavidos,
como en la siguiente fórmula):

o Número de horas hombre al día / 6 = número de desarrolladores


necesarios.

También podría gustarte