Medición y estimación: Método COSMIC - La Oficina de Proyectos de Informática

miércoles, 21 de febrero de 2018

Medición y estimación: Método COSMIC


Imagen de: COSMIC

El tamaño de un software es la principal variable necesaria para determinar el esfuerzo de desarrollo que deberá invertirse para implementarlo. La medición y estimación de software utilizando COSMIC, es un método de segunda generación que determina el tamaño del software a partir del numero de interacciones entre los componentes de los requerimientos funcionales.

Estandarizado bajo la ISO 19761, el método COSMIC puede aplicarse a diversos tipos de software, incluyendo aplicaciones de negocios, sistemas de información gerencial, software en tiempo real, infraestructura, e inclusive software científico y de ingeniería.

Tiene la ventaja que no establece límites arbitrarios al tamaño funcional, por lo cual pueden medirse componentes de software independientemente de si son muy grandes o pequeños. Adicionalmente, el análisis para la medición está basado en el desglose funcional de los componentes de software, por lo que está alineado con las prácticas de Ingeniería de software.

A continuación te presentamos una introducción a que es el método COSMIC, incluyendo porque es necesario medir software, como se medía el software antes de COSMIC, cuales son las innovaciones que el método COSMIC abarca y cuáles son las 3 fases para realizar una medición con el método COSMIC.

¿Por qué necesitamos medir el software?

Para responder con cualquier estimado de costos o presupuesto, bien sea de un Software nuevo o modificaciones a sistemas informáticos existentes, necesitaremos definir la técnica de estimación de software que utilizaremos, unidad de medida y método de medición de software.

Una vez que contemos con una medición, podemos combinar sus resultados con datos existentes sobre la productividad del equipo de desarrollo, para determinar el número de horas y costos para desarrollar el software.

Una estimación de software no se limita a la medición, también necesitamos conocer cuántas unidades de medida (cual sea que seleccionemos) puede desarrollar el equipo de desarrolladores de software por unidad de tiempo. Por lo general se utilizan datos históricos de proyectos en nuestra propia organización, o también podemos usar datos disponibles para el público (Benchmarking).

Sin embargo, la fase de medición es el punto de partida y suele ser la más compleja, pues es necesario desglosar el software en sus componentes y analizarlos.

¿Cómo se realizaban mediciones de requerimientos funcionales antes de COSMIC?

En los años 70, Allan Albrecht de IBM desarrollo el método de análisis de puntos de función, el cual permite asignar unidades de medida a los requerimientos de software (denominadas puntos de función), independientemente de la tecnología usada. Esto marcó una clara diferencia con otros métodos de estimación de la época, como por ejemplo el contar las líneas de código.

El método de análisis de puntos de función del International Functions Points User Groups (IFPUG), ha sido por mucho tiempo el más usado para realizar mediciones funcionales de requerimientos de software, necesario para realizar la medición y estimación de software, sin embargo, puede mejorarse en muchos aspectos, como por ejemplo:

  • El método IFPUG depende de los “tipos de funciones” definidos por Albrecht, los cuales eran adecuados para la década de los 70, pero se ha hecho difícil asignárselos a formas modernas de modelar los requerimientos de software, como por ejemplo cuando el software se construye como servicios (SOA) y en áreas como el software de tiempo real o de infraestructura.
  • Los tipos de función se les puede asignar únicamente un rango de dimensiones, por lo cual se dificulta la representación de requerimientos muy grandes o muy pequeños).

¿Cómo surgió el método COSMIC?

Para los años 90 la industria estaba demandando un método de análisis de puntos de función estándar, sin embargo, no existía acuerdo para seleccionar algúno de los métodos de medición que existían.

ISO estableció un grupo de trabajo para estudiar y definir los principios de la medición del tamaño funcional, se publicó un primer estándar, el ISO 14143/1 que si bien ayudo a mejorar el entendimiento de los principios, no logró resolver las oportunidades de mejora que tenían los métodos de puntos de función de ese momento.

Se estableció un grupo informal de expertos de Norte América, Europa y Australia, quienes en 1998 dieron a la tarea de desarrollar un método de análisis de puntos de función de segunda generación, el grupo se nombró a sí mismo como el Common Software Measurament International Consortiom (COSMIC).

¿Buscas formación para definir los requerimientos de software?



Descubre el curso definitivo para llevar tus habilidades de requerimientos al siguiente nivel. 

Entra en el apasionante mundo de las historias de usuario y aprende los fundamentos esenciales para desarrollar requerimientos efectivos. 

No pierdas la oportunidad de potenciar tu carrera y ¡únete ya! 




Medición de requerimientos de Software con el método COSMIC

COSMIC fue diseñado para trabajar con requisitos funcionales en cualquier capa de la arquitectura de software y en cualquier grado de desglose de componentes.

El proceso de medición COSMIC, consta de tres fases, las cuales se presentan en la siguiente figura:

Proceso de medición COSMIC

Método COSMIC. Fase 1: Estrategia de medición

  • Lo primero que se realiza en una medición y estimación de software con COSMIC, es determinar que es lo que se va a medir.
  • Una medición de software depende del punto de vista de lo que definimos como usuarios funcionales, por ejemplo personas, dispositivos de hardware u otros sistemas que interactúan con el software.
  • En esta primera fase se define el propósito y alcance de la medición de software, que incluye cuales son los requerimientos funcionales de usuario que se van a medir, quienes son los usuarios funcionales y otros parámetros. Previo a esto, es necesario haber aplicado técnicas para el levantamiento de requerimientos de software
  • Es importante dejar documentados los parámetros de la medición de software, para asegurar que esta pueda ser interpretada adecuadamente por quienes harán uso de ella para realizar las estimaciones y presupuestos.

Método COSMIC. Fase 2: Mapeo

  • En una medición COSMIC, el mapeo se realiza para crear un modelo COSMIC de los requerimientos funcionales de usuario.
  • El punto de partida para el mapeo son los artefactos disponibles, como por ejemplo un esquema o especificación de requerimientos detallada, modelos de diseño como por ejemplo los casos de uso, software que está instalado físicamente, entre otros.
  • Para elaborar este modelo, se utilizan los principios del Modelo genérico de software COSMIC, aplicados a los requerimientos de software que se van a medir.

El modelo de requerimientos de software COSMIC tiene 4 principios:

1.- La funcionalidad de software está comprendida de procesos funcionales. La tarea de cada proceso funcional es responder a un evento ocurrido fuera de la frontera del sistema (el  mundo de los usuarios funcionales).

2.- Los procesos funcionales están compuestos de sub-procesos: 

  • Cada sub-proceso puede mover datos o manipular datos. 
  • Los sub-procesos de movimiento de datos que mueven datos de un usuario funcional a un proceso funcional se les llama “Entradas”.
  • Los sub-procesos que mueven datos desde un proceso funcional hacia el exterior se les llama salidas. 
  • Los sub-procesos que mueven datos hacia un almacén de datos se les llama “Escrituras” mientras que a los que mueven datos desde dichos almacenes se les conoce como "lecturas".

3.- Cada movimiento de datos (Entrada, salida, lectura o escritura) moviliza solamente un grupo de datos, cuyos atributos describen un solo objeto de interés.

4.- Se asume que la manipulación de datos forma parte de las entradas, salidas, lecturas o escrituras, por lo tanto estas no se miden por separado (En la medición solo se cuentan los movimientos de datos).

La siguiente figura ilustra los tipos de sub-procesos definidos por el modelo COSMIC.

El método COSMIC - 4 tipos de movimientos de datos


Se entiende que un proceso funcional termina su ejecución cuando ha realizado todos los sub-procesos necesarios para responder a los datos que recibió del evento.

Método COSMIC. Fase 3: Medición

  • La unidad de medida del método COSMIC es el “punto de función COSMIC” (CFP). Cada movimiento de datos es medido como un (1) CFP.
  • La medición de la nueva pieza de software se realiza identificando todos los movimientos de datos, es decir todas las entradas, salidas, lecturas y escrituras de cada proceso funcional. Luego sumándolas todas.
  • Todo proceso funcional debe tener al menos dos movimientos de datos (al menos una entrada y una salida o una escritura). Solo de esta forma se garantiza que el proceso funcional modelado proporciona un servicio completo. Por lo tanto, el tamaño funcional mínimo de un proceso es de 2 CFP.
  • No existe un límite superior al tamaño de un proceso funcional.
  • Para realizar mediciones sobre mejoras a piezas de software existente, se identifican todos los movimientos de datos que se van a agregar, modificar o eliminar, sumándolos todos en cada uno de sus procesos funcionales. El tamaño mínimo de una modificación es de un CFP.

Ejemplo de cómo aplicar el método COSMIC

¿Te gustaría ver ejemplos de estimación de costos de un proyecto de software usando el método COSMIC?, sigue el siguiente enlace:

> Ejemplos de estimación de costos de un proyecto de software



¿Y qué opinas tú?

¿Cuál método de estimación y medición de software utilizas en tu organización? ¿Realizas estimaciones basadas en la opinión de expertos o en el análisis funcional?

¿Buscas más información de gerencia informática?

¿Quieres obtener completamente gratis y directamente en tu correo electrónico plantillas, artículos y otros recursos de gerencia informática?, entonces presiona "suscríbete" a continuación.

Suscríbete a la lista de correo electrónico:


Vía FeedBurner, se abrirá una nueva ventana

También puedes seguirnos vía Twitter, Facebook o Linkedin:

  

Referencia 

Symons, C.R., Lesterhuis, A. Introduction to the COSMIC method of measuring software. 2016

Artículos relacionados


No hay comentarios :

Publicar un comentario

Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.