5 abr 2007

Calidad del software

El tema de calidad parece ser uno de los más elusivos en la Ingeniería de Software. Para comenzar, no existe una definición unificada de Calidad:

  • Enfoque en el cliente: “Calidad es... Lo que el cliente diga que es Calidad”
  • Enfoque romántico: “La calidad está en los ojos del que la mira”
  • Enfoque filosófico (Pirsig): “Si la Calidad existe en el objeto, entonces debes explicar porqué los instrumentos científicos no son capaces de detectarla...Por otro lado, si la Calidad es subjetiva, existiendo sólo en el observador, entonces esta Calidad es sólo un nombre fancy para cualquier cosa que quieras...La calidad no es objetiva. No reside en el mundo material...La calidad no es subjetiva. No reside sólo en la mente"
  • Perspectivas de la Calidad (David Garvin)
    • Vista trascendental: Calidad es algo que puede ser reconocido pero no definido
    • Vista del Usuario: Fitness for purpose
    • Vista de manufactura: Conformidad con la especificación
    • Vista de producto: La calidad está ligada a características inherentes del producto
    • Vista basada en Valor: Depende de cuánto está dispuesto a pagar el cliente por ella
  • Crosby: “Hacerlo bien a la primera”
  • Deming: "Conformidad con los requisitos y confianza en el funcionamiento"
  • Juran: "Adecuación para su uso"
  • Shewart: "Hay un lado subjetivo de la calidad"
  • Feigenbaum: "La calidad está determinada por el cliente, no por el ingeniero, no por mercadotecnia, no por la administración en general. Está basada en la experiencia actual del cliente con el producto o servicio medida contra sus requerimientos, sean estos expresados o no expresados, conscientes o no, operacionales o subjetivos"
  • ISO 8402: "Suma de todos aquellos aspectos o características de un producto o servicio que influyen en su capacidad para satisfacer las necesidades, expresadas o implícitas"
  • IEEE 729-83: "Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas"
  • DoD 2168: "Capacidad del producto software para satifacer los requisitos establecidos"
  • Glosario Estándar de Terminología de Ingeniería de Software del IEEE: “El grado en el que un sistema, componente, o proceso cumple (1) requerimientos especificados, y (2) necesidades y expectativas del cliente”
  • Definitions in Software Quality Management: “El conjunto de todos los atributos que describen el grado de excelencia del sistema de computadora"
  • Donald Reifer, State of Art in Software Quality Management: “El grado en el que un producto software poses un conjunto especificado de atributos necesarios para cumplir con un propósito enunciado”
  • Watts Humphrey: “El producto debe proveer de cierta funcionalidad cuando el usuario la necesite. Si no lo hace, nada de lo demás importa. Segundo, el producto debe trabajar. Si tiene tantos defectos que no funciona con cierta consistencia, el usuario no lo utilizará sin importar otros atributos”
Mi favorita:
  • Handbook of Software Quality Assurance: “Calidad es el cumplimiento del software con el uso intencionado"

El problema con el software es que no está sujeto a las Leyes de la Física y, por lo tanto, deja fuera todos aquellos instrumentos que utilizamos para medir en el mundo físico como, por ejemplo, el uso de un nivel para verificar la horizontalidad de un piso. El software es la codificación de conceptos que buscan dar respuesta a problemas específicos, esto es, el software es una construcción conceptual y por lo tanto cualquier definición de calidad tiene un elemento subjetivo. Adicionalmente, aunque se han identificado atributos de calidad de software (ver la norma ISO 9126) no existe un criterio universal para medir dichos atributos por lo que siempre interviene la percepción del cliente/usuario sobre qué tanto el software cumple sus expectativas. Por ello, es importante siempre tratar de comprender y hacer explícitas todas las expectativas del cliente/usuario.

No hay comentarios.: