Está en la página 1de 28

LA CALIDAD DEL

SOFTWARE
Administracin de la calidad del Software
Se refiere a lograr un nivel de calidad
requerido en el producto de software
Involucra a la definicin de estndares 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
Administracin de la calidad del Software
comprobacin independiente de los procesos de
desarrollo
los productos resultantes de los procesos se introducen
en el proceso de administracin de la calidad para
asegurar su consistencia con estndares y objetivos de
calidad
equipo de aseguramiento y control: independientes de los
equipos de desarrollo
responsabilidad de la administracin de la calidad
visin objetiva del proceso
informan de problemas y dificultades a los administradores
principales de la organizacin
CONCEPTO DE CALIDAD
Calidad significa que un producto debe cumplir
con sus especificaciones
Es la totalidad de aspectos y caractersticas de un producto
o servicio que se refieren a su capacidad para satisfacer
necesidades dadas en la adecuacin de sus objetivos (ISO)
Concordancia del software producido con los
requerimientos explcitamente establecidos,con los
estndares de desarrollo prefijados y con los requerimientos
implcitos no establecidos formalmente que desea el usuario
(Pressman).

Atributos de la calidad del Software
Safety Underst andability Port abilit y
Security Test abilit y Usabilit y
Reliability Adapt ability Reusabilit y
Resilience Modularit y Efficiency
Robustness Complexity Learnability
Administracin de la calidad del Software
tres actividades principales
aseguramiento de la calidad
establecimiento de un marco de trabajo de
procedimientos y estndares corporativos que
conduzcan a la obtencin de software de alta
calidad
planificacin de la calidad
seleccin de procedimientos y estndares
adecuados a partir de ese marco de trabajo y
adaptacin de stos para un proyecto de software
especfico
control de la calidad
definicin y aplicacin de los procesos que
aseguren que los procedimientos y estndares son
seguidos por el equipo de desarrollo

Aseguramiento de la
calidad
Planificacin de la
calidad
Control de la calidad
aseguramiento de la calidad y estndares
actividades de aseguramiento de la calidad (SQA)
definir un marco de trabajo para lograr la calidad del software:
definir o seleccionar estndares aplicables al proceso de
desarrollo o a los productos de software
importancia de los estndares
ofrecen un conjunto de las mejores prcticas, evitando repetir
errores anteriores y capturando el conocimiento de valor para la
organizacin
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 estndares
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
estndares basado en estndares nacionales e internacionales
Aseguramiento de la
calidad
Planificacin de la
calidad
Control de la calidad
Estandares (SQA)
dos tipos de estndares
estndares del producto: se aplican al producto a desarrollar
estndares de documentos (p.ej., estructura del documento de requerimientos a
producir)
estndares de documentacin (encabezados estndar de comentarios para una
definicin de clase)
estndares de codificacin (cmo utilizar un lenguaje de programacin)
estndares del proceso: definen los procesos a seguir durante el desarrollo
definiciones de los procesos de especificacin y anlisis, diseo, validacin,
descripcin de los documentos a generar en cada uno de estos procesos,...

Estndares del producto Estndares del proceso
Formulario para revisin del diseo Conducto para la revisin del diseo
Estructura del documento de requerimientos Sometimiento de documentos a revisiones
Formato del encabezado del procedimiento Proceso de entrega de las versiones
Estilo de programacin en Java Proceso de aprobacin del plan del proyecto
Formato del plan del proyecto Proceso de control del cambio
Forma de peticin de cambios Proceso de registro de las pruebas
SQA: estndares de documentacin
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; ms fciles
de leer y comprender
tres tipos de estndares
estndares del proceso de documentacin:
proceso a seguir para la produccin 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
estndares del documento:
estructura y presentacin 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 organizacin
estndares para el intercambio de documentos:
aseguran que todas las copias electrnicas de los documentos sean compatibles
utilizacin de herramientas concretas para elaborar los documentos (hojas de
clculo, procesadores de texto, herramientas de diagramacin,...)
SQA: Estandares de documentacin

fuente: I. Sommerville, Ingeniera de Software, Pearson 2002
Crear borrador
inicial
Incorporar
comentarios a
la revisin
Revisar
borrador
Comprobar
borrador final
Producir
borrador final
Corregir texto
Producir
patrones de
impresin
Revisar
arreglos
Arreglar texto
Documento aprobado
Documento aprobado
Proceso formal de produccin de un documento
Rehacer
documento
borrador
Imprimir
copias
Etapa 1: creacin
Etapa 2: refinamiento
Etapa 3: produccin
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
fabricacin: relacin clara entre calidad de proceso y del producto
proceso fcil de estandarizar y supervisar
una vez definido el proceso de fabricacin se ejecuta una y otra vez para
producir el mismo producto con el mismo nivel de calidad
software: existe relacin, pero menos directa
proceso ms creativo que mecnico: influencia de habilidades individuales
y experiencia
factores externos (novedad de la aplicacin, presin comercial,...)
el proceso puede ser inapropiado para un tipo de software
por ejemplo, un estndar puede indicar que la especificacin 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
siguen los procedimientos de SQA y estndares de
calidad ajustndose al plan de calidad
dos enfoques complementarios
revisiones tcnicas: el software, documentacin y
procesos son revisados por un grupo de personas
valoracin: normalmente automtica, con algn
tipo de herramienta
el software y los documentos se procesan y
se comparan con los estndares que se
aplican a ese proyecto
implica una medida cuantitativa de de
algunos atributos del software (medicin y
mtricas)
Aseguramiento de la
calidad
Planificacin de la
calidad
Control de la calidad
control de calidad: revisiones tcnicas formales
Decisin final:
- Aceptacin
- Rechazo
- Aceptacin condicionada a pequeas
modificaciones
Poca gente, preparacin y
duracin breves
Se revisa UN producto
(especificacin, mdulo, listado,...)
Participantes: jefe de revisin, revisores
(ingenieros,programadores,...) y
productor
revisiones tcnicas formales
objetivos:
descubrir errores en la funcin, lgica o implementacin de cualquier representacin del
softwre.
verificar el cumplimiento de los requisitos
garantizar el cumplimiento de los estndares.
conseguir un desarrollo uniforme del software
obtener proyectos que hagan ms sencillo los trabajos tcnicos (anlisis que permitan
buenos diseos, diseos que permitan implementaciones sencillas, estrategias de
pruebas que faciliten stas,...)
RTFs: son un filtro que permite purificar las actividades de ingeniera de software.
se aplican en diversos momentos del desarrollo para detectar defectos.
diseo: entre el 50 y el 60% de los errores del desarrollo.
aprovecha la diversidad de un grupo de personas para:
sealar la necesidad de mejoras en el producto de ingeniera (diagramas del anlisis,
diccionario de datos, diseo, cdigo, estrategia de pruebas,...)
confirmar las partes en las que no es necesaria una mejora.
conseguir un trabajo tcnico de calidad ms uniforme.
efectividad: se calcula que son efectivas en un 75%.
ejemplo
Errores encontrados Nmero Coste unitario Total
Llevando a cabo revisiones
Durante el diseo 22 1,5 33
Antes de la prueba 36 6,5 234
Durante la prueba 15 15,0 315
Tras la distribucin 3 67,0 201
783
Sin revisiones
Antes de la prueba 22 6,5 143
Durante la prueba 82 15,0 1230
Tras la distribucin 12 67,0 804
2177

control de calidad: mtricas
medicin: calcular un valor numrico para algn atributo de un producto o un proceso del software
la comparacin entre ellos y con los estndares de la organizacin permite controlar la calidad
mtrica: cualquier tipo de medida relacionada con un sistema, proceso o documentacin
existen atributos imposibles de medir de forma directa
por ejemplo: mantenibilidad, complejidad, comprensin,...
afectados por diversos factores
no existen mtricas directas: necesario medir atributos internos del software y suponer que
existe relacin con los atributos que nos interesan
Mantenibilidad
Fiabilidad
Portabilidad
Usabilidad
Nmero de parmetros del
procedimiento
Complejidad ciclomtica
Tamao del programa en
lneas de cdigo
Nmero de mensajes de
error
Extensin del manual de
usuario
Proceso de
software
Producto de
software
Mtricas de
prediccin
Mtricas de
control
Decisiones
administrativas
modelos de calidad del software
Objetivo: mejora de procesos software.
Diversos modelos que buscan:
Determinar las fuerzas y debilidades en una organizacin
Aglutinar esfuerzos para conseguir acuerdos sobre lo que es un buen proceso.
Principales iniciativas:
ISO 9001 y 9000-3:
muy til en compaas que adems de software fabrican equipos
define los procesos de calidad tanto en compaas de hardware como de software.
muy utilizado en Europa.
Capability Maturity Model (CMM) del Instituto de Ingeniera del Software
el modelo ms empleado y maduro
valora el desarrollo de software en sistemas de gran complejidad
visin completa del proceso de madurez organizacional
incluye mecanismos para mejora continua de los procesos
Bootstrap:
enfocado a pequeas y medianas empresas
valora la madurez global de una organizacin
examina procesos individuales de software y valora la conveniencia y el impacto de nuevas tecnologas
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 comn de referencia en el que convivan el resto de los modelos mencionados.
Produce un perfil del proceso, en vez de un resultado vlido/no vlido.

ISO 9000
Conjunto de estndares 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
disean, desarrollan y mantienen productos
ISO 9001 es un modelo genrico del proceso de calidad.
Est instanciado para cada organizacin
Certificacin ISO 9000
Los Estndares de calidad y procedimientos
debern ser documentados en un manual
organizacional de calidad
Personal externo puede certificar que una
organizacin conforma con los estndares ISO
9000
Los clientes demandan cada vez mas que sus
desarrolladores tengan la certificacin ISO 9000
modelos de calidad: ISO 9000
Modelos de calidad
ISO 9000
Manual de calidad de la
organizacin
Plan de calidad del
proyecto 1
Plan de calidad del
proyecto 3
Plan de calidad del
proyecto 2
Administracin
de la calidad del
proyecto
Proceso de la
calidad de la
organizacin
instanciado como
documentos
se utiliza para desarrollar
instanciado como
modelos de calidad: ISO-9000
Serie ISO-9000: conjunto de normas de sistemas de calidad y guas asociadas
que se publicaron a partir de 1987 por la ISO (Organizacin Internacional de
Normalizacin).
ISO9000: describe los elementos de garanta de calidad en trminos genricos
que pueden aplicarse a cualquier negocio, con independencia de los productos o
servicios ofrecidos.
Obtencin de certificado:
Auditores externos examinan el sistema de calidad y las operaciones de
una compaa.
Si es correcto, se recibe el certificado.
Auditoras de seguimiento cada seis meses.
Procesos documentados y practicados como se hayan descrito en el estndar.
Ventajas: comprensin, control y mejora de los procesos y la red de
procesos.
Inconveniente: burocracia y papeleo.
ISO9000 describe los elementos de un sistema de garanta de calidad:
estructura organizativa
procedimientos
procesos y recursos para implantar la planificacin de la calidad
control de calidad
garanta de calidad
mejora de la calidad
ISO 9000 NO describe cmo debe implementar una organizacin estos
elementos del sistema de calidad.
Objetivo: disear e implementar un sistema de garanta de calidad que cumpla
los estndares y acople los productos, servicios y cultura de la empresa.
ISO 9001
Estndar aplicable a la Ingeniera del
Software
20 requisitos de un sistema de garanta
de calidad efectiva:
Responsabilidad de la gestin
Sistema de calidad
Revisin de contrato
Control de diseo
Control de datos y documentos
Compras
Control del producto suministrado por el cliente
Identificacin y posibilidad de seguimiento del producto
Control del proceso
Inspeccin y prueba
Control de inspeccin, medicin y equipo de pruebas
Inspeccin y estado de prueba
Control de producto no aceptado
Accin correctora y preventiva
Tratamiento, almacenaje, empaquetamiento,
preservacin y entrega.
Control de registros de calidad
Auditoras internas de calidad
Formacin
Servicios
Tcnicas estadsticas
Ms orientada a empresas de fabricacin
ISO 9000-3

Gua para la aplicacin de ISO 9001 en el
desarrollo, suministro y mantenimiento de
software
relacin entre modelos de calidad del software
ISO 9000
1987
ISO 9000-3
1991
CMM
1986
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, prcticamente 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 documentacin est disponible (http://www.sei.cmu.edu/)
punto de partida: definicin del proceso de software: conjunto de actividades,
mtodos, prcticas y transformaciones que se usan para desarrollar el software
y los productos a l asociados.
madurez del proceso:
refleja la capacidad de una organizacin para producir software de calidad
(cuanto ms madura es una organizacin, 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)
OPTIMIZADO
GESTIONADO
DEFINIDO
REPETIBLE
INICIAL
Proceso
disciplinado
Proceso consistente
estndar
Proceso
predecible
Proceso
mejora continua
Proceso poco
estructurado, puede que
catico. El xito depende
ms del esfuerzo
individual que de una
aproximacin organizada
del proceso software.
Procesos bsicos de gestin
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 gestin como
de ingeniera, a nivel de
toda la organizacin.
Utilizacin de un proceso
software estandarizado
para desarrollo y
mantenimiento.
Existen conjuntos de
mtricas 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 realimentacin
de los procesos, as como
un enfoque de mejora a
nivel de ideas y de
tecnologas.
Resumen
El manejo de la calidad del software se refiere a a asegurar
que el software cumple con estndares requeridos
Los procedimientos de aseguramiento de calidad debern
estar documentados en un manual de calidad
organizacional
Un plan de calidad de un proyecto deber identificar los
requerimientos especficos de calidad
Los estndares de software son la reunin de las mejores
practicas
Resumen
Las revisiones son el medio principal para la
implementacin del aseguramiento de la calidad
Las mtricas renen informacin acerca de procesos y
productos
Las mtricas de control proveen informacin acerca del
manejo del proyecto del software. Las mtricas de
prediccin permiten la estimacin de atributos del al
producto
Las mtricas de calidad debern ser usadas para identificar
componentes potencialmente problemticos
bibliografa
Sommerville, I. Ingeniera de Software, cap. 24

Pressman, R.S. Ingeniera del Software. Un enfoque prctico, cap. 8

También podría gustarte