Vista previa del material en texto
Costes del desarrollo de software 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: http://es.wikipedia.org/wiki/COCOMO http://es.wikipedia.org/wiki/COCOMO http://es.wikipedia.org/wiki/COCOMO 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 http://www.oei.eui.upm.es/Asignaturas/PInformaticos/ficheros/software/opcion3/CBasico.html http://es.wikipedia.org/wiki/COCOMO http://www.elrincondetolito.com/archivos/Measuring%20Libre%20Software%20Using%20Debian%203.1%20Sarge%20as%20a%20case%20study.pdf