Gestión de la Calidad del Software
La gestión de la
Calidad se puede entender como el conjunto de actividades y medios necesarios
para definir e implantar un sistema de la calidad, por una parte, y responsabilizarse
de su control, aseguramiento y mejora continua, por otra. En este sentido,
la gestión de la calidad en cualquier organización (y, por supuesto, en las
dedicadas al desarrollo y mantenimiento de software) centrándonos en los dos
siguientes niveles de trabajo:
- El nivel de entidad u organización,
donde se trata de crear y gestionar una infraestructura que fomente la Calidad
de los productos de software mediante la adecuación y mejora de las actividades
y procesos involucrados en su producción e, incluso, en su comercialización
y en la interacción con los usuarios / clientes.
- El nivel de proyecto, donde
los estándares que la infraestructura organizativa prevé para las distintas
actividades de desarrollo y mantenimiento de software. Estos estándares
deben ser adaptados a las características concretas del proyecto y de su
entorno para ser aplicados en proyectos del mundo real.
Calidad al nivel de organización
Dentro del primer
nivel mencionado, la gestión de la calidad en organizaciones de software ha
seguido dos líneas que pueden ser complementarias entre sí.
Por una parte, se
propone aportar para la consolidación de la implantación, en el medio productivo
de nuestro país, de las propuestas que se formulen por parte de entidades
internacionales de estandarización para todas las organizaciones de producción
o servicios. Principalmente, se ha impuesto en la práctica los estándares
ISO (Organization for International Standardization) a través de su serie
de normas ISO 9000 para la gestión de calidad. En nuestro país la adopción
de los estándares ISO por parte de la industria del software, está en estado
embrionario.
En el caso del software
es principalmente aplicable la norma ISO 9001, aunque en los últimos años
se está incrementando el número de organizaciones de este sector adheridas
a la norma ISO 9002, en buena parte debido a que es más fácil conseguir certificación
por esta norma, dejando a un lado cumplir los apartados sobre diseño (aunque
se realice diseño).
Debido a que el sector
del software difiere por la naturaleza del producto tanto del resto de sectores
productivos, ha sido necesario crear una guía específica para su aplicación
a este sector: el anexo ISO 9000-3. Lograr que la UNSL sea reconocida internacionalmente
como certificadora de los estándares ISO 9000-3 (software) sería un objetivo
a mediano plazo sumamente seductor.
En este contexto
se trabajará bajo el supuesto de que no es conveniente invertir recursos para
asegurar a los clientes la calidad de los productos sino, fundamentalmente,
se debe trabajar en la calidad del proceso empleado en la producción de software
como medio indirecto, pero muy efectivo, de asegurar un buen nivel de calidad
en los productos.
Por otra parte, el
mundo del software ha creado otras líneas de trabajo en la gestión de la calidad
del software tomando las ideas básicas de la anterior, es decir, trabajar
sobre los procesos de producción de software como medio de asegurar la calidad
del producto software. Así, se comenzó en el SEI (Software Engineering Institute)
de EE.UU. proponiendo un modelo de clasificación y mejora de los procesos
empleados por las organizaciones de software denominado CMM [Paulk et al.,
1993]. Su trabajo se centra en el estudio y clasificación de los distintos
procesos involucrados en la producción de software bajo el enfoque de una
serie de niveles de madurez. Sobre este modelo pionero, se han creado nuevos
modelos que suponen tanto actualizaciones y variantes por parte del propio
SEI. Específicamente el Área Programación y Metodologías propone trabajar
con el SEITI (Software Engineering and Information Technology Institute) de
la Central Michigan University del cual uno de los integrantes del área es
miembro fundador.
Los modelos específicos
de evaluación de procesos de software (como CMM o SPICE) suponen la clasificación
de los mismos mediante análisis subjetivos cuyo resultado suele ser un valor
en una escala ordinal. Bajo esta perspectiva, convendría analizar la adecuación,
para la aplicación en nuestro país, desde el punto de vista teórico y práctico,
de las mediciones efectuadas en los procesos de software.
Tanto ISO 9001 como
los modelos específicos de evaluación de procesos de software suelen dictar
una serie de requisitos de medición que deben cumplir las organizaciones que
quieran acceder a un nivel de calidad de proceso determinado. Así, en el caso
de ISO 9001 (mediante ISO 9000-3 para el caso del software) se indica en uno
de sus apartados la necesidad de realizar mediciones tanto de productos como
de procesos en cada proyecto. En el caso de CMM, no se abordan directamente
las necesidades de medición aunque hay antecedentes en ese sentido. Se está
avanzando para formalizar la medición, en cada uno de los niveles de madurez
de proceso del modelo, en función de sus características generales de aseguramiento
de calidad.
Calidad al nivel de proyecto
En cada proyecto
de desarrollo, el aseguramiento de la calidad del software supone la aplicación
de los estándares de proceso definidos en las disposiciones que, al nivel
de organización, se han establecido, bien sea como un sistema de calidad bien
definido o bien mediante una serie de procedimientos perfectamente definidos.
En cualquier caso,
la medición supone, junto a las actividades de verificación y validación (básicamente,
pruebas de software y actividades de revisión y auditoria), una de las técnicas
principales previstas en los estándares para el control y el aseguramiento
de la calidad [IEEE 1074, 1991]. Desde este punto de vista, la medición puede
contribuir tanto en el control de los procesos y actividades como en el de
los productos, para comprender la situación de los mismos o para controlar
si cumplen los requisitos pedidos o un cierto nivel de calidad.
Por otra parte, existe
una multitud de métodos de medición y de productos orientados a la evaluación
de la calidad del software, o alguna de sus facetas. En este caso, el proyecto
se orientará al análisis comparativo de las propuestas (tanto a nivel conceptual
como en proyectos del mundo real). Este estudio consistirá en evaluar cómo
contribuyen o se pueden usar para el aseguramiento de la calidad en un proyecto
y qué característica miden realmente y si pueden encajar dentro de los anteriormente
mencionados modelos de evaluación de calidad de software y dentro de las actividades
de aseguramiento de calidad.
|