fundamentos de la calidad del software

39
CONCEPTOS BÁSICOS DE CALIDAD DEL SOFTWARE CALIDAD DE SOFTWARE

Upload: mas-saavedra

Post on 16-Jan-2016

13 views

Category:

Documents


0 download

DESCRIPTION

KJHJHK

TRANSCRIPT

Page 1: Fundamentos de La Calidad Del Software

CONCEPTOS BÁSICOS DE CALIDAD DEL

SOFTWARE

CALIDAD DE SOFTWARE

Page 2: Fundamentos de La Calidad Del Software

Agenda

1. Introducción

2. SW vs. otros productos industriales

3. Características básicas

4. Definiciones de Calidad

2

Page 3: Fundamentos de La Calidad Del Software

CONCEPTOS BÁSICOS EN CALIDAD DE SOFTWARE

3

Existen distintos puntos de vista respecto a la calidad:

1. Filosófico: se puede reconocer pero no definir.

2. Usuario: cumple con el propósito previsto

3. Producto: es algo intrínseco al producto.

4. Valor: tiene calidad para el que esté dispuesto a pagar por ello.

Page 4: Fundamentos de La Calidad Del Software

SW VS. OTROS PRODUCTOS INDUSTRIALES

1. Complejidad del producto

2. Visibilidad del producto

3. Procesos de desarrollo y producción

4

Page 5: Fundamentos de La Calidad Del Software

SW vs. otros productos industriales:

complejidad del producto

• Parámetro: número de modos operacionales

– Producto industrial: miles de modos de operación.

– SW: millones de posibilidades.

5

Page 6: Fundamentos de La Calidad Del Software

SW vs. otros productos industriales:

visibilidad del producto

• Los productos SW son invisibles

– ¿Cómo sabemos si a nuestro SW “le falta una puerta”?

6

Page 7: Fundamentos de La Calidad Del Software

SW vs. otros productos industriales:

procesos de desarrollo y producción (I)

1. Desarrollo de producto:

• Diseñadores y profesionales de QA (Quality Assurance) diseñan y prueban el prototipo para detectar defectos.

2. Planificación de producción:

• Acciones previas a puesta en producción

3. Manufactura

7

Page 8: Fundamentos de La Calidad Del Software

SW vs. otros productos industriales:

procesos de desarrollo y producción (y II)

1. Desarrollo de producto

2. Planificación de producción

3. Manufactura

8

Page 9: Fundamentos de La Calidad Del Software

Características Básicas del desarrollo de

Software

1. Complejidad alta

2. Invisibilidad del producto

3. Detección de defectos en menos fases de desarrollo y producción

9

Page 10: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW (I)

• Quién realiza Software:

– Alumnos y profesores en el ámbito de la educación

– Aficionados

– Profesionales de otras áreas que desarrollan SW como base para sus trabajos

– Ingenieros de Software

10

Page 11: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW

(II): entorno del desarrollador profesional

1. Condiciones contractuales

2. Relación cliente-proveedor

3. Trabajo en equipo

4. Cooperación y coordinación

5. Interfaces con otros sistemas software

6. Cambios de componentes del equipo

7. Mantenimiento de producto

Page 12: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW (III):

condiciones contractuales

• Lista de requisitos funcionales

• Presupuesto del proyecto

• Planificación temporal

• En algunos casos: equipos predefinidos

12

Page 13: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW

(IV): relación cliente-proveedor

• Cooperación continua.

• Propenso a cambios

13

Page 14: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW

(V): trabajo en equipo

• Componentes con diferentes: – Criterios

– Objetivos

– Ganas

– Planteamientos profesionales

– ...

• ... Pero con una meta común, queramos o no.

14

Page 15: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW

(VI): cooperación y coordinación

• La multidisciplinariedad actual exige el trabajo entre diferentes equipos:

– Otros equipos sw de la misma organización

– Equipos SW y HW

– Equipos cliente y proveedor

– Subcontratas

15

Page 16: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW

(VII): cooperación y coordinación

16

Otro equipo

subcontratado

Equipo de

Desarrollo del

Cliente

Equipo de

Desarrollo SW

Equipo de

Desarrollo HW

Nuestro

Equipo

Equipo de

Desarrollo SW

Otro equipo

subcontratado

Otro equipo

subcontratado Otro equipo

subcontratado

Page 17: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW (VIII):

interfaces con otros sistemas software

• Interfaces de entrada de otros sistemas sw

• Interfaces de salida a otros sistemas sw

• Interfaces de entrada y salida al panel de control

17

Sistema de

Control de

Asistencia

Sistema de

Gestión de

Notas

Sistema de

Envío de

Información

Page 18: Fundamentos de La Calidad Del Software

Qué nos obliga a asegurar la Calidad en el SW

(y X): mantenimiento de producto

• El software no se termina cuando se entrega al cliente, sino que ¡¡¡NACE!!!

... un bebé un

poco problemático

18

Page 19: Fundamentos de La Calidad Del Software

Definición de Calidad (I)

19

Definiciones académicas de Calidad:

Totalidad de aspectos o características de un producto o

servicio que le hace satisfacer necesidades explícitas o

implícitas.

ISO 8492:1986

En una situación contractual, las necesidades suelen ser explícitas,

mientras que en otras situaciones las necesidades están implícitas

y hay que averiguarlas y documentarlas.

Page 20: Fundamentos de La Calidad Del Software

Definición de Calidad (II)

20

Calidad de un producto o servicio es la capacidad de

dicho producto o servicio para satisfacer las exigencias

para las que fue creado, estando su valor medido por

el grado de satisfacción del consumidor que lo ha

adquirido o lo utiliza

ISO 8402 (1994)

Page 21: Fundamentos de La Calidad Del Software

Definición de calidad (III)

21

Calidad es:

El grado en que un sistema, un componente o un proceso

satisface sus requisitos especificados.

El grado en que un sistema, un componente o un proceso

satisface las necesidades o expectativas de un cliente o usuario.

IEEE Std 610.12-1990

Page 22: Fundamentos de La Calidad Del Software

Definición de calidad (y IV)

22

•Calidad es valor para alguien (Weinberg).

•Traducido al entorno empresarial, algo con calidad es

algo que satisface al cliente, resolviendo sus necesidades

explícitas e implícitas.

•Crosby : Calidad es el cumplimiento de los requisitos.

•¿Es suficiente el cumplimiento de los requisitos para que

un producto sea de calidad?

Hay distintos enfoques en las

definiciones de Calidad.

¿Hay contradicciones o todas las

definiciones son compatibles?

Page 23: Fundamentos de La Calidad Del Software

Definición de cliente (I)

23

•Destinatario de un producto proporcionado por el suministrador.

ISO 8402 (1994)

•Cliente: interno o externo.

•Cinco aspectos en el cliente:

•El que decide.

•El que compra.

•El que influye.

•El usuario.

•El que elige.

•Y a veces interesa tener en cuenta al cliente del cliente (p.e.

confederaciones).

•¿Qué es entonces satisfacción del cliente?

Page 24: Fundamentos de La Calidad Del Software

Definición de cliente (y II)

24

Para que el software pueda satisfacer al cliente debe ser usable y

proporcionar una solución a una necesidad (explícita o implícita)

del cliente, a un coste razonable.

Calidad es capacidad para ser usado (Juran).

Calidad es valor para el cliente. (Weinberg).

Calidad es el grado en que el cliente o usuario percibe que el

software satisface el conjunto de sus expectativas

(IEEE Std 610.12-1990)

Page 25: Fundamentos de La Calidad Del Software

Definición de software

25

¿Qué es Software?

Programas de ordenador, procedimientos y posible

documentación y datos asociados, pertenecientes a la operación

de un sistema informático.

IEEE Std 610.12-1990

Page 26: Fundamentos de La Calidad Del Software

Definición de software de calidad

26

•Calidad es cumplir con los requisitos (Crosby, Quality is free,

1979).

•Calidad es cumplir con los requisitos de una persona

determinada (Weinberg, Software quality management, vol1,

1991). ¿cero defectos => sw de calidad?

¿muchas posibilidades => sw de

calidad?

¿código elegante => sw de calidad?

¿rapidez => sw de calidad?

¿precio => sw de calidad?

¿facilidad de uso => sw de calidad?

•Ej: Un editor de textos que sea

incapaz de manejar ficheros de

más de 200 o 300 páginas será un

software de calidad para el que

sólo escribe documentos de pocas

páginas.

•Sin embargo el mismo editor de

textos será un software de mala

calidad para el que escriba libros o

documentos extensos.

Page 27: Fundamentos de La Calidad Del Software

Definición de calidad de software

27

Calidad del software

Conjunto de características que confieren al software la aptitud

para satisfacer las necesidades establecidas y las implícitas.

Diferencia entre software de calidad y calidad del software:

La primera es la percepción que tiene un cliente. La segunda es

algo objetivo y cuantificado.

Page 28: Fundamentos de La Calidad Del Software

¿Qué es un error software? (I)

• Debemos diferenciar entre:

– Error: • Inconsistencia gramatical en alguna o algunas líneas de código.

• Incoherencia con respecto a algún requisito.

– Fault: defecto • Es un error software que no es mitigado por otras líneas.

– Failure: fallo, avería • Es un defecto que ocurre.

28

Page 29: Fundamentos de La Calidad Del Software

¿Qué es un error software? (y II)

• Software para una cadena farmacéutica:

– No se debe vender a clientes que deban más de €200: el programador puso “500”.

• Es un defecto, pero no es un fallo, pues pues las farmacias no dan crédito.

• Pero, ¿y si cambia el criterio?

29

Page 30: Fundamentos de La Calidad Del Software

Causas de Errores Software (I)

1. Mala definición de requisitos

2. Mala comunicación con el cliente

3. Desviaciones deliberadas • Mala reutilización

• Presupuesto/ tiempo

4. Errores lógicos de diseño • Algoritmos erróneos

• Secuenciamiento erróneo

• Condiciones frontera erróneas

• Omisión de estados

• Omisión de tratamiento de excepciones

30

Page 31: Fundamentos de La Calidad Del Software

Causas de Errores Software (y II)

5. Errores de codificación

6. Incumplimiento de estándares de codificación y documentación

7. Pruebas incompletas

8. Errores de procedimiento

9. Errores de documentación

31

Page 32: Fundamentos de La Calidad Del Software

Sistema de Gestión de la Calidad (I)

32

Sistema de gestión de la calidad

Conjunto de elementos mutuamente relacionados que

interactúan para establecer la política y los objetivos de calidad

de una organización, y para dirigir y controlar dicha organización

para lograr dichos objetivos.

ISO 9000:2000

Page 33: Fundamentos de La Calidad Del Software

Sistema de Gestión de Calidad (y II)

33

•Actividades coordinadas para dirigir y controlar una

organización en lo relativo a la calidad.

•Generalmente incluye el establecimiento de:

• política de la calidad

• objetivos de calidad

• planificación de la calidad

• control de la calidad

• mejora de la calidad

• aseguramiento de la calidad

ISO 9000:000

Page 34: Fundamentos de La Calidad Del Software

Política de Calidad

34

• Intenciones globales y orientación de una organización

relativas a la calidad tal como se expresan formalmente por

la Alta Dirección.

• Proporciona el marco de referencia para el establecimiento

de los objetivos de la calidad.

ISO 9000:2000

• Ejemplos:

• Cero defectos

• Satisfacción del cliente.

• Prevención de defectos.

• Rapidez de entrega.

• Mínimo coste.

• Mantenibilidad.

Page 35: Fundamentos de La Calidad Del Software

Planificación de Calidad

35

•Parte de la gestión de la calidad enfocada al establecimiento de

los objetivos de la calidad y a la especificación de los procesos

operativos necesarios y de los recursos relacionados para cumplir

los objetivos de la calidad.

ISO 9000:2000

Page 36: Fundamentos de La Calidad Del Software

Control de Calidad

36

Juran:

El control de calidad el el proceso a través del cual se

miden las características de la calidad en un momento

dado, se comparan con estándares, y se toman acciones

sobre las desviaciones.

Shewhart:

Control significa acción para conseguir un determinado

propósito.

Control de calidad son las acciones necesarias para

mantener una determinada característica o características

de la calidad dentro de unos límites preestablecidos.

Page 37: Fundamentos de La Calidad Del Software

Mejora de Calidad

37

Parte de la gestión de la calidad orientada a aumentar la

capacidad de cumplir con los requisitos de la calidad.

ISO 9000:2000

Page 38: Fundamentos de La Calidad Del Software

Aseguramiento de Calidad (I)

38

Parte de la gestión de la calidad orientada a proporcionar

confianza en que se cumplirán los requisitos de la calidad.

ISO 9000:2000

El aseguramiento de la calidad del software es el sistema de

métodos y procedimientos empleados para asegurar que el

producto software satisface sus requisitos. Este sistema

implica la planificación, medida y seguimiento de las actividades

de desarrollo llevadas a cabo.

Page 39: Fundamentos de La Calidad Del Software

Aseguramiento de Calidad (y II)

39

•Aseguramiento del producto software

•El aseguramiento del producto es el conjunto de

actividades a través de las cuales se obtiene la adecuación

al uso, independientemente de dónde o cuando se realicen.

•Implica asegurar que el producto es el adecuado y es

desarrollado al coste y en el plazo previsto.

•Aseguramiento del software

•Conjunto de actividades planificadas y sistemáticas que

aseguran que los productos y procesos software son

conformes a los requisitos, estándares y procedimientos.

•Bajo el término producto se incluye el software, los datos

asociados, la documentación y todo el papeleo de soporte y

reporte

NASA SW product assurance guidebook