Atributos de la Calidad de
Software
Diplomado en Calidad de Software UNI – FIIS - POSGRADO
«Todo programa hace algo correctamente, que puede no ser lo que necesitamos que haga.»
Contenido
• Modelo McCall
• Modelo de calidad ISO 9126
Contenido
• Modelo McCall
• Modelo de calidad ISO 9126
Factores de calidad de McCall
• Los factores que afectan la calidad del sw se
pueden categorizar en dos amplios grupos:
1. Factores que se pueden medir directamente 2. Factores que se pueden medir indirectamente • En ambos casos debe aparecer la medición
• Debemos comparar el SW con una referencia
Factores de calidad de McCall
• Los factores de calidad de McCall son tan
Factores de calidad de McCall
Operación del producto
Factores de calidad de McCall
Operación del producto
Revisión del producto Transición del producto
Portabilidad Reusabilidad
Interoperabilidad Facilidad de Mantenimiento
Flexibilidad
Factores de calidad de McCall
• Entonces es razonable decir que los factores
Factores de calidad de McCall
Operación del producto
Factores de calidad de McCall
Operación del producto
• Corrección. Hasta donde satisface un
programa su especificación y logra los objetivos propuestos
• Fiabilidad. Hasta donde se puede esperar que un programa lleve a cabo su función con la
Factores de calidad de McCall
… Operación del producto
• Eficiencia. La cantidad de recursos
informáticos y de código necesarios para que un programa realice su función
• Integridad. Hasta donde se controla el acceso al software o a los datos por personas no
Factores de calidad de McCall
… Operación del producto
• Usabilidad. (Facilidad de manejo) El esfuerzo
necesario aprender a operar los datos de entrada e interpretar las salidas de un
Factores de calidad de McCall
Operación del producto
Revisión del producto Transición del producto Facilidad de Mantenimiento
Flexibilidad
Factores de calidad de McCall
Revisión del producto
• Facilidad de mantenimiento. Esfuerzo
necesario para localizar y arreglar un error en un programa
• Flexibilidad. El esfuerzo necesario para modificar un programa que ya está en funcionamiento.
Factores de calidad de McCall
… Revisión del producto
• Facilidad de prueba. El esfuerzo necesario
Factores de calidad de McCall
Operación del producto
Revisión del producto Transición del producto
Portabilidad Reusabilidad
Factores de calidad de McCall
Transición del producto
• Portabilidad. El esfuerzo necesario para
transferir el programa de un entorno
hardware/software a otro entorno diferente
• Interoperabilidad. El esfuerzo necesario para acoplar un sistema con otro.
Factores de calidad de McCall
… Transición del producto
• Reusabilidad. (Capacidad de reutilización)
Hasta donde 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
Factores de calidad de McCall
• Es difícil, y en algunos casos imposible,
desarrollar medidas directas de los factores de calidad listados
• Se definen y emplean un conjunto de métricas para desarrollar expresiones para todos los
factores:
Factores de calidad de McCall
Fq = c1*m1 + c2*m2 + c3*m3 + … + cn*mn
Fq : Es un factor de calidad de software cn : Son coeficientes de regresión
Factores de calidad de McCall
• Muchas de las métricas pueden medirse
solamente de manera subjetiva
• Las métricas pueden ir en forma de lista de comprobación
Factores de calidad de McCall
Métricas
• Facilidad de auditoría
• Exactitud
• Estandarización de comunicaciones
• Complección
• Concisión
• Consistencia
• Estandarización de datos
• Tolerancia al error
• Eficiencia de ejecución
• Capacidad de expansión
• Generalidad
• Independencia del hardware • Instrumentación • Modularidad • Operatividad • Seguridad • Autodocumentación • Simplicidad
• Independencia del sistema de software
• Trazabilidad
Factores de calidad de McCall
Factores de calidad de McCall
Métricas
• 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
Factores de calidad de McCall
… Métricas
• Estandarización de comunicaciones. El grado de empleo de estándares de interfaces,
protocolos y anchos de banda
• Complección. El grado con que se ha logrado la implementación
• Concisión. Lo compacto que es el programa en
Factores de calidad de McCall
… Métricas
• 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
Factores de calidad de McCall
… Métricas
• 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
Factores de calidad de McCall
… Métricas
• 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.
Factores de calidad de McCall
… Métricas
• 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
Factores de calidad de McCall
… Métricas
• Seguridad. La disponibilidad de mecanismos que controlan o protegen los programas y los datos
• Autodocumentación. El grado en que el código fuente proporciona documentación significativa
• Simplicidad. El grado de facilidad con que se puede entender un programa
Factores de calidad de McCall
… Métricas
• Independencia del sistema de 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
Factores de calidad de McCall
… Métricas
• Trazabilidad. La capacidad de seguir una
representación del diseño o un componente real del programa hasta los requisitos
Contenido
• Modelo McCall
• Modelo de calidad ISO 9126
Modelo de Calidad ISO 9126
Ha sido desarrollado en un intento de identificar los atributos clave de calidad para el software
Identifica seis atributos clave de calidad:
• Funcionalidad
• Confiabilidad
• Usabilidad
• Eficiencia
• Facilidad de
Mantenimiento
Modelo de Calidad ISO 9126
Funcionalidad
El grado en que el software satisface las
necesidades indicadas por los siguientes sub atributos: idoneidad, corrección,
Modelo de Calidad ISO 9126
Confiabilidad
Cantidad de tiempo que el software esta
disponible para su uso. Está referido por los
Modelo de Calidad ISO 9126
Usabilidad
Grado en que el software es fácil de usar. Viene reflejado por los siguientes sub atributos:
Modelo de Calidad ISO 9126
Eficiencia
Grado en que el software hace óptimo el uso de recursos del sistema. Está indicado por los
Modelo de Calidad ISO 9126
Facilidad de Mantenimiento
La facilidad con que una modificación puede ser realizada. Está indicado por los siguientes sub atributos: facilidad de análisis, facilidad de
Modelo de Calidad ISO 9126
Portabilidad
La facilidad con que el software puede ser
llevado de un entorno a otro. Está referido por los siguientes sub atributos: facilidad de
Modelo de Calidad ISO 9126
• Los factores en este modelo no son utilizados
para medidas directas
• Facilitan una valiosa base para medidas
Contenido
• Modelo McCall
• Modelo de calidad ISO 9126
• Atributos de Calidad: Internos y Externos
Atributos de Calidad
• Frecuentemente, es imposible medir los
atributos de calidad directamente.
• Se ven afectados por diversos factores y no
Atributos de calidad
Clasificación de las métricas de software
Los atributos pueden ser de tres tipos:
• Procesos: atributos de actividades relacionadas
con el software.
• Productos: componentes, entregas o documentos
resultantes de una actividad de proceso.
Atributos de calidad
Clasificación de las métricas de software
Dentro de cada clase se puede distinguir:
• Atributos internos: Son aquellos que pueden
ser medidos examinando el proceso, producto o recurso mismo.
Atributos de calidad
ENTIDADES
ATRIBUTOS
INTERNOS EXTERNOS
Productos
Especificaciones, diseño, código, …
Tamaño, reusabilidad,
modularidad, funcionalidad, acoplamiento, complejidad, …
Comprensión, mantenibilidad,
calidad, fiabilidad, …
Procesos
Realización de la
especificación, del diseño, del código, …
Tiempo, esfuerzo, cambios de requisitos, fallos en la
especificación,
Calidad, coste, estabilidad, …
Recursos
Persona, equipos,
hardware, software, …
Edad, precio, tamaño del
equipo, velocidad, tamaño de memoria, …
Productividad,
Atributos de calidad
• Atributos externos
– Usabilidad
– Integridad
– Eficiencia
– Testeabilidad
– Reusabilidad
• Atributos internos
– Tamaño del producto
– Long. de Especif.
– Modularidad del diseño
– Acoplamiento y cohesión
Atributos de calidad
Atributos del Producto
• El uso principal de los atributos internos es la predicción de los atributos externos.
• Midiendo y controlando algunos atributos
Atributos de calidad
Atributos internos
• Los atributos internos describen los productos de software de forma que dependen
únicamente del producto mismo.
• El producto puede ser descrito en función de:
– Su tamaño
Atributos de calidad
Atributos internos
• Atributos usados para medir el tamaño del software:
– Longitud: tamaño físico del producto.
– Funcionalidad: funciones que proporciona el producto al usuario.
Atributos de calidad
Atributos externos
Los atributos externos de un producto son
aquellos que pueden medirse únicamente con respecto a cómo el producto se relaciona con su entorno.
Atributos de calidad
Atributos externos
La mayoría de los atributos externos están relacionados con algún aspecto de la calidad.
• Los modelos de calidad recogen atributos clave
denominados factores de calidad, que normalmente son atributos externos de alto nivel.
• Los factores de calidad pueden descomponerse en atributos de bajo nivel denominados criterios de calidad.
• Los criterios de calidad pueden asociarse con un conjunto de atributos de bajo nivel medibles
Atributos de calidad
Atributos de calidad
Mantenibilidad
Número de parámetros del procedimiento
Extensión del manual del usuario
Complejidad ciclomática
Número de mensajes de error
Tamaño del programa en líneas de código
Fiabilidad
Portabilidad
Atributos de Calidad
• Es necesario medir atributos internos y
suponer que existe una relación clara entre lo que podemos medir y lo que queremos saber.
• De forma ideal, existe una relación clara y
Atributos de Calidad
Para que la medida del atributo interno sea un
indicador útil de la característica externa, se deben cumplir tres condiciones:
• El atributo interno debe medirse de forma precisa
• Debe existir una relación entre lo que se puede medir y el atributo de comportamiento externo.
• Esta relación se comprende, ha sido validada y se puede expresar en términos de una fórmula o
Atributos de Calidad
La formulación del modelo comprende identificar la forma del modelo (lineal,
Atributos de Calidad
El desarrollo del modelo, si se confía en él,
requiere que se tenga experiencia en técnicas estadísticas e, idealmente, alguien con
Atributos de Calidad
• La subjetividad y la especialización también
influyen en la determinación de la calidad del software.
Atributos de Calidad
• No deberíamos esperar poder medir la calidad
Atributos de Calidad
«Año tras año ingeniamos instrumentos más exactos con los que observar la naturaleza con
más exactitud. Y cuando miramos las
observaciones estamos desconcertados de ver que todavía son confusas, y tenemos la
Contenido
• Modelo McCall
• Modelo de calidad ISO 9126
• Atributos de Calidad: Internos y Externos
Medición de la calidad de software
«Lo mismo que las medidas de temperatura comienzan con un índice de referencia y
evolucionan por sofisticadas escalas,
herramientas y técnicas, de la misma forma están madurando las medidas de software»
Medición de la calidad de software
Actividades de un proceso de medición
Un proceso de medición se puede caracterizar por cinco actividades:
• Formulación
• Colección • Análisis
Medición de la calidad de software
Actividades de un proceso de medición
• Formulación. La obtención de medidas y
métricas del software apropiadas para la representación del software en cuestión.
• Colección. El mecanismo empleado para
Medición de la calidad de software
Actividades de un proceso de medición
• Análisis. El cálculo de las métricas y la
aplicación de herramientas matemáticas.
• Interpretación. La evaluación de los resultados
de las métricas en un esfuerzo por conseguir una visión interna de la calidad de la
Medición de la calidad de software
Actividades de un proceso de medición
• Realimentación (feedback). Recomendaciones
obtenidas de la interpretación de métricas
Medición de la calidad de software
Principios de la formulación de métricas técnicas
• Los objetivos de la medición deberían
establecerse antes de empezar la recogida de datos.
Medición de la calidad de software
Principios de la formulación de métricas técnicas
• Las métricas deberían obtenerse basándose en
una teoría válida para el dominio de aplicación.
• Hay que hacer las métricas a medida para
Medición de la calidad de software
Principios para las actividades del proceso
• Siempre que sea posible, la recogida de datos
y el análisis debe automatizarse.
• Se deberían aplicar técnicas estadísticas
válidas para establecer las relaciones entre atributos internos del producto y las
Medición de la calidad de software
Principios para las actividades del proceso
• Se deberían establecer unas directrices de
Medición de la calidad de software
Características de las métricas del software
Se han propuesto cientos de métricas para el software, pero no todas proporcionan un
Medición de la calidad de software
Características de las métricas del software
Algunas demandan mediciones demasiado
complejas, otras son tan esotéricas que pocos profesionales tienen la esperanza de
Medición de la calidad de software
Características de las métricas del software
Medición de la calidad de software
Métricas y medidas efectivas
Deberían ser:
• Simples y fáciles de calcular
• Empírica e intuitivamente persuasivas
• Consistentes y objetivas
• Consistentes en el empleo de unidades y tamaños
• Independientes del lenguaje de programación
Medición de la calidad de software
Métricas y medidas efectivas
• Simples y fáciles de calcular: Debería ser relativamente fácil aprender a obtener la
métrica y su cálculo no debería demandar un esfuerzo o cantidad de tiempo inusuales.
• Empírica e intuitivamente persuasivas:
Medición de la calidad de software
Métricas y medidas efectivas
• Consistentes y objetivas: Debería siempre
Medición de la calidad de software
Métricas y medidas efectivas
• Consistentes en el empleo de unidades y
Medición de la calidad de software
Métricas y medidas efectivas
• Independientes del lenguaje de programación:
Deberían basarse en el modelo de análisis,
modelo de diseño o en la propia estructura del programa. No deberían depender de los
Medición de la calidad de software
Métricas y medidas efectivas
• Un eficaz mecanismo para realimentación de
Consejo:
• La experiencia indica que una métrica técnica
se usa únicamente si es intuitiva y fácil de calcular. Si se requiere docenas de
«contadores» y se han de utilizar complejos cálculos, la métrica no será ampliamente