TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

31
TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software

Transcript of TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Page 1: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

TECNICAS DE CALIDAD DE SOFTWARE

Control de Calidad de Software

Page 2: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Calidad y Software

Uno de los problemas que se afrontan actualmente en la esfera de la computación es la calidad del software. Desde la década del 70, este tema ha sido motivo de preocupación para especialistas, ingenieros, investigadores y comercializadores de software, los cuales han realizado gran cantidad de investigaciones al respecto con dos objetivos fundamentales:

1.¿Cómo obtener un software con calidad? 2.¿Cómo evaluar la calidad del software?

Page 3: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Calidad y Software

Algunos desarrolladores de software continúan creyendo que la calidad del software es algo en lo que se empieza a preocupar una vez que se ha generado el código.

La garantía de la calidad del software es una actividad de protección que se aplica a lo largo de todo el proceso de ingeniería de software.

Page 4: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Calidad y Software

El software es un elemento del sistema que es lógico, en lugar de físico. Por tanto el software tiene unas características considerablemente distintas a las del hardware:

•El software es un producto mental, no restringido por las leyes de la Física o por los límites de los procesos de fabricación. Es algo abstracto, y su calidad también lo es.

•Se desarrolla, no se fabrica. El coste está fundamentalmente en el proceso de diseño, no en la producción. Y los errores se introducen también en el diseño, no en la producción.

Page 5: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Calidad y Software

•El software no se deteriora con el tiempo. No es susceptible a los efectos del entorno, y su curva de fallos es muy diferente de la del hardware. Todos los problemas que surjan durante el mantenimiento estaban allí desde el principio, y afectan a todas las copias del mismo; no se generan nuevos errores.

•Es artesanal en gran medida. El software, en su mayoría, se construye a medida, en vez de ser construido ensamblando componentes existentes y ya probados, lo que dificulta aún más el control de su calidad.

Page 6: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Calidad y Software

•El mantenimiento del software es mucho más complejo que el mantenimiento del hardware. Cuando un componente hardware se deteriora se sustituye por una pieza de repuesto, pero cada fallo en el software implica un error en el diseño o en el proceso mediante el cual se tradujo el diseño en código máquina ejecutable.

•Es engañosamente fácil realizar cambios sobre un producto software, pero los efectos de estos cambios se pueden propagar de forma explosiva e incontrolada.

Page 7: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Calidad y Software

Como disciplina, el desarrollo de software es aún muy joven, por lo que las técnicas de las que disponemos aún no son totalmente efectivas o no están totalmente calibradas.

El software con errores no se rechaza. Se asume que es inevitable que el software presente errores.

Page 8: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Evolución Histórica

Se realizaba inspección y detección de errores: hasta los años 40, inicialmente el trabajo era de forma artesanal, existía un control individual de cada tarea. Hasta los años 80 se realizaba un control (estadístico) de calidad, en el cual existía:

•Mercado poco competitivo. Precio de venta fijado por el fabricante en función de los costes.

•Impedir que el producto defectuoso llegue al cliente.

Page 9: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Evolución Histórica•Conseguir uniformidad de servicio.

•Control de calidad = problema a resolver.

•Controlar la calidad del departamento de producción utilizando técnicas estadísticas.

•1940-70: Japón y Calidad total. Deming, Ishikawa, Juran, Crosby (GURUS DE LA CALIDAD)

Page 10: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Evolución HistóricaA partir de los años 80 aparece la Garantía de calidad, la que ya proponía:

•Mercado competitivo y de oferta

•Precio de venta fijado por el mercado

•Planificación y medida de la calidad. Modelos de calidad.

•Afecta a todos los departamentos.

•1980. Interés por la calidad en los EEUU.

•1987. ISO 9000. A partir de las normas británicas

Page 11: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Evolución Histórica

La Gestión de calidad actualmente ya ha fijado ciertos aspectos importantes como:

•Impacto estratégico. Oportunidad de ventaja competitiva.

•Planificación, fijación de objetivos, coordinación, formación, adaptación de toda la organización.

•Afecta a la sociedad en general: directivos, trabajadores, clientes.

•“Una filosofía, una cultura, una estrategia, un estilo de gerencia de la empresa”.

•ISO 9001:2000

Page 12: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN Como se ha dado la mejora de la calidad del software:

Page 13: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN Principales Filosofías de la calidad (Gurús de la Calidad)

Edward Deming: Un pionero y profeta de la calidad total. Estadista, profesor y fundador de la calidad total, fue a Japón en 1950 a la edad de 49 años y enseño a los administradores, ingenieros y científicos japoneses como producir calidad.

Sus principios establecían que mediante el uso de mediciones estadísticas, una compañía debería ser capaz de graficar como un sistema en particular estaba funcionando para luego desarrollar maneras para mejorar dicho sistema. A través de un proceso de transformación en avance las compañías estarían en posición de mantenerse a la par con los constantes cambios del entorno económico.

Page 14: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN Principales Filosofías de la calidad (Gurús de la Calidad)Ishikawa: Su mayor contribución fue simplificar los métodos estadísticos utilizados para el control de la calidad en la industria a nivel general. Propuso varios diagramas que determinan la relación entre un efecto y sus causas, se los conoce también a nivel mundial como Diagramas de pescado o Diagramas de causa efecto. Para el, el control de calidad significa:

•El control de calidad que no muestra resultados no es control de calidad•El control de calidad empieza con educación y termina con educación•El control total de calidad aprovecha lo mejor de cada persona•Cuando se aplica el control total de calidad, la falsedad desaparece de la empresa.•Prever los posibles defectos y reclamos.•El control total de calidad es una actividad de grupo.

Page 15: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN Principales Filosofías de la calidad (Gurús de la Calidad)

Juran: “Adecuación para el uso”Fue el precursor de la calidad en Japón. Se le considera el padre de la calidad. Lo más importante es que se le reconoce como quien agrego el aspecto humano en el campo de la calidad.

En 1951 publicó su primer trabajo referente a la calidad, el cual se llamó Manual de control de calidad, asesoró a empresas japonesas de mayor importancia sobre calidad y como lograr la calidad dentro del proceso de producción.

Page 16: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN Principales Filosofías de la calidad (Gurús de la Calidad)

Juran: “Adecuación para el uso”

Según Juran la gestión de la calidad se realiza a través de tres procesos que se conocen como la trilogía de la calidad y que están interrelacionadas entre si:

•Planificación de la calidad: desarrollar productos y procesos necesarios para satisfacer al cliente

•Control de Calidad

•Mejora de calidad

Page 17: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN Principales Filosofías de la calidad (Gurús de la Calidad)

Philip CrosbySu filosofía está incluida en lo que él llama los absolutos de la calidad entre los cuales se incluyen los siguientes: •Calidad significa conformidad con las necesidades y no elegancia, los requerimientos deben ser claramente enunciados de manera que no sean motivo de confusión.

•No es cierto que la calidad es un problema los problemas deben ser identificados por aquellos que lo causan.

Page 18: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN Principales Filosofías de la calidad (Gurús de la Calidad)

Philip Crosby

•No existe el tema de que la economía de la calidad, siempre es más económico hacer las cosas bien desde la primera vez la calidad no cuesta es gratis. Lo que cuesta es las cosas que no tienen calidad, es decir todas las acciones que resultan de no hacer las cosas bien a la primera.

•La única medición de desempeño es el costo de la calidad, es decir el reembolso por falta de conformidad.

•Cero defectos es la norma, el estándar del artesano independientemente de su responsabilidad. El tema cero defectos es evitar los defectos antes que localizarlos y corregirlos.

Page 19: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Crisis del Software

La industria del software sufre del un mal endémico que se remonta a sus orígenes y que hasta ahora no parece tener una solución definitiva, es la llamada Crisis del Software.

Ha habido muchas iniciativas para atenuar los efectos de esta crisis.

Una de las más importantes es la aplicación de sistemas de aseguramiento de calidad al desarrollo de software, los que se basan sobre las siguientes ideas:

Page 20: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Crisis del Software

• El software debe ser pensado, diseñado y desarrollado como un producto sujeto a normas de calidad.

• El software es un producto desarrollado por grupos de personas cuya interacción debe ser gestionada.

• El énfasis en el proceso de desarrollo asegura un producto adecuado a los requisitos de los clientes.

Page 21: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Crisis del Software

La solución a la crisis del software pasa por un cambio de mentalidad de los protagonistas de su desarrollo: programadores, analistas, jefes de proyecto, usuarios, etc.

Esto conduce a una idea que cada vez encuentra más fundamentos y adherentes: la crisis del software puede ser reducida a través de la educación, es decir, educando adecuadamente la próxima generación de profesionales del software, de modo que en ellos sean naturales e inmediatos conceptos como calidad y desarrollo en equipo.

Page 22: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - ¿Qué es la calidad del software?

La calidad está de moda, en todos los aspectos, pero especialmente en el desarrollo de software.

El interés por la calidad crece de forma continua, a medida que los clientes se vuelven más selectivos y comienzan a rechazar los productos poco fiables o que realmente no dan respuesta a sus necesidades.

Ahora bien, ¿qué es la calidad del software?

Page 23: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - ¿Qué es la calidad del software?

A la hora de definir la calidad del software se pueden adoptar diferentes aproximaciones:

Como primera aproximación es importante diferenciar entre la calidad del PRODUCTO software y la calidad del PROCESO de desarrollo. No obstante, las metas que se establezcan para la calidad del producto van a determinar las metas a establecer para la calidad del proceso de desarrollo, ya que la calidad del producto va a estar en función de la calidad del proceso de desarrollo.

Page 24: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - ¿Qué es la calidad del software?

Sin un buen proceso de desarrollo es casi imposible obtener un buen producto. La calidad del producto software se diferencia de la calidad de otros productos de fabricación industrial, ya que el software tiene ciertas características especiales.

Page 25: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - ¿Qué es la calidad del software?

También es importante destacar que la calidad de un producto software debe ser considerada en todos sus estados de evolución (especificaciones, diseño, código, etc.).

No basta con tener en cuenta la calidad del producto una vez finalizado, cuando los problemas de mala calidad ya no tienen solución o la solución es muy costosa.

Page 26: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - ¿Qué es la calidad del software?

Los principales problemas a los que nos enfrentamos a la hora de hablar de la calidad de un producto software son: La definición misma de la calidad del software: ¿Es realmente posible encontrar un conjunto de propiedades en un producto software que nos den una indicación de su calidad?

La calidad es un concepto que se deriva de un conjunto de sub-conceptos.

Page 27: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - ¿Qué es la calidad del software?

La comprobación de la calidad del software: ¿Cómo medir el grado de calidad de un producto software?

La mejora de la calidad del software: ¿Cómo utilizar la información disponible acerca de la calidad del producto software para mejorar su calidad a lo largo del ciclo de vida? Tal y como veremos, no sólo es posible “medir” la calidad, sino también “construir” la calidad durante el proceso de desarrollo del producto.

Page 28: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Diferentes definiciones de Calidad

Veamos la definición que dan de la calidad algunos de los padres de la idea de la gestión de la calidad:

Según Deming, calidad es “Conformidad con los requisitos y confianza en el funcionamiento”

Según Juran, calidad es “Adecuación para su uso”

Crosby pone más énfasis en la prevención: “hacerlo bien a la primera”

Page 29: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Diferentes definiciones de Calidad

Veamos otras definiciones de calidad extraídas de estándares internacionales:

“La calidad es la suma de todos aquellos aspectos o características de un producto o servicio que influyen en su capacidad para satisfacer las necesidades, expresadas o implícitas” (ISO 8402)

“Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas” (IEEE 729-83)

“Capacidad del producto software para satisfacer los requisitos establecidos” (DoD 2168)

Page 30: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Diferentes definiciones de Calidad

•Lo que está claro a partir de estas definiciones es que la calidad es algo relativo.

•Siempre va a depender de los requisitos o necesidades que se desee satisfacer.

•Por eso, la evaluación de la calidad de un producto siempre va a implicar una comparación entre unos requisitos preestablecidos y el producto realmente desarrollado.

Page 31: TECNICAS DE CALIDAD DE SOFTWARE Control de Calidad de Software.

Control de Calidad de Software

INTRODUCCIÓN - Diferentes definiciones de Calidad

Teniendo esto en cuenta, en un producto software vamos a tener diferentes visiones de la calidad:

-Necesaria o Requerida: La que quiere el cliente.

-Programada o Especificada: La que se ha especificado explícitamente y se intenta conseguir.

-Realizada: La que se ha conseguido.

Nuestro objetivo es conseguir que las tres visiones coincidan. A la intersección entre la calidad Requerida y la calidad Realizada se le llama calidad Percibida, y es la única que el cliente valora.