¿Qué es el punto de función COSMIC y en qué se diferencia de la estimación en horas?

Mesterséges Intelligencia Központ Kft., empresa de desarrollo de software con sede en Budapest, mide el software en puntos de función COSMIC: así el tamaño es una propiedad del software, no la impresión del estimador, y por eso es verificable, puede volver a medirse y permite comparar dos ofertas.

En resumen: COSMIC (ISO/IEC 19761) mide el tamaño funcional del software: cada movimiento de datos, ya sea Entry (entrada), Exit (salida), Read (lectura) o Write (escritura), vale 1 punto de función COSMIC (CFP). La estimación en horas indica cuánto trabajo espera quien estima; el tamaño medido, lo grande que es la tarea. Por eso es verificable, puede volver a medirse y permite comparar dos ofertas; y el esfuerzo puede derivarse del tamaño y de la productividad empírica.

¿Qué es la medición del tamaño funcional?

El tamaño del software puede expresarse de muchas maneras: en líneas de código, en horas, en puntos. La medición del tamaño funcional (en inglés, functional size measurement, FSM) mide lo que el software tiene que hacer desde el punto de vista de sus usuarios, no cómo se implementa. Sus conceptos básicos los establece la norma ISO/IEC 14143-1:2007; según la descripción de la norma, el objetivo es precisamente que la medición se centre en las funciones que requiere el usuario, en lugar de en la forma de implementarlas.

La base de la medición es el conjunto de los requisitos funcionales de usuario (functional user requirements, FUR): la parte de los requisitos de usuario que describe qué tareas y servicios debe realizar el software. El rendimiento, la seguridad o la tecnología elegida no forman parte de ellos; de eso hablamos más abajo, en los límites.

Existen varios métodos normalizados de medición del tamaño funcional. Los más conocidos son COSMIC (ISO/IEC 19761:2011) y el método IFPUG (ISO/IEC 20926:2009); la ISO ha normalizado también otros métodos (NESMA, FiSMA, Mk II). Todos trabajan a partir de los requisitos, pero con reglas distintas y con unidades de medida distintas, por lo que las cifras medidas con métodos diferentes no pueden compararse directamente.

¿Qué es COSMIC?

COSMIC es la sigla de Common Software Measurement International Consortium: una organización sin ánimo de lucro que mantiene el método y organiza la certificación de los medidores. El método surgió a finales de los años noventa como evolución de los métodos de puntos de función anteriores, se convirtió en norma ISO en 2003, y la edición vigente es la ISO/IEC 19761:2011. La descripción detallada del método, la versión 5.0 del COSMIC Measurement Manual, puede descargarse gratuitamente; su primera parte es de 2021 y la segunda, de 2024.

Según la norma, el método sirve para medir software de aplicación (por ejemplo, sistemas empresariales), software en tiempo real y combinaciones de ambos; es decir, con él puede medirse tanto un sistema ERP, CRM o de tienda online como un software de control.

Los conceptos del modelo COSMIC

COSMIC describe el software con un modelo sencillo: el software intercambia datos con sus usuarios funcionales a través de su frontera y, dentro de la frontera, lee del almacenamiento persistente y escribe en él.

ConceptoQué significaEjemplo
Usuario funcionalquien o lo que envía datos al software o espera datos de él: una persona, otro software o un dispositivoel administrativo, el sistema de facturación
Fronterauna interfaz conceptual entre el software medido y sus usuarios funcionalesla interfaz web y la interfaz abierta hacia los demás sistemas
Evento desencadenanteun evento ante el cual el usuario funcional inicia un procesose presenta un cliente nuevo
Proceso funcionaluna unidad elemental de los requisitos, ejecutable de forma independiente: una secuencia coherente de movimientos de datos«registrar un cliente nuevo»
Grupo de datosun conjunto de atributos de datos que se refieren a una sola cosa sobre la que el software debe gestionar datosel Cliente: nombre, dirección, NIF, correo electrónico
Movimiento de datosel movimiento de un único grupo de datos; hay cuatro tiposvéase más abajo

Los cuatro movimientos de datos:

Algunas de las reglas de medición que determinan el recuento:

El resultado se expresa en una escala de razón, es decir, los tamaños pueden sumarse y compararse: dos partes de 40 CFP suman juntas 80 CFP, y el subtotal también puede mostrarse por grupo de funciones.

Ejemplo resuelto: «registrar un cliente nuevo»

Tomemos un requisito sencillo: «El administrativo registra los datos del cliente nuevo (nombre, dirección, NIF, correo electrónico). El sistema comprueba que el cliente no esté ya registrado, lo guarda e informa del éxito o del error». Los pasos de la medición:

  1. El usuario funcional es el administrativo, y el evento desencadenante, que se presenta un cliente nuevo.
  2. El grupo de datos es el Cliente; los cuatro atributos se refieren a la misma cosa, por lo que forman un solo grupo.
  3. Los movimientos de datos se identifican a partir de las frases del requisito, y se cuenta cada uno de ellos.
PasoMovimiento de datosGrupo de datosTamaño
El administrativo envía el formularioEntry (entrada)Cliente1 CFP
El sistema comprueba si el cliente ya existeRead (lectura)Cliente1 CFP
El sistema guarda el cliente nuevoWrite (escritura)Cliente1 CFP
Aviso del éxito o de cualquier errorExit (salida)mensaje de error y de confirmación1 CFP
Totalcuatro movimientos de datosun grupo de datos4 CFP

El ejemplo «registrar un nuevo empleado» de la guía publicada en el sitio web de COSMIC se construye del mismo modo. Así se reflejan en el tamaño los cambios del requisito:

El ejemplo también muestra por qué la medición es verificable: detrás de cada CFP hay un requisito identificado, un grupo de datos y una regla. Si alguien lo discute, puede señalarse exactamente de qué fila se trata.

Medir pronto, afinar después

Una medición COSMIC empieza por fijar el propósito y el alcance de la medición: qué medimos, qué incluye y para qué se utilizará el resultado. Una medición exacta requiere unos requisitos lo bastante detallados como para identificar los procesos funcionales y sus movimientos de datos. Al comienzo de un proyecto, a menudo todavía no existen; para este caso, COSMIC publica métodos de aproximación para la estimación temprana del tamaño, y una vez elaborados los requisitos, puede seguir la medición exacta.

La guía del método advierte también de que muchas necesidades que al principio parecen no funcionales (por ejemplo, el tiempo de respuesta o la facilidad de uso) se convierten en funciones del software a lo largo del proyecto, y por eso el tamaño parece crecer. No es un fallo de la medición, sino una muestra de que el requisito se ha vuelto más preciso. Por eso, en la práctica conviene redactar la especificación de forma detallada, punto por punto, volver a medir los cambios con el mismo método y mostrar por separado el tamaño de cada cambio. Así, el crecimiento del alcance no se produce en silencio, sino que se ve en cifras.

Comparación: horas, story points, IFPUG, COSMIC

CriterioEstimación en horasStory pointsPunto de función IFPUGPunto de función COSMIC
Qué expresael trabajo que espera quien estimala estimación relativa del equipo; no siempre está claro si de tamaño, de esfuerzo o de tiempoel tamaño funcionalel tamaño funcional
Si está normalizadononosí, ISO/IEC 20926:2009sí, ISO/IEC 19761:2011
De qué dependede la experiencia, la prudencia y el equipo de quien estimadel equipo concreto; significa algo distinto en cada equipode los requisitosde los requisitos
Si puede verificarse desde fuerasolo a partir de las explicaciones de quien estimaapenas, fuera del equiposí, según reglas públicassí, según reglas públicas y de acceso gratuito
Unidadhorael punto propio del equipopunto de función IFPUGCFP, 1 CFP = 1 movimiento de datos
Para qué sirve mejorpara planificar tareas breves y bien conocidaspara la planificación de los sprints del propio equipopara medir el tamaño y compararpara medir el tamaño, comparar y servir de base a la oferta y al calendario

La estimación en horas no es una mala herramienta; simplemente mide otra cosa: el trabajo previsto, que además del tamaño de la tarea depende de los conocimientos, las herramientas y la prudencia del equipo. Los story points (puntos de historia) son útiles para la planificación dentro del equipo, pero, según la guía publicada en el sitio web de COSMIC, son subjetivos y su significado varía de un equipo a otro. IFPUG y COSMIC son ambos tamaños funcionales normalizados, pero con reglas distintas, por lo que las cifras de los dos métodos no son intercambiables.

¿Por qué el tamaño medido es una base más fiable?

Respondiendo con precisión a la pregunta del título: COSMIC no estima las horas con más precisión, sino que mide el tamaño de la tarea, y eso es lo que hace más fiable la estimación del esfuerzo. Los motivos:

La guía de COSMIC cita varios estudios en los que el tamaño medido en CFP evolucionaba de forma más estrechamente ligada al esfuerzo real que la estimación expresada en story points. La misma guía advierte también de que el esfuerzo estimado a partir del tamaño es fiable cuando el proceso de desarrollo es suficientemente repetible y el esfuerzo depende principalmente del tamaño. Por tanto, el tamaño medido es un mejor punto de partida, pero para una buena estimación también hay que conocer la productividad.

¿Qué no mide COSMIC?

El tamaño COSMIC mide las funciones, y la descripción del método lo dice abiertamente. Lo que no expresa:

Por eso, una buena oferta muestra por separado, junto al tamaño medido, lo que el tamaño no expresa: las integraciones, los requisitos no funcionales, la interfaz y los gráficos personalizados, las varias plataformas, la migración de datos, los cálculos complejos y el funcionamiento en tiempo real. En nuestras ofertas, estas partidas figuran así; lo explicamos en la página Precios.

¿Cómo lo utilizamos en nuestro propio trabajo?

Medimos el tamaño funcional del desarrollo en puntos de función COSMIC. Para la medición hemos construido un flujo de trabajo propio asistido por inteligencia artificial, y una persona comprueba el resultado en una ronda de revisión. Los pasos:

  1. Especificación detallada: dividimos el desarrollo en grupos de funciones y describimos cada uno con la misma plantilla: objetivo, actores, datos, funciones, funciones de IA y lo que no forma parte de él (véase Cómo trabajamos).
  2. Varios recuentos independientes: varios modelos de lenguaje cuentan cada grupo de funciones varias veces; la dispersión de los recuentos muestra la incertidumbre.
  3. Ronda de conciliación: garantiza que cada proceso funcional cuente exactamente una vez, aunque aparezca en varias descripciones.
  4. Revisión: revisamos la medición, aclaramos los puntos dudosos y, si es necesario, corregimos a mano las fusiones automáticas.
  5. Fijación: la medición terminada puede fijarse como una versión inmutable, que se convierte en la base del contrato.

Al ampliar un sistema existente, describimos por separado la parte existente, de modo que en el tamaño solo cuenta la parte nueva. La medición también señala lo que el tamaño funcional no expresa.

¿Cómo se convierte el tamaño en oferta y calendario?

El precio de la oferta se deriva del tamaño medido, complementado con las partidas que el tamaño no expresa. Como vemos el tamaño también por grupo de funciones, construimos sobre él también el calendario: el orden de las etapas, el contenido de las demostraciones y los plazos. Si sobre la marcha surge una nueva necesidad, la medimos de la misma manera, y se ve cuánto cambia el alcance y qué supone eso para el precio y el calendario. Por eso solo damos un precio y un plazo concretos después de la medición, y no a partir de una primera conversación.

Comparar dos ofertas por su tamaño

Si pide ofertas a varios desarrolladores, el tamaño ayuda a decidir si se refieren a la misma tarea. Conviene proceder así:

  1. La misma especificación: todos los ofertantes reciben la misma descripción detallada.
  2. El tamaño y la lista de procesos: pregunte para qué tamaño y para qué procesos funcionales han dado el precio.
  3. Los motivos de las diferencias: si dos ofertas difieren, compruebe si la diferencia está en el tamaño, en las partidas que el tamaño no expresa o en el precio por unidad de tamaño.
  4. Las partidas aparte: pregunte qué figura en una línea aparte (integración, migración de datos, operación) y qué no incluye el precio.
  5. La gestión de los cambios: pregunte cómo se miden y se valoran los cambios que surjan sobre la marcha.

Si un ofertante no mide el tamaño funcional, su oferta sigue siendo comparable si ha calculado el precio sobre la misma lista detallada de procesos. Sobre los demás criterios para elegir un desarrollador escribimos en el artículo ¿Cómo elegir una empresa de desarrollo de software?; y si hace falta o no un desarrollo a medida, ayuda a decidirlo el artículo ¿Software a medida o solución estándar?.

Preguntas frecuentes

¿Qué es el punto de función COSMIC?

El punto de función COSMIC (CFP) es la unidad de medida del tamaño funcional del software según la norma ISO/IEC 19761. Un CFP es un movimiento de datos: la entrada, la salida, la lectura o la escritura de un grupo de datos en un proceso funcional. El tamaño del software es la suma de los movimientos de datos de sus procesos.

¿En qué se diferencia de la estimación en horas?

La estimación en horas indica el trabajo previsto, y depende de quien estima y del equipo. COSMIC mide el tamaño de la tarea a partir de los requisitos, con reglas públicas, por lo que otra persona puede llegar al mismo resultado a partir de la misma especificación. Después, las horas pueden derivarse del tamaño y de la productividad empírica.

¿Qué no mide COSMIC?

Según la norma, no se creó para medir algoritmos matemáticos complejos ni el procesamiento de señales continuas (audio, imagen), y tampoco expresa en CFP los requisitos verdaderamente no funcionales, como las restricciones de rendimiento o tecnológicas. Una buena oferta los muestra como partidas aparte.

¿Quién lo mide y puede verificarse la medición?

La medición la realiza un medidor que conoce el método; en nuestro caso, el recuento lo hace un flujo de trabajo asistido por IA, y una persona revisa el resultado. Las reglas son públicas y la medición está documentada proceso por proceso, por lo que otro especialista que conozca el método puede verificarla a partir de la misma especificación.

¿Cómo se convierte el tamaño en una oferta?

El precio se deriva del tamaño medido, complementado con lo que el tamaño no expresa: integraciones, requisitos no funcionales, gráficos personalizados, varias plataformas, migración de datos. El calendario se basa en el tamaño por grupo de funciones, y los cambios los medimos de la misma manera. Encontrará los detalles en la página Precios.

¿Cómo podemos ayudarle?

Si está planeando un software a medida, redactamos juntos la especificación detallada, medimos su tamaño en puntos de función COSMIC y, a partir de él, le presentamos la oferta y el calendario. Si lo solicita, firmamos un acuerdo de confidencialidad (NDA) y, tras la entrega, también nos encargamos de la operación y el mantenimiento. El código fuente y los derechos de uso se rigen por el contrato. La primera consulta es gratuita: escríbanos a través de los datos de contacto que figuran en la página Contacto.

Fuentes