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
Security
Reliability
Resilience
Robustness

Underst andability
Test abilit y
Adapt ability
Modularit y
Complexity

Port abilit y
Usabilit y
Reusabilit y
Efficiency
Learnability

Administracin de la calidad del Software

Aseguramiento de la
calidad

Planificacin de la
calidad

Control de la calidad

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 y estndares

Aseguramiento de la
calidad

Planificacin 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 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

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


Proceso formal de produccin de un documento

Crear borrador
inicial

Revisar
borrador

Incorporar
comentarios a
la revisin

Rehacer
documento
borrador

Etapa 1: creacin
Documento aprobado

Corregir texto

Producir
borrador final

Comprobar
borrador final

Etapa 2: refinamiento
Documento aprobado

Arreglar texto

Revisar
arreglos

Producir
patrones de
impresin

Imprimir
copias

Etapa 3: produccin

fuente: I. Sommerville, Ingeniera 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
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

Aseguramiento de la
calidad

Planificacin 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 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)

control de calidad: revisiones tcnicas formales

Se revisa UN producto
(especificacin, mdulo, listado,...)

Decisin final:
- Aceptacin
- Rechazo
- Aceptacin condicionada a pequeas
modificaciones

Poca gente, preparacin y


duracin breves

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

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
Nmero de parmetros del
procedimiento

Mantenibilidad

Proceso de
software

Producto de
software

Mtricas de
control

Mtricas de
prediccin

Complejidad ciclomtica
Fiabilidad
Tamao del programa en
lneas de cdigo
Portabilidad

Usabilidad

Nmero de mensajes de
error

Extensin del manual de


usuario

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
instanciado como

Manual de calidad de la
organizacin

documentos

se utiliza para desarrollar

Plan de calidad del


proyecto 1

Plan de calidad del


proyecto 2

Proceso de la
calidad de la
organizacin
instanciado como

Plan de calidad del


proyecto 3

Administracin
de la calidad del
proyecto

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

CMM
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, 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)

Proceso
predecible
Proceso consistente
estndar
Proceso
disciplinado
Proceso poco
estructurado, puede que
catico. El xito depende
ms del esfuerzo
individual que de una
aproximacin organizada
del proceso software.

Proceso
mejora continua

OPTIMIZADO

GESTIONADO

DEFINIDO

REPETIBLE
INICIAL

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