Necesidades de medición en la gestión y el aseguramiento de calidad del software
(14-1-1999)
Luis Fernández Sanz, Universidad Europea de Madrid
Miren Idoia Alarcón Rodríguez, Universidad Autónoma de Madrid
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) cuenta con dos 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 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 clientes.
- El nivel de proyecto, donde las guías que la infraestructura organizativa prevé para las distintas actividades de desarrollo y mantenimiento de software deben ser adaptadas a las características concretas del proyecto y de su entorno para ser aplicadas en la práctica.
Calidad al nivel de organización
Dentro del primer nivel de acción, 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 ha seguido la línea marcada por las entidades internacionales de estandarización para todas las organizaciones de producción o servicios. Principalmente, se ha impuesto en la práctica las directrices marcadas por ISO (Organization for International Standarization) a través de su serie de normas ISO 9000 para la gestión de calidad. En el caso del software es principalmente aplicable la norma ISO 9001 [ISO, 1994a], aunque en los últimos años se está incrementando el número de organizaciones de este sector adheridas a la norma ISO 9002 [ISO, 1994b], 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 [ISO, 1997]. En esta línea de trabajo, se trabaja bajo el supuesto principal no tanto de asegurar a los clientes directamente la calidad de los productos sino de trabajar en la calidad del proceso empleado en su producción como medio indirecto de asegurar un buen nivel de calidad en los productos.
- Por otra parte, el mundo del software ha creado su propio línea 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 o de su entorno como de otros ámbitos (por ejemplo, europeos) [Calvo y Fernández, 1996]. La última aportación en esta línea de trabajo es el modelo SPICE [UNE 15504, 1994], estandarizado por ISO y que pretende ser el modelo de software que recoja las ideas tanto de los modelos de software (tipo CMM y similares) como de la línea marcada por ISO 9001.
Dentro de este nivel de actuación, el análisis de las necesidades de medición tiene una doble vertiente:
- 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, desde el punto de vista teórico y práctico, de las mediciones efectuadas sobre 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 procesos determinado. Así, en el caso de ISO 9001 (mediante ISO 9000-3) 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 publicaciones [Fenton y Pfleeger, 1997, pp. 88-94 y 470] que han preparado directrices de medición para cada uno de los niveles de madurez de proceso del modelo en función de sus características generales de aseguramiento de calidad. Bajo esta perspectiva, habría que estudiar los requisitos de medición que supone la adopción de cualquiera de los modelos citados (tanto en el esquema propuesto por ISO como en el de los modelos de procesos de software).
Calidad al nivel de proyecto
En cada proyecto de desarrollo, el aseguramiento de la calidad del software supone la aplicación de las guías de proceso marcadas por 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 y estándares preceptivos. 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 auditoría), 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. Desde este punto de vista, cabe destacar dos importantes líneas de trabajo sobre medición:
- Por una parte, el concepto de calidad es demasiado complejo como para poder ser evaluado o medido mediante una única medida. La norma UNE-EN ISO 8402 [AENOR, 1995] define el aseguramiento de la calidad (AC) como "el conjunto de acciones planificadas y sistemáticas implantadas dentro del sistema de calidad, y demostrables si es necesario, para proporcionar la confianza adecuada de que una entidad cumplirá los requisitos para la calidad". Estos requisitos deben reflejar totalmente las necesidades y expectativas del usuario. En definitiva, el AC debe recoger el conjunto de acciones necesarias para asegurar que el cliente recibe el producto software acordado y, por tanto, queda satisfecho. Cada vez más se está asociando el concepto de calidad a la satisfacción del usuario y este hecho supone una mayor complejidad y ambigüedad en la obtención de mediciones reales y fiables de la calidad del software. En cualquier caso, se reconoce comúnmente que la idea de calidad varía de un cliente a otro, de un proyecto a otro. De hecho, uno de los campos en los que más se ha trabajado es en la utilización de modelos de evaluación de calidad de software que tratan de aportar un medio para definir y descomponer el concepto de calidad de software en características más sencillas de evaluar y medir. Así, podemos encontrar modelos de evaluación generales como el FCM (Factores/Criterios/Métricas) [McCall et al., 1977], métodos para crear modelos propios en cada proyecto como COQUAMO [Kitchenham y Walker, 1989] o el de Gilb [Gilb, 1987] e, incluso, estándares que abordan esta cuestión como ISO 9126 [ISO 9126, 1991] o IEEE 1061 [IEEE 1061, 1992]. En este campo, sería necesario trabajar en el análisis de la adecuación, tanto teórica como práctica, de este tipo de modelos y métodos para evaluar la calidad y en su aplicación en la práctica de proyectos.
- Por otra parte, se han propuesto multitud de mediciones, principalmente de productos, que proclaman su utilidad para evaluar la calidad del software, o alguna de sus facetas. En este caso, el trabajo debería centrarse en analizar cada una de las propuestas (tanto teóricamente como en la práctica), 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.
Referencias
[AENOR, 1995] AENOR, UNE-EN-ISO 8402 Gestión de la calidad y aseguramiento de calidad.Vocabulario (ISO 8402:1994), AENOR, 1995
[Calvo y Fernández, 1996] Calvo-Manzano, J.A. y Fernández, L., "Hacia la calidad del software a través de la mejora de procesos", Novatica, nº 123, 1996, pp. 35-42.
[Fenton y Pfleeger, 1997] Fenton, N.E. y Pfleeger, S.L., Software Metrics, A rigorous approach; Chapman&Hall, 1997.
[Gilb, 1987] Gilb, T, Principles of Software Engineering Management; Addison Wesley, 1987.
[IEEE 1061, 1992] IEEE, IEEE Std 1061-1992. Standard for a software quality metrics methodology, IEEE, 1992.
[IEEE 1074, 1995] IEEE, IEEE Std-1995, Standard for developing software life cycle processes, IEEE, 1995.
[Kitchenham y Walker, 1989] Kitchenham, B.A. y Walker, J.G., "A quantitative approach to monitoring software development", Software Engineering Journal, vol. 4, nº 1, 1989, pp. 2-13.
[ISO 9126, 1991] ISO, Software product evaluation. Quality characteristics and guidelines for their use, ISO, 1991.
[ISO, 1994a] ISO, ISO 9001:1994. Quality systems -- Model for quality assurance in design, development, production, installation and servicing, ISO, 1994.
[ISO, 1994b] ISO, ISO 9002:1994. Quality systems -- Model for quality assurance in production, installation and servicing, ISO, 1994. [ISO 9000-3, 1997] ISO, Part 3: Guidelines for the application of ISO 9001:1994 to the development, supply, install and maintenance of computer software, ISO, 1997.
[ISO, 1998] ISO, ISO 15504-1: 1998 Software process assessment. Part-1: Concept and introductory guides, ISO, 1998.
[McCall et al., 1977] McCall J A, Richards PK y Walters GF; Factors in software quality, Vols I,II,III; US Rome Air Development Center Reports NTIS AD/A-049 014, 015, 055, 1977.