viernes, 19 de abril de 2013

Atributos y medidas de calidad del software

Una atributo es una propiedad del producto, que cuando es asociada con la calidad se relaciona con los elementos que considera el cliente para aceptar o rechazar el producto. Estos atributos de calidad deben ser medidos para poder ser comparados. 

Es importante entenderlos desde la concepción de la idea a partir de las necesidades del cliente o mercado, considerarlos como parte de la solución y creación del producto para finalmente demostrar que han sido adecuadamente integrados en el producto final. Aquí se presentan diferentes atributos y medidas considerados en los entornos de desarrollo, instalación y operación que pueden ser útiles identificar en cada caso.

Atributos de calidad en CMMI
En el modelo CMMI los atributos de calidad son especialmente mencionados a partir de la versión 1.3, por su importancia en el desarrollo del producto. En diversas áreas de proceso son consideradas estas características e integradas en las prácticas que se deben considerar.

En las áreas de proceso de ingeniería son importantes para entender las características deseadas en el producto desde la definición de requisitos (RD), integradas como parte de la arquitectura de solución y consideradas en el diseño del producto (TS) y adicionalmente son tomadas en cuenta como parte de los procedimientos y criterios para la integración del producto y sus componentes (PI).

En relación con la gestión del proyecto son importantes para definir el enfoque del proyecto en la planificación del alcance y tareas (PP), establecer los recursos que se requieren en los diferentes entornos para el desarrollo del producto (IPM) y considerados como atributos a medir del producto para el control estadístico del proceso y logro de los objetivos del proyecto (QPM).

En cuanto a la gestión de los procesos son tomados en cuenta como parte de los objetivos y necesidades para la mejora de la calidad del producto en la optimización del proceso (OPM).

Atributos de calidad en operación
Los atributos de calidad en operación, en general, se pueden identificar como cinco atributos y están relacionados con características que se espera cumpla el producto durante su operación.

  1. Rendimiento, se mide en término de la respuesta del sistema a ciertas funcionalidades como pueden ser velocidad de respuesta al recibir una petición o procesar una información, capacidad de almacenamiento o volumen de información , tiempo de ejecución y número de usuarios concurrentes en una unidad de tiempo.
  2. Confiabilidad, caracterizada por la probabilidad del sistema de operar sin fallas. Se puede medir en función del tiempo promedio entre fallas, tasa de ocurrencia de fallas o la probabilidad de fallas ante peticiones recibidas.
  3. Tolerancia a fallas, entendido también como robusto es la propiedad del producto de recuperarse ante una falla o interrupción en su operación. Se mide en relación con el tiempo de recuperación después de una falla, porcentaje de eventos que causan fallas o datos afectados por la falla.
  4. Seguridad, o integridad es la característica que evita el acceso no autorizado o accidental de usuarios. Normalmente se puede medir como el número o porcentaje de intentos fallidos por tipo de acceso.
  5. Uso, es la característica que permite que el sistema pueda ser fácilmente utilizado de manera efectiva. Es medido en relación con el tiempo que le toma a un tipo de usuario obtener las habilidades para completar una tarea específica, promedio de errores que comete un usuario en un periodo de tiempo, nivel de satisfacción o intuición para poder completar una tarea sin ayuda o asesoría.
Atributos de calidad en desarrollo
Los atributos de calidad en el entorno de desarrollo se refieren a los elementos a considerar para garantizar un adecuado desarrollo del producto y se relacionan con:
  1. Eficiencia, es una medida de la eficiencia en el uso de los recursos del sistema y se mide en términos del uso de la memoria, ancho de banda, espacio en disco o disponibilidad de capacidad del procesador durante las operaciones.
  2. Mantenimiento, o capacidad de modificarse es la habilidad para corregir defectos, reparar o agregar nuevas funcionalidades sin afectar la operación del sistema en uso. Se mide en función del tiempo que toma cambiar o corregir un componente determinado.
  3. Reuso, es la posibilidad de utilizar componentes existentes para crear nuevos medido como el costo de cambio de un componente al integrarlo en otros sistemas.
  4. Verificable, es una medida del costo de identificar fallas en las pruebas, porcentaje de defectos en pruebas, cantidad o costo de las pruebas.
Atributos de calidad en implementación
Los atributos de calidad en implementación se relacionan con las características que se esperan del producto durante la etapa de despliegue y liberación de la solución. 
  1. Disponibilidad, está relacionada con la habilidad de acceder al sistema bajo factores que lo afectan durante el respaldo, recuperación o reinicio y se mide como el porcentaje del tiempo en que el sistema puede estar disponible. 
  2. Flexibilidad, o capacidad de adaptación para aumentar, extender o expandirse con usuarios adicionales. Es medido en función del esfuerzo, duración o costo de agregar o modificar componentes específicos.
  3. Interoperabilidad, es la facilidad en que un sistema puede intercambiar información o servicios con otros sistemas y es cuantificado como el esfuerzo, duración o costo del intercambio de datos o servicios en protocolos de comunicación, hardware o aplicaciones. 
  4. Instalable, es la facilidad para instalar el software dentro del hardware y se mide como el tiempo para cargar o configurar un sistema dentro de un dispositivo.
  5. Portable, está relacionado con el costo o esfuerzo de mover un sistema a otro equipo, sistema operativo, lenguaje o compilador.
  6. Recuperable, es la habilidad para recuperar el sistema en caso de fallas medido como el tiempo para restablecer el sistema al punto previo al que se presentó el problema.
  7. Escalable, es la capacidad de expandirse en usuarios o incrementar la capacidad del sistema sin realizar cambios.
  8. Seguridad, está relacionada con la confianza en que el sistema funciona sin afectar a las personas o al medio. Es medido en función de la probabilidad de daño o riesgo a la seguridad, número o porcentaje de daños y el número o porcentaje aceptado de accidentes; clasificados por tipo y severidad.
En otros contextos los atributos de calidad pueden considerar también características como etiquetado, empacado, garantías, caducidad, atributos físicos como: peso, volumen, color y acabados, así como atributos ambientales, tóxicos y de transporte.

Referencias: Gottesdiener, Ellen: "The Software Requirements Memory Jogger", GOAL/QPC, 2005