Publicado el 11 de Enero del 2019
1.036 visualizaciones desde el 11 de Enero del 2019
350,7 KB
28 paginas
Creado hace 8a (20/01/2016)
Tema 10 –
Garantía de calidad del software
Ingeniería del Software
Rubén Fuentes Fernández
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid
Trabajando con Antonio Navarro, Juan Pavón y Pablo Gervás
Contenidos
•
Introducción
– Problemática
• Conceptos de calidad
• Verificación y Validación
– IEEE Std. 1012‐2004
• Revisiones del software
– IEEE Std. 1028‐2008
• Garantía de calidad del software
• Fiabilidad del software
• Plan de Aseguramiento de la Calidad del Software
•
ISO 9000
Rubén Fuentes Fernández
Ingeniería del Software
2
Introducción
• Uno de los objetivos principales de la Ingeniería del Software
(IS) es construir software de calidad.
• ¿Cómo medimos la calidad del software?
– Con medidas indirectas.
• No hay un atributo que represente la calidad.
– Podemos definir calidad en base a características o atributos de
elementos del producto o proceso.
• Dificultad clave:
– En ingeniería, el aseguramiento de calidad se centra en el control de
variación entre muestras.
– En IS, la variación entre muestras no tiene sentido.
• Cada proyecto es único.
Rubén Fuentes Fernández
Ingeniería del Software
3
Calidad
• Definimos calidad como concordancia con:
– Los requisitos funcionales y de rendimiento explícitamente establecidos
– Los estándares de desarrollo explícitamente documentados
– Las características implícitas de todo software desarrollado
profesionalmente
• El IEEE Std. 610.12 [IEEE C/S2ESC Software & Systems Engineering
Standards Committee, 1990] define calidad como:
– Grado en que un sistema, componente o proceso cumple las
especificaciones
– Grado en que un sistema, componente o proceso cumple las necesidades
o deseos de clientes y usuarios
• Discusión: ¿Difieren ambas definiciones?
Rubén Fuentes Fernández
Ingeniería del Software
4
Tipos de calidad
• Calidad de diseño
– Se basa en las características especificadas para un elemento.
– Típicamente a través de la Especificación de Requisitos Software
(Software Requirements Specification, SRS) y el Diseño.
• Calidad de concordancia
– Se centra en el grado de cumplimento de las especificaciones de
diseño durante su realización.
– Se mide en la implementación del software.
Rubén Fuentes Fernández
Ingeniería del Software
5
Obtención de calidad
• En IS hay dos formas de conseguir calidad:
– Haciendo SRS, diseños e implementaciones correctos desde un punto
de vista técnico.
– Introduciendo en el modelo de proceso una serie de actividades que
garanticen que todas las entregas resultantes de una actividad de
trabajo sean correctas.
• Las técnicas de IS para conseguir calidad en el software se
denominan Garantía de Calidad del Software (Software
Quality Assurance, SQA).
Rubén Fuentes Fernández
Ingeniería del Software
6
Garantía de calidad
• La garantía de calidad es el establecimiento de un marco de
procedimientos organizativos que llevan a conseguir una alta
calidad del software.
• El control de calidad es una serie de inspecciones, revisiones y
pruebas utilizados a lo largo del proceso del software para
asegurar que cada producto cumple con los requisitos que le
han sido asignados.
Incluyen bucles de realimentación.
•
Rubén Fuentes Fernández
Ingeniería del Software
7
Aspectos de la SQA
• Enfoque de gestión de calidad
• Tecnologías de IS
– Métodos y herramientas
• Revisiones Técnicas Formales
• Estrategia de pruebas
• Control de la documentación y de cambios
• Procedimientos que aseguren ajustes a los estándares de IS
• Mecanismos de medición y generación de informes
Rubén Fuentes Fernández
Ingeniería del Software
8
Actividades del grupo SQA
• Establecer el plan SQA para el proyecto
• Participar en el desarrollo de la descripción del proceso de software
• Revisar las actividades de IS para verificar su ajuste al proceso del
software
• Auditar los productos de software designados para verificar el
ajuste con los definidos como parte del proceso de software
• Asegurar que las desviaciones del trabajo y los productos del
software se documentan y se manejan de acuerdo con un
procedimiento establecido
• Registrar lo que no se ajuste a los requisitos e informar a sus
superiores
• Coordinar el control y la gestión de cambios
• Analizar las métricas del software
Rubén Fuentes Fernández
Ingeniería del Software
9
Coste de calidad
• El coste de calidad incluye todos los costes que se derivan de
la búsqueda de la calidad o en las actividades relacionadas
con la obtención de la calidad.
• Hay tres tipos de costes de calidad:
– De prevención
– De evaluación
– De fallos
Rubén Fuentes Fernández
Ingeniería del Software
10
Tipos de costes de calidad
• Costes de prevención
– Planificación de calidad
– Revisiones Técnicas Formales (RTFs)
– Equipo de pruebas
– Formación
• Costes de evaluación
– Inspección en el proceso y entre procesos
– Calibrado y mantenimiento del equipo
– Pruebas
• Costes de fallos
– Internos
– Externos
Rubén Fuentes Fernández
Ingeniería del Software
11
Fallos internos
• Los fallos internos se producen cuando se detecta un error
antes de la entrega al cliente.
• Los costes asociados a fallos internos incluyen:
– Revisión
– Reparación
– Análisis de fallos
Rubén Fuentes Fernández
Ingeniería del Software
12
Fallos externos
• Los fallos externos se producen cuando se detecta un error
después de la entrega al cliente.
• Los costes asociados a fallos externos incluyen:
– Costes de los internos
– Resolución de quejas
– Devolución y sustitución de productos
– Soporte de línea de ayuda
– Trabajo de garantía
Rubén Fuentes Fernández
Ingeniería del Software
13
Coste del retraso
• Evidentemente, cuanto más tardemos en resolver un fallo,
más costosa será su resolución.
Rubén Fuentes Fernández
Ingeniería del Software
14
Ejemplo: coste del retraso
• Un análisis del trabajo de IBM en Rochester indica:
– 7053 horas de RTFs de 200000 LDC (Líneas De Código)
– 3112 errores descubiertos
– Coste de programador: 40 $/h
– Coste de eliminación de defectos: 282120 $ (91 $/defecto)
• Supongamos que en vez de RTFs somos muy cuidadosos.
– Supongamos que hay 1 defecto por 1000 LDC.
– Tenemos unos 200 defectos.
– Con un coste de 25000 $ por reparación
– Coste de reparación de 5 millones de dólares.
– Es decir, 18 veces más caro que el coste de prevención.
Rubén Fuentes Fernández
Ingeniería del Software
15
VERIFICACIÓN Y VALIDACIÓN
Rubén Fuentes Fernández
Ingeniería del Software
16
Introducción
• Verificación y Validación (V&V) son los procesos que
determinan si los productos desarrollados de una actividad
dada se ajustan a los requisitos de esa actividad, y si el
software satisface su uso deseado y las necesidades del
usuario.
• En términos de Boehm:
– La verificación se encarga de comprobar si estamos construyendo el
producto correctamente.
– La validación se encarga de comprobar si estamos construyendo el
producto correcto.
Rubén Fuentes Fernández
Ingeniería del Software
17
IEEE Std. 1012‐2004
• El IEEE Std. 1012‐2004 [IEEE 1012 WG, 2004] define los
procesos de V&V en términos de actividades específicas y
tareas relacionadas.
– También define los contenidos del plan de V&V del software,
incluyendo un ejemplo de formato.
•
Identifica 6 procesos a los cuales se puede aplicar V&V:
– Gestión
– Adquisición
– Suministro
– Desarrollo
– Operación
– Mantenimiento
Rubén Fuentes Fernández
Ingeniería del Software
18
IEEE Std. 1012‐2004: niveles de integridad
• Un nivel de integridad es un conjunto de características del
proyecto que determinan el grado de rigor a la hora de aplicar
las actividades de V&V.
• Los niveles de integridad se asocian a requisitos, funciones,
grupos de funciones, componentes o subsistemas.
• El estándar identifica 4 niveles de integridad.
– Nivel 4 Consecuencias graves e irreparables en caso de fallo.
– Nivel 3 Consecuencias serias en caso de fallo.
– Nivel 2 Consecuencias menores en caso de fallo.
– Nivel 1 Consecuencias insignificantes en caso de fallo.
Rubén Fuentes Fernández
Ingeniería del Software
19
REVISIONES DEL SOFTWARE
Rubén Fuentes Fernández
Ingeniería del Software
20
Introducción
• Las revisiones del software son un filtro para el proceso de IS.
– Se aplican en varias etapas del desarrollo del software.
– Purifican las actividades estructurales.
• Hay diversos tipos de revisiones de mayor o menor formalidad
y/o valía.
– Aquí nos centraremos en las Revisiones Técnicas Formales (RTFs) o
Inspecciones Formales.
– El objetivo básico de las RTFs es detectar errores antes de que se
conviertan en defectos.
Rubén Fuentes Fernández
Ingeniería del Software
21
Modelo de amplificación de defectos
Rubén Fuentes Fernández
Ingeniería del Software
22
RTF
• Una RTF [Office of Safety and Mission Assurance, NASA, 1993]
es una actividad de garantía de calidad del software llevada a
cabo por los desarrolladores.
• Los objetivos de la RTF son:
– Descubrir errores
– Verificar que el software alcanza sus requisitos
– Garantizar que el software se desarrolla de acuerdo a ciertos
estándares predefinidos
– Conseguir un software desarrollado de manera homogénea
– Hacer que los proyectos sean más manejables
Rubén Fuentes Fernández
Ingeniería del Software
23
Reunión de revisión: principios básicos
• La RTF se instrumenta mediante una reunión, que debe ser
convenientemente planificada.
• Normas de la reunión:
– Deben convocarse para la reunión 3‐5 personas.
– Se debe preparar por adelantado, pero sin que requiera más de 2
horas de trabajo por persona.
– La duración debe ser menor de 2 horas.
• Evidentemente, la RTF se centra en partes específicas del
software.
– Se deben revisar los productos resultantes de las tareas de trabajo.
Rubén Fuentes Fernández
Ingeniería del Software
24
Reunión de revisión: previo
• El procedimiento es:
– El responsable del produc
Comentarios de: Tema 10 - Garantía de calidad del software - Ingeniería del Software (0)
No hay comentarios