Vous êtes sur la page 1sur 27

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
Es

significa que un producto debe cumplir con sus especificaciones


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


Seguridad Confiabilidad Resistencia Robustez Comprensibilidad Capacidad de prueba Adaptabilidad Modularidad Complejidad Portabilidad Facilidad de uso Reutilizacin Eficiencia Capacidad de aprendizaje

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


actividades de aseguramiento de la calidad (SQA = Aseguramiento de la Calidad del Software ) 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 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 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 Etapa 1: creacin

Revisar borrador

Incorporar comentarios a la revisin

Rehacer documento borrador

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: 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 (RTFs)

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

Ejemplo
Errores encontrados Durante el diseo Nmero 22 Coste unitario 1,5 Total 33 Llevando a cabo revisiones

Antes de la prueba
Durante la prueba Tras la distribucin

36
15 3

6,5
15,0 67,0

234
315 201 783

Sin revisiones Antes de la prueba Durante la prueba Tras la distribucin 22 82 12 6,5 15,0 67,0 143 1230 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 Complejidad ciclomtica Fiabilidad Tamao del programa en lneas de cdigo Portabilidad Mtricas de control Mtricas de prediccin Proceso de software Producto de software

Usabilidad

Nmero de mensajes de error


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

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

Certificacin ISO 9000

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

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 mejora continua GESTIONADO

OPTIMIZADO

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

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.

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