Vous êtes sur la page 1sur 26

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 Efficiency
Robustness Complexity Learnability
Administración de la calidad del Software
• tres actividades principales
– aseguramiento de la calidad
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 – planificación de la calidad
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
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 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
Aseguramiento de la desarrollo o a los productos de software
calidad
• 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
Planificación de la – ofrecen un marco de trabajo alrededor del que se implementa el
calidad
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,
Control de la calidad
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
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

Incorporar Rehacer
Crear borrador Revisar
comentarios a documento
inicial borrador
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

Etapa 3: producció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 la calidad

• control de calidad
– vigilar el proceso de desarrollo para asegurar que se
Aseguramiento de la siguen los procedimientos de SQA y estándares de
calidad
calidad ajustándose al plan de calidad
– dos enfoques complementarios
• revisiones técnicas: el software, documentación y
Planificación de la procesos son revisados por un grupo de personas
calidad
• 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
Control de la calidad
aplican a ese proyecto
– implica una medida cuantitativa de de
algunos atributos del software (medición y
métricas)
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%.
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 de parámetros del


procedimiento
Proceso de Producto de
Mantenibilidad
software software
Complejidad ciclomática

Fiabilidad
Tamaño del programa en
líneas de código Métricas de Métricas de
Portabilidad control predicción

Número de mensajes de
Usabilidad error

Decisiones
Extensión del manual de administrativas
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
• 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 ISO 9001
Normalización).  Estándar aplicable a la Ingeniería del
• ISO9000: describe los elementos de garantía de calidad en términos genéricos Software
que pueden aplicarse a cualquier negocio, con independencia de los productos o  20 requisitos de un sistema de garantía
servicios ofrecidos. de calidad efectiva:
• Obtención de certificado: Responsabilidad de la gestión
Sistema de calidad
– Auditores externos examinan el sistema de calidad y las operaciones de Revisión de contrato
una compañía. Control de diseño
– Si es correcto, se recibe el certificado. Control de datos y documentos
– Auditorías de seguimiento cada seis meses. Compras
Control del producto suministrado por el cliente
• Procesos documentados y practicados como se hayan descrito en el estándar. Identificación y posibilidad de seguimiento del producto
– Ventajas: comprensión, control y mejora de los procesos y la red de Control del proceso
procesos. Inspección y prueba
Control de inspección, medición y equipo de pruebas
– Inconveniente: burocracia y papeleo. Inspección y estado de prueba
• ISO9000 describe los elementos de un sistema de garantía de calidad: Control de producto no aceptado
– estructura organizativa Acción correctora y preventiva
Tratamiento, almacenaje, empaquetamiento,
– procedimientos preservación y entrega.
– procesos y recursos para implantar la planificación de la calidad Control de registros de calidad
Auditorías internas de calidad
– control de calidad
Formación
– garantía de calidad Servicios
– mejora de la calidad Técnicas estadísticas

• ISO 9000 NO describe cómo debe implementar una organización estos  Más orientada a empresas de fabricación
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 9000-3
Guía para la aplicación de ISO 9001 en el
desarrollo, suministro y mantenimiento de
software
relación entre modelos de calidad del software

ISO 9000 CMM


1987 1986

ISO 9000-3
1991

BOOTSTRAP
1993

SPICE
1994
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
modelos de calidad: capability maturity model (CMM)

Proceso
mejora continua OPTIMIZADO
Proceso
predecible
GESTIONADO
Proceso consistente
estándar DEFINIDO
Proceso
disciplinado REPETIBLE

Proceso poco INICIAL


estructurado, puede que
caótico. El éxito depende
más del esfuerzo
individual que de una
Existen conjuntos de La mejora del proceso
aproximación organizada Procesos software bien
métricas definidas a nivel software es continua y
del proceso software. definidos, estandarizados
de las diferentes etapas del existe una realimentación
e integrados, tanto en
proceso, y se dispone de de los procesos, así como
aspectos de gestión como
Procesos básicos de gestión datos al respecto. un enfoque de mejora a
de ingeniería, a nivel de
referidos a un seguimiento de Los procesos y los nivel de ideas y de
toda la organización.
funcionalidades, costes y productos son controlados y tecnologías.
Utilización de un proceso
plazos. Se implanta una seguidos de modo
software estandarizado
disciplina de trabajo para cuantitativo.
para desarrollo y
repetir modos de trabajo que
mantenimiento.
han dado resultados positivos
bibliografía

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

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

Vous aimerez peut-être aussi