Atributos de Calidad
del Software
► Los usuarios comúnmente se centran en lo que el
sistema debe hacer por ellos y no piensan en otros
atributos que el software debe tener.
► Son los analistas los que deben estar pendientes
de estos atributos que son igualmente importantes.
Atributos de Calidad (AC)
► Existen 12 atributos de calidad que se deben cuidar
en el desarrollo de todo producto de software y se
puede agrupar en AC importantes para el usuario y
AC que son importantes para los desarrolladores.
► Cuando se analiza una situación se debe pensar
que cuales de estos AC son básicos.
AC importantes para usuarios
► Disponibilidad
► Eficiencia
► Flexibilidad
► Integridad
► Interoperabilidad
► Confiabilidad
► Robustez
► Usable
AC importantes para desarrolladores
► Mantenimiento
► Portabilidad
► Reusable
► Comprobable
► Gestionable
► Seguridad
► Según el tipo de sistema algunos AC son claves:
▪ Ej.
►Sistemas Empotrados : Eficiencia y confiabilidad
►Sistemas Web : disponibilidad, integridad, y
mantenimiento, escalabilidad.
►Sistemas de escritorio: interoperabilidad y usable
Atributos que definen Calidad
► Los requerimientos del usuario son usualmente
medibles o cuantificables.
► Los requerimientos de calidad no.
► Sin embargo los Ingenieros de sistemas deben
buscar mecanismos para medir y verificar todos los
atributos.
► El IEEE 1992 aporta o facilita una guía para realizar
este trabajo.
Atributos de Calidad
Atributos importantes para los
usuarios
► Disponibilidad:Es el tiempo que el sistema estará
disponible para los usuarios.
▪ Ej. El sistema debe esta disponible al menos el 99.5%
del tiempo entre semana de 6 a.m. a 12 m.n. y 99.95%
del tiempo en fin de semana de 4 p.m. a 6p.m.
► Otrosrequerimientos de este tipo pueden hablar
además de el rendimiento o la velocidad a la que
debe estar disponible el sistema.
Atributos importantes para los
usuarios (cont.)
► Eficiencia: es el atributo que dice cómo el sistema
utiliza el equipo (procesador, espacio en disco,
memoria, ancho de banda, etc). Si un sistema
consume muchos recursos su rendimiento de ve
afectado y por ende el usuario.
▪ Ej. Al menos 25% de la capacidad del procesador y
la RAM disponible para el sistema con condiciones
pico.
Atributos importantes para los
usuarios (cont.)
► Flexibilidad:
es la medida que dice cuan fácil es
agregar nuevas capacidades al sistema.
▪ Un programador que tenga al menos 6 meses de
experiencia dando soporte a este sistema debería
ser capaz de instalar un dispositivo de salida externo
(incluyendo modificación de código y pruebas) en no
más de una hora.
Atributos importantes para los
usuarios (cont.)
► Integridad: Es el atributo que habla de la seguridad
de datos y sistema, accesos no autorizados,
pérdida de información, protección contra virus,
privacidad y seguridad de los datos.
▪ Ej. Sólo usuarios con privilegios de Auditores podrán
acceder a los historiales de transacciones de
clientes.
Atributos importantes para los
usuarios (cont.)
► Interoperabilidad:mide cuan fácil el sistema puede
intercambiar datos o servicios con otros sistemas.
▪ Ej. El sistema debe ser capaz de importar cualquier
estructura química válida de … (tabla, archivo etc.)
Atributos importantes para los
usuarios (cont.)
► Confiabilidad: Mide la probabilidad de que el
software se ejecute sin errores por un periodo de
tiempo.
▪ Ej. No más de 5 ejecuciones experimentales en
1000 pueden se pueden perder por fallas del
producto.
Atributos importantes para los
usuarios (cont.)
► Robustez : Es la medida que dice el grado en el
cual el sistema continua operando con propiedad
luego de una entrada inválida, defectos en la
conexión o condiciones inesperadas.
▪ Ej. Si el editor falla antes de que el usuario guarde
su archivo, el editor deberá ser capaz de recuperar
todos los cambios hechos en el archivo durante el
último minuto.
Atributos importantes para los
usuarios (cont.)
► Usable: Mide el esfuerzo requerido para preparar
entradas, operaciones o para interpretar salidas del
producto. Se refiere a que tanto el sistema es
“amigable” con el usuario.
▪ Ej. Un usuario entrenado debería ser capaz de
ingresar una consulta completa en un promedio de
4 a 6 minutos.
Atributos importantes para los
desarrolladores (cont.)
► Mantenimiento : Indica cuan fácil es corregir un
defecto o realizar una modificación al sistema.
▪ Ej. Un programador deberá ser capaz de modificar
un reporte existente en 5 horas o menos de trabajo.
Atributos importantes para los
desarrolladores (cont.)
► Portabilidad: Mide el esfuerzo requerido para
migrar una parte del software de un ambiente
operacional a otro.
► Reusabilidad:
Indica el esfuerzo para reutilizar un
componente de un sistema en otro.
▪ Ej. La funciones de la entrada de la estructura química
deben ser diseñadas para ser reusadas en el nivel de
código objeto en otra aplicación.
Atributos importantes para los
desarrolladores (cont.)
► Comprobable: se refiere al esfuerzo que se hace
para buscar errores.
▪ Ej. La máxima complejidad “ciclomática” de un
módulo no puede exceder a 20.
Requerimientos de Rendimiento
► Definenque tan bien o que tan rápido el sistema
debe realizar una función. Comprenden velocidad
(base de datos, tiempo de respuesta, por ej.)
capacidad ( concurrencia, por ej.), cronometrajes.
▪ Ej. El ciclo de control de temperatura debe ser
ejecutado completamente en 80 milisegundos.
Aseguramiento de la
calidad del software
Introducción
Según el Instituto Internacional de Normas
(International Standards Organization, ISO), calidad
es "la totalidad de las características de un producto
o servicio, que tienen que ver con su capacidad de
satisfacer necesidades enunciadas o implícitas"
22
Calidad del Software
Es la "concordancia con las necesidades
funcionales y de rendimiento explícitamente
establecidas, con los estándares de desarrollo
explícitamente documentados y con las
características implícitas que se esperan de todo
software desarrollado profesionalmente."
23
Características de Calidad
► Funcionalidad: existencia de un conjunto de
funciones (servicios) para satisfacer necesidades.
► Confiabilidad: capacidad para mantener el nivel de
desempeño bajo condiciones enunciadas y
períodos de tiempo enunciados.
► Utilizabilidad: esfuerzo necesario para el uso eficaz
del sistema.
24
Características de Calidad
► Eficiencia: relación entre rendimiento y recursos utilizados.
► Mantenibilidad: esfuerzo necesario para realizar
modificaciones especificadas.
► Portabilidad: capacidad de transferir un sistema de un
ambiente a otro.
► Auditabilidad: facilidad para determinar que el sistema
hace lo requerido, ni más ni menos.
25
Gestión de la Calidad de los Sistemas de Información
26
Aseguramiento de la calidad
► Producto:
Un patrón planificado y sistemático de todas las acciones
necesarias para proveer la confianza adecuada en que el
producto cumple con requerimientos técnicos
preestablecidos.
► Proceso:
Un patrón planificado y sistemático de todas las acciones
necesarias para proveer la confianza adecuada en que el
proceso esté conforme con estándares preestablecidos.
27
Un principio básico del cual debe partirse es
que la calidad de un producto de
software se da por construcción. Las
características de calidad son puestas en un
producto por su creador.
28
En síntesis
Buscar calidad en el proceso obtener calidad
en el producto
Conocer productividad
y calidad poder mejorar
continuamente el
rendimiento
29
Medios para lograr calidad
► Comprometer a la organización con la calidad
► Utilizar las mejores prácticas de ingeniería de software.
► Enfatizar prevención de defectos o su corrección temprana.
► Generar registros que permitan determinar eficacia y
eficiencia.
► Usar registros previos para la mejora continua del proceso.
► Apoyarse en herramientas donde sea pertinente.
30
Aseguramiento de la calidad - Responsabilidades:
► Documentar las políticas de aseguramiento de la calidad
establecidas por la administración superior.
► Prescribir políticas y procedimientos para el control de la
calidad.
► Proveer capacitación, orientación y asesoría internas en lo
concerniente al control de la calidad.
31
Aseguramiento de la calidad - Responsabilidades:
► Dar seguimiento (“monitorear”) continuo a los productos de
software y a los procesos de desarrollo, para introducir
mejoras oportunas.
► Velar porque se cumplan los estándares y procedimientos
establecidos, tanto para proceso como para producto.
► Establecer las medidas de aseguramiento de la calidad de
los sistemas desarrollados por proveedores externos.
32
Control de Calidad
El control de la calidad es el conjunto de técnicas
operativas y actividades utilizadas para satisfacer
los requerimientos de calidad.
El control se enfatiza sobre productos, de manera
que se pueda comprobar que satisfacen sus
especificaciones o que cumplen con valores
predeterminados para ciertos atributos.
33
El control de la calidad se aplica de diversas maneras:
► Verificar que un diseño cubre todos los requerimientos
especificados para un sistema.
► Probar que un programa cumple con todos los casos de
prueba pre-diseñados para él.
► Comprobar en una inspección que un módulo satisface su
especificación.
► Medir el tiempo de respuesta en sistema de procesamiento de
transacciones.
34
Pasos para el Control de la Calidad
1. Definir los atributos de calidad y sus niveles.
2. Definir el procedimiento de comprobación para
cada atributo.
3. Ejecutar el procedimiento de comprobación sobre
cada atributo.
4. Registrar el resultado de la comprobación.
5. Tomar acciones correctivas, registrarlas y darles
seguimiento.
35