INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del...

29
INGENIERÍA DE SOFTWARE II Garantía de Calidad

Transcript of INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del...

Page 1: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

INGENIERÍA DE SOFTWARE II Garantía de Calidad

Page 2: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Objetivos

Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación y validación

Contenido

Garantía de Calidad del Software

Métricas de Calidad

GQM: Goals Questions Metrics

Identificar diferentes métricas del software que aportan al proceso de Garantía de Calidad

Conocer un método de definición de métricas de calidad

Page 3: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Si los ingenieros civiles construyeran Si los ingenieros civiles construyeran edificios de la misma forma en que edificios de la misma forma en que

los “ingenieros de software” los “ingenieros de software” construyen aplicaciones construyen aplicaciones

computacionales, correríamos el computacionales, correríamos el riesgo de que un simple pájaro riesgo de que un simple pájaro

carpintero destruyera la civilizacióncarpintero destruyera la civilización..

Weinberg.Weinberg.

Page 4: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software

Qué es calidad del software ?

“Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados, y con las características implícitas que se espera de todo software desarrollado profesionalmente” [PRE98]“Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, ...”

Se refiere a la concordancia con los Requerimientos, requisitos y diseño del Software“...con los estándares de desarrollo explícitamente documentados, ...”

Se refiere a la concordancia con estándares universales de calidad: ISO 9000 - ESA

“...y con las características implícitas que se espera de todo software desarrollado profesionalmente ...”

Se refiere a las características propias del software como Correctitud – Robustez – etc.

Page 5: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software “El conjunto de características de una entidad que le confieren

su aptitud para satisfacer las necesidades expresadas y las implícitas”

ISO 8402Conclusiones

Los requisitos del software son la base de las medidas de calidad. La falta de concordancia con los requisitos es una falta de calidad

Los estándares o metodologías definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software. Si no se sigue ninguna metodología siempre habrá falta de calidad

Existen algunos requisitos implícitos o expectativas que a menudo no se mencionan, o se mencionan de forma incompleta (por ejemplo el deseo de un buen mantenimiento) que también pueden implicar una falta de calidad.

Page 6: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software

La calidad de un producto de software está fuertemente determinada por la calidad de los procesos de desarrollo

Definir la calidad como la sola entrega de un producto con mínima cantidad de defectos, es una idea anticuada y conformista.

Garantía de Calidad del Software (SQA) es un planificado y sistemático diseño de acciones que se requieren para asegurar la calidad del software

Page 7: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software

Existen diferentes “Visiones” respecto de la Calidad de un Producto de Software

Visión del Usuario: Grado de adecuación al propósito

Visión del Productor: Conformidad con la especificación

Visión del Producto: Ligada a características propias de todo software

Page 8: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software

Los factores que influyen en la Calidad del Software son:Mecanismos utilizados para la determinación de requisitosMecanismos para minimizar las correcciones e iteraciones

Mecanismos para la detección de fallas

Mecanismos para el uso eficiente de los recursos

Page 9: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Factores que determinan la calidad del software

Operaciones del producto: características operativas

Corrección (¿Hace lo que se le pide?) El grado en que una aplicación satisface sus especificaciones y

consigue los objetivos encomendados por el cliente Fiabilidad (¿Lo hace de forma fiable todo el tiempo?)

El grado que se puede esperar de una aplicación lleve a cabo las operaciones especificadas y con la precisión requerida

Eficiencia (¿Qué recursos hardware y software necesito?) La cantidad de recursos hardware y software que necesita una

aplicación para realizar las operaciones con los tiempos de respuesta adecuados

Integridad (¿Puedo controlar su uso?) El grado con que puede controlarse el acceso al software o a los datos

a personal no autorizado Facilidad de uso (¿Es fácil y cómodo de manejar?)

El esfuerzo requerido para aprender el manejo de una aplicación, trabajar con ella, introducir datos y conseguir resultado

Page 10: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Factores que determinan la calidad del software

Revisión del producto: capacidad para soportar cambios

Facilidad de mantenimiento (¿Puedo localizar los fallos?) El esfuerzo requerido para localizar y reparar errores

Flexibilidad (¿Puedo añadir nuevas opciones?) El esfuerzo requerido para modificar una aplicación

en funcionamiento Facilidad de prueba (¿Puedo probar todas las

opciones?) El esfuerzo requerido para probar una aplicación de

forma que cumpla con lo especificado en los requisitos

Page 11: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Factores que determinan la calidad del software

Transición del producto: adaptabilidad a nuevos entornos

Portabilidad (¿Podré usarlo en otra máquina?) El esfuerzo requerido para transferir la aplicación a

otro hardware o sistema operativo Reusabilidad (¿Podré utilizar alguna parte del software

en otra aplicación?) Grado en que partes de una aplicación pueden

utilizarse en otras aplicaciones Interoperabilidad (¿Podrá comunicarse con otras

aplicaciones o sistemas informáticos? El esfuerzo necesario para comunicar la aplicación

con otras aplicaciones o sistemas informáticos.

Page 12: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Factores que determinan la calidad del software

A udit or ía

S egur idad

V is ión Global

I nt egr idad

Complet it ud

Consist encia

T r aceabilidad

E x act it ud

M odular idad

Conf or midad

I nt er oper abilidad

N o defi ciencia

T oler ancia a f allos

D isponib ilidad

A migable

O per abilidad

Ver acidad

S implicidad

M odular idad

L egib ilidad

T r aceabilidad

T est eabilidad

Ver ifi cabilidad

Compor t amient o en el t iempo

Compor t amient o con r ecur sos

E fi ciencia

O per at ivos

U t ilidad

F acilidad de uso

F acilidad de apr endizaj e

A migable

O per abilidad

U sabilidad

Consist encia

L egib ilidad

Concis ión

E st abilidad

M ant enimient o

M adur ez

Gener alidad

Reusabilidad A mpliab ilidad

L egib ilidad

Gr ado de ascendencia

Concis ión

E x pansib ilidad

A dapt abilidad

Conf or midad

I nst anciab ilidad

Remplazo

Por t abilidad

A dapt abilidad

F act or es

Page 13: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Aseguramiento de la Calidad del Software

El aseguramiento de calidad del software es el conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza en que el producto (software) satisfará los requisitos dados de calidad.

El aseguramiento de calidad del software se diseña para cada aplicación antes de comenzar a desarrollarla y no después.

Algunos autores prefieren decir garantía de calidad en vez de aseguramiento. Garantía, puede confundir con garantía de productos Aseguramiento pretende dar confianza en que el

producto tiene calidad

Page 14: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Aseguramiento de la Calidad del Software

El aseguramiento de calidad del software está presente en:

Métodos y herramientas de análisis, diseño, programación y prueba

Inspecciones técnicas formales en todos los pasos del proceso de desarrollo del software

Control de la documentación del software y de los cambios realizados

Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos)

Mecanismos de medida (métricas) Registro de auditorias y realización de informes

Page 15: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Aseguramiento de la Calidad del Software

Las actividades de SQA comprenden

Aplicación de métodos técnicos

• Para obtener productos de alta calidad en las diferentes etapas del desarrollo del software, se deben usar herramientas y métodos técnicos probados que aseguran especificaciones de alta calidad

Revisiones Técnicas Formales (RTF)

• Inspecciones formales cuyo objetivo es encontrar errores en la función, la lógica o la implementación de cualquier representación del software

• Verificación de los requisitos

• Garantizar la correcta aplicación de estándares

Page 16: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software

Las actividades de SQA comprenden

Pruebas del Software

• Aplicación de estrategias de prueba

• Planes de prueba

Ajuste a los estándares

• Garantía de seguimiento de estándares

• Auditorías a los procesos, entregables y documentos partes del Software

Control de cambios

• Gestión de configuración del software

• Formalización de peticiones de modificación, evaluación y control del impacto durante y después de la liberación del producto de software

Page 17: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software

Las actividades de SQA comprenden

Definición de métricas y medición

• Mejoramiento continuo requiere seguimiento y medición

• Se deben recolectar métricas del software, las que engloban un amplio conjunto de medidas técnicas orientadas a la gestión

Registro y difusión

• Reportes e informes de cada RTF

• Documentación y análisis de métricas

• Permite el aprendizaje y la evolución de la organización

Page 18: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Garantía de Calidad del Software

Las actividades de SQA son medidas de protección que se aplica a cada paso del proceso de desarrollo de software

La garantía de calidad del Software es un conjunto de actividades de Verificación y Validación

Verificación

Estamos construyendo el producto correctamente ?

Validación

Estamos construyendo el producto correcto ?

Page 19: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Metricas de Calidad

Negligencias de medición

• No se establecen objetivos medibles para los productos (“Nuestro producto es amistoso, confiable y mantenible”

• No se comprenden y cuantifican los costos del proyecto

• No se cuantifica o predice la calidad de los productos

• Nos auto convencemos basándonos en evidencia anecdótica: “nuestra técnica garantiza 100% de confiabilidad”

Page 20: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Metricas de Calidad

Qué es una medición de software ?

Asignación de números o símbolos a atributos de entidades del mundo real en una forma significativa

• Persona: Talla, edad, peso, color de pelo, color de ojos, número de zapato, sexo, etc.• Salud: Presión arterial, temperatura, pulso, nivel de colesterol, etc.

• Estudiante: Notas, cursos tomados, especialidad, etc.

• Computador: Marca, procesador, RAM, Disco, velocidad procesador, etc.

• Software:

• Líneas de código, errores, número de módulos, velocidad

Page 21: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Metricas de Calidad

Porqué hacer mediciones de software?

Porque queremos aplicar métodos de ingeniería al desarrollo y mantención del softwarePorque permite

• Determinar costo de los procesos

• Productividad del personal

• Calidad del código

• Satisfacción del usuario• Identificar caminos de mejoramiento

PERMITE ESTIMAR.....................Futuro

PERMITE EVALUAR LOGRO DE OBJETIVOS..................Post Mortum

Page 22: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Metricas de Calidad

Existen mediciones del producto y del proceso

• Producto: defectos, LOC, número de módulos, complejidad, etc.

• Proceso: defectos/KLOC, horas ingeniero/KLOC, Defectos encontrados en el testing, etc.

Qué mediciones debemos considerar ?.

Pueden recolectarse ?

Manual o automáticamente ?

Cuál es el esfuerzo de recolección ?

Page 23: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Metricas de Calidad

Ámbito de las métricas

Procesos: Colecciones de actividades relacionadas con la construcción de SW

• Duración, costo, efectividad o eficiencia

Producto: Entregables que resultan de una actividad del proceso

• Tamaño, calidad

Recurso: Entidades requeridas por una entidad del proceso

• Magnitud, costo, calidad, productividad

Page 24: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Metricas de Calidad

Modelo de Calidad de McCall

Propone una clasificación de los factores que afectan a la calidad del software centrados en tres aspectos

• Características operativas, capacidad de soportar el cambio, adaptabilidad a nuevos entornos

Corrección – Fiabilidad – Eficiencia – Integridad – Facilidad de uso – Facilidad de mantenimiento – Portabilidad – Reusabilidad – Facilidad de interoperción

Métricas usadas para desarrollar expresiones para cada uno de los factores:

• Facilidad de auditoría, exactitud, Normalización de las comunicaciones, completitud, concisión, consistencia, etc.

Page 25: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Sistemas de Calidad

Estructura organizativa, procedimientos, procesos y recursos necesarios para implantar la gestión de calidad

El sistema de calidad se debe adecuar a los objetivos de calidad de la empresa

La dirección de la empresa es la responsable de fijar la política de calidad y las decisiones relativas a iniciar, desarrollar, implantar y actualizar el sistema de calidad.

Page 26: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Sistemas de Calidad

Un sistema de calidad consta de varias partes Documentación

Manual de calidad. Es el documento principal para establecer e implantar un sistema de calidad. Puede haber manuales a nivel de empresa, departamento, producto, específicos (compras, proyectos,…)

Parte física: herramientas, computadores, etc. Aspectos humanos:

Formación de personal Creación y coordinación de equipos de

trabajo

Page 27: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

Sistemas de Calidad

Normativas ISO (La Organización Internacional para la Estandarización)

ISO 9000: Gestión y aseguramiento de calidad (conceptos y directrices generales)

Recomendaciones externas para aseguramiento de la calidad (ISO 9001, ISO 9002, ISO 9003)

Recomendaciones internas para aseguramiento de la calidad (ISO 9004)

Software Engineering Institute (SEI) Capability Maturity Model (CMM-CMMI) for software. http://www.sei.cmu.edu/

Page 28: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

GQM: Goal – Question - Metric

Enfoque para seleccionar e implementar métricas, que involucra tres pasos:

1. Listar los objetivos principales

2. Derivar de cada objetivo las preguntas que deben responderse para determinar si los objetivos se satisfacen

3. Decidir qué medir para ser capaz de responder las preguntas de manera adecuada

Page 29: INGENIERÍA DE SOFTWARE II Garantía de Calidad. Objetivos Conocer el concepto de Calidad del Software, el proceso de Garantía de Calidad y de verificación.

GQM: Goal – Question - Metric

Ejemplo:

Goal: Mejorar el proceso de revisiones de diseño

Questions:

• Cómo se hacen las revisiones de diseño actualmente ?

• Cuánto tiempo toman las revisiones de diseño ?

• Cuánto cuestan las revisiones de diseño ?

• Qué métodos de revisiones de diseño se usan ?

• Qué tan efectivo es el proceso de revisión de diseño ?

Metrics:

• Número de revisiones de diseño por módulo

• Tiempo utilizado en revisiones por módulo

• Costo de las revisiones

• Costo por error encontrado

• % de errores de especificación y de diseño encontrados