PDF de programación - GNOME como caso de estudio de Ingenieria del Software Libre

Imágen de pdf GNOME como caso de estudio de Ingenieria del Software Libre

GNOME como caso de estudio de Ingenieria del Software Libregráfica de visualizaciones

Publicado el 14 de Enero del 2017
672 visualizaciones desde el 14 de Enero del 2017
372,5 KB
24 paginas
Creado hace 18a (18/05/2005)
GNOME como caso de estudio de

Ingeniería del Software Libre

Juan José Amor Iglesias, Gregorio Robles

Martínez, Jesús M. González-Barahona
{jjamor,grex,jgb} at gsyc.escet.urjc.es

Mayo 2005

1

(cc) 2005 J. J. Amor, G. Robles, J. González-Barahona.
Some rights reserved. This work licensed under Creative Commons
Attribution-ShareAlike License. To view a copy of full license, see
http://creativecommons.org/licenses/by-sa/2.0/

c2005 J. J. Amor, G. Robles, J. González-Barahona

Índice

2

Índice

Ingeniería del Software Libre. CALIBRE.

Proceso de Desarrollo.

GNOME: Código fuente.

Lenguajes en GNOME.

Desarrolladores en GNOME. Desigualdad. Generaciones.

Contribución de cada desarrollador.

Varias fuentes de datos simultáneas.

¡Demostración! (si la red lo permite. . . ).

Conclusiones.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Software Libre: Ingeniería

3

Software Libre: Ingeniería

Software libre:

Cientos, miles de personas distribuidos geográficamente.

Que apenas se ven (salvo alguna reunión como Guadec-ES).

Coordinación. Productividad. Capacitación.

Producen resultados que ¡funcionan!

¿Es esto mágico? ¿Cómo es el proceso de desarrollo del software libre?
¿Cómo podemos mejorarlo?

Grupos de investigación universitarios.

Grupo de Ingeniería del Software Libre en URJC.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

CALIBRE

4

CALIBRE

Acción coordinada europea. Sexto programa marco IST.

Integrar y Coordinar investigación europea de Software libre en
“mercado secundario”.

Participan: 8 universidades europeas y algunos partners industriales.

URJC: Caracterización de procesos, productos y proyectos de soft-
ware libre.

Estudios cualitativos y cuantitativos.

http://calibre.ie/

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Modelo de desarrollo software libre

5

Modelo de desarrollo software libre

El modelo: distribuido, colaborativo, abierto. . . en Internet.

Hacen falta herramientas que faciliten ejecución del modelo: son las que
proporcionan gran cantidad de datos accesibles públicamente.

Fuentes de datos utilizadas:

Código fuente: Paquetes binarios y fuentes (tarballs).

Control de versiones: CVS, SVN. . .

Seguimiento de fallos: Bugzilla. . .

Documentación: man, docbook. . .

Listas de correo, foros públicos.

Estadísticas de uso (Popcon).

Encuestas: FLOSS.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Estudio de Código Fuente de GNOME

6

Estudio de Código Fuente de GNOME

Origen de los datos: los tarballs

Cómo contamos las líneas de código:

Con wc

Con scripts awk

Con SLOCCount

La mejor opción es SLOCCount porque:

Heurísticas que distinguen lenguajes.

No cuenta documentación y otros ficheros que no sean fuentes.

Alternativa: Contar fuentes desde CVS.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Evolución de GTK+

7

Evolución de GTK+

Ajuste: y = 3371,7 · t + 89968,9; r = 0,985

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

0 50000 100000 150000 200000 250000 300000 350000 400000 450000 0 10 20 30 40 50 60 70 80 90 100gtk+ Evolución de Gnumeric

8

Evolución de Gnumeric

Ajuste: y = 3019,9 · t + 17322,8; r = 0,988

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

-50000 0 50000 100000 150000 200000 250000 300000 0 10 20 30 40 50 60 70 80 90 100gnumeric ¡Esto no es GNOME!

9

¡Esto no es GNOME!

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

0 500000 1000000 1500000 2000000 2500000 3000000 3500000 4000000 45000001990199219941996199820002002200420061.01.11.21.32.02.12.22.32.42.52.6 Observaciones del código fuente

10

Observaciones del código fuente

La mayoría de los proyectos de cierto tamaño como GNOME:

Crecen linealmente.

Rara vez crecen sub-linealmente.

A veces super-linealmente (Linux).
• y = 0,26 · t2 − 322 · t + 195, 183; r2 = 0,99

¿Por qué?

Linealidad: Organización más eficiente que en entornos clásicos.

Superlinealidad: Crecimiento lineal de drivers + crecimiento lineal
en número de drives.

Sublinealidad: Se da poco en los grandes proyectos de software libre.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Otros resultados desde el código fuente

11

Otros resultados desde el código fuente

Estimación de coste económico: COCOMO.

Software Líneas

Esfuerzo Tiempo desarrollo Coste Total

Dia

122,722

31.23 a-h

1.98 años

Evolution

207,507

54.19 a-h

2.44 años

Gnumeric

294,547

78.28 a-h

2.81 años

Gtk+

418,927

113.31 a-h

3.23 años

$ 4,218,868

$ 7,320,252

$ 10,574,357

$ 15,306,888

Distribución de lenguajes: la presencia de otros distintos del lenguaje
“principal” es normalmente casi anecdótica.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Estudio del CVS de GNOME

12

Estudio del CVS de GNOME

CVS:

Sistema de control de versiones.

Acceso remoto. Desarrollo distribuido.

Acceso anónimo (read-only).

El acceso anónimo permite:

Acceso a todas las versiones.

Acceso a información de los commits (logs).

Logs: Líneas cambiadas por fichero, fecha, hora, desarrollador.

La herramienta CVSAnaly analiza estos datos y permite obtener diversos
resultados. . .

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

CVS: Coeficiente de Gini

13

CVS: Coeficiente de Gini

Hecho: La mayor parte del trabajo la realiza una minoría de desarrolla-
dores.

Grado de desigualdad: (en aportaciones al proyecto por cada desarrolla-
dor). Medible con el coeficiente de Gini.

Gráfico:

Recta: Ideal: todos los desarrolladores contribuyen igual.

Curva: Real: Una minoría hace casi todo el trabajo.

Gini: Relación entre las áreas entre recta y curva de Lorenz. (máxima
desigualdad: 1).

Ley de Pareto: El 20 % de los desarrolladores realizan el 80 % del trabajo.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Desigualdad en Evolution

14

Desigualdad en Evolution

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

CVS: Contribuciones de cada desarrollador

15

CVS: Contribuciones de cada desarrollador

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

buildcodeimagesdocumentationuii18ncodebuilddocumentationimagesi18nuibuildcodedevel−docdocumentationimagesuii18nunknownbuildcodedocumentationimagesui CVS: Generaciones de desarrolladores

16

CVS: Generaciones de desarrolladores

El liderato en Evolution no es constante:

Se va heredando entre grupos de desarrolladores (generaciones).

No hay dependencia de un único desarrollador.

La hipótesis del “code-god” no es válida en muchos otros proyectos de
software libre.

Gráfica:

División del tiempo en intervalos.

Identificación del grupo de desarrolladores más activo.

Contribuciones del grupo.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Generaciones en Evolution

17

Generaciones en Evolution

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Fuentes de datos simultáneas

18

Fuentes de datos simultáneas

Conclusiones con varias fuentes de datos.

Ejemplo: CVS, listas de correo, bugzilla.

Con ellos se prueba el “modelo cebolla” en GNOME.

“Modelo cebolla” es un modelo de incorporación de desarrolladores que
se ha demostrado empíricamente con GNOME.

Se trató de seleccionar desarrolladores que cumplan criterios (p.e. tiem-
po de permanencia como committers del CVS) y trazar su participación
en listas de correo, bugzilla y CVS.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Modelo cebolla

19

Modelo cebolla

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

UsuarioListas CorreoEnviar bugsCorregir bugsDesarrollador"Core" Modelo cebolla

20

Modelo cebolla

Cada desarrollador se incorpora a GNOME por “capas”:

Inicios: usuario “pasivo”, que visita la web del proyecto y ocasional-
mente las listas de correo.

Participación en listas de correo.

Participación en listas y en bugzilla (enviando partes).

Contribución a la resolución de partes.

Acceso de escritura al CVS.

Colaboración intensa: pertenencia al grupo central de desarrollado-
res (“core”).

La actividad del desarrollador no puede trazarse hasta que empieza a
participar al menos en las listas de correo.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Demostración

21

Demostración

http://libresoft.urjc.es/

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Conclusiones

22

Conclusiones

Necesidad de estudiar ingeniería software libre.

Dificultades: Distribución de desarrolladores. Trabajo voluntario.

Ventajas: Disponibilidad de gran cantidad de datos.

Análisis mostrados: Código fuente: esfuerzo,

CVS: desigualdad, contribuciones, generaciones,

E-mail, BTS: Proceso gradual de integración en el proyecto.

GNOME es una fuente de datos abundantes digna de estudio para la
ingeniería del software libre.

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.

Muchas gracias

23

Muchas gracias

¡Esto es todo, amigos!

c2005 J. J. Amor, G. Robles, J. González-Barahona

Ing. Software Libre. Caso de Estudio.
  • Links de descarga
http://lwp-l.com/pdf1620

Comentarios de: GNOME como caso de estudio de Ingenieria del Software Libre (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad