ingenieria open source

18
Ingeniería de Software “Open Ingeniería de Software “Open Source” Source”

Upload: howard-pernia

Post on 02-Jul-2015

355 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Ingenieria open source

Ingeniería de Software “Open Ingeniería de Software “Open Source”Source”

Page 2: Ingenieria open source

Calidad

Se define como la conformidad del producto ante las especificaciones del diseño, satisface las necesidades y cumple con las expectativas que cumple algún cliente.

Page 3: Ingenieria open source

Modelos de Calidad

La garantía de calidad: en procesos y procedimientos, experiencias y buena gestión.

Control de Calidad: Verificación y validación, documentando y procesos de prueba.

Page 4: Ingenieria open source

Gestión de la calidad en el software de Código Abierto (OSS)

Se basa en la comprensión de áreas clave de las comunidades

sostenibles como:

La modularidad del Código.

Gestión de proyectos.

Pruebas de Proceso de Gestión.

Para lograr software de alta calidad, los profesionales de OSS deben

comprender estas áreas y cómo se relacionan entre sí.

Page 5: Ingenieria open source

¿Que es una Comunidad de Software Libre?

Un conjunto de Personas (no instituciones o Empresas);

Con diferentes grados de Implicación a nivel temporal, de intereses, de gobierno, etc;

Con una Estructura bien definida y una “Cultura Social” especifica de la comunidad;

Con liderazgos individuales

Con individuos Compartidos entre comunidades

“Son redes sociales muy evolucionadas”

Page 6: Ingenieria open source

La participación y la motivación

Mientras que la modularidad del código de alta calidad reduce la complejidad y permite a los recién llegados contribuir periféricamente sin afectar al núcleo del sistema, la modularidad por sí sola no atraerá a los programadores a un proyecto.

Audris Mockus y sus colegas estudio de caso de Mozilla, un proyecto altamente modular que inicialmente tuvo problemas para atraer a los contribuyentes. hubo mayor participación sólo después de la documentación donde el equipo mejoró el núcleo, escribió tutoriales, y herramientas de desarrollo.

Page 7: Ingenieria open source

La participación y la motivación

Los equipos de desarrollo de software libre

entienden que los programadores rara vez

ofrecen voluntariamente sus servicios

desinteresadamente.

Page 8: Ingenieria open source

Modularidad del Código.

la modularidad permite a múltiples desarrolladores trabajar en la misma solución, aumentando la probabilidad de soluciones oportunas y de alta calidad. La corrección de errores también pueden convertirse en una competencia para llegar a la mejor y más eficiente solución.

Page 9: Ingenieria open source

Revisión por Par (expertos)

Eric Raymond afirmó que el ciclo de liberación rápida facilita la revisión de

par, porque poniendo en práctica y respondiendo rápidamente para mirar

detenidamente los comentarios de los desarrolladores, el código guarda

implicada e interesadamente.

Raymond Señalo que los errores en el desarrollo de software de código

abierto todos los errores son superficiales.

Page 10: Ingenieria open source

Gestión de personas.

Gacek y Lawrie señalaron:

Que el desarrollo de un software de código abierto fomenta activamente la innovación y creatividad, para crear un proceso más centrado en las personas que el desarrollo tradicional, que está dominado por los métodos, instrumentos y técnicas

Page 11: Ingenieria open source

Detección de Errores

En un estudio de 200 proyectos OSS, Luyin Zhao y Sebastian Elbaum

encontraron que el desarrollo de software de código abierto se centran:

En lanzamientos de acontecimiento de buena calidad.

En "La libertad anticipada”.

En la liberación a menudo “ los resultados del proceso de mejoras continua

por un gran número de desarrolladores que aportan las repeticiones y las

rectificaciones”.

Page 12: Ingenieria open source

Detección de Errores

Sistemas de Pruebas:

Menos del 20% de los desarrolladores de OSS usan planes de pruebas.

Solamente el 40% de los proyectos usan herramientas de pruebas, aunque esto aumenta cuando el soporte de herramientas de pruebas está extensamente disponible para un leguaje de programación, como JAVA .

“Que en el OSS la mayoría de los errores son superficiales porque existe un gran número de desarrolladores contribuyentes estudiando y observando el código

Page 13: Ingenieria open source

Detección de Errores

McConnell:

Sostuvo que en el desarrollo de OSS, los errores se arreglan a nivel de código y no en el nivel de diseño (teniendo en cuenta que el mayor proyecto OSS, es GNU/Linux).

Ya que los errores se capturan rápidamente porque el desarrollo de OSS se realiza una revisión por expertos y las pruebas del sistema se producen rápidamente en el prototipo en un iterativo proceso, lo que evita errores en el software.

Page 14: Ingenieria open source

Normas para el desarrollo OSS

Tener una gran comunidad sostenible, lo que da lugar a un rápido desarrollo del código, depuración efectiva, y nuevas características.

El sistema y la comunidad deben coevolucionar para conseguir el desarrollo sostenible y el software de alta calidad.

Page 15: Ingenieria open source

Ciclos de lanzamiento rápido mantienen el código y a los desarrolladores interesados y motivados.

Revisión del código por parte de usuarios externos.

Normas para el desarrollo de software libre

Page 16: Ingenieria open source

Normas para el desarrollo OSS:

El ambiente del equipo de proyecto y la cultura son tan importantes como el diseño de sistema creando el software de alta calidad.

Confianza en la base de usuarios para pruebas del sistema, pero con recursos y patrocinio, se debería complementar estas pruebas con técnicas de pruebas formales, pruebas automatizadas y pruebas de regresión.

Page 17: Ingenieria open source

Inconvenientes en el Desarrollo OSS

El principal inconveniente que se presenta en el desarrollo de OSS es la documentación que debe evolucionar junto al software cuando se habla de desarrollo de software de código libre nos

encontramos ante el problema de que estamos documentando un software potencialmente realizado por muchas personas, que puede ser libremente modificado.

Page 18: Ingenieria open source

“Los buenos programadores saben qué escribir. Los grandes saben qué reescribir

(y reutilizar)”