Calidad en el software (II)

Figura 1. Factores de Calidad de McCall

Asegurar la calidad de un producto de software puede resultar una labor compleja, en la cual deben considerarse, primariamente, las necesidades del grupo de usuarios al cual va destinado el desarrollo del producto.

Existen diversas formas de establecer el grado de calidad de un determinado producto. Para evaluar la calidad en una aplicación de software se han formulado varios modelos que sirven de guía a los grupos de ingeniería de software. Cada modelo contempla un conjunto de características, cuya medición, permitirá determinar el grado de calidad. Esta medición se efectúa a través de métricas, las cuales deben estar claramente definidas en términos de: los datos requeridos para su cálculo, la determinación del rango de valores esperados y el grado de calidad asociado a los valores que se obtendrán. Una característica de calidad específica puede tener asociadas varias métricas.

El nivel de exigencia requerido en una determinada característica de calidad está asociado con factores, tales como: los objetivos del software, el alcance del mismo, el rol a desempeñar en una determinada organización, entre otros. En consecuencia, el modelo de calidad a ser aplicado debe adaptarse al producto que se evalúa, pues la interpretación de los resultados obtenidos en la medición de las características de calidad puede cambiar según el contexto.

Entre los modelos de calidad de software que se van a revisar se encuentran:
• Factores de Calidad de McCall
• FURPS de Hewlett Packard
• Estándar ISO 9126
A continuación se presentaran los aspectos básicos de estos modelos:
FACTORES DE CALIDAD DE MCCALL

McCall y sus colegas, en su publicación “Factors in Software Quality”, propusieron una útil clasificación de factores que afectan la calidad del software. Estos factores de calidad del software, mostrados en la figura 1, se concentran en tres aspectos importantes de un producto de software: Sus características operativas, su capacidad de cambios y su adaptabilidad a nuevos entornos. McCall proporciona las siguientes descripciones:
• Corrección. Hasta dónde satisface un programa su especificación y logra los objetivos propuestos por el cliente.
• Fiabilidad. Hasta dónde se puede esperar que un programa lleve a cabo su función con la exactitud requerida.
• Eficiencia. La cantidad de recursos informáticos y de código necesarios para que un programa realice su función.
• Integridad. Hasta dónde se puede controlar el acceso al software o a los datos por personas no autorizadas.
• Usabilidad (Facilidad de manejo). El esfuerzo necesario para aprender a operar con el sistema, preparar los datos de entrada e interpretar las salidas (resultados) de un programa.
• Facilidad de mantenimiento. El esfuerzo necesario para localizar y arreglar un error en un programa.
• Flexibilidad. El esfuerzo necesario para modificar un programa que ya está en funcionamiento.
• Facilidad de prueba. El esfuerzo necesario para probar un programa y asegurarse de que realiza correctamente su función.
• Portabilidad. El esfuerzo necesario para transferir el programa de un entorno (hardware/software) a otro entorno diferente.
• Reusabilidad (Capacidad de Reutilización). Hasta dónde se puede volver a emplear un programa (o partes de un programa) en otras aplicaciones, en relación al empaquetamiento y alcance de las funciones que realiza el programa.
• Interoperatividad. El esfuerzo necesario para acoplar un sistema a otro.
FURPS
Hewlett-Packard ha desarrollado un conjunto de factores de calidad del software al que se le ha dado el acrónimo de FURPS (Functionality, Usability, Reliability, Rerformance, Supportability): Funcionalidad, Usabilidad, Fiabilidad, Rendimiento y Capacidad de Soporte. A continuación se definen los atributos contemplados en cada uno de estos cinco factores:
• Funcionalidad. Se valora evaluando el conjunto de características y capacidades del programa, la generalidad de las funciones entregadas y la seguridad del sistema global.
• Usabilidad. Se valora considerando factores humanos, la estética, la consistencia y la documentación general.
• Fiabilidad. Se evalúa midiendo la frecuencia y gravedad de los fallos, la exactitud de las salidas (resultados), el tiempo medio de fallos, la capacidad de recuperación de un fallo y la capacidad de predicción del programa.
• Rendimiento. Se mide por la velocidad de procesamiento, el tiempo de respuesta, consumo de recursos, rendimiento efectivo total y eficacia.
• Capacidad de Soporte. Combina la capacidad de ampliar el programa (extensibilidad), adaptabilidad y servicios (estos términos se resumen en el concepto de mantenimiento), así como capacidad para hacer pruebas, compatibilidad, capacidad de configuración del software, la facilidad de instalación de un sistema y la facilidad con que se pueden localizar los problemas.
Los factores de calidad FURPS y atributos descritos pueden usarse para establecer métricas de la calidad para todas las actividades del proceso del software.