Tema5 la calidad del software

28
LA CALIDAD DEL SOFTWARE

description

qsystem

Transcript of Tema5 la calidad del software

Page 1: Tema5 la calidad del software

LA CALIDAD DEL SOFTWARE

Page 2: Tema5 la calidad del software

Administración de la calidad del Software

• Se refiere a lograr un nivel de calidad requerido en el producto de software

• Involucra a la definición de estándares de calidad apropiados y procedimientos que permitan asegurar que estos se cumplan.

• Debe llevar a desarrollar una cultura de calidad en donde la calidad es responsabilidad de todos

Page 3: Tema5 la calidad del software

Administración de la calidad del Software

– comprobación independiente de los procesos de desarrollo

– los productos resultantes de los procesos se introducen en el proceso de administración de la calidad para asegurar su consistencia con estándares y objetivos de calidad

– equipo de aseguramiento y control: independientes de los equipos de desarrollo

• responsabilidad de la administración de la calidad

• visión objetiva del proceso

• informan de problemas y dificultades a los administradores principales de la organización

Page 4: Tema5 la calidad del software

CONCEPTO DE CALIDAD

� Calidad significa que un producto debe cumplir con sus especificaciones� Es la totalidad de aspectos y características de un producto o servicio que se refieren a su capacidad para satisfacer necesidades dadas en la adecuación de sus objetivos (ISO)� Concordancia del software producido con los requerimientos explícitamente establecidos,con los estándares de desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente que desea el usuario (Pressman).

Page 5: Tema5 la calidad del software

Atributos de la calidad del Software

S a fe ty U n d e r s ta n d a b ility P o r ta b ilityS e c u r ity T e s ta b ility U s a b ilityR e lia b ility A d a p ta b ility R e u s a b ilityR e s ilie n c e M o d u la r ity E ffic ie n c yR o b u s tn e s s C o m p le x ity L e a r n a b ility

Page 6: Tema5 la calidad del software

Administración de la calidad del Software

• tres actividades principales– aseguramiento de la calidad

• establecimiento de un marco de trabajo de procedimientos y estándares corporativos que conduzcan a la obtención de software de alta calidad

– planificación de la calidad• selección de procedimientos y estándares

adecuados a partir de ese marco de trabajo y adaptación de éstos para un proyecto de software específico

– control de la calidad• definición y aplicación de los procesos que

aseguren que los procedimientos y estándares son seguidos por el equipo de desarrollo

Aseguramiento de la calidad

Aseguramiento de la calidad

Planificación de la calidad

Planificación de la calidad

Control de la calidadControl de la calidad

Page 7: Tema5 la calidad del software

aseguramiento de la calidad y estándares

• actividades de aseguramiento de la calidad (SQA)– definir un marco de trabajo para lograr la calidad del software:

definir o seleccionar estándares aplicables al proceso de desarrollo o a los productos de software

• importancia de los estándares– ofrecen un conjunto de las mejores prácticas, evitando repetir

errores anteriores y capturando el conocimiento de valor para la organización

– ofrecen un marco de trabajo alrededor del que se implementa el proceso de SQA

– ayudan a la continuidad del trabajo de unos ingenieros a otros• desarrollo de estándares

– proceso largo y complicado– organizaciones nacionales e internacionales diferentes (ANSI,

IEEE, OTAN, Agencia Espacial, NASA, Departamento de Defensa de EE.UU., ...)

– los equipos de SQA de las empresas desarrollan un “manual de estándares” basado en estándares nacionales e internacionales

Aseguramiento de la calidad

Aseguramiento de la calidad

Planificación de la calidad

Planificación de la calidad

Control de la calidadControl de la calidad

Page 8: Tema5 la calidad del software

Estandares (SQA)• dos tipos de estándares

– estándares del producto: se aplican al producto a desarrollar• estándares de documentos (p.ej., estructura del documento de requerimientos a

producir)

• estándares de documentación (encabezados estándar de comentarios para una definición de clase)

• estándares de codificación (cómo utilizar un lenguaje de programación)– estándares del proceso: definen los procesos a seguir durante el desarrollo

• definiciones de los procesos de especificación y análisis, diseño, validación, descripción de los documentos a generar en cada uno de estos procesos,...

Estándares del producto Estándares del proceso

Formulario para revisión del diseño Conducto para la revisión del diseño

Estructura del documento de requerimientos Sometimiento de documentos a revisiones

Formato del encabezado del procedimiento Proceso de entrega de las versiones

Estilo de programación en Java Proceso de aprobación del plan del proyecto

Formato del plan del proyecto Proceso de control del cambio

Forma de petición de cambios Proceso de registro de las pruebas

Page 9: Tema5 la calidad del software

SQA: estándares de documentación

• importancia de los documentos estandarizados– documentos: única forma tangible de representar el software y el proceso del software– documentos estandarizados: apariencia, estructura y calidad consistentes; más fáciles

de leer y comprender• tres tipos de estándares

– estándares del proceso de documentación: • proceso a seguir para la producción del documento• documentos de trabajo: no es necesario aplicar procesos formales de calidad• documentos formales (para desarrollos posteriores o a entregar al cliente):

necesario adoptar un proceso formal de calidad– estándares del documento:

• estructura y presentación de los documentos• deben tener un estilo y apariencia consistente, y los del mismo tipo deben tener

una estructura consistente con los del proyecto y la organización– estándares para el intercambio de documentos:

• aseguran que todas las copias electrónicas de los documentos sean compatibles• utilización de herramientas concretas para elaborar los documentos (hojas de

cálculo, procesadores de texto, herramientas de diagramación,...)

Page 10: Tema5 la calidad del software

SQA: Estandares de documentación

fuente: I. Sommerville, Ingeniería de Software, Pearson 2002

Crear borrador

inicial

Crear borrador

inicial

Incorporar comentarios a

la revisión

Incorporar comentarios a

la revisión

Revisar borradorRevisar borrador

Comprobar borrador finalComprobar

borrador finalProducir

borrador finalProducir

borrador finalCorregir textoCorregir texto

Producir patrones de impresión

Producir patrones de impresión

Revisar arreglosRevisar arreglosArreglar textoArreglar texto

Documento aprobado

Documento aprobado

Proceso formal de producción de un documento

Rehacer documento

borrador

Rehacer documento

borrador

Imprimir copias

Imprimir copias

Etapa 1: creación

Etapa 2: refinamiento

Etapa 3: producción

Page 11: Tema5 la calidad del software

SQA: calidad del proceso y del producto

• mejora de la calidad:

1. identificar productos de calidad

2. examinar el proceso utilizado para desarrollarlos

3. generalizar esos procesos para aplicarlos a otros proyectos• fabricación: relación clara entre calidad de proceso y del producto

– proceso fácil de estandarizar y supervisar

– una vez definido el proceso de fabricación se ejecuta una y otra vez para producir el mismo producto con el mismo nivel de calidad

• software: existe relación, pero menos directa– proceso más creativo que mecánico: influencia de habilidades individuales

y experiencia– factores externos (novedad de la aplicación, presión comercial,...)

– el proceso puede ser inapropiado para un tipo de software

• por ejemplo, un estándar puede indicar que la especificación tiene que estar terminada y aprobada para implementar, pero puede hacer falta realizar prototipos.

Page 12: Tema5 la calidad del software

control de la calidad

• control de calidad

– vigilar el proceso de desarrollo para asegurar que se siguen los procedimientos de SQA y estándares de calidad ajustándose al plan de calidad

– dos enfoques complementarios

• revisiones técnicas: el software, documentación y procesos son revisados por un grupo de personas

• valoración: normalmente automática, con algún tipo de herramienta

– el software y los documentos se procesan y se comparan con los estándares que se aplican a ese proyecto

– implica una medida cuantitativa de de algunos atributos del software (medición y métricas)

Aseguramiento de la calidad

Aseguramiento de la calidad

Planificación de la calidad

Planificación de la calidad

Control de la calidadControl de la calidad

Page 13: Tema5 la calidad del software

control de calidad: revisiones técnicas formales

Decisión final: - Aceptación - Rechazo - Aceptación condicionada a pequeñas modificaciones

Decisión final: - Aceptación - Rechazo - Aceptación condicionada a pequeñas modificaciones

Poca gente, preparación y duración brevesPoca gente, preparación y duración breves

Se revisa UN producto (especificación, módulo, listado,...)Se revisa UN producto (especificación, módulo, listado,...)

Participantes: jefe de revisión, revisores (ingenieros,programadores,...) y productor

Participantes: jefe de revisión, revisores (ingenieros,programadores,...) y productor

Page 14: Tema5 la calidad del software

revisiones técnicas formales• objetivos:

descubrir errores en la función, lógica o implementación de cualquier representación del softwre.

verificar el cumplimiento de los requisitos

garantizar el cumplimiento de los estándares.

conseguir un desarrollo uniforme del software

obtener proyectos que hagan más sencillo los trabajos técnicos (análisis que permitan buenos diseños, diseños que permitan implementaciones sencillas, estrategias de pruebas que faciliten éstas,...)

• RTFs: son un filtro que permite “purificar” las actividades de ingeniería de software.– se aplican en diversos momentos del desarrollo para detectar defectos.

– diseño: entre el 50 y el 60% de los errores del desarrollo.– aprovecha la diversidad de un grupo de personas para:

señalar la necesidad de mejoras en el producto de ingeniería (diagramas del análisis, diccionario de datos, diseño, código, estrategia de pruebas,...)

confirmar las partes en las que no es necesaria una mejora.

conseguir un trabajo técnico de calidad más uniforme.– efectividad: se calcula que son efectivas en un 75%.

Page 15: Tema5 la calidad del software

ejemploErrores encontrados Número Coste unitario Total

Llevando a cabo revisiones

Durante el diseño 22 1,5 33

Antes de la prueba 36 6,5 234

Durante la prueba 15 15,0 315

Tras la distribución 3 67,0 201

783

Sin revisiones

Antes de la prueba 22 6,5 143

Durante la prueba 82 15,0 1230

Tras la distribución 12 67,0 804

2177

Page 16: Tema5 la calidad del software
Page 17: Tema5 la calidad del software

control de calidad: métricas• medición: calcular un valor numérico para algún atributo de un producto o un proceso del software

– la comparación entre ellos y con los estándares de la organización permite controlar la calidad– métrica: cualquier tipo de medida relacionada con un sistema, proceso o documentación

– existen atributos imposibles de medir de forma directa• por ejemplo: mantenibilidad, complejidad, comprensión,...• afectados por diversos factores• no existen métricas directas: necesario medir atributos internos del software y suponer que

existe relación con los atributos que nos interesan

MantenibilidadMantenibilidad

FiabilidadFiabilidad

PortabilidadPortabilidad

UsabilidadUsabilidad

Número de parámetros del procedimiento

Número de parámetros del procedimiento

Complejidad ciclomáticaComplejidad ciclomática

Tamaño del programa en líneas de código

Tamaño del programa en líneas de código

Número de mensajes de error

Número de mensajes de error

Extensión del manual de usuario

Extensión del manual de usuario

Proceso desoftware

Proceso desoftware Producto de

software

Producto desoftware

Métricas depredicción

Métricas depredicciónMétricas de

control

Métricas decontrol

Decisionesadministrativas

Decisionesadministrativas

Page 18: Tema5 la calidad del software

modelos de calidad del software• Objetivo: mejora de procesos software.• Diversos modelos que buscan:

– Determinar las fuerzas y debilidades en una organización– Aglutinar esfuerzos para conseguir acuerdos sobre lo que es un buen proceso.

• Principales iniciativas:– ISO 9001 y 9000-3:

• muy útil en compañías que además de software fabrican equipos• define los procesos de calidad tanto en compañías de hardware como de software.• muy utilizado en Europa.

– Capability Maturity Model (CMM) del Instituto de Ingeniería del Software• el modelo más empleado y maduro• valora el desarrollo de software en sistemas de gran complejidad• visión completa del proceso de madurez organizacional• incluye mecanismos para mejora continua de los procesos

– Bootstrap:• enfocado a pequeñas y medianas empresas• valora la madurez global de una organización• examina procesos individuales de software y valora la conveniencia y el impacto de nuevas tecnologías

– SPICE:• combina elementos de ISO, CMM y Bootstrap• enfocado a estudiar el nivel de madurez de los procesos individuales (tiene en cuenta el contexto de los

procesos evaluados).• objetivo: definir un marco común de referencia en el que convivan el resto de los modelos mencionados.• Produce un perfil del proceso, en vez de un resultado válido/no válido.

Page 19: Tema5 la calidad del software

ISO 9000

• Conjunto de estándares internacionales para el manejo de calidad

• Aplicable a un rango de organizaciones desde industrias de servicio a industrias de manufactura

• La ISO 9001 es aplicable a organizaciones del cual diseñan, desarrollan y mantienen productos

• ISO 9001 es un modelo genérico del proceso de calidad. Está instanciado para cada organización

Page 20: Tema5 la calidad del software

Certificación ISO 9000• Los Estándares de calidad y procedimientos

deberán ser documentados en un manual organizacional de calidad

• Personal externo puede certificar que una organización conforma con los estándares ISO 9000

• Los clientes demandan cada vez mas que sus desarrolladores tengan la certificación ISO 9000

Page 21: Tema5 la calidad del software

modelos de calidad: ISO 9000

Modelos de calidadISO 9000

Modelos de calidadISO 9000

Manual de calidad de la organización

Manual de calidad de la organización

Plan de calidad del proyecto 1

Plan de calidad del proyecto 1

Plan de calidad del proyecto 3

Plan de calidad del proyecto 3

Plan de calidad del proyecto 2

Plan de calidad del proyecto 2

Administración de la calidad del

proyecto

Administración de la calidad del

proyecto

Proceso de la calidad de la organización

Proceso de la calidad de la organización

instanciado como

documentos

se utiliza para desarrollar

instanciado como

Page 22: Tema5 la calidad del software

modelos de calidad: ISO-9000• Serie ISO-9000: conjunto de normas de sistemas de calidad y guías asociadas que

se publicaron a partir de 1987 por la ISO (Organización Internacional de Normalización).

• ISO9000: describe los elementos de garantía de calidad en términos genéricos que pueden aplicarse a cualquier negocio, con independencia de los productos o servicios ofrecidos.

• Obtención de certificado:– Auditores externos examinan el sistema de calidad y las operaciones de

una compañía.– Si es correcto, se recibe el certificado.– Auditorías de seguimiento cada seis meses.

• Procesos documentados y practicados como se hayan descrito en el estándar.– Ventajas: comprensión, control y mejora de los procesos y la red de

procesos.– Inconveniente: burocracia y papeleo.

• ISO9000 describe los elementos de un sistema de garantía de calidad:– estructura organizativa– procedimientos– procesos y recursos para implantar la planificación de la calidad– control de calidad– garantía de calidad– mejora de la calidad

• ISO 9000 NO describe cómo debe implementar una organización estos elementos del sistema de calidad.

• Objetivo: diseñar e implementar un sistema de garantía de calidad que cumpla los estándares y acople los productos, servicios y cultura de la empresa.

• Serie ISO-9000: conjunto de normas de sistemas de calidad y guías asociadas que se publicaron a partir de 1987 por la ISO (Organización Internacional de Normalización).

• ISO9000: describe los elementos de garantía de calidad en términos genéricos que pueden aplicarse a cualquier negocio, con independencia de los productos o servicios ofrecidos.

• Obtención de certificado:– Auditores externos examinan el sistema de calidad y las operaciones de

una compañía.– Si es correcto, se recibe el certificado.– Auditorías de seguimiento cada seis meses.

• Procesos documentados y practicados como se hayan descrito en el estándar.– Ventajas: comprensión, control y mejora de los procesos y la red de

procesos.– Inconveniente: burocracia y papeleo.

• ISO9000 describe los elementos de un sistema de garantía de calidad:– estructura organizativa– procedimientos– procesos y recursos para implantar la planificación de la calidad– control de calidad– garantía de calidad– mejora de la calidad

• ISO 9000 NO describe cómo debe implementar una organización estos elementos del sistema de calidad.

• Objetivo: diseñar e implementar un sistema de garantía de calidad que cumpla los estándares y acople los productos, servicios y cultura de la empresa.

ISO 9001 Estándar aplicable a la Ingeniería del

Software

20 requisitos de un sistema de garantía de calidad efectiva:

Responsabilidad de la gestión

Sistema de calidad

Revisión de contrato

Control de diseño

Control de datos y documentos

Compras

Control del producto suministrado por el cliente

Identificación y posibilidad de seguimiento del producto

Control del proceso

Inspección y prueba

Control de inspección, medición y equipo de pruebas

Inspección y estado de prueba

Control de producto no aceptado

Acción correctora y preventiva

Tratamiento, almacenaje, empaquetamiento,

preservación y entrega.

Control de registros de calidad

Auditorías internas de calidad

Formación

Servicios

Técnicas estadísticas

Más orientada a empresas de fabricación

ISO 9001 Estándar aplicable a la Ingeniería del

Software

20 requisitos de un sistema de garantía de calidad efectiva:

Responsabilidad de la gestión

Sistema de calidad

Revisión de contrato

Control de diseño

Control de datos y documentos

Compras

Control del producto suministrado por el cliente

Identificación y posibilidad de seguimiento del producto

Control del proceso

Inspección y prueba

Control de inspección, medición y equipo de pruebas

Inspección y estado de prueba

Control de producto no aceptado

Acción correctora y preventiva

Tratamiento, almacenaje, empaquetamiento,

preservación y entrega.

Control de registros de calidad

Auditorías internas de calidad

Formación

Servicios

Técnicas estadísticas

Más orientada a empresas de fabricación

ISO 9000-3

Guía para la aplicación de ISO 9001 en el desarrollo, suministro y mantenimiento de software

ISO 9000-3

Guía para la aplicación de ISO 9001 en el desarrollo, suministro y mantenimiento de software

Page 23: Tema5 la calidad del software

relación entre modelos de calidad del software

ISO 90001987

ISO 9000-31991

CMM1986

BOOTSTRAP1993

SPICE1994

Page 24: Tema5 la calidad del software

modelos de calidad: capability maturity model (CMM)

• Software Engineering Institute (Carnegie Mellon University), 1986: modelo para evaluar el grado de madurez con que las organizaciones desarrollaban software.

• 1991: aparece el CMM, prácticamente en su forma actual:– basado en casos reales– refleja las necesidades de los profesionales del desarrollo de software y de

la mejora del proceso.– está documentado– su documentación está disponible (http://www.sei.cmu.edu/)

• punto de partida: definición del proceso de software: conjunto de actividades, métodos, prácticas y transformaciones que se usan para desarrollar el software y los productos a él asociados.

• madurez del proceso:– refleja la capacidad de una organización para producir software de calidad

(cuanto más madura es una organización, mejor definido será el proceso de software).

– proceso del software maduro: mayor productividad y mayor calidad del producto.

– las empresas van pasando por cinco niveles de madurez

Page 25: Tema5 la calidad del software

modelos de calidad: capability maturity model (CMM)

OPTIMIZADOOPTIMIZADO

GESTIONADOGESTIONADO

DEFINIDODEFINIDO

REPETIBLEREPETIBLE

INICIALINICIAL

Procesodisciplinado

Proceso consistenteestándar

Procesopredecible

Procesomejora continua

Proceso poco estructurado, puede que caótico. El éxito depende más del esfuerzo individual que de una aproximación organizada del proceso software.

Proceso poco estructurado, puede que caótico. El éxito depende más del esfuerzo individual que de una aproximación organizada del proceso software.

Procesos básicos de gestión referidos a un seguimiento de funcionalidades, costes y plazos. Se implanta una disciplina de trabajo para repetir modos de trabajo que han dado resultados positivos

Procesos básicos de gestión referidos a un seguimiento de funcionalidades, costes y plazos. Se implanta una disciplina de trabajo para repetir modos de trabajo que han dado resultados positivos

Procesos software bien definidos, estandarizados e integrados, tanto en aspectos de gestión como de ingeniería, a nivel de toda la organización. Utilización de un proceso software estandarizado para desarrollo y mantenimiento.

Procesos software bien definidos, estandarizados e integrados, tanto en aspectos de gestión como de ingeniería, a nivel de toda la organización. Utilización de un proceso software estandarizado para desarrollo y mantenimiento.

Existen conjuntos de métricas definidas a nivel de las diferentes etapas del proceso, y se dispone de datos al respecto.Los procesos y los productos son controlados y seguidos de modo cuantitativo.

Existen conjuntos de métricas definidas a nivel de las diferentes etapas del proceso, y se dispone de datos al respecto.Los procesos y los productos son controlados y seguidos de modo cuantitativo.

La mejora del proceso software es continua y existe una realimentación de los procesos, así como un enfoque de mejora a nivel de ideas y de tecnologías.

La mejora del proceso software es continua y existe una realimentación de los procesos, así como un enfoque de mejora a nivel de ideas y de tecnologías.

Page 26: Tema5 la calidad del software

Resumen

• El manejo de la calidad del software se refiere a a asegurar que el software cumple con estándares requeridos

• Los procedimientos de aseguramiento de calidad deberán estar documentados en un manual de calidad organizacional

• Un plan de calidad de un proyecto deberá identificar los requerimientos específicos de calidad

• Los estándares de software son la reunión de las mejores practicas

Page 27: Tema5 la calidad del software

Resumen

• Las revisiones son el medio principal para la implementación del aseguramiento de la calidad

• Las métricas reúnen información acerca de procesos y productos

• Las métricas de control proveen información acerca del manejo del proyecto del software. Las métricas de predicción permiten la estimación de atributos del al producto

• Las métricas de calidad deberán ser usadas para identificar componentes potencialmente problemáticos

Page 28: Tema5 la calidad del software

bibliografía

Sommerville, I. Ingeniería de Software, cap. 24

Pressman, R.S. Ingeniería del Software. Un enfoque práctico, cap. 8