Calidad del Software en Proyectos Open Source

Post on 18-Dec-2014

8.019 views 1 download

description

 

Transcript of Calidad del Software en Proyectos Open Source

Calidad del Software

en proyectos Open Source

Marcos Blanco Galánmarcos.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

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

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

“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

“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

“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

“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

“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

“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

2. Modelos de Calidad del Software

“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

“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

“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

“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

“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

“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

“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

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

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

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

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

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

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.

“Calidad del Software en proyectos Open Source”

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

26

Un ejemplo sencillo:

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

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

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

● . . .

4. Proyectos e iniciativas

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

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

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

5. Conclusiones y observaciones

“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

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

“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

Gracias :)

marcos.blanco@cesje.es