lunes, 16 de abril de 2012

MODELOS DE CALIDAD EN EL SOFTWARE MCCALL, NORMA ISO/IEC 9126 Y NORMA 25000

MODELOS DE CALIDAD EN EL SOFTWARE MCCALL, NORMA ISO/IEC 9126 Y NORMA 25000


1. Introducción

En la industria del software, al igual que en cualquier otra industria, necesitamos medir el  producto que realizamos para conocer el esfuerzo y costes de producir dicho producto. De esta manera será posible ofrecer productos de calidad, es necesario por ello seguir alguna metodología que nos garantize esto. Hoy en dia hay diversos modelos de calidad y normas, en el presente trabajo se verán: el modelo de McCall, las normas ISO/IEC 9126 e ISO 25000

2. El Modelo de McCall

El modelo de Jim McCall, desarrollado inicialmente para la Fuerza Aérea de los EE.UU en 1977. , es uno de los más renombrados actualmente. Este modelo busca reducir la brecha entre usuarios y desarrolladores enfocándose en un número de factores de calidad que reflejen las prioridades de ambos.
El modelo establece una jerarquía de Perspectivas (3), Factores (11), Criterios de Calidad (23) y Métricas (41). Describe la calidad como un concepto elaborado mediante relaciones jerárquicas entre factores de calidad, en base a criterios y métricas de calidad.
Este enfoque es sistemático, y permite cuantificar la calidad a través de las siguientes fases:
·        Determinación de los factores que influyen sobre la calidad del software
·        Identificación de los criterios para juzgar cada factor
·       Definición de las métricas de los criterios y establecimiento de una función de normalización que define la relación entre las métricas de cada criterio y los factores correspondientes
·        Evaluación de las métricas
·        Correlación de las métricas a un conjunto de guías que cualquier equipo de desarrollo podría seguir
·        Desarrollo de las recomendaciones para la colección de métricas
En el modelo de McCall, los factores de calidad se concentran en tres aspectos importantes de un producto de software: características operativas, capacidad de cambios y adaptabilidad a nuevos entornos.

Puntos De Vista O Ejes Factor Criterios
OPERACIÓN DEL PRODUCTO
Facilidad de uso
  • Facilidad de operación: Atributos del software que determinan la facilidad de operación del software.
  • Facilidad de comunicación: Atributos del software que proporcionan entradas y salidas fácilmente asimilables.
  • Facilidad de aprendizaje: Atributos del software que facilitan la familiarización inicial del usuario con el software y la transición del modo actual de operación.
  • Formación: El grado en que el software ayuda para permitir que nuevos usuarios apliquen el sistema.
Integridad
  • Control de accesos. Atributos del software que proporcionan control de acceso al software y los datos que maneja.
  • Facilidad de auditoría: Atributos del software que facilitan la auditoría de los accesos al software.
  • Seguridad: La disponibilidad de mecanismos que controlen o protejan los programas o los datos.
Corrección
  • Completitud: Atributos del software que proporcionan la implementación completa de todas las funciones requeridas.
  • Consistencia: Atributos del software que proporcionan uniformidad en las técnicas y notaciones de diseño e implementación.
  • Trazabilidad o rastreabilidad: Atributos del software que proporcionan una traza desde los requisitos a la implementación con respecto a un entorno operativo concreto.
Fiabilidad
  • Precisión: Atributos del software que proporcionan el grado de precisión requerido en los cálculos y los resultados.
  • Consistencia.
  • Tolerancia a fallos: Atributos del software que posibilitan la continuidad del funcionamiento bajo condiciones no usuales.
  • Modularidad: Atributos del software que proporcionan una estructura de módulos altamente independientes.
  • Simplicidad: Atributos del software que posibilitan la implementación de funciones de la forma más comprensible posible.
  • Exactitud: La precisión de los cálculos y del control.
Eficiencia
  • Eficiencia en ejecución: Atributos del software que minimizan el tiempo de procesamiento.
  • Eficiencia en almacenamiento: Atributos del software que minimizan el espacio de almacenamiento necesario.
REVISIÓN DEL PRODUCTO
Facilidad de mantenimiento
  • Modularidad.
  • Simplicidad.
  • Consistencia.
  • Concisión: Atributos del software que posibilitan la implementación de una función con la menor cantidad de códigos posible.
  • Auto descripción: Atributos del software que proporcionan explicaciones sobre la implementación de las funciones.
Facilidad de prueba
  • Modularidad.
  • Simplicidad.
  • Auto descripción.
  • Instrumentación: Atributos del software que posibilitan la observación del comportamiento del software durante su ejecución para facilitar las mediciones del uso o la identificación de errores.
Flexibilidad
  • Auto descripción.
  • Capacidad de expansión: Atributos del software que posibilitan la expansión del software en cuanto a capacidades funcionales y datos.
  • Generalidad: Atributos del software que proporcionan amplitud a las funciones implementadas.
  • Modularidad.
TRANSICIÓN  DEL PRODUCTO
Reusabilidad
  • Auto descripción.
  • Generalidad.
  • Modularidad.
  • Independencia entre sistema y software: Atributos del software que determinan su dependencia del entorno operativo.
  • Independencia del hardware: Atributos del software que determinan su dependencia del hardware.
Interoperabilidad
  • Modularidad.
  • Compatibilidad de comunicaciones: Atributos del software que posibilitan el uso de protocolos de comunicación e interfaces estándar.
  • Compatibilidad de datos: Atributos del software que posibilitan el uso representaciones de datos estándar.
  • Estandarización en los datos: El uso de estructuras de datos y de tipos estándar a lo largo de todo el programa.
Portabilidad
  • Auto descripción.
  • Modularidad.
  • Independencia entre sistema y software.
  • Independencia del hardware.


3. La Norma ISO/IEC 9126

El estándar ISO/IEC 9126 ha sido desarrollado en un intento de identificar los atributos clave de calidad para un producto de software. Este estándar es una simplificación del Modelo de McCall,  e identifica seis características básicas de calidad que pueden estar presentes en cualquier producto de software.
El estándar está dividido en cuatro partes las cuales dirigen, respectivamente, lo siguiente: modelo de calidad, métricas externas, métricas internas y calidad en las métricas de uso.
El modelo de calidad establecido en la primera parte del estándar, ISO 9126-1, clasifica la calidad del software en un conjunto estructurado de características y subcaracterísticas de la siguiente manera:
  • Funcionalidad - Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas.
§  Idoneidad
§  Exactitud
§  Interoperabilidad
§  Seguridad
§  Cumplimiento de normas.
  • Fiabilidad - Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido.
§  Madurez
§  Recuperabilidad
§  Tolerancia a fallos
  • Usabilidad - Un conjunto de atributos relacionados con el esfuerzo necesario para su uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios.
§  Aprendizaje
§  Comprensión
§  Operatividad
§  Atractividad
  • Eficiencia - Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas.
§  Comportamiento en el tiempo
§  Comportamiento de recursos
  • Mantenibilidad - Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.
§  Estabilidad
§  Facilidad de análisis
§  Facilidad de cambio
§  Facilidad de pruebas
  • Portabilidad - Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra.
§  Capacidad de instalación
§  Capacidad de reemplazamiento
§  Adaptabilidad
§  Co-Existencia
La subcaracterística Conformidad no está listada arriba ya que se aplica a todas las características. Ejemplos son conformidad a la legislación referente a usabilidad y fiabilidad.
Cada subcaracterística (como adaptabilidad) está dividida en atributos. Un atributo es una entidad la cual puede ser verificada o medida en el producto software. Los atributos no están definidos en el estándar, ya que varían entre diferentes productos software.
Un producto software está definido en un sentido amplio como: los ejecutables, código fuente, descripciones de arquitectura, y así. Como resultado, la noción de usuario se amplía tanto a operadores como a programadores, los cuales son usuarios de componentes como son bibliotecas software.
El estándar provee un entorno para que las organizaciones definan un modelo de calidad para el producto software. Haciendo esto así, sin embargo, se lleva a cada organización la tarea de especificar precisamente su propio modelo. Esto podría ser hecho, por ejemplo, especificando los objetivos para las métricas de calidad las cuales evalúan el grado de presencia de los atributos de calidad.
Métricas internas son aquellas que no dependen de la ejecución del software (medidas estáticas).
Métricas externas son aquellas aplicables al software en ejecución.
La calidad en las métricas de uso están sólo disponibles cuando el producto final es usado en condiciones reales.
Idealmente, la calidad interna no necesariamente implica calidad externa y esta a su vez la calidad en el uso.
La calidad de uso es definida como “la capacidad del software que posibilita la obtención de objetivos específicos con efectividad, productividad, satisfacción y seguridad”.


Es interesante destacar que los factores de calidad que contempla el estándar ISO/IEC 9126 no son necesariamente usados para mediciones directas, pero proveen una valiosa base para medidas indirectas, y una excelente lista para determinar la calidad de un sistema.

4. La Norma ISO 25000

El estándar ISO/IEC 25000 SQuaRE (Evaluación de Calidad de Productos de Software) constituye una serie de normas basadas en la ISO 9126 y en la ISO 14598 (Evaluación del Software), y su objetivo principal es guiar el desarrollo de los productos de software con la especificación y evaluación de requisitos de calidad. Establece criterios para la especificación de requisitos de calidad de productos software, sus métricas y su evaluación.
SQuaRE está formada por las divisiones siguientes.
  • ISO/IEC 2500n. División de gestión de calidad. Los estándares que forman esta división definen todos los modelos comunes, términos y referencias a los que se alude en las demás divisiones de SQuaRE. 
  • ISO/IEC 2501n. División del modelo de calidad. El estándar que conforma esta división presenta un modelo de calidad detallado, incluyendo características para la calidad interna, externa y en uso.
  • ISO/IEC 2502n. División de mediciones de calidad. Los estándares pertenecientes a esta división incluyen un modelo de referencia de calidad del producto software, definiciones matemáticas de las métricas de calidad y una guía práctica para su aplicación. Presenta aplicaciones de métricas para la calidad de software interna, externa y en uso.
  • ISO/IEC 2503n. División de requisitos de calidad. Los estándares que forman parte de esta división ayudan a especificar los requisitos de calidad. Estos requisitos pueden ser usados en el proceso de especificación de requisitos de calidad para un producto software que va a ser desarrollado ó como entrada para un proceso de evaluación. El proceso de definición de requisitos se guía por el establecido en la norma ISO/IEC 15288 (ISO, 2003).
  • ISO/IEC 2504n. División de evaluación de la calidad. Estos estándares proporcionan requisitos, recomendaciones y guías para la evaluación de un producto software, tanto si la llevan a cabo evaluadores, como clientes o desarrolladores.
  • ISO/IEC 25050–25099. Estándares de extensión SQuaRE. Incluyen requisitos para la calidad de productos de software “Off-The-Self” y para el formato común de la industria (CIF) para informes de usabilidad.
La norma ISO 25000 ha sido desarrollada por el subcomité SC 7 (Ingeniería de software y sistemas) del Comité Técnico Conjunto ISO/IEC JTC 1.

Al igual que la norma ISO/IEC 9126, este estándar define tres vistas diferenciadas en el estudio de la calidad de un producto:
  • Vista interna: esta vista se ocupa de las propiedades del software como: el tamaño, la complejidad o la conformidad con las normas de orientación a objetos.
  • Vista externa: vista que analiza el comportamiento del software en producción y estudia sus atributos, por ejemplo: el rendimiento de un software en una máquina determinada, el uso de memoria de un programa o el tiempo de funcionamiento entre fallos.
  • Vista en uso: mide la productividad y efectividad del usuario final al utilizar el software.
La primera puede utilizarse desde las primeras fases del desarrollo, permitiendo detectar deficiencias en el software en edades muy tempranas del ciclo de vida del software.

La segunda, sin embargo, necesita que el producto software este completo y se utilizará por tanto en el pase a producción del producto, siendo muy dependiente de la máquina donde se ejecute.
 .
Por último la tercera vista que también estudia el producto software finalizado será dependiente del usuario y estará condicionada a los factores personales del mismo.
 .
Puede observarse que las distintas vistas se interrelacionan, afectando los valores de la vista interna a los de la vista externa y los de la vista externa a los de la vista en uso. Así por ejemplo: un software con una alta complejidad probado sobre una máquina con bajas prestaciones tendrá un rendimiento bajo que provocará que el usuario final tenga un rendimiento inferior al esperado independientemente de sus factores humanos.

La serie ISO 25000 no establece los niveles de calidad deseables para cada proyecto, si bien se recomienda que los requisitos de calidad deberán ser proporcionales a las necesidades de la aplicación y lo crítico que sea el correcto funcionamiento del sistema implementado.
.
 El modelo de referencia para la medición de la calidad del producto software de la norma ISO/IEC 25000 establece que la calidad del producto software está compuesta de características de calidad, las cuales a su vez se componen de subcaracterísticas. Así mismo, establece que las medidas de calidad software (Software Quality Measures) indican las características y subcaracterísticas de calidad del producto software.
 .
El valor de estas medidas de calidad software se obtiene por la aplicación de una función de medida (Measurement Function) a los elementos de medida de calidad (Quality Measure Elements). Los elementos de medida de calidad son medidas base o medidas derivadas obtenidas según describe el método de medición correspondiente (measurement method), de acuerdo a la ISO/IEC 15939.
 .
Aunque las normas ISO/IEC 9126 y 25000 establecen cuáles son las características de la calidad de un producto software y sus subcaracterísticas, no indica qué medidas de calidad indican una subcaracterística.


Modelo de Referencia de Medición de la Calidad del Producto Software, según la ISO/IEC 25000.

Conclusión  

Si bien no todos los modelos los llaman de la misma forma, todos ellos evalúan el software considerando los mismos factores (como los llama McCall). Se interesan en medir estos factores desde la planificación del proyecto, siguiendo a lo largo de su ciclo de vida hasta su conclusión; es así que cada modelo a su manera ve la forma de garantizar la calidad del producto final.

Referencias

No hay comentarios:

Publicar un comentario