Está en la página 1de 31

La calidad del software

introduccin
Somos lo que hacemos de forma repetitiva. La excelencia, entonces, no es un acto, sino un hbito. Aristteles

calidad del software: concepto complejo


el producto desarrollado cumple su especificacin: criterio insuficiente
la especificacin se centra en las caractersticas deseadas por el usuario, y se suelen olvidar otras importantes (por ejemplo, mantenimiento) difcil especificar detalladamente y de forma medible ciertas caractersticas de calidad (facilidad de uso, mantenimiento,...) cuando la especificacin del software es incompleta, el usuario percibe falta de calidad

diferentes atributos de la calidad (mantenibilidad, eficiencia, portabilidad, rendimiento, fiabilidad,...)

administradores: administracin de la calidad


responsabilidad de asegurar el nivel de calidad requerido en los productos definicin de procedimientos y estndares y asegurar su cumplimiento implantar una cultura de la calidad: motivacin de cada persona responsable del desarrollo para lograr un alto nivel de calidad del producto

administracin de la calidad

Aseguramiento 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
seleccin de procedimientos y estndares adecuados a partir de ese marco de trabajo y adaptacin de stos para un proyecto de software especfico definicin y aplicacin de los procesos que aseguren que los procedimientos y estndares son seguidos por el equipo de desarrollo

planificacin de la calidad
Planificacin de la calidad

control de la calidad
Control de la calidad

administracin de la calidad

administracin de la calidad
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

Proceso de desarrollo de software

D1

D2

D3

D4

D5

Proceso de administracin de la calidad

Estndares y procedimientos

Plan de calidad

Informes de revisin 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

Aseguramiento de la calidad

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

Planificacin de la calidad

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

Control de la calidad

SQA: estndares

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) definiciones de los procesos de especificacin y anlisis, diseo, validacin, descripcin de los documentos a generar en cada uno de estos procesos,...

estndares del proceso: definen los procesos a seguir durante el desarrollo

Estndares del producto Formulario para revisin del diseo Estructura del documento de requerimientos Formato del encabezado del procedimiento Estilo de programacin en Java Formato del plan del proyecto Forma de peticin de cambios

Estndares del proceso Conducto para la revisin del diseo Sometimiento de documentos a revisiones Proceso de entrega de las versiones Proceso de aprobacin del plan del proyecto Proceso de control del cambio Proceso de registro de las pruebas

SQA: estndares

es necesario evitar la percepcin de los estndares como elementos burocrticos e irrelevantes

involucracin de los ingenieros de software en el desarrollo de los estndares del producto; inclusin del por qu de las decisiones en el documento de estndares

evitar la aplicacin rigurosa y fundamentalista de los estndares del proceso

revisin y modificaciones regulares para reflejar cambios en las tecnologas y las circunstancias utilizacin de herramientas para simplificar la aplicacin de los estndares

comprensin de los motivos de los estndares compromiso con su desarrollo y utilizacin

el administrador puede cambiar los estndares del proceso segn las circunstancias del proyecto colaboracin entre administrador de proyecto y administrador de SQA para definir la forma de aplicar los estndares en cada proyecto

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

estndares del documento:


estndares para el intercambio de documentos:


Proceso formal de produccin de un documento

SQA: estndares de documentacin


Crear borrador inicial Revisar borrador Incorporar comentarios a la revisin Rehacer documento borrador

Etapa 1: creacin
Documento aprobado

Corregir texto Etapa 2: refinamiento

Producir borrador final

Comprobar borrador final

Documento aprobado

Arreglar texto

Revisar arreglos

Producir patrones de impresin

Imprimir copias

Etapa 3: produccin

fuente: I. Sommerville, Ingeniera de Software, Pearson 2002

SQA: estndares de documentacin

ejemplos:
estndares de identificacin de documentos: cada documento debe identificarse de forma nica
documentos formales: identificador formal definido por el administrador de la configuracin documentos informales: identificador definido por el administrador del proyecto

estndares de la estructura del documento: secciones, numeracin de pginas, encabezados, informacin de pies de pgina, numeracin de secciones,... estndares de presentacin de documentos: tipos de letra y estilos, logotipos y nombres de la compaa, utilizacin del color,... estndares para actualizar los documentos: utilizacin de una forma consistente para indicar los cambios en el documento (colores en la portada para indicar nuevas versiones, utilizacin de los mrgenes para indicar prrafos modificados o agregados,...)

Ejemplo: estructura de documento de la ESA


Documento de Requerimientos de Usuario
1. Introduction
a) Objetivo del documento b) mbito del software c) Definiciones, acrnimos y abreviaciones d) Referencias e) Resumen del documento

2. Descripcin general
a) Perspectiva del producto b) Capacidades generales c) Restricciones generales d) Caractersticas de usuario e) Entorno operativo f) Supuestos y dependencias

3. Requerimientos especficos
a) Requerimientos de capacidad b) Requerimientos de restricciones

Ejemplo: plantilla de formulario de la ESA


SOFTWARE CHANGE REQUEST SCR NO DATE ORIGINATOR RELATED SPRs 1. SOFTWARE ITEM TITLE: 2. SOFTWARE ITEM VERSION/RELEASE NUMBER 3. PRIORITY: CRITICAL / URGENT / ROUTINE (underline choice) 4. CHANGES REQUIRED:

5. RESPONSIBLE STAFF: 6. ESTIMATED START DATE, END DATE AND MANPOWER EFFORT 7. ATTACHMENTS: 8. REVIEW DECISION: CLOSE / UPDATE / ACTION / REJECT (underline choice)

Ejemplo: plantilla de formulario de la ESA


DOCUMENT CHANGE RECORD DCR NO DATE

ORIGINATOR
APPROVED BY 1. DOCUMENT TITLE: 2. DOCUMENT REFERENCE NUMBER:

3. DOCUMENT ISSUE/REVISION NUMBER:


4. PAGE 5. PARAGRAPH 6. REASON FOR CHANGE

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

software: existe relacin, pero menos directa


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


Se revisa UN producto (especificacin, mdulo, listado,...) Poca gente, preparacin y duracin breves

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

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%.

revisiones tcnicas formales

ejemplo:
Errores encontrados Nmero 22 36 15 3

Coste unitario 1,5 6,5 15,0 67,0

Total

Llevando a cabo revisiones


Durante el diseo Antes de la prueba Durante la prueba Tras la distribucin

33 234 315 201

783
Sin revisiones
Antes de la prueba
Durante la prueba Tras la distribucin

22 82

6,5 15,0

143 1230

12

67,0

804

2177

Diseo preliminar 0

revisiones tcnicas formales


Diseo detallado 6 37 4x1,5 0% 27x3 20% Codificacin/prueba de unidad 10 94 6 10 0 0% 4

SIN REVISIONES

10
Prueba integracin 94 0

25
Prueba de validacin

25

Prueba sistema 24

47 0 0 50% 0 0 50%

0 0

50%

12

Diseo preliminar 2 0 3 0 10 70% 1

Diseo detallado 5 2 15 1x1,5 25 50% 10

Codificacin/prueba de unidad 5 10x3 25 60% 24

CON REVISIONES

Prueba integracin 24 0 12 0 0 50%

Prueba de validacin

Prueba sistema

6 0 0 50%

0 0

50%

revisiones tcnicas formales


DOCUMENTOS GENERADOS LISTA DE SUCESOS DE REVISIN INFORME SUMARIO DE REVISIN

Directrices de la revisin:
Revisin del producto, no del productor Fijar una agenda y mantenerla Limitacin del debate e impugnaciones No se resuelve el problema, slo se identifica Limitar el nmero de participantes Desarrollar una lista de comprobaciones Destinar recursos y agenda para las RTF en la planificacin Entrenamiento de los revisores Repaso de revisiones anteriores

Comprobaciones en la revisin
Anlisis: seguimiento de requisitos del sistema, consistencia y correccin de la representacin. Diseo: revisin de la arquitectura e inspeccin del diseo procedimental Codificacin: traduccin correcta del diseo al cdigo, errores mecanogrficos, estndares de codificacin, comentarios,... Prueba: validacin del plan o procedimiento de prueba que se haya establecido Mantenimiento: consideracin de las consecuencias del cambio, documentacin del mismo, aceptacin final del cambio

RTF: ejemplo de informe sumario


Identificacin del producto Material revisado: Diseo detallado. Mdulos de control de movimiento Productor: Juan Prez Breve descripcin: tres mdulos para el control de movimiento en los ejes x, y,z Material revisado: 1. 2.

Identificacin de la revisin Proyecto: Controlador del CM en tiempo real Nmero revisin: D-004 Fecha: 11/07/95 Lugar: Edif. 4, Desp. 3 Hora: 10:00AM

Descripciones del diseo procedimental: mdulos MOVIMX, MOVIMY, MOVIMZ Codificacin de los mdulos

Equipo de revisin
Nombre 1. M. Prez Prez 2. J. Garca Conde 3. E. Snchez Aprobacin del producto Firma _______________ _______________ _______________

Aceptado: como est ( ) con modificaciones menores ( x) No aceptado: revisin principal ( ) revisin secundaria ( ) Revisin no terminada (explicacin a continuacin)
Material adicional adjuntado Lista de sucesos (X) Otros (especificar) Materiales de produccin anotados (X)

RTF: ejemplo de lista de sucesos


Nmero revisin: D-004 Fecha: 11/07/95 Jefe de revisin: M. Prez Prez Lista de sucesos 1. Los prlogos de los mdulos MOVIMX, MOVIMZ no son consistentes con los estndares de diseo. Se debe establecer explcitamente el propsito del mdulo y se debe especificar la declaracin de los elementos de datos.

2.

El contador de bucle para la interpolacin de los ejes X, Y, Z se incrementa una vez ms de lo necesario para el control de paso del motor. El equipo de revisin recomienda otra comprobacin de las especificaciones de paso del motor y la correccin (como sea preciso) del contador de bucle.
Error de tipo en la referencia a la posicin actual en X, X.POSICIN, en los mdulos MOVIMX y MOVIMZ. Se debe ampliar una sentencia de seudocdigo. La sentencia converger a posicin de control adecuada como en MOVIMX contenida en los mdulos MOVIMY y MOVIMZ debe ser ampliada para los controles especficos de movimiento en Y y Z. El equipo de revisin recomienda una modificacin del algoritmo de comparacin de posicin para mejorar el rendimiento en tiempo de ejecucin. El diseador tiene sus reservas sobre las modificaciones y analizar el posible impacto antes de implementar los cambios.

3. 4.

5.

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
Complejidad ciclomtica Fiabilidad Tamao del programa en lneas de cdigo Portabilidad Nmero de mensajes de error

Proceso de software

Producto de software

Mtricas de control

Mtricas de prediccin

Usabilidad

Decisiones administrativas Extensin del manual de usuario

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

Principales iniciativas:

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

Bootstrap:

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.

modelos de calidad: ISO 9000

ISO 9000: estndar internacional que se utiliza en el desarrollo de sistemas de administracin de calidad en todas las industrias
conjunto de estndares que se aplican a una gran variedad de organizaciones (fabricacin, servicios,...)
ISO 9001: el estndar ms general, aplicable a las organizaciones interesadas en el proceso de calidad del diseo, desarrollo y mantenimiento de productos ISO 9000-3: documento de ayuda que interpreta a ISO9000 para el desarrollo de software

modelo genrico de un proceso de calidad describe varios aspectos de ese proceso y define qu estndares y procedimientos deben existir dentro de una organizacin organizaciones nacionales que certifican que los procesos de calidad de una empresa se ajustan a ISO9001

modelos de calidad: ISO 9000


Modelos de calidad ISO 9000
instanciado como

Manual de calidad de la organizacin

documentos

Proceso de la calidad de la organizacin


instanciado como

se utiliza para desarrollar

Plan de calidad del proyecto 1

Plan de calidad del proyecto 2

Plan de calidad del proyecto 3

Administracin de la calidad del proyecto

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.

modelos de calidad: ISO9000


ISO 9001

Estndar aplicable a la Ingeniera del Software 20 requisitos de un sistema de garanta de calidad efectiva:

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. estructura organizativa procedimientos procesos y recursos para implantar la planificacin de la calidad control de calidad garanta de calidad mejora de la calidad

ISO9000 describe los elementos de un sistema de garanta de 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.

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 desarrolol 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. INICIAL REPETIBLE

Proceso mejora continua GESTIONADO

OPTIMIZADO

DEFINIDO

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.

bibliografa

Sommerville, I. Ingeniera de Software, cap. 24 Pressman, R.S. Ingeniera del Software. Un enfoque prctico, cap. 8