2. 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
3. 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
4. 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).
5. Atributos de la calidad del Software
S a fe ty
S e c urity
R e lia b ility
R e s ilie nc e
R o b us tne s s
U nd e rs ta nd a b ility
T e s ta b ility
A d a p ta b ility
M o d ula rity
C o m p le xity
P o rta b ility
U s a b ility
R e u s a b ility
E ffic ie nc y
L e a rna b ility
6. Administración de la calidad del Software
•
Aseguramiento de la
calidad
Planificación de la
calidad
Control de la calidad
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
7. aseguramiento de la calidad y estándares
•
Aseguramiento de la
calidad
•
Planificación de la
calidad
•
Control de la calidad
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
8. 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
9. 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,...)
10. SQA: Estandares de documentación
Proceso formal de producción de un documento
Crear
borrador
inicial
Etapa 1: creación
Corregir texto
Etapa 2: refinamiento
Arreglar texto
Revisar
borrador
Incorporar
comentarios a
la revisión
Rehacer
documento
borrador
Documento aprobado
Producir
borrador final
Comprobar
borrador final
Documento aprobado
Revisar
arreglos
Producir
patrones de
impresión
Imprimir
copias
Etapa 3: producción
fuente: I. Sommerville, Ingeniería de Software, Pearson 2002
11. 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.
12. control de la calidad
•
Aseguramiento de la
Aseguramiento de la
calidad
calidad
Planificación de la
Planificación de la
calidad
calidad
Control de la calidad
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)
13. control de calidad: revisiones técnicas formales
Se revisa UN producto
(especificación, módulo, listado,...)
Decisión final:
- Aceptación
- Rechazo
- Aceptación condicionada a pequeñas
modificaciones
Poca gente, preparación y
duración breves
Participantes: jefe de revisión, revisores
(ingenieros,programadores,...) y
productor
14. 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%.
15. ejemplo
Errores 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
16.
17. 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
Número de parámetros del
Número de parámetros del
procedimiento
procedimiento
Mantenibilidad
Mantenibilidad
Complejidad ciclomática
Complejidad ciclomática
Proceso de
Proceso de
software
software
Producto de
Producto de
software
software
Métricas de
Métricas de
control
control
Métricas de
Métricas de
predicción
predicción
Fiabilidad
Fiabilidad
Portabilidad
Portabilidad
Usabilidad
Usabilidad
Tamaño del programa en
Tamaño del programa en
líneas de código
líneas de código
Número de mensajes de
Número de mensajes de
error
Extensión del manual de
Extensión
usuario
usuario
Decisiones
Decisiones
administrativas
administrativas
18. 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.
19. 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
20. 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
21. modelos de calidad: ISO 9000
Modelos de calidad
ISO 9000
instanciado como
Manual de calidad de la
organización
documentos
se utiliza para desarrollar
Plan de calidad del
proyecto 1
Plan de calidad del
proyecto 2
Proceso de la
calidad de la
organización
instanciado como
Plan de calidad del
proyecto 3
Administración
de la calidad del
proyecto
22. modelos de calidad: ISO-9000
••
••
••
••
••
••
••
Serie ISO-9000: conjunto de normas de sistemas de calidad guías asociadas que
Serie ISO-9000: conjunto de normas de sistemas de calidad yy guías asociadas que
se publicaron partir de 1987 por la ISO (Organización Internacional de
se publicaron a a partir de 1987 por la ISO (Organización Internacional de
Normalización).
Normalización).
ISO9000: describe los elementos de garantía de calidad en términos genéricos
ISO9000: describe los elementos de garantía de calidad en términos genéricos
que pueden aplicarse cualquier negocio, con independencia de los productos o
que pueden aplicarse a a cualquier negocio, con independencia de los productos o
servicios ofrecidos.
servicios ofrecidos.
Obtención de certificado:
Obtención de certificado:
Auditores externos examinan el sistema de calidad las operaciones de
–– Auditores externos examinan el sistema de calidad yy las operaciones de
una compañía.
una compañía.
– Si es correcto, se recibe el certificado.
– Si es correcto, se recibe el certificado.
– Auditorías de seguimiento cada seis meses.
– Auditorías de seguimiento cada seis meses.
Procesos documentados practicados como se hayan descrito en el estándar.
Procesos documentados yy practicados como se hayan descrito en el estándar.
Ventajas: comprensión, control mejora de los procesos y la red de
–– Ventajas: comprensión, control yy mejora de los procesos y la red de
procesos.
procesos.
Inconveniente: burocracia
–– Inconveniente: burocracia yy papeleo.
papeleo.
ISO9000 describe los elementos de un sistema de garantía de calidad:
ISO9000 describe los elementos de un sistema de garantía de calidad:
estructura organizativa
–– estructura organizativa
procedimientos
–– procedimientos
procesos recursos para implantar la planificación de la calidad
–– procesos yy recursos para implantar la planificación de la calidad
control de calidad
–– control de calidad
garantía de calidad
–– garantía de calidad
mejora de la calidad
–– mejora de la calidad
ISO 9000 NO describe cómo debe implementar una organización estos elementos
ISO 9000 NO describe cómo debe implementar una organización estos elementos
del sistema de calidad.
del sistema de calidad.
Objetivo: diseñar implementar un sistema de garantía de calidad que cumpla los
Objetivo: diseñar e e implementar un sistema de garantía de calidad que cumpla los
estándares acople los productos, servicios y cultura de la empresa.
estándares yy acople los productos, servicios y cultura de la empresa.
ISO 9001
ISO 9001
Estándar aplicable
Estándar aplicable a a la Ingeniería del
la Ingeniería del
Software
Software
20 requisitos de un sistema de garantía
20 requisitos de un sistema de garantía
de calidad efectiva:
de calidad efectiva:
Responsabilidad de la gestión
Responsabilidad de la gestión
Sistema de calidad
Sistema de calidad
Revisión de contrato
Revisión de contrato
Control de diseño
Control de diseño
Control de datos y documentos
Control de datos y documentos
Compras
Compras
Control del producto suministrado por el cliente
Control del producto suministrado por el cliente
Identificación y posibilidad de seguimiento del producto
Identificación y posibilidad de seguimiento del producto
Control del proceso
Control del proceso
Inspección y prueba
Inspección y prueba
Control de inspección, medición y equipo de pruebas
Control de inspección, medición y equipo de pruebas
Inspección y estado de prueba
Inspección y estado de prueba
Control de producto no aceptado
Control de producto no aceptado
Acción correctora y preventiva
Acción correctora y preventiva
Tratamiento, almacenaje, empaquetamiento,
Tratamiento, almacenaje, empaquetamiento,
preservación y entrega.
preservación y entrega.
Control de registros de calidad
Control de registros de calidad
Auditorías internas de calidad
Auditorías internas de calidad
Formación
Formación
Servicios
Servicios
Técnicas estadísticas
Técnicas estadísticas
Más orientada
Más orientada a a empresas de fabricación
empresas de fabricación
ISO 9000-3
ISO 9000-3
Guía para la aplicación de ISO 9001 en el
Guía para la aplicación de ISO 9001 en el
desarrollo, suministro y mantenimiento de
desarrollo, suministro y mantenimiento de
software
software
23. relación entre modelos de calidad del software
ISO 9000
1987
CMM
1986
ISO 9000-3
1991
BOOTSTRAP
1993
SPICE
1994
24. 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
25. modelos de calidad: capability maturity model (CMM)
Proceso
predecible
Proceso consistente
estándar
Proceso
disciplinado
Proceso poco
Proceso poco
estructurado, puede que
estructurado, puede que
caótico. El éxito depende
caótico. El éxito depende
más del esfuerzo
más del esfuerzo
individual que de una
individual que de una
aproximación organizada
aproximación organizada
del proceso software.
del proceso software.
Proceso
mejora continua
OPTIMIZADO
OPTIMIZADO
GESTIONADO
GESTIONADO
DEFINIDO
DEFINIDO
REPETIBLE
REPETIBLE
INICIAL
INICIAL
Procesos básicos de gestión
Procesos básicos de gestión
referidos a un seguimiento de
referidos a un seguimiento de
funcionalidades, costes y
funcionalidades, costes y
plazos. Se implanta una
plazos. Se implanta una
disciplina de trabajo para
disciplina de trabajo para
repetir modos de trabajo que
repetir modos
han dado resultados positivos
han dado resultados positivos
Procesos software bien
Procesos software bien
definidos, estandarizados
definidos, estandarizados
e integrados, tanto en
e integrados, tanto en
aspectos de gestión como
aspectos de gestión como
de ingeniería, a nivel de
de ingeniería, a nivel de
toda la organización.
toda la organización.
Utilización de un proceso
Utilización de un proceso
software estandarizado
software estandarizado
para desarrollo y
para desarrollo
mantenimiento.
mantenimiento.
Existen conjuntos de
Existen conjuntos de
métricas definidas a nivel
métricas definidas a nivel
de las diferentes etapas del
de las diferentes etapas del
proceso, y se dispone de
proceso, y se dispone de
datos al respecto.
datos al respecto.
Los procesos y los
Los procesos los
productos son controlados y
productos son controlados y
seguidos de modo
seguidos de modo
cuantitativo.
cuantitativo.
La mejora del proceso
La mejora del proceso
software es continua y
software es continua y
existe una realimentación
existe una realimentación
de los procesos, así como
de los
un enfoque de mejora a
un enfoque
a
nivel de ideas y de
nivel de ideas de
tecnologías.
tecnologías.
26. 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
27. 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