Resultados de la medición de Debian

Los resultados principales de nuestro análisis de la distribución Debian 2.2 GNU/Linux se pueden organizar en las siguientes categorías.

Tamaño de Debian Potato

Hemos contado el número de líneas físicas de código fuente de Debian GNU/Linux 2.2 de tres formas, con los siguientes resultados (todas las cifras son aproximadas, consultar el apéndice para más detalles):

Para más detalles sobre el significado de cada categoría, el lector puede volver a la subsección " Descarga y Captura de datos". En resumen, la medida de los paquetes "upstream" originales puede ser considerado como el tamaño del software original usado en Debian. La medida de los paquete fuente Debian representa la cantidad de código presente actualmente en la distribución Debian 2.2, incluyendo tanto el trabajo de los autores originales como el de los desarrolladores Debian. Este último incluye los scripts relativos a Debian y los parches. Los parches pueden estar hechos por los desarrolladores Debian (por ejemplo aquellos que adaptan un paquete a la _ política Debian) o pueden ser obtenidos de algún otro sitio. La medida de los paquetes Debian sin el directorio debian excluye los scripts relacionados con Debian, por lo que son una buena medida del tamaño de los paquetes tal y como aparecen en Debian, excluyendo los scripts referentes a Debian.

Es importante tener en cuenta que los paquete desarrollados específicamente para Debian en general no tienen paquete fuente "upstream" original. Este es por ejemplo el caso de apt, presente sólo como paquete fuente Debian.

Lenguajes de Programación

El número de SLOC físico para los paquetes fuente originales, clasificado por lenguajes de programación es, redondeando :

Por debajo del 0,5% encontramos otros lenguajes: Yacc (0,46%), Java (0,20%), Expect (0,20%), Lex (0,13%), y otros con porcentaje inferior al 0,1%.

Cuando contamos las líneas de los paquetes fuente Debian sin el directorio debian (que contiene ficheros de configuración del paquete y scripts hechos por el desarrollador de Debian ) las cifras son similares, lo que significa que estos scripts no representan una parte significativa de la distribución. La principal diferencia está en las lineas de Shell (unas 150.000 menos) y en la líneas Perl (unas 80.000 menos), lo que revela los lenguajes preferidos para estos scripts.

A pesa de esto, al contar los paquetes "upstream" originales hay algunas diferencias destacables: Unas 2.000.000 líneas de código C, 300.000 líneas de LISP, 200.000 líneas FORTRAN, y pequeñas variaciones en otros lenguajes. Estas diferencias se deben generalmente a los parches a los fuentes originales hechos por los desarrolladores Debian. Por tanto, consultado estos resultados, podemos saber en qué lenguajes están escritos la mayoría de los paquetes a los que se han aplicado parches.

Los mayores paquetes

Los mayores paquetes en la distribución Debian potato son:

Los números entre paréntesis representan aproximadamente el SLOC de los paquetes fuente originales, el resto de las cifras es el SLOC aproximado de los paquetes fuente Debian. Sólo se muestran los datos de los lenguajes más relevantes en cada paquete. El lector puede advertir que en la mayor parte de los casos, las cifras en ambos casos son aproximadamente iguales, lo que evidencia que, en esos casos, lo añadido por los desarrolladores Debian es mínimo (aunque estas modificaciones puedan ser importantes).

Las versiones de las distribuciones no son, obviamente, las actuales, pero eran las disponibles cuando Debian 2.2 fue congelado (primavera de 2000). La clasificación podría ser diferente si los desarrolladores Debian tuvieran que empaquetar las cosas de otra forma. Por ejemplo, si todas las extensiones de Emacs estuvieran en el paquete Emacs, hubiera sido mucho mayor. En todo caso, los paquetes fuente de Debian generalmente encajan bien con la idea de paquete que se tiene en general, que es la que suelen tener los autores originales.

Los siguientes paquetes según su tamaño (entre 350.000 y 500.000 _ SLOC) son Binutils (ensamblador GNU, linker y utilidades binarias), TenDRA (compiladores y comprobadores C y C++), LAPACK (un conjunto de librerías para álgebra lineal) y el Gimp (el paquete GNU de manipulación de imágenes). La mayoría de estos paquetes están escritos en C, excepto LAPACK, escrito principalmente en FORTRAN.

Esfuerzo y estimaciones del coste

Usando el modelo COCOMO básico [Boehm1981] , se puede estimar el esfuerzo necesario para construir un sistema con el tamaño de Debian 2.2. Esta estimación supone un modelo de desarrollo de software propietario "clásico", con lo que no es válido para estimar el esfuerzo aplicado a la construcción de este software. Pero al menos puede darnos un orden de magnitud del esfuerzo que sería necesario si se hubiera empleado un modelo de desarrollo de software propietario.

Aplicando el contador de SLOC para los paquetes fuente Debian los datos que proporciona el modelo COCOMO básico son los siguientes:

Para calcular la estimación de costes, hemos usado el salario medio para un programador de sistemas a tiempo completo en el año 2000, que según Computer World [ComWorld2000] es de 54.000 dólares USA al año, con un factor de conversión de 2,4.