Midiendo la Calidad del Software

Ante la necesidad de un consenso acerca de los elementos que definen la calidad del software, ISO desde hace tiempo creo estándares en este sentido. El primero es el ISO 9126, originalmente publicado en 1991 y posteriormente revisado en 2001. Posteriormente desarrolló el estándar ISO/IEC 25010: SQuaRE (Software Product Quality Requirements and Evaluation), que fue publicado en 2011 y viene a ser el reemplazo de ISO 9126.

 Como ya se explicó en el artículo de la Dra. Hanna Oktaba “SQuaRE: Modelo actualizado de las características de calidad” publicado en SG #29, este modelo evalúa la calidad desde dos perspectivas: la calidad del producto como tal (calidad interna), y la calidad de el uso del software (externa). Cada perspectiva considera diversas características, y a su vez cada característica puede tener una o más subcaracterísticas.

Características y subcaracterísticas de calidad interna:

  • Adecuación funcional: funcionalidad adecuada, funcionalidad correcta, funcionalidad completa.
  • Confiabilidad: madurez, disponibilidad, tolerancia a fallos, recuperabilidad.
  • Eficiencia de rendimiento: tiempo de respuesta, utilización de recursos, capacidad.
  • Operabilidad: reconocimiento de funcionalidad adecuada, facilidad de uso, facilidad de aprendizaje, protección contra errores de usuario, accesibilidad, estética de la interfaz de usuario.
  • Seguridad: confidencialidad, integridad, no rechazo, responsabilidad, autenticidad.
  • Compatibilidad: interoperabilidad, capacidad de coexistencia.
  • Mantenibilidad: modularidad, reusabilidad, capacidad de ser analizado, capacidad de ser modificado, capacidad de ser verificado/probado.
  • Transmisibilidad/Portabilidad: instalabilidad, adaptabilidad, reemplazabilidad.

Características y subcaracterísticas de calidad externa:

  • Satisfacción de uso: utilidad, confianza, placer, comodidad.
  • Seguridad de uso: mitigación de riesgos económicos, mitigación de riesgos para el usuario, mitigación de riesgos ambientales.
  • Flexibilidad de uso: cobertura del contexto, flexibilidad.
  • Efectividad de uso.
  • Eficiencia de uso.

 Aunque algunas de estas características se pueden medir de manera objetiva, la mayor parte requieren una evaluación subjetiva. Esto hace que la manera más utilizada, más rápida, menos costosa y quizá la que más refleja la realidad, sea la utilización de la experiencia de los empleados de una organización. Sin embargo, esto no permite realizar comparaciones objetivas y presenta algunos otros problemas como que le pertenece al experto y no a la organización, no se puede replicar sistemáticamente y no contribuye a la madurez de la ingeniería de software.

 Existe un modelo que puede ser utilizado para la evaluación de este tipo de variables, el modelo EPEI (EPCU por sus siglas en inglés) el cual permite en un entorno de información imperfecta (información vaga o ambigua), pasar de entornos cualitativos a entornos cuantitativos. En otras palabras, es un modelo que nos permite a partir de opiniones (juicio de experto) de una serie de variables subjetivas, determinar un valor cuantitativo suficientemente razonable, generado por la evaluación de reglas de inferencia definidas por expertos. (Valdés, 2012).

Caso de estudio para medir la calidad de productos de software
Se realizó un estudio para evaluar la calidad de 44 proyectos. Los proyectos considerados fueron realizados en 4 áreas distintas de una organización que trabaja en un esquema de outsourcing (cada una con un proveedor distinto) controlados por líderes de proyecto internos, estos fueron los encargados de evaluar la calidad interna de los proyectos realizados.

 De los 44 proyectos solamente 24 se pusieron en producción, por esta razón sólo a estos últimos se les evaluó la calidad de uso (externa), los usuarios fueron los encargados de evaluar la calidad de uso de las aplicaciones.

 El procedimiento que se siguió para evaluar la calidad interna/externa de los productos de software fue solicitar a cada líder de proyecto la asignación de valores para las características definidas en el estándar para la calidad externa/interna en relación a su proyecto, las características fueron consideradas como variables de entrada en el modelo EPEI.

 La asignación de los valores de las variables de entrada se realizó considerando el juicio de experto de los líderes de cada proyecto, determinándose un valor en un rango definido de 0 a 5 sobre el dominio de los número reales.

 Por cada área de la organización se obtuvo el promedio de los valores asignados a cada una de las características de calidad considerando todos los proyectos evaluados.

 Con los datos promedio de las categorías por área se calculó el índice de calidad por proyecto utilizando el modelo EPCU, de tal manera que se obtuvo un índice de calidad promedio que representa la calidad de los proyectos desarrollados en cada área de la organización.

 Esto se realizó para la evaluación de la calidad externa/interna. Los resultados se muestran en las figuras 1 y 2.


Figura 1. Asignación de valores promedio para calidad interna.


Figura 2. Asignación de valores promedio para calidad externa.

 Como se puede observar en este caso de estudio, es posible tener un valor cuantitativo formal y calculado de una misma forma para los distintos proyectos con base en las categorías del estándar para evaluación de la calidad de software SQuaRE, las cuales se manejan como variables de entrada al modelo EPCU.

 Al tener un valor cuantitativo, formal y consistente con los índices de calidad calculados, es posible hacer comparaciones, sin embargo, es importante considerar que además del índice como valor de la calidad (externa/interna) se presentan los valores que alcanza cada una de las variables o categorías de la calidad, lo que puede ser determinante para definir las estrategias a seguir para mejorarla.

Conclusiones

A través del modelo EPCU es posible determinar un valor cuantitativo consistente, de manera formal y que nos permita hacer comparaciones acerca de la calidad de los productos de software de una manera práctica.

 Este modelo permite evaluar a partir del juicio de experto, mediante mecanismos formales de manejo de información imperfecta y con base en el estándar de calidad ISO/IEC 25000, la calidad de los productos de software tanto desde el punto de vista de su construcción (calidad interna) como desde el punto de vista del usuario (calidad externa).

 Debido a que el índice de calidad es consecuencia de los distintos valores de las categorías definidas por el estándar, es posible determinar estrategias relevantes y factibles para incrementar el índice de calidad a través de mejorar las categorías de calidad.

 El poder tener un valor cuantitativo de calidad, sin duda, dará certeza al usuario, sobre todo si el también participa en la evaluación de la calidad externa del producto de software.

Referencias
[1] H. Oktaba. “SQuaRE Modelo Actualizado de las Características de Calidad”. SG Software Guru, Agosto-Octubre 2010. http://swgu.ru/sg40r13
[2] F. Valdés Souto. Design of A Fuzzy Logic Estimation Process for Software Projects. http://swgu.ru/sg40r14

Bio

Francisco Valdes Souto (@valdessoutofco) es PhD en Ingeniería de Software con especialización en medición y estimación de software por la Universidad de Quebéc. Es Certified ScrumMaster (CSM), Project Manager Professional (PMP) y el primer mexicano certificado como COSMIC FFP Size Measurer por el Common Software Measurement International Consortium (COSMIC). Es socio de SPINGERE, primera empresa en ofrecer servicios especializados en dimensionamiento y estimación de software desde un enfoque ingenieril en América Latina.