Consideraciones practicas
3.1 Requisitos de Calidad de Software
La calidad comienza con la definición de lo que el sistema debe ser capaz de hacer más allá de sus funciones básicas.
- Identificación de atributos: Los ingenieros deben extraer requisitos no funcionales (disponibilidad, seguridad, usabilidad).
- Influencia en el diseño: Estos requisitos actúan como restricciones que dictan la arquitectura del sistema. Por ejemplo, un requisito de alta disponibilidad obligará a un diseño con redundancia.
- Criterios de aceptación: Se deben definir niveles medibles para estos atributos para poder validar si se cumplieron al final del desarrollo.
3.2 Caracterización de Defectos
Para mejorar la calidad, es fundamental entender la naturaleza de lo que falla.
- Defecto vs. Falla: Un defecto es una anomalía en el software (error en el código o diseño), mientras que una falla es la manifestación externa de ese defecto durante la ejecución.
- Clasificación: Los defectos se analizan por su origen (¿fue un error de requisitos o de codificación?), su severidad (¿detiene el sistema?) y su frecuencia.
- Densidad de defectos: Se utiliza como métrica para identificar qué módulos del sistema son más propensos a errores y requieren más atención.
3.3 Técnicas de Gestión de Calidad
Esta sección describe métodos prácticos para controlar la calidad durante el ciclo de vida:
- Revisiones e Inspecciones: Aplicación constante de exámenes técnicos para detectar errores lo antes posible, cuando el costo de corrección es menor.
- Pruebas de Software: Aunque tienen su propio capítulo (Cap. 4), aquí se ven como una herramienta de control para verificar que el producto cumple con los estándares.
- Análisis Estático: Uso de herramientas para examinar el código sin ejecutarlo, buscando patrones problemáticos o violaciones de estándares de codificación.
3.4 Modelado y Medición de la Calidad
No se puede gestionar lo que no se puede medir.
- Modelos de Calidad: Implementación de marcos como el ISO/IEC 25010 para estructurar la evaluación.
- Métricas de Calidad: Se establecen indicadores clave (KPIs) como el tiempo medio entre fallas (MTBF) o el porcentaje de cobertura de pruebas.
- Análisis de Tendencias: Evaluar si la calidad está mejorando o empeorando a medida que avanza el proyecto para ajustar los procesos.
3.5 Calidad de los Procesos de Software
La premisa central es que la calidad del producto está fuertemente ligada a la calidad del proceso.
- Evaluación de procesos: Uso de modelos de madurez (como CMMI) para determinar si los procesos de la organización son capaces de producir software de calidad de manera consistente.
- Cumplimiento de estándares: Asegurar que el equipo sigue las metodologías prometidas (ya sean ágiles o tradicionales).
3.6 Herramientas de Calidad de Software
La sección concluye destacando la importancia de la automatización:
- Herramientas de soporte: Sistemas de seguimiento de defectos (Issue Trackers), herramientas de análisis estático de código, y marcos de automatización de pruebas que permiten mantener la calidad sin depender exclusivamente del esfuerzo manual humano.