You are on page 1of 11

Noviembre 2013

La Calidad del Producto Software

Jess Hernando Corrochano.


El Corte Ingls - Sistemas de
Informacin (Grupo de Ingeniera
de Software).
Profesor en el Departamento
de Informtica de la Universidad
Carlos III de Madrid.

El concepto de Calidad asociado al desarrollo software, est ligado al mismo desde


sus orgenes. Desafortunadamente, se construyen proyectos y productos que no
alcanzan los mnimos de calidad esperado, incluso los costes de no calidad, la
deuda tcnica, inducen a la no finalizacin con xito de los mismos. Planificamos
el desarrollo de productos en base a una metodologa o un marco de trabajo,
siguiendo un proceso definido y obviando actividades asociadas a la calidad.
A menudo confundimos la calidad del proceso con la calidad del producto, lo que
conlleva falsas expectativas en el desarrollo del software. Incluso en muchas
organizaciones no existe una mentalizacin real por la calidad del producto, sino
que prima la puesta en servicio sobre la calidad del mismo; y lo que es peor, no
cuentan con un proceso de V&V (verificacin y validacin) definido y obviamente
no implantado.
La calidad es innegociable: es una parte inherente e inseparable del producto. Las
organizaciones deben tener un proceso definido e implantado de V&V; sin hitos,
sin barreras, que sea proactivo y, en la medida de lo posible, automatizado dentro
de su cadena productiva.

La calidad del producto


es una ventaja inherente,
consubstancial, y
connatural frente a la
competencia.

La Calidad del Producto es una ventaja inherente, consubstancial, y connatural


frente a la Competencia: no la obviemos.
A da de hoy los modelos de negocio de nuestras organizaciones estn sustentados
por productos software. Las empresas pretenden diferenciarse de sus competidores
basndose en la calidad de los productos que ofrecen a sus clientes. Cuando nos
referimos a Calidad Software, subyacentemente nos referimos a cuatro tipos de
calidad:
1. La del Proceso
2. La del Producto
3. La de las Personas/Equipos.
4. La del Servicio

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

Diferenciamos claramente la calidad del Producto, Proceso y la del Servicio.


Las principales iniciativas, se centran en Proceso (CMMi, ISO/IEC 12207, ISO
15504-SPICE), y las de Servicio (ISO 2000). Nos referiremos al Producto en s,
obviaremos lo relativo a Proceso y Servicio.

Un Producto no es slo la implementacin software, escrito en un determinado


lenguaje de programacin, de un conjunto de funcionalidades, claras y explicitas,
que permiten establecer un proceso de negocio en nuestras Compaas, con el
fin de crear valor. Todo aquel activo generado en la Cadena de Valor, en aras a la
generacin de un activo software, forma parte inherente del mismo. A este pool de
assets lo denominamos producto.
La calidad es una cualidad esencial de cualquier producto generado por una
organizacin, que va a ser usado por otros. Es por ello que una de las actividades
principales de la elaboracin de un producto, es el aseguramiento de la calidad:
Plan de Aseguramiento de la Calidad del Producto (SQAP). Al igual que el conjunto
de requisitos que establecen las funcionalidades y los lmites del producto,
el SQAP describe los umbrales de calidad asociados al producto, y marca los
axiomas/lmites de aceptacin para su traspaso a Servicio Continuo. Es obvio
que stos dependen, en gran medida, del objetivo final del producto y del software
del mismo: software de sistemas, tiempo real, gestin, ingeniera y cientfico,
inteligencia artificial,..etc. El software, debe ser entendido como producto y como
servicio; y, por ende, es fundamental el aseguramiento de la generacin de
Productos de Calidad, previo paso a transicin a servicio continuo.

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

Por ende, cuando hablamos de Calidad del Software, no slo nos estamos
refiriendo al software en s; nos referimos a la calidad de todos los elementos que
se construyen a lo largo del ciclo de vida de un proyecto: ingeniera de requisitos,
diseo, arquitectura, documentos de despliegue, desarrollo, plan de pruebas,
todo lo relativo al producto.
La Calidad hemos de entenderla, tambin, como la suma de todos aquellos
aspectos o caractersticas de un producto o servicio, que influyen en su capacidad
para satisfacer las necesidades de los usuarios. La satisfaccin del usuario est
determinada por la diferencia entre la calidad percibida y la calidad esperada,
cuando ste hace uso de un producto o servicio.
Algunas definiciones relevantes de Calidad del Software:

La concordancia con los requisitos funcionales y de rendimiento explcitamente


establecidos, con los estndares y procesos de desarrollo explcitamente
documentados, y con las caractersticas implcitas que se espera de todo
software desarrollado profesionalmente [Roger S. Pressman (Software
Engineering: A PractitionersApproach. McGraw-Hill].

El conjunto de caractersticas de una entidad que le confieren su aptitud para


satisfacer las necesidades expresadas y las implcitas (ISO 8402 (UNE
66- 001- 92)).

La calidad del software no es algo en lo que se empieza a pensar una vez que se
ha generado el cdigo. Segn R Pressman (Software Engineering: A Practitioners
Approach. McGraw-Hill), el Aseguramiento de la Calidad es una actividad de
proteccin que se aplica a lo largo de todo el proceso de ingeniera software y
engloba:
1. Un enfoque de gestin de la calidad.
2. Tecnologa de ingeniera del software o del conocimiento efectiva

(mtodos y herramientas).
3. Revisiones tcnicas formales que se aplican durante cada paso de la

ingeniera del software o del conocimiento. Apoyado en una estrategia

de pruebas por niveles.
4. Procesos de gestin de la configuracin. El control de la documentacin

del software y de los cambios realizados.
5. Un procedimiento que asegure un ajuste a los estndares de desarrollo

del software (cuando sea posible).
6. Mecanismos de medicin y de informacin.

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

As, se debe garantizar la calidad de cada uno de los subproductos del Desarrollo;
y, con ello, que los aplicativos cumplen con los requisitos especificados por el
Usuario, y que pueden ser puestos en operacin, para funcionar de acuerdo a lo
esperado, de manera correcta y eficiente, sin afectar los sistemas que actualmente
estn en operacin.
Algunos de los factores que determinan la calidad del software, segn J. Mc Call, P.
Richards y G. Walters (Factors in Software Quality. Rome Air Development Center,
United States Air Force) y R. Grady y D. Caswell (Software Metrics: Establishing
a Company-WideProgram. Prentice Hall) son, entre otros, correccin, fiabilidad,
eficiencia, integridad, facilidad de uso, facilidad de mantenimiento, flexibilidad,
facilidad de prueba, portabilidad, reusabilidad, tolerancia de errores, modularidad,
facilidad de operacin, facilidad de traza, facilidad de expansin, consistencia,
diseo, independencia del sistema de software, eficiencia en la ejecucin,
estandarizacin en los datos,
El control de la calidad del producto software es an ms relevante, teniendo
presente que las grandes organizaciones, a da de hoy, implantan dentro de
sus Ciclos de Vida de desarrollo, modelos de outsourcing y/o outtasking; y que,
desafortunadamente, estamos de acuerdo con que Hay poca evidencia de que
cumplir un modelo de procesos asegure la calidad del producto [Kitchenham
y Pfleeger, 1996]; y yendo ms lejos, que nuestra experiencia postula que la
estandarizacin de los procesos garantiza uniformidad en la salida, lo que puede
incluso institucionalizar la creacin de malos productos.

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

En un alto porcentaje, el software que se produce tiene deficiencias de calidad, lo


que supone importantes perjuicios a clientes y usuarios y menoscaba la confianza
que se tiene en los proveedores y desarrolladores de Productos.
As, debemos ir a un modelo orientado al producto, no al proyecto; basado en
una calidad concertada, que contemple pruebas de calidad en todo el ciclo de
desarrollo. Entendiendo por calidad concertada el compromiso de entrega del
desarrollo de un producto, con el cumplimiento estricto de lo descrito en el plan
de aseguramiento de la calidad del mismo, SQAP, con las evidencias que se
consideren necesarias, pasadas por exhaustivos planes de pruebas por parte del
proveedor. No se puede esperar a que el producto est acabado, para verificar
que funciona.
Es importante, mentalizar a nuestras organizaciones que La calidad es ms que
un producto funcionando. Los principales elementos del paradigma de la calidad
son los siguientes:

La Calidad es ms que un
producto funcionando

La naturaleza de la calidad: orientacin a los aspectos o caractersticas


de un producto o servicio que influyan en su capacidad para satisfacer
necesidades dadas, ms que a la adecuacin a estndares o a especificaciones
preestablecidas.

Orientacin a datos: basado en la recoleccin, anlisis y comparacin de


datos.

Focalizacin en el cliente o usuario: la obtencin de la satisfaccin del


cliente o usuario es el objetivo final de todo proceso.

Eliminacin de defectos: disminucin de coste de no calidad. Proactivo-


No Reactivo.

Gestin para la calidad: la adopcin del paradigma requiere del compromiso


de la alta direccin.

La realidad es que la Ingeniera de Software y la industria relacionada, centrada


o no en ISO 9126/25000; no han evolucionado mucho en la implantacin de un
control eficaz de la calidad de los productos.

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

Debemos catalogar nuestros activos de productos y definir clara y concisamente


el plan de aseguramiento de la calidad (SQAP) de cada uno de ellos. Este debe
ser conocido y compartido con todos y cada uno de los participantes en el ciclo de
vida de desarrollo, bien sea dentro o fuera de nuestra organizacin.
El Plan de Certificacin de un producto (aseguramiento de que el mismo cumple
con lo establecido en su SQAP), debe estar alineado con cuatro pilares bsicos
de un entorno de desarrollo software: arquitecturas y tecnologas en las que se
basan, herramientas de desarrollo y de apoyo al mismo, metodologa a seguir,
y el Plan de Aseguramiento de la Calidad con el que se medir la calidad de
los proyectos y de los productos (cada conjunto de proyectos que den lugar a
un nuevo producto o a un evolutivo de uno existente, tomar como referencia el
SQAP).
En la definicin del Plan de Aseguramiento de la Calidad, se establecern:

Definicin de perfiles.
Definicin de las responsabilidades asociadas a cada perfil.



Definicin de los procedimientos de aseguramiento de la calidad de acuerdo


a las implementaciones de herramientas, metodologa, y arquitecturas;
as como de las tipologas de proyectos que se utilizarn, y del uso de
las mejores prcticas de los estndares de modelos de calidad.

Seguir, un modelo de Verificacin y Validacin Independientes (IV&V


- Independent Verification and Validation), es decir, cubrir tanto los activos
no software (requisitos, diseo, planes de pruebas, etc.), como los activos
software (pruebas unitarias, de integracin, funcionales, de calidad de

cdigo, de seguridad, etc.).



Los sistemas de informacin


son estrtegias en cualquier
organizacin porque
impactan de forma crtica
en el negocio.

- Pruebas de verificacin: orientadas a garantizar la calidad de


todos los assets no software generado en la vida del proyecto y
que forman parte inseparable del Producto.

- Pruebas de validacin: orientadas a garantizar la calidad todos



los assets software generado en la vida del proyecto y que forman

parte inseparable del Producto.
La funcin de aseguramiento de la calidad del software se debe basar en un
planificado y sistemtico diseo de acciones y mtodos, requeridos para garantizar
la calidad del mismo. Analizar el producto desde diversos puntos de vista,
respondiendo a algunas de estas preguntas:
Satisface el software, de forma adecuada los principales factores de calidad
explcitamente descritos en su SQAP?

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

Se ha realizado el desarrollo del software de acuerdo con estndares


preestablecidos: normativas establecidas?

Se han aplicado las tcnicas y mtodos apropiados para el desarrollo


del software?

Es posible su paso a servicio continuo, tanto desde el punto de implementacin


de los requisitos, rendimiento, estabilidad, usabilidad, performance; sin poner
en riesgo, tanto la imagen corporativa, como el resto de aplicaciones que
utiliza y comparten entorno?

La aparicin de la nueva familia de normas ISO/IEC 25000 - SQuaRE (Software


Product Quality Requirements and Evaluation) - establece un marco de trabajo
comn para evaluar la calidad del producto software.
Gua el proceso en base a subcaractersticas, denotadas en la siguiente imagen:

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

Es importante indicar que la familia incluye, al margen del modelo de Calidad del
Producto, la definicin de un proceso para llevar a cabo la evaluacin del producto
software (Norma ISO/IEC 25040).
As, consideremos imprescindible una gestin unificada de los distintos niveles de
pruebas, de manera que todos los resultados se recojan en un informe ejecutivo
que certifique la calidad global del producto; y, por ende, en las organizaciones
deberamos disponer de un grupo de Quality Assurance (QA), el cual, tomando
como base el SQAP del producto y SQuaRE, certifique la Calidad del Producto
previo paso a Servicio Continuo. Especialmente importante, por la evolucin
constante de las nuevas tecnologas, nuevos canales de comunicacin y el
constante cambio de los mercados, que hacen que se multiplique la complejidad
del desarrollo, as como por los procesos de externalizacin de servicios; es
el time-to-market y la generacin constante de valor, donde ganan terreno los
modelos de desarrollo giles y la externalizacin de servicios.
El objetivo principal del grupo de Quality Assurance, es garantizar la Calidad del
Producto Software as como los subproductos necesarios para su evolucin en la
vida de ste.

Certificar la calidad de las productos aplicando un Plan de Aseguramiento


de la Calidad (SQAP).

Entregar productos estables y validadas.

Controlar la calidad de los entregables de los servicios de factoras y


departamentos de desarrollo.

Obtener informes y estadsticas de calidad para monitorizar el proceso.

Asegurar:

- Que el producto software cumple con los requisitos especificados



por el usuario.

atsistemas.com

- Que el producto funcionar de acuerdo a lo esperado de manera


correcta y eficiente.

- Que la operacin del producto no afectar al resto de sistemas


existentes.

- Que la evolucin del producto a lo largo su vida ser viable y


sencilla garantizando la calidad de toda la informacin tcnica
necesaria para su evolucin.

I Jornada sobre
Calidad del
Producto Software

Todas estas actividades V&V (Validacin y Verificacin) deberan estar integradas


dentro de un proceso proactivo, eliminando y/o minimizando los costes de no
calidad, sin hitos, ni barreras, integrado en el ciclo de vida de desarrollo. As
hablamos de automatizacin del Ciclo de Vida de Desarrollo (Plataforma de
Integracin Continua (IC), Orientada a la Calidad del Software):

Ingeniera Concurrente: control continuo del cdigo

Costes de no calidad: anlisis de la situacin en etapas tempranas

No hitos, no barreras, proactividad


Estandarizacin de los modelos

Ejecucin dinmica de pruebas

Gestin del compilado, empaquetado y despliegue

Gestin Integrada del Ciclo de Pruebas

En esta lnea, la competitividad, calidad y el time-to-market, conducen a las


organizaciones a disponer de un proceso de entrega de valor constante al
negocio, es decir, un proceso de Continuous Delivery (CD) apoyado en el proceso
de Integracin Continua, donde el control de la calidad de manera automatizada
cobra, an si cabe, ms relevancia.

atsistemas.com

I Jornada sobre
Calidad del
Producto Software

El control de la calidad de nuestros productos constituye, pues, uno de los pilares


de la industrializacin de la generacin de soluciones y entrega de valor a nuestro
negocio. Es obvio que, en cualquier desarrollo, pero an ms en el mundo gil;
la disponibilidad de los entornos debe ser inmediata, provisioning /virtualizacin /
cloud computing son objeto de estudio y posicionamiento de los departamentos
de ingeniera de software de las compaas.
En un futuro, a corto y medio plazo, la externalizacin de los servicios de las
compaas a terceros, as como el teletrabajo y composicin de equipos dispersos
geogrficamente; abogan e inducen a las compaas a disponer plataformas ALM
(Application Lifecycle Management) que industrialice y automatice partes de sus
actividades de desarrollo. Las organizaciones deberan establecer el siguiente
plan estratgico:
Visin producto frente a proyectos

Diferenciacin de modelos de calidad de proceso, producto y servicio

Establecimiento del proceso del SQAP y la familia SQuaRE

Disponer de una plataforma de Integracin Continua

Constitucin del grupo de QA: certificacin de productos

Servicios y modelos de externalizacin: a corto, medio y largo plazo

Continuous Delivery: reduccin del time-to-market

Todo ello, sustentado bajo el pensamiento Lean y la mejora continua.


De manera paralela, las organizaciones deben tener definido e implantado
los procesos de Gestin del Cambio, Gestin del Despliegue y Gestin de la
Configuracin (ISO 20000) en aras a favorecer la transicin a servicio continuo.
Para conseguir este fin, la comunicacin, integracin y colaboracin entre los
grupos de desarrollo de productos software y el entorno de las operaciones,
transciende a los silos tcnicos, y requiere la medicin continua y los objetivos de
equipo: DevOps.

atsistemas.com

atSistemas es una compaa de consultora, servicios de IT y desarrollo de software.


Con un crecimiento sostenido desde su fundacin en 1994 y una plantilla que supera
los 450 empleados, los servicios de atSistemas se caracterizan por la flexibilidad y
la agilidad, lo que nos permite ayudar a grandes empresas de todos los sectores,
aportando conocimiento y experiencia sobre el ms amplio abanico de tecnologas.
Nuestra cartera de clientes incluye ms de 200 de las principales empresas del pas,
con representacin de todos los sectores de actividad, a los que prestamos servicio
desde nuestras oficinas de Madrid, Barcelona, Cdiz y Zaragoza.
Nuestro portfolio de servicios abarca desde el desarrollo de software a medida hasta la
integracin de grandes soluciones de software empresarial, en reas que van desde
la ms compleja arquitectura de sistemas hasta las soluciones ms novedosas de
comercio electrnico o aplicaciones mviles.

Valle de Alcudia, 3
28230 Las Rozas, Madrid
+34 91 640 76 20
Passeig de Grcia 55, 8 - 4
08007 Barcelona
+34 93 209 66 61

atsistemas.com

info@atsistemas.com

You might also like