La métrica del software es un factor realmente importante en el análisis de un proyecto. Hay distintos métodos de estimación de costes de desarrollo de software, también conocido como métrica del software.
La gran mayoría de estos métodos se basan en la medición del número de Líneas de Código (LDC) que contiene el desarrollo (se excluyen comentarios y líneas en blanco de los fuentes).
Entre estos métodos está el COCOMO (COnstructive COst MOdel) desarrollado por por Barry M. Boehm. Un método de estimación de coste de desarrollo no es otra cosa que establecer una relación matemática entre el esfuerzo y el tiempo requerido para desarrollar un producto / proyecto.
Lo primero que necesitamos saber es el tipo de proyecto del que estamos hablando, hay tres tipos diferentes:
- Orgánico: proyectos relativamente sencillos,En este modo, un pequeño grupo de programadores experimentados desarrollan software en un entorno familiar. El tamaño del software varía de unos pocos miles de líneas (pequeño) a unas decenas de miles de líneas (medio).
- Semi-acoplado: proyectos intermedios en complejidad y tamaño. En este tipo, el proyecto tiene unas fuertes restricciones, que pueden estar relacionadas con el procesador y el interface hardware. El problema a resolver es único y es difícil basarse en la experiencia, puesto que puede no haberla.
- Empotrado: proyectos bastante complejos, en los que apenas se tiene experiencia y se engloban en un entorno de gran innovación técnica. Además se trabaja con unos requisitos muy restrictivos y de gran volatilidad.
Ahora por otro lado tendríamos los diferentes modelos que define COCOMO: Modelo básico, Modelo Intermedio y Modelo Avanzado.
En este punto quiero recordar que este tipo de modelos están orientados a la magnitud del producto final, midiendo el tamaño del proyecto en líneas de código principalmente, por el hecho de realizarse en base al número de líneas de código se mide el producto y su tamaño pero en ningún momento podremos llegar a medir la productividad.
Dificultad de un proyecto en función su líneas de código
Categoría |
Programadores |
Duración |
Líneas de código |
Ejemplo |
Trivial |
1 |
0 – 4 semanas |
< 1k |
Utilidad de ordenación |
Pequeño |
1 |
1 – 6 meses |
1k – 3k |
Biblioteca de funciones |
Media |
2 – 5 |
0,5 – 2 años |
3k – 50k |
Compilador de C |
Grande |
5 – 20 |
2 – 3 años |
50k – 100k |
SO pequeño |
Muy grande |
100 – 1000 |
4 – 5 años |
100k – 1M |
Grandes SO |
Gigante |
1000-5000 |
5 – 10 años |
> 1M |
Sistema de Distribución |
Tabla: “Dificultad de un proyecto en función de sus líneas de código
Ejemplo práctico
Supongamos que queremos estimar el “Coste de desarrollo” de un proyecto que posee menos de 50.000 líneas de código y que por lo tanto y según hemos podido ver se trata de un Proyecto Orgánico.
“Proyecto prueba” = 9.200 líneas de código
La ecuación del esfuerzo de COCOMO es:
E = Esfuerzo = a KLDC b (persona x mes)
KLCD es el número de líneas de código en miles
La ecuación del tiempo de desarrollo es:
T = Tiempo de duración del desarrollo = c Esfuerzo d (meses)
Ahora necesitamos una tabla para obtener los coeficientes (a, b, c, d) que aparecen en las fórmulas citadas, estos coefcientes se obtienen de manera empírica y por lo tanto se basa en la experiencia de datos anteriores.
Proyecto de software |
a
|
b
|
c
|
d
|
Orgánico |
2,4
|
1,05
|
2,5
|
0,38
|
Semiacoplado |
3,0
|
1,12
|
2,5
|
0,35
|
Empotrado |
3,6
|
1,20
|
2,5
|
0,32
|
Tabla “Coeficientes COCOMO”
Por lo tanto el tamaño de nuestro “Proyecto prueba” como hemos visto es de 9,2 miles de líneas de código, si aplicamos las fórmulas:
Esfuerzo realizado = 2,4 * 9.2 1,05 = 25,77 personas / mes
T = 2,5 * 25,77 0,38 = 4,86 mes
Nº de personas para desarrollar el proyecto = E/T= 21,9 / 8,1 » 5 personas
Por lo tanto y con estos resultados diríamos que el “Proyecto Prueba” debería terminarse en aproximadamente 5 meses por un equipo de 5 personas.
Información adicional
Por cierto buscando algo de información sobre este método he encontrado esta página que contiene un formulario con el que calcular rápidamente los diferentes datos de estimación de coste de desarrollo de un proyecto basándose en el método COCOMO.
He encontrado también una comparativa de las líneas de código algunos “Sistemas Operativos actuales y antiguos” (Pueden servirte como ejemplos para porbar las fórmulas anteriormente citadas).
Sistema Operativo |
Líneas de Código
|
Microsoft Windows 3.1 (Abril de 1992) |
3.000.000 |
Sun Solaris (Octubre de 1998) |
7.500.000 |
Microsoft Windows 95 (Agosto de 1995) |
15.000.000 |
Red Hat Linux 6.2 (Marzo de 2000) |
17.000.000 |
Microsoft Windows 2000 (Febrero de 2000) |
29.000.000 |
Red Hat Linux 7.1 (Abril de 2001) |
30.000.000 |
Microsoft Windows XP (2002) |
40.000.000 |
Red Hat Linux 8.0 (Septiembre de 2002) |
50.000.000 |
Fedora Core 4 (Mayo de 2005) |
76.000.000 |
Debian 3.0 (Julio de 2002) |
105.000.000 |
Debian 3.1 (Junio de 2005) |
229.500.000
|
Estudio en formato PDF
1 Respuesta a Costes del desarrollo de software
william ospina
14 de febrero de 2012 a las 5:31 pm
necesito buenos aportes, eso no me sirvio de ni mierd…