Calidad del Software en Proyectos Open Source

38
Calidad del Software en proyectos Open Source Marcos Blanco Galán [email protected] Coordinador de Certificación y Calidad Centro de Excelencia de Software Libre José de Espronceda

description

 

Transcript of Calidad del Software en Proyectos Open Source

Page 1: Calidad del Software en Proyectos Open Source

Calidad del Software

en proyectos Open Source

Marcos Blanco Galá[email protected]

Coordinador de Certificación y Calidad

Centro de Excelencia de Software Libre José de Espronceda

Page 2: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

1. Calidad del Software

2. Modelos de Calidad del Software

3. Métricas para la evaluación de la Calidad

4. Proyectos e iniciativas

5. Conclusiones y observaciones

2

Page 3: Calidad del Software en Proyectos Open Source

1. Calidad del Software

Page 4: Calidad del Software en Proyectos Open Source

1. CALIDAD DEL SOFTWARE

La calidad es un conjunto de atributos o propiedades inherentes a

'algo' que permiten juzgar su valor.

“Conjunto de características de un elemento que le confieren la aptitud para

satisfacer necesidades explícitas o implícitas.”

ISO 8402 - Quality Management & Quality Assurance Vocabulary.

¿Qué es la “calidad”?

“Calidad del Software en proyectos Open Source”

4

Page 5: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

5

¿Qué es la “Calidad del Software”?

Hay que tener en cuenta las características del software:

● El software se desarrolla, no se “fabrica”.

● Es un producto lógico, algo intangible.

● El software no se desgasta en el tiempo (pero sí se deteriora).

● Pueden desarrollarse componentes y ser reutilizados.

Page 6: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

“Grado con el que un sistema, componente o proceso cumple los

requerimientos especificados y las necesidades o expectativas

del cliente o usuario.”

IEEE 610-1990 - Standard Glossary of Software Engineering Terminology.

1. CALIDAD DEL SOFTWARE

¿Qué es la “Calidad del Software”?

6

Page 7: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Gestión a nivel de producto:● Centrado en el proceso de desarrollo del software.

● Se realiza un seguimiento durante todo el ciclo de vida del software.

● Objetivo: Minimizar la existencia de defectos en el producto final.

Gestión a nivel de proyecto:● Centrado en la definición, planificación, seguimiento y evaluación de un proyecto.

● Un proyecto es un esfuerzo temporal que produce un entregable (producto o servicio) único.

● Gran dependencia de los individuos y líderes que gestionan las funciones básicas.

● Objetivo: Optimizar costos y tiempos garantizando siempre la calidad del producto final.

Gestión a nivel de proceso:● Centrado en los procesos operativos de la empresa u organización.

● Un proceso implica un esfuerzo permanente y repetitivo, siempre produce una salida similar.

● Objetivo: Mejora continua para aumentar la calidad de los productos y servicios asociados.

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

7

Page 8: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Gestión a nivel de producto:● Centrado en el proceso de desarrollo del software.

● Se realiza un seguimiento durante todo el ciclo de vida del software.

● Objetivo: Minimizar la existencia de defectos en el producto final.

Gestión a nivel de proyecto:● Centrado en la definición, planificación, seguimiento y evaluación de un proyecto.

● Un proyecto es un esfuerzo temporal que produce un entregable (producto o servicio) único.

● Gran dependencia de los individuos y líderes que gestionan las funciones básicas.

● Objetivo: Optimizar costos y tiempos garantizando siempre la calidad del producto final.

Gestión a nivel de proceso:● Centrado en los procesos operativos de la empresa u organización.

● Un proceso implica un esfuerzo permanente y repetitivo, siempre produce una salida similar.

● Objetivo: Mejora continua para aumentar la calidad de los productos y servicios asociados.

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

8

Page 9: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Gestión a nivel de producto:● Centrado en el proceso de desarrollo del software.

● Se realiza un seguimiento durante todo el ciclo de vida del software.

● Objetivo: Minimizar la existencia de defectos en el producto final.

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

9

Page 10: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Gestión a nivel de producto:● Centrado en el proceso de desarrollo del software.

● Se realiza un seguimiento durante todo el ciclo de vida del software.

● Objetivo: Minimizar la existencia de defectos en el producto final.

Gestión a nivel de proyecto:● Centrado en la definición, planificación, seguimiento y evaluación de un proyecto.

● Un proyecto es un esfuerzo temporal que produce un entregable (producto o servicio) único.

● Gran dependencia de los individuos y líderes que gestionan las funciones básicas.

● Objetivo: Optimizar costos y tiempos garantizando la mayor calidad posible del producto final.

Gestión a nivel de proceso:● Centrado en los procesos operativos de la empresa u organización.

● Un proceso implica un esfuerzo permanente y repetitivo, siempre produce una salida similar.

● Objetivo: Mejora continua para aumentar la calidad de los productos y servicios asociados.

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

10

Page 11: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Gestión a nivel de producto:● Centrado en el proceso de desarrollo del software.

● Se realiza un seguimiento durante todo el ciclo de vida del software.

● Objetivo: Minimizar la existencia de defectos en el producto final.

Gestión a nivel de proyecto:● Centrado en la definición, planificación, seguimiento y evaluación de un proyecto.

● Un proyecto es un esfuerzo temporal que produce un entregable (producto o servicio) único.

● Gran dependencia de los individuos y líderes que gestionan las funciones básicas.

● Objetivo: Optimizar costos y tiempos garantizando siempre la calidad del producto final.

Gestión a nivel de proceso:● Centrado en los procesos operativos de la empresa u organización.

● Un proceso implica un esfuerzo permanente y repetitivo, siempre produce una salida similar.

● Objetivo: Mejora continua de los procesos para maximizar la calidad de productos y servicios.

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

11

Page 12: Calidad del Software en Proyectos Open Source

2. Modelos de Calidad del Software

Page 13: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Modelos de Calidad del Software

El aseguramiento de la calidad (QA) implica el uso de modelos:

Modelos de calidad de productos● Definen las características que debe satisfacer un producto software para

cumplir determinados criterios de calidad.

● La calidad se puede cuantificar a partir de atributos medibles.

Modelos de calidad de procesos● Conjunto de buenas prácticas enfocado a los procesos de gestión y desarrollo

de proyectos. Influyen en la calidad de los productos.

● Permiten predecir mejor el comportamiento de una empresa.

13

2. MODELOS DE CALIDAD DEL SOFTWARE

Page 14: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

El aseguramiento de la calidad (QA) implica el uso de modelos:

Modelos de calidad de productos● Definen las características que debe satisfacer un producto software para

cumplir determinados criterios de calidad.

● La calidad se puede cuantificar a partir de atributos medibles.

Modelos de calidad de procesos● Conjunto de buenas prácticas enfocado a los procesos de gestión y desarrollo

de proyectos. Influyen en la calidad de los productos.

● Permiten predecir mejor el comportamiento de una empresa.

14

2. MODELOS DE CALIDAD DEL SOFTWARE

Modelos de Calidad del Software

Page 15: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

El aseguramiento de la calidad (QA) implica el uso de modelos:

Modelos de calidad de productos● Definen las características que debe satisfacer un producto software para

cumplir determinados criterios de calidad.

● La calidad se puede cuantificar a partir de atributos medibles.

Modelos de calidad de procesos● Conjunto de buenas prácticas enfocado a los procesos de gestión y desarrollo

de proyectos. Influyen en la calidad de los productos.

● Permiten predecir mejor el comportamiento de una empresa.

15

2. MODELOS DE CALIDAD DEL SOFTWARE

Modelos de Calidad del Software

Page 16: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

● Características operativas (product operation)

Corrección, fiabilidad, eficiencia, seguridad, usabilidad.

● Capacidad de soportar cambios (product revision)

Mantenibilidad, flexibilidad, facilidad de prueba.

● Adaptabilidad a nuevos entornos (product transition)

Portabilidad, reusabilidad, interoperabilidad.

(Modelo de Calidad del Producto de McCall, 1977)

2. MODELOS DE CALIDAD DEL SOFTWARE

Factores importantes en un producto software

16

Page 17: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

● Características operativas (product operation)

Corrección, fiabilidad, eficiencia, seguridad, usabilidad.

● Capacidad de soportar cambios (product revision)

Mantenibilidad, flexibilidad, facilidad de prueba.

● Adaptabilidad a nuevos entornos (product transition)

Portabilidad, reusabilidad, interoperabilidad.

(Modelo de Calidad del Producto de McCall, 1977)

Factores importantes en un producto software

17

2. MODELOS DE CALIDAD DEL SOFTWARE

Page 18: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

● Características operativas (product operation)

Corrección, fiabilidad, eficiencia, seguridad, usabilidad.

● Capacidad de soportar cambios (product revision)

Mantenibilidad, flexibilidad, facilidad de prueba.

● Adaptabilidad a nuevos entornos (product transition)

Portabilidad, reusabilidad, interoperabilidad.

(Modelo de Calidad del Producto de McCall, 1977)

Factores importantes en un producto software

18

2. MODELOS DE CALIDAD DEL SOFTWARE

Page 19: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

● Características operativas (product operation)

Corrección, fiabilidad, eficiencia, seguridad, usabilidad.

● Capacidad de soportar cambios (product revision)

Mantenibilidad, flexibilidad, facilidad de prueba.

● Adaptabilidad a nuevos entornos (product transition)

Portabilidad, reusabilidad, interoperabilidad.

(Modelo de Calidad del Producto de McCall, 1977)

Factores importantes en un producto software

19

2. MODELOS DE CALIDAD DEL SOFTWARE

Page 20: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Factores importantes en un producto software

20

2. MODELOS DE CALIDAD DEL SOFTWARE

(Modelo de Calidad del Producto de McCall, 1977)“McCall's Triangle of Quality”

Page 21: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Factores importantes en un producto software

21

2. MODELOS DE CALIDAD DEL SOFTWARE

(Modelo de Calidad del Producto de McCall, 1977)

Page 22: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Existen muchos modelos de calidad

22

2. MODELOS DE CALIDAD DEL SOFTWARE

Modelos de Calidad de Productos (ejemplos):

Boehm (1976) McCall (1977) Arthur (1985) FURPS (1987) Gilb (1988)

Deutch (1988) Schulmeyer (1990) Gillies (1992) Dromey (1995) ISO-9126 (2001)

La diferencia básica entre estos modelos es la clasificación taxonómica

basada en niveles que realiza cada uno.

Ej. FURPS: Funcionalidad, Usabilidad, Fiabilidad, Rendimiento, Compatibilidad.

Page 23: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Existen muchos modelos de calidad

23

2. MODELOS DE CALIDAD DEL SOFTWARE

Modelos de Calidad de Procesos (ejemplos):

Six Sigma (1982) PDCA (1986) SQPA (1989) CMM (1989) ITIL (198x)

QIP/EFO (1992) ISO/IEC-12207 (1995) IDEAL (1996) IEEE-12207 (1996)

UNE-71044 (1996) ISO-9000 (2000) ISO-9001 (2000) ISO-9004 (2000)

TickIT (2001) CMMI (2002) ISO-90003-4 (2004) SPICE (ISO/IEC 15504) (2005)

En su mayoría, estos modelos de calidad han sido desarrollados por y para

empresas grandes.

Page 24: Calidad del Software en Proyectos Open Source

3. Métricas para la evaluación

de la Calidad

Page 25: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

3. MÉTRICAS PARA LA EVALUACIÓN DE LA CALIDAD

25

Métricas para la evaluación de la calidad

● La calidad ha de poder medirse de alguna manera.

● En general, suele ser más habitual centrarse en medidas del

producto que en medidas del proceso.

● Una métrica consiste en asignar un valor a un atributo (tiempo,

espacio, complejidad, etc) de una entidad software.

Page 26: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

3. MÉTRICAS PARA LA EVALUACIÓN DE LA CALIDAD

26

Un ejemplo sencillo:

Page 27: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

3. MÉTRICAS PARA LA EVALUACIÓN DE LA CALIDAD

27

Factor

Subfactores

Métricas aplicables

Un ejemplo sencillo:

Page 28: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

3. MÉTRICAS PARA LA EVALUACIÓN DE LA CALIDAD

28

Factor

Subfactores

Métricas aplicables

Un ejemplo sencillo:

Page 29: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

3. MÉTRICAS PARA LA EVALUACIÓN DE LA CALIDAD

29

Existen muchas métricas...

● Métricas de calidad de especificación.

● Métricas de diseño arquitectónico y estructural.

● Métricas de diseño de interfaces.

● Métricas de código.

● Métricas para pruebas.

● Métricas de mantenimiento.

● . . .

Page 30: Calidad del Software en Proyectos Open Source

4. Proyectos e iniciativas

Page 31: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

4. PROYECTOS E INICIATIVAS

31

FLOSSMetrics

● Existen muchas y diferentes opiniones sobre el desarrollo de SL.

● El Software Libre es idóneo para ser estudiado (libertades).

Objetivo: Construir, publicar y analizar una base de datos a gran escala

con información y métricas sobre desarrollo de software libre a partir de

miles de proyectos.

FLOSSMetrics: http://flossmetrics.org/

Page 32: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

4. PROYECTOS E INICIATIVAS

32

Qualoss

Objetivo: Automatizar la medición de la calidad en proyectos Open Source.

La plataforma Qualoss emplea herramientas para analizar:

- Código fuente.

- Información del repositorio del proyecto.

Qualoss: http://www.qualoss.org/

Page 33: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

4. PROYECTOS E INICIATIVAS

33

Qualipso

● Objetivo: Definir un completo programa de evaluación y certificación

de software de fuentes abiertas.

- Evaluación de la calidad de productos software.

- Evaluación de la calidad de los procesos de desarrollo.

Qualipso: http://qualipso.org/

Page 34: Calidad del Software en Proyectos Open Source

5. Conclusiones y observaciones

Page 35: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

Algunas conclusiones y observaciones...

35

● La adopción de estándares de calidad en las organizaciones relacionadas con

IT está cada vez más demandado.

● Además de mejorar los procesos operativos y productos software finales, se

consigue una mayor satisfacción del cliente/usuario.

● La certificación de empresas y profesionales en el cumplimiento de estándares

de calidad es un valor añadido que mejora la competitividad.

5. CONCLUSIONES Y OBSERVACIONES

Page 36: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

36

5. CONCLUSIONES Y OBSERVACIONES

● Las certificaciones de calidad pueden no estár al alcance de todas las

empresas debido a la posible falta de recursos (microempresas).

Algunas conclusiones y observaciones...

Page 37: Calidad del Software en Proyectos Open Source

“Calidad del Software en proyectos Open Source”

37

● Las certificaciones de calidad pueden no estar al alcance de todas las

empresas debido a la posible falta de recursos (microempresas).

Sin embargo...

La incorporación de QA en el desarrollo software, por pequeña y gradual que

ésta sea, se verá reflejado en beneficios para la organización.

Algunas conclusiones y observaciones...

5. CONCLUSIONES Y OBSERVACIONES

Page 38: Calidad del Software en Proyectos Open Source

Gracias :)

[email protected]