Modelos de estimación de esfuerzo usando el tamaño funcional COSMIC.

¿Para qué me sirve un modelo de estimación de esfuerzo?  

¿Qué insumos necesito para construir y utilizar un modelo de estimación de esfuerzo?

Recordemos que COSMIC ISO/IEC 19761 es un método de medición del tamaño funcional del software; es decir, es un método estándar para dimensionar el tamaño del software y poder cuantificar numéricamente la magnitud de la funcionalidad (tamaño del software), independientemente de cualquier dependencia tecnológica o metodológica empleada para el desarrollo de este; precisamente por esta razón necesitamos identificar y construir modelos de estimación que recibiendo como entrada el tamaño funcional del software me permitan estimar el esfuerzo requerido para construir la pieza de software de tamaño “X”.

En este punto de la creación de los modelos de estimación cobra relevancia la dependencia tecnológica, por ejemplo, el lenguaje de desarrollo, la arquitectura, la tecnología del DBMS, el sistema operativo, metodología empleada para el desarrollo, sector de la organización usuaria, etc.

Lo anterior es muy fácil de comprender si consideramos que un mismo software, por ejemplo, de tamaño 100 CFP, necesariamente requerirá diferente esfuerzo si decidimos implementarlo en una arquitectura Mainframe con lenguaje Cobol o decidimos implementarlo en una arquitectura Web con lenguaje Java.

Por lo cual es muy importante que las fábricas de software (FSW) dispongan de los modelos de estimación y en consecuencia la creación de estos modelos es parte esencial para tener estimaciones formales y cuantificables.

En la siguiente figura se ilustran, en alto nivel, los elemento involucrados en una estimación (requisitos del software, proceso de desarrollo del software y restricciones del proyecto).

Fig. 1 Elementos involucrados en una estimación. Adaptado de [1]

En consecuencia, el paso indispensable es construir un modelo de estimación matemático los cuales típicamente son construidos utilizando datos de proyectos terminados. En virtud de lo anterior, la mayor parte de los llamados modelos de estimación son en realidad modelos de productividad, es decir, representan la productividad de los proyectos ya finalizados, en los cuales no existe incertidumbre. Los modelos de productividad son modelos de proyectos pasados construidos a partir de información conocida [1].

Algunos de los beneficios de los modelos matemáticos de productividad de proyectos pasados son los siguientes:

•             La eficiencia de estos modelos puede ser analizada y descrita.

•             Pueden utilizarse para estimar futuros proyectos.

•             Siempre que se ingresa la misma información al modelo de estimación, se obtendrá el mismo resultado.

Un ejemplo de una representación gráfica de un modelo de productividad (con proyectos completados) es representado en la Figura 2 donde el eje X representa el tamaño funcional de los proyectos completados y el eje Y representa el esfuerzo requerido de los proyectos completados.

Figura 2. Modelo de productividad tomado de [1]

Hoy en día solamente el tamaño funcional puede ser medido de manera estandarizada, de tal forma que solo podemos tener una variable independiente a ser medida adecuadamente.

En otras palabras, “el modelo de productividad representa la relación entre las dos variables (tamaño y esfuerzo), es decir, entre la variable independiente (el tamaño del software) y la variable dependiente (el esfuerzo o costo del proyecto terminado)” [1].

Una vez obtenido el modelo de la Figura 2, a partir de los datos históricos de proyectos semejantes a los que deseamos estimar, podemos utilizarlo para estimar proyectos utilizando como entrada el tamaño funcional.

Como se observa el modelo tiene dos componentes, el costo variable (a) que representa el incremento de esfuerzo en Horas Hombre (HH) por cada incremento unitario en el tamaño funcional, es decir el parámetro (a) representa un costo HH por unidad de tamaño (1 CFP); el costo fijo (b) es un esfuerzo en HH que no depende del tamaño funcional y este costo existe por el simple echo de iniciar un proyecto.

¿Qué sucede si la FSW no dispone de información histórica para poder construir los modelos de estimación?

En estos casos se debe recurrir a una base de datos de referencia, como  la base de datos de la Industria Mexicana de Desarrollo de Software desarrollada por la Asociación Mexicana de Métricas de Software (AMMS),para segmentar proyectos con características similares al proyecto que se desea estimar y poder construir el modelo de estimación con dicha muestra. Podemos encontrar información referente a modelos de estimación en los acervos de la AMMS asociándose a la misma; para más información consulta la página de la AMMS en la dirección https://www.amms.org.mx/ en la sección de “estudios” o en la sección de “quiero ser socio”.

Es importante señalar también, que la creación y utilización de modelos de estimación están soportados por la plataforma tecnológica MENSURA® desarrollada por SPINGERE; para más información consultar https://mensura.com.mx/

En conclusión, la creación de modelos de estimación es esencial para poder estimar esfuerzo y/o costo de proyectos de desarrollo de software usando la métrica del tamaño funcional. La creación de estos modelos requiere información histórica de proyectos ya terminados, ya sea la propia fábrica de software que desea estimar, o en caso de no disponer de ellos, usar proyectos de la IMDS. SPINGERE ofrece servicios y productos que facilitan estas tareas (www.spingere.com.mx).

[1] Abran, A. (2015) Software Project Estimation: The Fundamentals for Providing High Quality Information to Decision Makers. 1st edn. Hoboken, NJ, USA: John Wiley & Sons.

Jorge Valeriano Assem.

Francisco Valdés Souto.

Leave A Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *