Está en la página 1de 38

Calidad del Software

en proyectos Open Source

Marcos Blanco Galán


marcos.blanco@cesje.es

Coordinador de Certificación y Calidad


Centro de Excelencia de Software Libre José de Espronceda
“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
1. Calidad del Software
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

¿Qué es la “calidad”?

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.

4
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

¿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.

5
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

¿Qué es la “Calidad del Software”?

“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.

6
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

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.
7
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

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.
8
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

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.

9
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

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.
10
“Calidad del Software en proyectos Open Source”

1. CALIDAD DEL SOFTWARE

La Calidad del Software puede gestionarse a distintos niveles:

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.
11
2. Modelos de Calidad del Software
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

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
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

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.
14
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

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.
15
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Factores importantes en un producto software

● 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)

16
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Factores importantes en un producto software

● 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)

17
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Factores importantes en un producto software

● 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)

18
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Factores importantes en un producto software

● 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)

19
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Factores importantes en un producto software

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

20
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Factores importantes en un producto software

(Modelo de Calidad del Producto de McCall, 1977) 21


“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Existen muchos modelos de calidad

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.

22
“Calidad del Software en proyectos Open Source”

2. MODELOS DE CALIDAD DEL SOFTWARE

Existen muchos modelos de calidad

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.
23
3. Métricas para la evaluación
de la Calidad
“Calidad del Software en proyectos Open Source”

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

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.

25
“Calidad del Software en proyectos Open Source”

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

Un ejemplo sencillo:

26
“Calidad del Software en proyectos Open Source”

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

Un ejemplo sencillo:

Métricas aplicables
Subfactores

Factor

27
“Calidad del Software en proyectos Open Source”

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

Un ejemplo sencillo:

Métricas aplicables
Subfactores

Factor

28
“Calidad del Software en proyectos Open Source”

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

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.
● ...

29
4. Proyectos e iniciativas
“Calidad del Software en proyectos Open Source”

4. PROYECTOS E INICIATIVAS

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/
31
“Calidad del Software en proyectos Open Source”

4. PROYECTOS E INICIATIVAS

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/
32
“Calidad del Software en proyectos Open Source”

4. PROYECTOS E INICIATIVAS

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/
33
5. Conclusiones y observaciones
“Calidad del Software en proyectos Open Source”

5. CONCLUSIONES Y OBSERVACIONES

Algunas conclusiones y observaciones...

● 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.

35
“Calidad del Software en proyectos Open Source”

5. CONCLUSIONES Y OBSERVACIONES

Algunas 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).

36
“Calidad del Software en proyectos Open Source”

5. CONCLUSIONES Y OBSERVACIONES

Algunas conclusiones y observaciones...

● 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.

37
Gracias :)

marcos.blanco@cesje.es