LA MEDIDA DE LA CALIDAD DEL SOFTWARE COMO NECESIDAD Y EXIGENCIA EN MODELOS INTERNACIONALES (CMMi, ISO 15504, ISO 9001)
HERNANDEZ BALLESTEROS, JUAN FRANCISCO; MINGUET MELIÁN, JESÚS MARÍA
Universidad Nacional de Educación a Distancia, Escuela Técnica Superior de Ingeniería Informática. Departamento de Ingeniería del Software y Sistemas Informáticos. C/Juan del Rosal 16. Edificio Interfacultativo. Campus de la Ciudad Universitaria. Código Postal: 28040. Madrid. España. jfhb@cabtfe.es y jminguet@issi.uned.es

RESUMEN
La medida de la calidad del software es una necesidad para las empresas TIC’s. Representa una ventaja estratégica al proporcionar el conocimiento de los procesos productivos y permitir actuar sobre las tareas menos eficientes mejorándolas. 
Se presenta en esta ponencia un primer apartado en el que se recoge la importancia de la obtención de medidas en el proceso de desarrollo, implantación y mantenimiento del software. Muchos autores consideran la medida del software como un factor básico para superar la denominada “crisis de la programación” que presenta “síntomas” bien conocidos por todos: aplicaciones entregadas fuera de plazo, sin cumplir las expectativas del usuario o con graves errores en fase de ejecución.
En un segundo apartado introduciremos brevemente la teoría de la medida propuesta por Norman E. Fenton. Este autor presenta un marco teórico sobre el que sustentar la medida del software. Productos, procesos y recursos son entidades que definen el desarrollo, implantación y mantenimiento de aplicaciones informáticas, la calidad es el atributo cuantificable y  por tanto con capacidad de ser conocido.
Finalmente se estudian los modelos CMMi, ISO 9001:2000 e ISO 15504. El estudio realizado se centra en cómo estos modelos presentan la medida del software, la importancia que le atribuyen y la existencia o no de un marco teórico unificado de la medida de la calidad del software.
INTRODUCCIÓN
Las ciencias empíricas, junto con las diferentes ingenierías, poseen en el proceso de medida una larga tradición y fundamentado conocimiento, alcanzado gracias a siglos de investigación y aportaciones de eminentes científicos. Medir los atributos de aquellas entidades que nos interesan es una actividad imprescindible. La famosa cita de Lord Kelvin puede superar cualquier duda en la necesidad de esta labor. 
"Cuando puedes medir aquello de lo que hablas, y expresarlo en números, tú conoces algo acerca de ello; pero cuando no puedes medirlo, cuando no puedes expresarlo en números, tu conocimiento es insatisfactorio y escaso: podría ser el comienzo del saber, pero apenas has avanzado en tus ideas hacia un estado científico". 
Medir es conocer, y este conocimiento nos permite avanzar sobre bases sólidas. Medir el software, sus atributos, es una necesidad estratégica en el proceso de creación, explotación y mantenimiento de aplicaciones informáticas. Medir la calidad de un producto nos permite no sólo compararlo con el resto de productos que el mercado nos ofrece, nos proporciona valiosa información para mejorarlo y ser más competitivo. Con datos numéricos no sólo conocemos una entidad, podemos estimar atributos futuros permitiendo una adecuada planificación de recursos y ser así más eficiente. Medir es, en definitiva, conocer y el conocimiento nos permite modificar aquellos factores que permiten una mayor eficacia en el proceso productivo obteniendo productos con un nivel de calidad mayor haciendo a las organizaciones más eficientes y permitiendo una ventaja estructural frente a sus competidores.
El objetivo principal de esta contribución es presentar un marco teórico desarrollado por Norma E. Fenton hace una década y estudiar cómo se comportan los modelos propuestos (CMMi, ISO 9001:2000 e ISO 15504) en relación a la medida de la calidad del software. 
LA MEDIDA DEL SOFTWRE: UN MARCO TEÓRICO
El resultado final del proceso creativo humano en la industria tradicional se materializa en un objeto físico, electrodoméstico, aeroplano, automóvil etc. Este concepto desaparece en la ingeniería del software cuyo principal producto es un ente inmaterial, del cual sólo apreciamos sus resultados al ser ejecutado sobre un soporte físico: el ordenador. Este es un hecho de capital importancia que condiciona la concepción de la ingeniería del software. Bajo esta consideración el software no se fabrica, se desarrolla, tal como apunta Pressman, haciendo uso de un proceso secuencial compuesto de diferentes etapas que culmina con la creación del programa informático. Medir cualquier entidad física es complejo y en muchos casos ha requerido de décadas, e incluso siglos de estudio y aportaciones de eminentes científicos, por ello la medida de una entidad tan singular como es el caso de una aplicación informática es una labor difícil que se encuentra en sus comienzos. Existen importantes avances realizados por investigadores y científicos. Sin duda la propuesta de Fenton [6] permite un acercamiento sistemático a la medida del software y sus atributos. El investigador establece un marco teórico sobre la medida de cualquier atributo que sea de interés para el investigador o para el profesional. Según su aportación podemos distinguir tres entidades propias del software:
•	Procesos. Serán aquellas actividades relacionadas con el software que normalmente poseen el parámetro “tiempo” como factor. 
•	Productos. Se  entienden como aquellos servicios, herramientas o documentos derivados de los procesos, entendidos como resultados de éstos.
•	Recursos. Se definen como un conjunto de entidades considerados como entradas para la producción del software.
La tabla 1 permite sintetizar la propuesta de Fenton.
Entidad	Definición	Atributos
Directos          Indirectos	
Proceso	Actividades relacionadas con el software y su desarrollo que poseen el parámetro “tiempo” como factor. Actividades que se realizan durante una parte del tiempo total en cualquier proyecto.	Duración del proceso, esfuerzo, incidencias ocurridas durante cierto proceso.	Calidad, coste estabilidad, facilidad de control, etc.	
Productos	Es cualquier herramienta, servicio o, en general resultado, derivado de los procesos ejecutados. Salida de los mismos.	Documentación:
Longitud ...
Código o diseño:   
Estructuración…	Mantenimiento,
movilidad,
reutilización, etc.	
Recursos	Cualquier tipo de entidad considerada como entrada para la producción del software. Pueden ser de muy diversa naturaleza. Herramientas, métodos, materiales, son ejemplos de recursos.	Edad del personal, salario, velocidad del equipo hardware (entre otros)
	Productividad, experiencia, fiabilidad, capacidad de  reutilización (entre otros)	
Tabla 1.  La medida del software según Norman E. Fenton.

Hemos establecido un marco teórico para la medida del software, y hemos trasladado la importancia de la medida de aplicaciones informáticas, pero ¿realmente las metodologías más importantes consideran la medida como una necesidad o es algo secundario que sólo interesa a estudiosos y teóricos?
NORMAS, MODELOS Y METODOLOGÍAS: LAS EXIGENCIA DE MEDIR
A mediados de la década de los sesenta el desarrollo de programas para ordenador  presentaba serias disfunciones. Pobre calidad en los sistemas, aplicaciones entregadas fuera de plazo y con numerosos errores, elevados costes de mantenimiento, eran hechos que se repetían con demasiada asiduidad [5]. La situación era de tal gravedad que la Organización del Tratado del Atlántico Norte (OTAN) patrocinó en otoño de 1968 una conferencia internacional en Garmisch-Partenkirchen, Alemania, en la que se dieron cita medio centenar de los más afamados estudiosos de la disciplina informática. Esta convención supuso uno de los más importantes hitos en la moderna historia del software. En ella no sólo se reconoció el estado de crisis en el que se encontraba el desarrollo de programas para ordenador, también se aportó la solución. En 1968 se acuñó el concepto de “ingeniería del software” como una nueva disciplina al servicio del desarrollo estructurado y metodológico de los programas informáticos. La unión de estas dos palabras “ingeniería” y “software”, no fue un hecho espontáneo, tal y como reconocieron los propios organizadores.
La implantación de metodologías que permitieran un tratamiento secuencial e ingenieril para desarrollo de programas para ordenador se entendió una necesidad. Resultado de esta realidad ha sido la aparición de numerosos modelos, normas y metodologías cuyo fin es la realización de aplicaciones informáticas bajo el control necesario para su creación en tiempo y forma adecuada. De nuevo aquí se nos presenta la necesidad de control de un proceso productivo obtenido a través de la sistematización de una serie fases o secuencias que permiten su conocimiento y manipulación.
	EL MODELO ISO 15504 (SPICE)
El incremento en el número de modelos y estándares destinados a la valoración y mejora del software y su proceso de desarrollo (CMM, Trillium, Bootstrap, Technology Diagnostic, entre otros) propiciaron, al inicio de la década de los años noventa, el sentimiento generalizado de la necesidad de promover un estándar internacional que armonizara los modelos de referencia existentes. 
El proyecto SPICE, acrónimo de las palabras inglesas Software Process Improvement and Capability Determination, promovido por ISO surgió como un esfuerzo de colaboración internacional que debía materializarse en un nuevo estándar para la valoración del proceso del software. El grupo de trabajo que llevaría a cabo esta labor, denominado WG10, contaría con un equipo central de profesionales con dedicación exclusiva, además de aportaciones de  investigadores, estudiosos y profesionales de más de veinte países.
El proyecto SPICE debía proporcionar el soporte necesario para la elaboración del nuevo estándar. La realización de pruebas de campo sería una labor fundamental de la que se deberían extraer los datos oportunos y derivar los análisis que posibilitarían la mejora del modelo en sus diferentes borradores. La promoción del nuevo modelo y el seguimiento del mismo con objetivo de propiciar su evolución serían otras de las labores encomendadas al grupo de trabajo 10. 
El modelo, a través de una aproximación estructurada, nos permite valorar los procesos software, fomentando la auto-evaluación y ofreciendo un mecanismo por el cual los adquisidores pueden ganar confianza en los resultados de la valoración, de esta forma los datos obtenidos pueden ser utilizados para fines de calificación de los suministradores, permitiendo determinar la capacidad de los proceso, así como su adecuación para cumplir un requisito determinado o una clase de requisitos. El modelo ISO/IEC 15504 también está ideado para determinar la idoneidad de los procesos de otras organizaciones para un contrato determinado o clase de contrato.
Evaluación de los procesos, mejora de los procesos y determinación de la capacidad son los objetivos a alto nivel propuesto por el proyecto SPICE.
	El modelo de referencia se fundamenta en dos dimensiones bien determinadas y complementarias. Una de ellas determina los procesos a ser valorados, definiendo el proceso de vida del software. La otra dimensión presenta una escala para evaluar la capacidad. La escala elegida posee cinco niveles caracterizados por un conjunto de nueve atributos de procesos, que a su vez, son tasados según en grado de cumplimiento de los mismos indicado en tantos por ciento.
Debido a que el modelo de referencia ISO 15504 es un modelo bidimiensional, los conceptos a estudiar en detalle en este apartado (calidad y medida), así como sus posibles relaciones, aparecen en el proceso propio de la organización denominado administración de la calidad, incluida en la dimensión del proceso, y en el nivel 4 en el atributo medida propio de la dimensión de la capacidad. En concreto en la parte 2 del modelo de referencia "Modelo de referencia para procesos y capacidad" aparecen indicaciones directas a la calidad y su aseguramiento, así como a su medida, tal como demuestra la siguiente cita [7].
"El objetivo del proceso de la administración de la calidad es monitorizar la calidad de los servicios y productos del proyecto y asegurar que ésta satisface al cliente." 
Se observan coincidencias con el resto de modelos estudiados en esta ponencia identificando el concepto calidad con la satisfacción del cliente y la de exponer la necesidad de su observación (el modelo la define como monitorización). De forma clara y concisa se asocia la calidad como cumplimiento de los requisitos, tanto explícitos como implícitos, expuestos por el cliente.
Dentro de proceso de soporte en el apartado denominado “aseguramiento de la calidad” también se hace referencia expresa a "proporcionar el aseguramiento que productos y procesos de un proyecto cumplen con sus requerimientos específicos y se adhieren a los planes establecidos"  De forma expresa se cita a la normativa ISO 9001 como complemento a utilizar en este punto de la norma ISO 15504. El modelo estudiado considera la medida como una tarea propia de la parte organizativa del ciclo de vida asociándolo de forma indisoluble a proceso propuesto [7].
"el propósito del proceso de medida es coleccionar y analizar datos relacionados con los productos desarrollados y los procesos implementados dentro de la organización, para ejecutar una efectiva administración del proceso y demostrar objetivamente la calidad del mismo." 
Para la norma ISO 15504 la necesidad de medir es expresada como factor estratégico de la organización para asegurar la calidad del proceso productivo. 
Comparando la metodología propuesta con la teoría de Fenton (ver apartado anterior) es fácilmente identificable cómo se hace uso de propiedades (atributos) de aquellas entidades (procesos en este caso) para llegar a obtener una escala ordinal del nivel de capacidad de una organización. La organización se describe en función a un modelo basado en procesos cuyos atributos, su medida, determina el grado de madurez de la misma.
La relación de la calidad y su medida, de nuevo se considera un factor estratégico. El modelo exige su control y medida pero no aporta cómo obtener estos objetivos aunque hace referencia expresa al almacenamiento de datos históricos.
En conclusión el modelo de referencia no considera técnica o desarrollo teórico expreso en cuanto a la medida del software aunque afirma su necesario control. La calidad y su medida son factores estratégicos en la organización, de tal importancia que el nivel 4 sólo se alcanza cuando se han logrado satisfacer objetivos relacionados directamente con la medida de atributos propios de los procesos definidos. Sin embargo la definición precisa de atributos no se define de forma expresa.  
	LA NORMA ISO 9001:2000
La norma ISO 9001:2000 define y establece la política y objetivos de calidad de una empresa permitiendo a la misma implementar los procedimientos necesarios para alcanzar las metas previstas. Se basa en tres conceptos básicos: los procesos, la mejora continua y su orientación hacia el cliente.
La norma posee un apartado propia de la medida, considerando directamente este apartado “Medición, mejora y análisis”, podemos afirmar que la norma diferencia claramente procesos y producto estableciendo la necesidad de medir y hacer un seguimiento de las características del producto así como el seguimiento y medición de los procesos. Medir es, en este estándar una herramienta fundamental de la misma. El seguimiento y medición del producto es equivalente al control de calidad clásico, basado en la inspección del producto para comprobar su cumplimiento con unas especificaciones definidas [4]. Como la realización de un producto es el resultado de diversos procesos encadenados, deben considerarse en la definición de las inspecciones a realizar todos los procesos implicados y productos intermedios.
En todos estos casos la norma presenta la necesidad de medir de forma generalista sin especificar qué atributos pueden estar relacionados con la acción recomendada. Tal  como las siguientes citas documentan [4]. 
"Se deben realizar verificaciones del diseño durante las fases apropiadas del mismo (…). Se deben registrar las medidas de verificación del diseño." 
"El suministrador debe: determinar qué medidas deben realizarse, la exactitud requerida y seleccionar los equipos de inspección, medida y ensayo adecuados y que sean aptos para la exactitud y precisión necesarios." 
La Norma sí aporta, de forma expresa, la necesidad de utilizar técnicas estadísticas para analizar medidas de la capacidad del proceso y las características del producto. Es importante destacar que la norma aporta ejemplos de “características” de productos y procesos (ver tabla 2).
Para procesos	Para productos	
•	Madurez del proceso.	•	Capacidad de ser probado.	
•	Deslizamiento de hitos.	•	Utilidad	
•	Número y tipos de defectos en la salida de los procesos.	•	Fiabilidad	
•	Eficiencia en la eliminación de defectos.	•	Facilidad de mantenimiento.	
		•	Disponibilidad	
Tabla 2: Atributos a medir según la norma ISO: 9001

La norma igualmente define de forma expresa el concepto métrica como "característica medible"  y aporta aquellos principios que deben cumplir. Las métricas tienen la necesidad de estar definidas claramente, deben añadir valor al proceso o producto estudiado, debe estar identificada la forma en que puede ser influida (por ejemplo por cambios en el diseño o técnicas de desarrollo) y se comprende su significado con relación al proceso o producto. 
EL MODELO CMMi
	El modelo CMM, acrónimo del inglés Capability Maturity Model (Modelo de Madurez de la Capacidad del Desarrollo del Software) es el modelo más utilizado en el mundo.  El modelo CMM tiene por objetivo medir la capacidad del proceso utilizado por la organización para desarrollar software. El modelo CMM fue creado en 1986 por el Instituto de Ingeniería del software a solicitud del Departamento de Defensa norteamericano (DoD).
	En 1993 se difundió la última versión del CMM, versión 1.1., hasta la aparición en el año 2001 de la versión denominada CMMi. La versión CMMi es el resultado de unificar en un único documento la guía para la mejora de distintas disciplinas (ingeniería del software, ingeniería de sistemas, desarrollo integrado de productos y procesos)
	El modelo CMMi posee una diferencia sustancial con su antecesor al permitir dos representaciones del proceso software: organizada y continua. La representación organizada equivale a la tradicional propuesta por CMM que hace énfasis en la madurez de los procesos. La representación continua expone la capacidad de las áreas del modelo. Un dato significativo sobre la importancia que el modelo CMMi muestra en los procesos de medida del software es que el nivel cuatro pasa a denominarse “gestionado cuantitativamente”.
	Considerando el objeto del presente estudio hemos centrado nuestra atención al área denominada “medición y análisis” y en el área “aseguramiento de la calidad de procesos y productos”. Es muy significativo la aparición del área de proceso “medición y análisis” indicando nuevamente la trascendencia de la medida en el modelo CMMi.
	Según el área “medición y análisis” cabe destacar la relación directa que se establece entre la medida del software y el aseguramiento de la calidad. El modelo relaciona a través del área “aseguramiento de la calidad del producto” la implantación de medidas siendo citada de forma expresa en el apartado introductoria del área medición y análisis.
 El modelo CMMi no incluye medidas determinadas, nos indica qué debemos hacer no el cómo. Propone un conjunto de práctica y objetivos que permitan establecer un control cuantitativo del proceso. Sin embargo es interesante indicar como el modelo diferencia claramente entre medidas “base” y medidas “derivadas”. Esta distinción puede asimilarse a lo que Fenton define como medidas “directas” e “indirectas”. Los ejemplos que acompañan la explicación en el modelo CMMi son similares a los propuestos por Fenton  (medida directa: tamaño aplicación, medida indirecta: densidad de errores).
	El modelo CMMi hace especial hincapié en la definición de objetivos de la medida y también en las unidades de medidas a utilizar. Esta aportación entendemos es una forma de exigir la cuantificación de atributos de forma matemáticamente correcta. La unidad de una medida requiere su conocimiento intrínseco y por tanto su adecuada definición matemática. Sin embargo el modelo CMMi no aporta una clara distinción de atributos y entidades tal como la propuesta de Fenton propone.
	El modelo CMMi apuesta claramente por la medida del software considerándolo básico para la mejora de la madurez de la organización, pero no aporta entidades y atributos definidos y claramente identificables, dejando en la responsabilidad del integrador del modelo esta tarea.

CONCLUSIONES
Los modelos estudiados consideran la medida de la calidad del software como una exigencia en la mejora continua de los procesos y por tanto en la obtención de productos y servicios que satisfagan las necesidades de los usuarios. Medida y calidad son relacionados de forma directa por estos modelos considerando esta última una característica a la que se presta singular importancia (de hecho la norma ISO 9001 es un modelo de aseguramiento de la calidad).  Sin embargo no existe una visión unificada de la medida del software en los modelos estudiados, éstos proponen rigurosos procedimientos en la captura y análisis de datos aportando ejemplos de entidades medidas pero no consideran un marco de referencia único en cuanto a atributos y entidades a medir, dejan en la responsabilidad del integrador esta tarea. 
	Los modelos CMMi e ISO: 15504 son en sí mismos una forma de medir la calidad, al presentar una escala ordinal que podemos utilizar para conocer el grado de madurez de nuestra organización.
BIBLIOGRAFÍA Y REFERENCIAS
[1] Eugene Curran y Joc Sanders. Software Quality. A Framework for Success in Software Development and Support. Cornwall, Addison- Wesley Publishers, 1994.
[2] CMMi.-SW v 1.1 Continuous Representation. Carnegie Mellon Institute. 2002.
[3] ISO 9001:2000. Lograr la conformidad y la mejora continua en empresas de desarrollo software. Vivek Nanda. Ediciones AENOR. 2005.
[4] UNE-EN ISO 9001:2000. Sistemas de gestión de la calidad. Requisitos. Ediciones AENOR. 2000.
[5] John J. Marciniak. “Software Engineering a Historical Perspective”, Encyclopedia of Software Engineering, John Wiley & Sons, 1994. pp. 1176-1182.
[6] Norman E. Fenton. Shari Lawrence Pfleeger. Software Metrics. A Rigorous & Practical Approach. London, Chapman & Hall, 1997.
[7] ISO/IEC TR 15504-1. Information technology -Software process assessment – Part:1 Concepts and introductory guide. ISO/IEC. Suiza, 1998.