Está en la página 1de 22

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
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
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).
Atributos de la calidad del Software

Safety Understandability Portability


Security Testability Usability
Reliability Adaptability Reusability
Resilience Modularity Efciency
Robustness Complexity Learnability
SQA es la sigla de Software Quality Assurance que traducido al
español significa Aseguramiento de calidad del
Software. SQA consiste en el área de control de procesos,
procedimientos y métodos utilizados para asegurar la calidad de
un software desde el inicio del proceso.
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
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,...)
SQA: Estandares de documentación

Proceso formal de producción de un documento

Crear Incorporar Rehacer


Revisar
borrador comentarios a documento
borrador
inicial la revisión borrador

Etapa 1: creación
Documento aprobado

Producir Comprobar
Corregir texto
borrador final borrador final

Etapa 2: refinamiento
Documento aprobado

Producir
Revisar Imprimir
Arreglar texto patrones de
arreglos copias
impresión

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


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.
control de calidad: revisiones técnicas formales

Se revisa UN producto
(especificación, módulo, listado,...) Poca gente, preparación y
duración breves

Decisión final: Participantes: jefe de revisión, revisores


- Aceptación (ingenieros,programadores,...) y
- Rechazo productor
- Aceptación condicionada a pequeñas
modificaciones
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%.
2RTF (Revisión Técnica Formal)
Es un proceso de revisión riguroso, su objetivo es llegar a detectar lo
antes posible, los posibles defectos o desviaciones en los productos
que se van generando a lo largo del desarrollo. importancia (frenar la
marcha del proyecto)

Objetivos:

• Descubrir errores en la función, lógica o implementación de cualquier


representación del software.
• Verifcar 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écnico (análisis que
permitan buenos diseños, diseños que permitan implementaciones
sencillas, estrategias de pruebas
• Conseguir un trabajo técnico de calidad más uniforme .Efectividad: se calcula
que son efectivas en un 75%.
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
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
Número de
de parámetros del
procedimiento
procedimiento
Proceso de Producto de
Mantenibilidad Proceso
Mantenibilidad software de Producto
software de
Complejidad
Complejidad ciclomática software software

Fiabilidad
Fiabilidad
Tamaño del programa en
líneas
líneas de código
código Métricas de Métricas de
Métricas
control de Métricas de
predicción
Portabilidad
Portabilidad control predicción
Número
Número de mensajes
mensajes de
de
Usabilidad error
error

Decisiones
Decisiones
administrativas
Extensión
Extensión del manual de administrativas
usuario
usuario
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.
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
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
modelos de calidad: ISO 9000

Modelos de calidad
ISO 9000

instanciado como

Proceso de la
Manual de calidad de la documentos calidad de la
organización organización

se utiliza para desarrollar instanciado como

Plan de calidad del Plan de calidad del Plan de calidad del Administración
proyecto 1 proyecto 2 proyecto 3 de la calidad del
proyecto
modelos de calidad: ISO-9000
•• SerieISO-9000:
Serie ISO-9000:conjunto
conjuntodedenormas
normasdedesistemas
sistemasdedecalidad
calidadyyguías
guíasasociadas
asociadasque
que
sesepublicaron
publicarona apartir
partirdede1987
1987por
porlalaISO
ISO(Organización
(OrganizaciónInternacional
Internacionaldede ISO9001
ISO 9001
Normalización).
Normalización).  Estándar aplicable a la Ingeniería del
Estándar aplicable a la Ingeniería del
•• ISO9000:describe
ISO9000: describelos
loselementos
elementosdedegarantía
garantíadedecalidad
calidadenentérminos
términosgenéricos
genéricos Software
Software
que pueden aplicarse a cualquier negocio, con independencia de los productos oo
que pueden aplicarse a cualquier negocio, con independencia de los productos  20 requisitos de un sistema de garantía
20 requisitos de un sistema de garantía
serviciosofrecidos.
ofrecidos. de calidad efectiva:
servicios de calidad efectiva:
•• Obtencióndedecertificado:
certificado: Responsabilidad de la gestión
Obtención Responsabilidad de la gestión
Sistema de calidad
–– Auditores
Auditoresexternos
externosexaminan
examinanelelsistema
sistemadedecalidad
calidadyylaslasoperaciones
operacionesdede Sistema de calidad
Revisión de contrato
unacompañía.
compañía. Revisión de contrato
Control de diseño
una Control de diseño
– Si es correcto, se recibe el certificado. Control de datos y documentos
– Si es correcto, se recibe el certificado. Control de datos y documentos
Compras
– Auditorías de seguimientocadacadaseis
seismeses.
meses. Compras
– Auditorías de seguimiento Control del producto suministrado por el cliente
Control del producto suministrado por el cliente
•• Procesosdocumentados
Procesos documentadosyypracticados
practicadoscomocomosesehayan
hayandescrito
descritoenenelelestándar.
estándar. Identificación y posibilidad de seguimiento del producto
Identificación y posibilidad de seguimiento del producto
–– Ventajas:
Ventajas:comprensión,
comprensión,control
controlyymejora
mejoradedelos
losprocesos
procesosyylalaredreddede Control del proceso
Control del proceso
Inspección y prueba
procesos. Inspección y prueba
procesos. Control de inspección, medición y equipo de pruebas
– Inconveniente:burocracia
burocraciayypapeleo.
papeleo. Control de inspección, medición y equipo de pruebas
– Inconveniente: Inspección y estado de prueba
Inspección y estado de prueba
•• ISO9000describe
describelos
loselementos
elementosdedeununsistema
sistemadedegarantía
garantíadedecalidad:
calidad: Control de producto no aceptado
ISO9000 Control de producto no aceptado
Acción correctora y preventiva
– estructuraorganizativa
organizativa Acción correctora y preventiva
– estructura Tratamiento, almacenaje, empaquetamiento,
– Tratamiento, almacenaje, empaquetamiento,
procedimientos
– procedimientos preservación y entrega.
preservación y entrega.
– procesos y recursos para implantar la planificación de la calidad Control de registros de calidad
– procesos y recursos para implantar la planificación de la calidad Control de registros de calidad
Auditorías internas de calidad
–– control
control de calidad Auditorías internas de calidad
de calidad Formación
Formación

– garantía dedecalidad
garantía calidad Servicios
Servicios
Técnicas estadísticas
– mejora de la calidad Técnicas estadísticas
– mejora de la calidad
 Más orientada a empresas de fabricación
•• ISO 9000NO
ISO 9000 NOdescribe
describecómocómodebe
debeimplementar
implementaruna unaorganización
organizaciónestosestoselementos
elementos Más orientada a empresas de fabricación
del sistema de calidad.
del sistema de calidad.
•• Objetivo:diseñar
Objetivo: diseñare eimplementar
implementarununsistema
sistemadedegarantía
garantíadedecalidad
calidadquequecumpla
cumplaloslos
ISO9000-3
9000-3
estándares y acople los productos, servicios y cultura de
estándares y acople los productos, servicios y cultura de la empresa. la empresa. ISO
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
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
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
bibliografía

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

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


cap. 8

También podría gustarte