Perspectivas de estudio de la calidad del software

Con base en el modelo de Garvin (1984), Kitchenham y Pfleeger (1996) describen cinco vistas de calidad que son relevantes en el contexto de ingeniería de software.

  1. Vista transcendental. La calidad es algo que se reconoce pero no se define. La calidad se define como un ideal, “como la excelencia”, pero no se puede alcanzar debido a deficiencias en las tecnologías, recursos, comprensión del problema, etc. Esta vista es imposible de implementar en una organización con recursos limitados.
  2. Vista de usuario. La calidad es adecuación al propósito. En esta vista se pueden identificar las propiedades y características de los productos, mediarlos y establecer objetivos por alcanzar. Se pueden tomar en cuenta las características de calidad del producto para realizar la especificación de calidad del software (por ejemplo, el ISO/IEC 25010 (2010) proporciona ocho características como seguridad, usabilidad, fiabilidad, que pueden guiar la especificación de requisitos de calidad).
  3. Vista del fabricante. La calidad es conformidad con las especiaciones. Se parte de una especificación de requisitos del producto para control el proceso de producción. Esta visión se centra en el proceso y su mayor debilidad está en establecer si la especificación de requisitos es consistente con las necesidades de procesamiento de información de los futuros involucrados. Existen distintos modelos de proceso que apoyan la implementación de un proceso de desarrollo que logre las metas de calidad de las organizaciones (por ejemplo, el ISO/IEC 29110 (2011) para empresas muy pequeñas).
  4. Vista del producto. La calidad depende de las características intrínsecas del producto. En esta vista, la calidad depende de las propiedades medibles de cada uno de los componentes que conforman un sistema de software. Las principales aportaciones de esta vista el desarrollo de métricas y métodos de medición de las características del software.
  5. Vista basada en valor. La calidad depende de la cantidad que el cliente está dispuesto a pagar. Actualmente, esta es una línea de investigación en la ingeniería de software que estudia cómo deberían tomarse decisiones y qué métodos deberían aplicarse para realizar análisis de costo-beneficio en el desarrollo de software.

En el contexto de la industria del software, los enfoques de calidad que se aplican con mayor frecuencia son el de la vista del fabricante y el de la vista del producto considerando los requisitos del usuario (Berander et al., 2005). En los siguientes párrafos se describen las principales características de éstos.

Calidad desde la perspectiva del proceso

El enfoque de proceso se centra en la conformidad con la especificación y la adherencia al proceso de software. En proyectos de software de esta naturaleza, es común encontrar términos como defectos, fallas o costos asociados a la corrección de componentes de software cuando se trata de medir la calidad. Por tanto, la mejora de la calidad se alcanza cuando en el proyecto de desarrollo de software se logra una reducción de los defectos (Agrawal y Shari, 2007).

El incentivo principal de implementar marcos de procesos en las empresas es incrementar la calidad del software, disminuir los costos del desarrollo del software y reducir el cronograma (Unterkalmeinster et al. 2012). La principal aproximación a la calidad es el desempeño del proceso de software y éste se evalúa considerando distintos marcos de trabajo como CMM/CMMI, ISO/IEC 15504, entre otros (Unterkalmeinster et al., 2012). Estos marcos describen un conjunto de prácticas que han sido empleadas por organizaciones de software exitosas.

Calidad desde la perspectiva del producto

En el caso de la vista del producto, la calidad es vista como adecuada para su propósito. Esta vista del producto corresponde a la vista del usuario descrita previamente y subyace en la identificación de características del producto que satisfacen las necesidades del usuario (García-Mireles et al., 2015). Las características se miden considerando las metas que desea lograr el usuario en un escenario particular especificado. Estas metas se pueden describir a partir del conjunto de características de calidad contenidas en modelos de calidad como el ISO/IEC 25010 que describe ocho características de calidad: usabilidad, seguridad, portabilidad, mantenibilidad, eficiencia del rendimiento, adecuación funcional, fiabilidad y compatibilidad. Cada una de ellas está se descompone en un conjunto de subcaracterísticas.

La descripción de metas de calidad considerando algún modelo de calidad del producto proporciona una guía de aspectos por considerar en todas las etapas del proyecto de desarrollo de software, desde la especificación de los requisitos de calidad, la evaluación de la arquitectura en términos del efecto de los componentes diseñados en la calidad esperada, así como en la construcción y obtención de componentes que satisfagan los valores de calidad deseados. Este es un trabajo complejo y los pocos estudios publicados indican que la mayoría de los esfuerzos se dedican a mejorar la seguridad, usabilidad y mantenibilidad del software (García-Mireles et al., 2015).