Factores que Determinan la Calidad del Software (Garvin)
Los factores de calidad de Garvin se centran en la percepción del usuario y la experiencia con el software.
Calidad del Desempeño
¿El software entrega todo el contenido, las funciones y las características especificadas como parte del modelo de requerimientos, de manera que da valor al usuario final?
Calidad de las Características
¿El software tiene características que sorprenden y agradan la primera vez que lo emplean los usuarios finales?
Confiabilidad
¿El software proporciona todas las características y capacidades sin fallar? ¿Está disponible cuando se necesita? ¿Entrega funcionalidad libre de errores?
Conformidad
¿El software concuerda con los estándares locales y externos que son relevantes para la aplicación? ¿Concuerda con el diseño de facto y las convenciones de código?
Durabilidad
¿El software puede recibir mantenimiento (cambiar) o corregirse (depurarse) sin la generación inadvertida de eventos colaterales? ¿Los cambios ocasionarán que la tasa de errores o la confiabilidad disminuyan con el tiempo?
Servicio
¿Existe la posibilidad de que el software reciba mantenimiento (cambios) o correcciones (depuración) en un periodo de tiempo aceptablemente breve? ¿El equipo de apoyo puede adquirir toda la información necesaria para hacer cambios o corregir defectos?
Estética
No hay duda de que todos tenemos una visión diferente y muy subjetiva de lo que es estético. Aun así, la mayoría de nosotros estaría de acuerdo en que una entidad estética posee cierta elegancia, un flujo único y una “presencia” obvia que es difícil de cuantificar y que, no obstante, resulta evidente.
Percepción
En ciertas situaciones, existen prejuicios que influirán en la percepción de la calidad por parte del usuario. Por ejemplo, si se introduce un producto de software elaborado por un proveedor que en el pasado ha demostrado mala calidad, se estará receloso y la percepción de la calidad del producto tendrá influencia negativa.
Factores que Determinan la Calidad del Software (McCall)
Los factores de McCall se centran en tres aspectos importantes de un producto de software:
Características Operativas
- Corrección: ¿Hace lo que quiero?
- Fiabilidad: ¿Lo hace de forma fiable todo el tiempo?
- Eficiencia: ¿Se ejecutará en mi hardware lo mejor que pueda?
- Seguridad (Integridad): ¿Es seguro?
- Facilidad de Uso: ¿Está diseñado para ser usado?
Capacidad de Soportar los Cambios
- Facilidad de Mantenimiento: ¿Puedo corregirlo?
- Flexibilidad: ¿Puedo cambiarlo?
- Facilidad de Prueba: ¿Puedo probarlo?
Adaptabilidad a Nuevos Entornos
- Portabilidad: ¿Podré usarlo en otra máquina?
- Reusabilidad: ¿Podré reutilizar alguna parte del software?
- Interoperabilidad: ¿Podré hacerlo interactuar con otro sistema?
Factores de Calidad de McCall (Definiciones Detalladas)
Corrección
Grado en el que un programa satisface sus especificaciones y en el que cumple con los objetivos de la misión del cliente.
Confiabilidad
Grado en el que se espera que un programa cumpla con su función y con la precisión requerida (debe notarse que se han propuesto otras definiciones más completas de la confiabilidad).
Eficiencia
Cantidad de recursos de cómputo y de código requeridos por un programa para llevar a cabo su función.
Integridad
Grado en el que es posible controlar el acceso de personas no autorizadas al software o a los datos.
Usabilidad
Esfuerzo que se requiere para aprender, operar, preparar las entradas e interpretar las salidas de un programa.
Facilidad de Mantenimiento
Esfuerzo requerido para detectar y corregir un error en un programa (ésta es una definición muy limitada).
Flexibilidad
Esfuerzo necesario para modificar un programa que ya opera.
Susceptibilidad de Sometimiento a Pruebas
Esfuerzo que se requiere para probar un programa a fin de garantizar que realiza la función que se pretende.
Portabilidad
Esfuerzo que se necesita para transferir el programa de un ambiente de sistema de hardware o software a otro.
Reusabilidad
Grado en el que un programa (o partes de uno) pueden volverse a utilizar en otras aplicaciones (se relaciona con el empaque y el alcance de las funciones que lleva a cabo el programa).
Interoperabilidad
Esfuerzo requerido para acoplar un sistema con otro.
Factores de Calidad ISO 9126
El estándar ISO 9126 se desarrolló con la intención de identificar los atributos clave del software. Este sistema identifica seis atributos clave de la calidad:
Funcionalidad
Grado en el que el software satisface las necesidades planteadas según las establecen los atributos siguientes: adaptabilidad, exactitud, interoperabilidad, cumplimiento y seguridad.
Confiabilidad
Cantidad de tiempo que el software se encuentra disponible para su uso, según lo indican los siguientes atributos: madurez, tolerancia a fallas y recuperación.
Usabilidad
Grado en el que el software es fácil de usar, según lo indican los siguientes subatributos: entendible, aprendible y operable.
Eficiencia
Grado en el que el software emplea óptimamente los recursos del sistema, según lo indican los subatributos siguientes: comportamiento del tiempo y de los recursos.
Facilidad de Mantenimiento
Facilidad con la que pueden efectuarse reparaciones al software, según lo indican los atributos que siguen: analizable, cambiable, estable, susceptible de someterse a pruebas.
Portabilidad
Facilidad con la que el software puede llevarse de un ambiente a otro según lo indican los siguientes atributos: adaptable, instalable, conformidad y sustituible.
Actividades de Aseguramiento de la Calidad del Software (SQA)
Las actividades de SQA son fundamentales para garantizar la calidad a lo largo del ciclo de vida del desarrollo de software:
- Preparar un plan de SQA para un proyecto.
- Participar en el desarrollo de la descripción del proceso de software del proyecto (Ejemplo: ISO 9001).
- Revisar las actividades de Ingeniería de Software para verificar su ajuste al proceso de software definido.
- Auditar productos de trabajo de software seleccionados para verificar el ajuste con los definidos como parte del proceso del software.
- Garantizar que las desviaciones del trabajo y los productos del software se documentan y se manejan de acuerdo con un procedimiento establecido.
- Registrar cualquier falta de ajuste y lo informar al gestor ejecutivo.
¿Las Buenas Prácticas Garantizan el Éxito?
No, pero su implementación puede asegurar que un fracaso no se deba a:
- Falta de planificación.
- Falta de estimaciones.
- Definición de requisitos pobre.
- Incapacidad de entregar productos en tiempo y presupuesto.
- Falta de entrenamiento.
- Ausencia o muy pobre gestión de riesgos.
- Ausencia o muy pobre aseguramiento de la calidad.
- Recursos inapropiados.
- Expectativas poco realistas.
- Falta de comunicación.
Factores de Calidad Adicionales (Orientados a la Interfaz de Usuario)
Intuitiva
Grado en el que la interfaz sigue patrones esperados de uso, de modo que hasta un novato la pueda utilizar sin mucha capacitación.
Eficiencia
Grado en el que es posible localizar o iniciar las operaciones y la información.
Robustez
Grado en el que el software maneja entradas erróneas de datos o en el que se presenta interacción inapropiada por parte del usuario.
Riqueza
Grado en el que la interfaz provee un conjunto abundante de características.
