Calidad en el Desarrollo de Software: Factores Clave y Modelos de Evaluación
Clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 4,94 KB
Visión Conceptualizada del Software
El software debe funcionar como se espera, con un buen rendimiento, con un nivel adecuado de usabilidad, fiabilidad y seguridad. Además, se debe poder evolucionar adecuadamente con el paso del tiempo, envejeciendo bien según se le van haciendo las inevitables modificaciones para irse adaptando a nuevas realidades técnicas y de negocio. Por último, debe ser portable y compatible con otros sistemas.
La Calidad del Proceso
La calidad, vista desde el mundo de los procesos, nos dice que la calidad del producto software está determinada por la calidad del proceso. Por proceso se entienden las actividades, tareas, entrada, salida, procedimientos, etc., para desarrollar y mantener software. Modelos, normas y metodologías típicas aquí son CMMI, ISO 15504 / ISO 12207, el ciclo de vida usado; incluso las metodologías ágiles entran aquí.
La Calidad del Producto
Existen modelos de calidad de producto, destacando entre ellos la ISO 9126 (ISO, 2001), o la nueva serie ISO 25000 (ISO, 2005a), que especifica diferentes dimensiones de la calidad de producto. Aunque aquí la dura tarea de evaluación recae en el uso de métricas software.
La Calidad del Equipo
Si hubiese que elegir, de entre las claves que determinan el éxito (o fracaso) de un proyecto software, me aventuraría a decir que este sería el papel que juegan “las personas”.
Modelo McCall
Presentado en 1977, se originó motivado por la USA Air Force y DoD21. McCall está organizado sobre tres tipos de características de calidad:
- Factores (especificar)
- Criterios (construir)
- Métricas (controlar)
Características del Modelo McCall
- Transición: reusabilidad, interoperatividad, portabilidad.
- Operación: integridad, fiabilidad, correctitud, facilidad de uso, eficiencia.
- Revisión: facilidad de pruebas, flexibilidad, mantenimiento.
Modelo Boehm
Enfoque del Modelo
El modelo se centra en:
- Sus características operativas.
- Su capacidad para soportar los cambios.
- Su adaptabilidad a nuevos entornos.
- La evaluación del desempeño del hardware.
Características del Modelo Boehm
- Características de Alto Nivel: Utilidad, Mantenimiento, Portabilidad.
- Características de Nivel Medio (Factores): Portabilidad, Fiabilidad, Eficiencia, Usabilidad, Capacidad de Prueba, Comprensibilidad, Flexibilidad.
- Características Primitivas: Independencia, Completitud, Exactitud, Consistencia, Eficiencia, Accesibilidad, Comunicatividad, Estructuración, Autodescriptividad, Concisión, Legibilidad, Expansibilidad.
ISO/IEC 25000: Calidad del Producto de Software
ISO/IEC 25000, relacionada con la calidad del producto, proporciona una guía para el uso de la nueva serie de estándares internacionales llamada Requisitos y Evaluación de Calidad de Productos de Software. Constituye una serie de normas basadas en ISO/IEC 9126 y en ISO/IEC 14598, cuyo objetivo principal es guiar el desarrollo de los productos de software mediante la especificación de requisitos y evaluación de características de calidad.
Divisiones de ISO/IEC 25000
- ISO/IEC 2500N – División de Gestión de Calidad: ISO/IEC 25000, ISO/IEC 25001.
- ISO/IEC 2501N – División de Modelo de Calidad: ISO/IEC 25010 - ISO/IEC 25019.
- ISO/IEC 2502N – División de Medición de Calidad: ISO/IEC 25020 - ISO/IEC 25024.
- ISO/IEC 2503N – División de Requisitos de Calidad: ISO/IEC 25030.
- ISO/IEC 2504N – División de Evaluación de Calidad: ISO/IEC 25040 - ISO/IEC 25045.
Simulación en Pruebas de Software
La simulación se trata de crear un escenario de pruebas que refleje las características significativas de la realidad. Las pruebas deben simular las situaciones:
- Picos de trabajo.
- Funcionalidades que consumen muchos recursos.
- Caída de elementos de infraestructura.
- Conocer el tiempo de recuperación del sistema en condiciones de demanda.
Características de las Herramientas de Simulación
Las herramientas deben reunir las siguientes características:
- Parametrización de funcionalidad del software.
- Ejecución de funcionalidad de manera concurrente y generar carga concurrente.
- Simular diferentes perfiles de ejecución (picos y carga de trabajo).
- Finalmente, recolectar los resultados de las pruebas para su posterior análisis.