01 - conceptos

42
1. Conceptos básicos 1. Conceptos básicos de Calidad del de Calidad del Software Software LS3148 - Calidad de LS3148 - Calidad de Software Software 3IM1 Universidad Antonio de Nebrija Justo Hidalgo –con algunos apuntes de Manuel Fernando Juan-

Upload: melissa-espinosa

Post on 06-Dec-2015

218 views

Category:

Documents


0 download

DESCRIPTION

conceptos basicos de calidad de ingenieria de software

TRANSCRIPT

Page 1: 01 - Conceptos

1. Conceptos básicos de 1. Conceptos básicos de Calidad del SoftwareCalidad del Software

LS3148 - Calidad de SoftwareLS3148 - Calidad de Software3IM1

Universidad Antonio de NebrijaJusto Hidalgo –con algunos apuntes de Manuel Fernando Juan-

Page 2: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

2

Contenidos

• Introducción

• SW vs. otros productos industriales

• Características básicas

• Definiciones de Calidad

Page 3: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

3

Conceptos Básicos en Calidad de Software

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• (‘fitness for purpose’).

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

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

Page 4: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

4

¿Por qué Calidad de Software?

• LIMITED WARRANTY– Nebrisscape Inc. provides no warranty, either expressed or implied, with respect

to NEBRIGATOR’s performance, reliability or fitnees for any specified purpose. Nebrisscape Inc. Does not warrant that the software or its documentation will fulfil your requirements. Although Nebrisscape Inc. has performed thorough tests of the software and reviewed the documentation, Nebrisscape Inc. does not provide any warranty that the software and its documentation are free of errors. Nebrisscape Inc. will in no case be liable for any damages, incidental, direct, indirect or consequential, incurred as a result of impaired data, recovery costs, profit loss and third party claims. The software is licensed “as is”. The purchaser assumes the complete risk stemming from application of the NEBRIGATOR program, its quality and performance.

– If physical defects are discovered in the documentation or the CD on which NEBRIGATOR is distributed, Nebrisscape Inc. will replace, at no charge, the documentation or the CD within 180 days of purchase, provided proof of purchase is presented.

Page 5: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

5

SW vs. otros productos industriales

• Complejidad del producto

• Visibilidad del producto

• Procesos de desarrollo y producción

Page 6: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

6

• Parámetro: número de modos operacionales– Producto industrial: miles de modos de

operación.– SW: millones de posibilidades.

SW vs. otros productos industriales:complejidad del producto

Page 7: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

7

• Los productos SW son invisibles– ¿Cómo sabemos si a nuestro SW “le falta una

puerta”?

SW vs. otros productos industriales:visibilidad del producto

Page 8: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

8

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

SW vs. otros productos industriales:procesos de desarrollo y producción (I)

Page 9: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

9

1. Desarrollo de producto: • OK: en SW es donde se hacen las pruebas.

2. Planificación de producción:• En algunos casos sí –software “llave en

mano”.

3. Manufactura• La manufactura SW es automática –copiar

CDs y manuales-.

SW vs. otros productos industriales:procesos de desarrollo y producción (y II)

Page 10: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

10

• Complejidad alta

• Invisibilidad del producto

• Detección de defectos en menos fases de desarrollo y producción

Características Básicas del desarrollo de Software

Page 11: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

11

• 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

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

Page 12: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

12

• Condiciones contractuales

• Relación cliente-proveedor

• Trabajo en equipo

• Cooperación y coordinación

• Interfaces con otros sistemas software

• Cambios de componentes del equipo

• Mantenimiento de producto

Qué nos obliga a asegurar la Calidad en el SW (II): entorno del desarrollador profesional

Page 13: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

13

• Lista de requisitos funcionales

• Presupuesto del proyecto

• Planificación temporal

• En algunos casos: equipos predefinidos

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

Page 14: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

14

• Cooperación continua.

• Propenso a cambios

Qué nos obliga a asegurar la Calidad en el SW (IV): relación cliente-proveedor

Page 15: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

15

• Componentes con diferentes:– Criterios– Objetivos– Ganas– Planteamientos profesionales– ...

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

Qué nos obliga a asegurar la Calidad en el SW (V): trabajo en equipo

Page 16: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

16

• 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

Qué nos obliga a asegurar la Calidad en el SW (VI): cooperación y coordinación

Page 17: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

17

Qué nos obliga a asegurar la Calidad en el SW (VII): cooperación y coordinación

Otro equiposubcontratado

Equipo deDesarrollo del

Cliente

Equipo deDesarrollo SW

Equipo deDesarrollo HW

NuestroEquipo

Equipo deDesarrollo SW

Otro equiposubcontratado

Otro equiposubcontratadoOtro equipo

subcontratado

Page 18: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

18

• Interfaces de entrada de otros sistemas sw

• Interfaces de salida a otros sistemas sw

• Interfaces de entrada y salida al panel de control

Qué nos obliga a asegurar la Calidad en el SW (VIII): interfaces con otros sistemas software

Sistema deControl deAsistencia

Sistema deGestión de

Notas

Sistema deEnvío de

Información

Page 19: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

19

Qué nos obliga a asegurar la Calidad en el SW (IX): cambio de componentes del equipo

Page 20: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

20

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

... un bebé un

poco problemático

Qué nos obliga a asegurar la Calidad en el SW (y X): mantenimiento de producto

Page 21: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

21

Definición de Calidad (I)

Definiciones académicas de Calidad:

Totalidad de aspectos o características de un producto o Totalidad de aspectos o características de un producto o servicio que le hace satisfacer necesidades explícitas o servicio que le hace satisfacer necesidades explícitas o implícitas.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 22: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

22

CalidadCalidad de un producto o servicio es la capacidad de de un producto o servicio es la capacidad de dicho producto o servicio para satisfacer las exigencias dicho producto o servicio para satisfacer las exigencias para las que fue creado, estando su valor medido por para las que fue creado, estando su valor medido por el grado de satisfacción del consumidor que lo ha el grado de satisfacción del consumidor que lo ha adquirido o lo utilizaadquirido o lo utiliza

ISO 8402 (1994)

Definición de Calidad (II)

Page 23: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

23

Calidad es:

El grado en que un sistema, un componente o un proceso El grado en que un sistema, un componente o un proceso satisface sus requisitos especificados.satisface sus requisitos especificados.

El grado en que un sistema, un componente o un proceso El grado en que un sistema, un componente o un proceso satisface las necesidades o expectativas de un cliente o usuario.satisface las necesidades o expectativas de un cliente o usuario.

IEEE Std 610.12-1990

Definición de calidad (III)

Page 24: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

24

•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?

Definición de calidad (y IV)

Hay distintos enfoques en las Hay distintos enfoques en las definiciones de Calidad.definiciones de Calidad.

¿Hay contradicciones o todas las ¿Hay contradicciones o todas las definiciones son compatibles?definiciones son compatibles?

Page 25: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

25

•Destinatario de un producto proporcionado por el suministrador.ISO 8402 (1994)

•Cliente: interno o externo.

Definición de cliente (I)

•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 26: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

26

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)

Definición de cliente (y II)

Page 27: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

27

¿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

Definición de software

Page 28: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

28

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

Definición de software de calidad

¿cero defectos => sw de calidad?¿cero defectos => sw de calidad?

¿muchas posibilidades => sw de ¿muchas posibilidades => sw de calidad?calidad?

¿código elegante => sw de calidad?¿código elegante => sw de calidad?

¿rapidez => sw de calidad?¿rapidez => sw de calidad?

¿precio => sw de calidad?¿precio => sw de calidad?

¿facilidad de uso => 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 29: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

29

Calidad del softwareCalidad 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: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.

Definición de calidad de software

Page 30: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

30

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

¿Qué es un error software? (I)

Page 31: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

31

• 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?

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

Page 32: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

32

Causas de Errores Software (I)

1. Mala definición de requisitos2. Mala comunicación con el cliente3. 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

Page 33: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

33

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

Page 34: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

34

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

Sistema de Gestión de la Calidad (I)

Page 35: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

35

Sistema de Gestión de Calidad (y II)

•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 36: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

36

Política de Calidad

• 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 37: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

37

Planificación de Calidad

•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 38: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

38

Control de Calidad

Juran: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.

ShewhartShewhart: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 39: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

39

Mejora de Calidad

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 40: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

40

Aseguramiento de Calidad (I)

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 41: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

41

Aseguramiento de Calidad (y II)

•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

Page 42: 01 - Conceptos

Calidad de Software - 1. Conceptos Básicos - Justo Hidalgo

42

Últimos conceptos ;)

•Conformidad:•Cumplimiento de un requisito.

•No conformidad•Incumplimiento de un requisito.

•Defecto:•Incumplimiento de un requisito asociado a un uso previsto o especificado.

ISO 9000:2000