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.