Las métricas técnicas para el software proporcionan una manera sistemática de valorar la calidad basándose en un conjunto de reglas. También proporcionan al ingeniero del software descubrir y corregir problemas potenciales antes de que se conviertan en defectos catastróficos.
FACTORES DE CALIDAD
Factores de calidad de McCall
McCall y Cavano definieron un juego de factores de calidad como los primeros pasos hacia el desarrollo de métricas de la calidad del software. Estos factores evalúan el software desde tres puntos de vista distintos:
1. Operación del Producto.
2. Revisión del Producto.
3. Transición del Producto.
1. Operaciones del producto - Características operativas |
|
Corrección ¿Hace lo que se le pide? |
El grado en que una aplicación satisface sus especificaciones y consigue los objetivos encomendados por el cliente. |
Fiabilidad ¿Lo hace de forma fiable todo el tiempo? |
El grado que se puede esperar de una aplicación lleve a cabo las operaciones especificadas y con la precisión requerida. |
Eficiencia ¿Qué recursos hardware y software necesito? |
La cantidad de recursos hardware y software que necesita una aplicación para realizar las operaciones con los tiempos de respuesta adecuados. |
Integridad ¿Puedo controlar su uso? |
El grado con que puede controlarse el acceso al software o a los datos a personal no autorizado. |
Facilidad de uso ¿Es fácil y cómodo de manejar? |
El esfuerzo requerido para aprender el manejo de una aplicación, trabajar con ella, introducir datos y conseguir resultados |
2. Revisión del producto - Capacidad para soportar cambios |
|
Facilidad de mantenimiento ¿Puedo localizar los fallos? |
El esfuerzo requerido para localizar y reparar errores. |
Flexibilidad ¿Puedo añadir nuevas opciones? |
El esfuerzo requerido para modificar una aplicación en funcionamiento. |
Facilidad de prueba ¿Puedo probar todas las opciones? |
El esfuerzo requerido para probar una aplicación de forma que cumpla con lo especificado en los requisitos. |
3. Transición del producto - Adaptabilidad a nuevos entornos |
|
Portabilidad ¿Podré usarlo en otra máquina? |
El esfuerzo requerido para transferir la aplicación a otro hardware o sistema operativo. |
Reusabilidad ¿Podré utilizar alguna parte del software en otra aplicación? |
Grado en que partes de una aplicación pueden utilizarse en otras aplicaciones |
Interoperabilidad ¿Podrá comunicarse con otras aplicaciones o sistemas informáticos? |
El esfuerzo necesario para comunicar la aplicación con otras aplicaciones o sistemas informáticos |
Métrica para el esquema de puntuación
Las métricas pueden ir en forma de lista de comprobación para evaluar y puntuar atributos específicos del software.
McCall, propuso un esquema de puntuación en una escala del 0 (bajo) al 10 (alto). Se emplean las siguientes métricas en el esquema de puntuación:
Facilidad de auditoría |
La facilidad con la que se puede comprobar el cumplimiento de los estándares. |
Exactitud |
La exactitud de los cálculos y del control. |
Estandarización de comunicaciones |
El grado de empleo de estándares de interfaces, protocolos y anchos de banda. |
Complexión |
El grado con que se ha logrado la implementación total de una función. |
Concisión |
Lo compacto que es el programa en términos de líneas de código. |
Consistencia |
El empleo de un diseño uniforme y de técnicas de documentación a lo largo del proyecto de desarrollo del software |
Estandarización de datos |
El empleo de estructuras y tipos de datos estándares a lo largo del programa. |
Tolerancia al error |
El daño causado cuando un programa encuentra un error. |
Eficiencia de ejecución |
El rendimiento del funcionamiento de un programa. |
Capacidad de expansión |
El grado con que se pueden ampliar el diseño arquitectónico, de datos o procedimental. |
Generalidad |
La amplitud de aplicación potencial de los componentes del programa. |
Independencia del hardware |
El grado con que se desacopla el software del hardware donde opera. |
Instrumentación |
El grado con que el programa vigila su propio funcionamiento e identifica los errores que ocurren. |
Modularidad |
La independencia funcional de componentes de programa. |
Operatividad |
La facilidad de operación de un programa |
Seguridad |
La disponibilidad de mecanismos que controlan o protegen los programas y los datos. |
Autodocumentación |
El grado en que el código fuente proporcionan documentación significativa |
Simplicidad |
El grado de facilidad con que se puede entender un programa. |
Independencia del sistema software |
El grado de independencia de programa respecto a las características del lenguaje de programación no estándar, características del sistema operativo y otras restricciones del entorno. |
Trazabilidad |
La capacidad de seguir una representación del diseño o un componente real del programa hasta los requisitos. |
Formación |
El grado en que ayuda el software a manejar el sistema o los nuevos usuarios. |
FURPS
El modelo de McCall ha servido de base para modelos de calidad posteriores, y este es el caso del modelo FURPS, producto del desarrollo de Hewlett-Packard. En este modelo se desarrollan un conjunto de factores de calidad de software, bajo el acrónimo de FURPS.
F |
Functionality - funcionalidad |
U |
Usability – usabilidad – facilidad de uso |
R |
Reliability - confiabilidad |
P |
Performance - desempeño |
S |
Supportability - capacidad de soporte |
La siguiente tabla, presenta la clasificación de los atributos de calidad que se incluyen en el modelo, junto con las características asociadas a cada uno (Pressman, 2002).
Factor de Calidad |
Atributos |
Funcionalidad
|
· Características y capacidades del programa · Generalidad de las funciones · Seguridad del sistema |
Facilidad de uso
|
· Factores humanos · Factores estéticos · Consistencia de la interfaz · Documentación |
Confiabilidad
|
· Frecuencia y severidad de las fallas · Exactitud de las salidas · Tiempo medio de fallos · Capacidad de recuperación ante fallas · Capacidad de predicción |
Rendimiento |
· Velocidad del procesamiento · Tiempo de respuesta · Consumo de recursos · Rendimiento efectivo total · Eficacia |
Capacidad de Soporte |
· Extensibilidad · Adaptabilidad · Capacidad de pruebas · Capacidad de configuración · Compatibilidad · Requisitos de instalación |
El modelo FURPS incluye, además de los factores de calidad y los atributos, restricciones de diseño y requerimientos de implementación, físicos y de interfaz. Las restricciones de diseño especifican o restringen el diseño del sistema. Los requerimientos de implementación especifican o restringen la codificación o construcción de un sistema (por ejemplo, estándares requeridos, lenguajes, políticas). Por su parte, los requerimientos de interfaz especifican el comportamiento de los elementos externos con los que el sistema debe interactuar. Por último, los requerimientos físicos especifican ciertas propiedades que el sistema debe poseer, en términos de materiales, forma, peso, tamaño (por ejemplo, requisitos de hardware, configuración de red).
Factores de calidad ISO 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 (Pressman, 2002). 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 provee una descomposición de las características en subcaracterísticas, que se muestran en la siguiente tabla:
Característica |
Subcaracterística |
Funcionalidad
|
· Adecuación · Exactitud · Interoperabilidad · Seguridad |
Confiabilidad
|
· Madurez · Tolerancia a fallas · Recuperabilidad |
Usabilidad
|
· Entendibilidad · Capacidad de aprendizaje · Operabilidad |
Eficiencia |
· Comportamiento en tiempo · Comportamiento de recursos |
Mantenibilidad
|
· Analizabilidad · Modificabilidad · Estabilidad · Capacidad de pruebas |
Portabilidad
|
· Adaptabilidad · Instalabilidad · Reemplazabilidad |
ISO/IEC 9126 no son necesariamente usados para mediciones directas (Pressman,
2002), pero proveen una valiosa base para medidas indirectas, y una excelente lista
para determinar la calidad de un sistema.
ESTRUCTURA PARA LAS MÉTRICAS TÉCNICAS DEL SOFTWARE
Es importante establecer una estructura fundamental y un conjunto de principios básicos para la medición de métricas técnicas para el software.
Los principios básicos de la medición, sugeridos por Roche, pueden caracterizarse mediante cinco actividades:
Formulación |
Obtención de medidas y métricas del software apropiadas para la representación del software. |
Colección |
Mecanismo empleado para acumular datos necesarios para obtener las métricas formuladas. |
Análisis |
Cálculo de las métricas y aplicación de herramientas matemáticas. |
Interpretación |
Evaluación de los resultados de las métricas en un esfuerzo por conseguir una visión interna de la calidad de la representación. |
Realimentación |
Recomendaciones obtenidas de la interpretación de métricas técnicas transmitidas al equipo software. |
Los principios que se pueden asociar con la formulación de las métricas técnicas son los siguientes:
o Los objetivos de la medición que deben establecerse antes de empezar la recolección de datos.
o Todas las técnicas sobre métricas deben definirse sin ambigüedades.
o Las métricas deberían obtenerse basándose en una teoría válida para el dominio de aplicación.
o Hay que hacer las métricas a medida para acomodar mejor los productos y procesos específicos.
Roche sugiere los siguientes principios para la recolección y análisis de datos:
o Siempre que sea posible, la recogida de datos y el análisis debe automatizarse.
o Se deben aplicar técnicas estadísticas válidas para establecer las relaciones entre los atributos internos del producto y las características externas de la calidad.
o Se deben establecer directrices de interpretación y recomendaciones para todas las métricas.
La métrica obtenida y las medidas que conducen a ello deben tener las siguientes características:
o Simples y fáciles de calcular.
o Empírica e intuitivamente persuasivas.
o Consistentes y objetivas.
o Consistentes en el empleo de unidades y tamaños.
o Independiente del lenguaje de programación.
o Un mecanismo eficaz para la realimentación de calidad.