La calidad del producto software se evalúa con la norma ISO/IEC 25010 (SQuaRE), que define ocho características: adecuación funcional, eficiencia de desempeño, compatibilidad, usabilidad (capacidad de interacción), fiabilidad, seguridad, mantenibilidad y portabilidad. Su predecesora ISO/IEC 9126-1 definía solo seis (funcionalidad, fiabilidad, usabilidad, eficiencia, mantenibilidad y portabilidad). El modelo de calidad en uso agrega cinco características distintas: efectividad, eficiencia, satisfacción, ausencia de riesgo y cobertura del contexto. La familia ISO/IEC 25000 se organiza en cinco divisiones (2500n gestión, 2501n modelo, 2502n medición, 2503n requisitos, 2504n evaluación), y la ISO/IEC 25040 estructura el proceso de evaluación en cinco actividades.
La calidad de proceso se apoya en ISO/IEC/IEEE 12207 (procesos del ciclo de vida del software). La madurez se valora con CMMI, cuya representación por etapas define cinco niveles: 1 Inicial, 2 Gestionado, 3 Definido, 4 Gestionado cuantitativamente y 5 En optimización. La norma ISO/IEC 15504 (SPICE) / 33020 usa seis niveles de capacidad (0 Incompleto a 5 En optimización).
La verificación responde «¿construimos bien el producto?» (conforme a la especificación) y la validación «¿construimos el producto correcto?» (conforme a las necesidades del usuario). Las revisiones e inspecciones son técnicas estáticas para detectar defectos de forma temprana. El aseguramiento de la calidad (SQA) es preventivo y orientado al proceso, mientras que el control de calidad (QC) es detectivo y orientado al producto.
Métricas de software por cálculo:
1. ¿Cuántas características de calidad integra el modelo de calidad del PRODUCTO de la norma ISO/IEC 25010:2011?
El modelo de calidad del producto de ISO/IEC 25010:2011 (SQuaRE) define ocho características: adecuación funcional, eficiencia de desempeño, compatibilidad, usabilidad, fiabilidad, seguridad, mantenibilidad y portabilidad. La revisión ISO/IEC 25010:2023 amplió el modelo a nueve. (ISO/IEC 25010:2011) (ISO/IEC 25010:2011, SQuaRE — System and software quality models)
2. ¿Cuál de las siguientes opciones pertenece al modelo de calidad DEL PRODUCTO de ISO/IEC 25010, y no al modelo de calidad en uso?
Mantenibilidad es una de las ocho características del modelo de calidad del producto; efectividad, satisfacción y cobertura del contexto son características del modelo de calidad en uso. (ISO/IEC 25010:2011, SQuaRE — System and software quality models)
3. ¿Cuántas características integran el modelo de calidad EN USO de la norma ISO/IEC 25010?
El modelo de calidad en uso de ISO/IEC 25010 define cinco características: efectividad, eficiencia, satisfacción, ausencia de riesgo y cobertura del contexto, distintas de las ocho del modelo de producto. (ISO/IEC 25010:2011, SQuaRE — System and software quality models)
4. La norma ISO/IEC 9126-1, sustituida posteriormente por ISO/IEC 25010, definía un modelo de calidad del producto con:
ISO/IEC 9126-1 definía seis características (funcionalidad, fiabilidad, usabilidad, eficiencia, mantenibilidad y portabilidad); ISO/IEC 25010 la sustituyó agregando compatibilidad y seguridad como características independientes. (ISO/IEC 9126-1:2001 (sustituida por ISO/IEC 25010:2011))
5. Un equipo de arquitectura evalúa si un sistema puede cambiar de un motor de base de datos a otro distinto con un esfuerzo mínimo de adaptación del código. Según ISO/IEC 25010, esta capacidad corresponde principalmente a:
La portabilidad, mediante su subcaracterística de adaptabilidad, es la capacidad de un producto de adaptarse eficazmente a diferentes entornos de hardware, software u operación, como cambiar de motor de base de datos; la mantenibilidad se refiere a modificar el propio producto, no a adaptarlo a un entorno distinto. (ISO/IEC 25010:2011, SQuaRE — System and software quality models)
6. Durante una prueba de estrés se mide cuántas transacciones simultáneas soporta un sistema antes de que sus tiempos de respuesta se degraden. Esta medición corresponde a la característica de:
La eficiencia de desempeño evalúa el comportamiento relativo a los recursos usados, como el tiempo de respuesta y la capacidad de proceso, bajo condiciones determinadas. (ISO/IEC 25010:2011, SQuaRE — System and software quality models)
7. Un sistema bancario continúa realizando correctamente sus operaciones críticas de transferencia mientras uno de sus servidores falla de manera inesperada, sin interrumpir el servicio. Esta capacidad corresponde principalmente a la subcaracterística de:
La tolerancia a fallos es la capacidad de operar según lo previsto pese a la presencia de fallos de hardware o software, como seguir procesando transacciones cuando un servidor cae. Se distingue de la disponibilidad, que mide si el sistema está operativo y accesible cuando se le requiere, y de la capacidad de recuperación, que restablece datos y estado tras una interrupción. (ISO/IEC 25010:2011, SQuaRE — System and software quality models (subcaracterísticas de fiabilidad))
8. ¿Cuál de las siguientes características NO forma parte de las ocho características del modelo de calidad del PRODUCTO de ISO/IEC 25010?
Efectividad pertenece al modelo de calidad EN USO, no al modelo de calidad del producto; seguridad, compatibilidad y portabilidad sí son características del producto. (ISO/IEC 25010:2011, SQuaRE — System and software quality models)
9. Un usuario con discapacidad visual reporta que no puede operar una aplicación móvil porque los botones no son reconocidos por su lector de pantalla. Según ISO/IEC 25010, esta situación afecta principalmente a la característica de:
La capacidad de interacción (usabilidad) incluye la subcaracterística de accesibilidad, es decir, el grado en que el producto puede ser usado por personas con el rango más amplio de características, incluidas discapacidades. (ISO/IEC 25010:2011, SQuaRE — System and software quality models)
10. En ingeniería de software, la verificación responde principalmente a la pregunta:
La verificación evalúa si el producto se construye conforme a las especificaciones establecidas ('building the product right'); la validación evalúa si se construyó el producto correcto frente a las necesidades reales del usuario. (Boehm, B. (1981), Software Engineering Economics; IEEE Std 1012 (Software Verification and Validation))
11. La validación de software se enfoca principalmente en confirmar que:
La validación responde a si se construyó el producto correcto, es decir, si satisface las necesidades reales del usuario, típicamente mediante pruebas de aceptación sobre el sistema en funcionamiento. (IEEE Std 1012 (Software Verification and Validation); ISO/IEC/IEEE 12207)
12. ¿Cuál de las siguientes actividades es un ejemplo típico de VERIFICACIÓN, y no de validación?
Las inspecciones de artefactos intermedios contra su especificación de origen son técnicas de verificación; las pruebas de aceptación y la satisfacción del usuario corresponden a validación. (IEEE Std 1012 (Software Verification and Validation); ISO/IEC/IEEE 12207)
13. Un analista revisa que el código fuente de un módulo que procesa un arreglo de registros de clientes cumpla exactamente con las reglas descritas en el documento de diseño detallado, sin ejecutar el programa. Esta actividad corresponde a:
Revisar un artefacto contra su especificación sin ejecutar el software es una técnica de verificación estática; no implica ejecución ni confrontación con el usuario final, como sí ocurre en la validación. (IEEE Std 1012 (Software Verification and Validation))
14. Un requerimiento indica que el sistema debe permitir cancelar un pedido en cualquier momento antes del envío. El equipo implementa la función exactamente como se especificó, y todas las pruebas contra esa especificación pasan. Al entregar el sistema, los usuarios señalan que en realidad necesitaban poder cancelar también pedidos ya enviados pero no entregados. Este caso ilustra que el producto:
El sistema cumple fielmente la especificación documentada (verificación exitosa), pero no satisface la necesidad real del usuario (validación fallida), lo que ilustra la diferencia entre construir el producto correctamente y construir el producto correcto. (Boehm, B. (1981), Software Engineering Economics; IEEE Std 1012)
15. ¿En qué momento del ciclo de vida es más apropiado aplicar las técnicas de verificación, conforme a su definición estándar?
La verificación se aplica en cada fase del desarrollo para confirmar que los productos de trabajo cumplen las condiciones impuestas al inicio de esa fase; la validación, en cambio, suele centrarse en el producto final frente a las necesidades del usuario. (IEEE Std 1012 (Software Verification and Validation))
16. ¿Cuál de las siguientes es una técnica característica de la VALIDACIÓN de software?
La prueba de aceptación, al ejecutarse sobre el sistema en funcionamiento y confrontarlo con las necesidades reales del usuario, es una técnica típica de validación; las demás opciones son técnicas de verificación estática. (IEEE Std 1012 (Software Verification and Validation))
17. ¿Cuál de las siguientes listas corresponde correctamente a los cinco tipos de función que distingue el conteo de Puntos de Función de IFPUG?
IFPUG clasifica la funcionalidad en cinco tipos: Entradas Externas (EI), Salidas Externas (EO), Consultas Externas (EQ), Archivos Lógicos Internos (ILF) y Archivos de Interfaz Externa (EIF); términos como 'bases de datos externas' o 'interfaces de usuario' no forman parte de esta clasificación. (ISO/IEC 20926; IFPUG Function Point Counting Practices Manual)
18. En el conteo de puntos de función IFPUG, ¿qué distingue a un Archivo Lógico Interno (ILF) de un Archivo de Interfaz Externa (EIF)?
Un ILF es un grupo de datos lógicamente relacionado que es mantenido dentro de la aplicación contada; un EIF es un grupo de datos referenciado por la aplicación, pero mantenido por otra aplicación. (IFPUG Function Point Counting Practices Manual; ISO/IEC 20926)
19. El Factor de Ajuste de Valor (VAF) de IFPUG se calcula con la fórmula VAF = 0.65 + 0.01 × Σ(GSC), donde Σ(GSC) es la suma de las calificaciones (0 a 5) de 14 características generales del sistema. Si esa suma es 40, ¿cuál es el valor del VAF?
VAF = 0.65 + 0.01 × 40 = 0.65 + 0.40 = 1.05; confundirlo con el valor base (0.65) o con el máximo posible (1.35) son errores comunes. (IFPUG Function Point Counting Practices Manual)
20. Un sistema tiene 250 Puntos de Función No Ajustados (UFP) y un Factor de Ajuste de Valor (VAF) de 1.10. Aplicando FP = UFP × VAF, ¿cuántos Puntos de Función ajustados tiene el sistema?
FP = UFP × VAF = 250 × 1.10 = 275; dividir en lugar de multiplicar (227) o ignorar el ajuste (250) son errores típicos de cálculo. (IFPUG Function Point Counting Practices Manual; ISO/IEC 20926)
21. Un módulo de 8,000 líneas de código (8 KLOC) presenta 24 defectos detectados durante las pruebas. Calculando la densidad de defectos como defectos entre tamaño, ¿cuál es su valor?
Densidad de defectos = 24 defectos / 8 KLOC = 3 defectos por KLOC; invertir la razón (0.33) o multiplicar en vez de dividir (192) son errores frecuentes. (ISO/IEC 25023:2016; IEEE Std 982.1)
22. La densidad de defectos es una métrica de producto que relaciona el número de defectos encontrados con:
La densidad de defectos se define como el cociente entre el número de defectos y el tamaño del software, medido comúnmente en miles de líneas de código (KLOC) o en puntos de función. (ISO/IEC 25023:2016; IEEE Std 982.1)
23. Dos módulos de un mismo sistema presentan 15 defectos detectados cada uno durante las pruebas. El módulo A tiene 5,000 líneas de código y el módulo B tiene 15,000 líneas de código. Desde el punto de vista de la densidad de defectos, ¿qué puede concluirse?
La densidad del módulo A es 15/5 = 3 defectos por KLOC y la del módulo B es 15/15 = 1 defecto por KLOC; aunque el número absoluto de defectos es igual, el módulo A concentra más defectos por unidad de tamaño. (ISO/IEC 25023:2016; IEEE Std 982.1)
24. La versión 1 de un producto tuvo 40 defectos en 500 puntos de función, y la versión 2 tuvo 30 defectos en 250 puntos de función. ¿Qué versión presenta mejor calidad según la densidad de defectos, y con qué valor?
Densidad v1 = 40/500 = 0.08 defectos por punto de función; densidad v2 = 30/250 = 0.12; una menor densidad indica mejor calidad, por lo que la versión 1 es superior. (ISO/IEC 25023:2016; IFPUG Function Point Counting Practices Manual)
25. Respecto al Factor de Ajuste de Valor (VAF) del conteo de puntos de función IFPUG, ¿cuál de las siguientes afirmaciones es correcta?
El VAF se obtiene sumando la calificación (0 a 5) de 14 características generales del sistema y aplicando VAF = 0.65 + 0.01×Σ(GSC), con un rango válido de 0.65 a 1.35. (IFPUG Function Point Counting Practices Manual; ISO/IEC 20926)
26. ¿Cuál es el propósito principal de la norma ISO/IEC/IEEE 12207 dentro de la ingeniería de software?
ISO/IEC/IEEE 12207 es la norma de referencia de procesos del ciclo de vida del software (adquisición, suministro, desarrollo, operación, mantenimiento, soporte); no define características de producto (eso corresponde a ISO/IEC 25010) ni niveles de madurez (eso corresponde a CMMI). (ISO/IEC/IEEE 12207:2017, Systems and software engineering — Software life cycle processes.)
27. En la estructura de procesos de ISO/IEC/IEEE 12207:2017, armonizada con ISO/IEC/IEEE 15288:2015, el proceso de Aseguramiento de la Calidad se ubica dentro de:
En la edición 2017, armonizada con ISO/IEC/IEEE 15288:2015, el Aseguramiento de la Calidad es un proceso técnico de gestión, junto con Gestión de la Configuración, Medición y Gestión de Riesgos. La agrupación 'Procesos de Soporte del Software' correspondía a la edición 2008, no a la estructura de 2017. (ISO/IEC/IEEE 12207:2017, Technical Management Processes (Quality Assurance); alineación con ISO/IEC/IEEE 15288:2015.)
28. En la estructura clásica de ISO/IEC 12207 (procesos primarios, de soporte y organizacionales), los procesos de Adquisición, Suministro, Desarrollo, Operación y Mantenimiento se clasifican como:
Estos cinco procesos constituyen los procesos primarios, orientados a que una parte obtenga o entregue un producto de software; verificación, validación y auditoría, entre otros, son procesos de soporte. (ISO/IEC 12207:1995/2008, categoría de procesos primarios del ciclo de vida.)
29. De los siguientes procesos definidos en ISO/IEC 12207 (edición 1995/2008), ¿cuál pertenece a la categoría de procesos organizacionales del ciclo de vida?
Mejora, junto con Gestión, Infraestructura y Capacitación, forma parte de los procesos organizacionales; gestión de configuración, revisión conjunta y validación son procesos de soporte. (ISO/IEC 12207:1995/2008, categoría de procesos organizacionales del ciclo de vida.)
30. Un equipo entrega un módulo de facturación que cumple exactamente con los requerimientos especificados en el documento de diseño, pero al probarlo con los usuarios finales estos señalan que no resuelve su necesidad real de conciliación de pagos. ¿Qué proceso de ISO/IEC/IEEE 12207 se encarga de confirmar que el software satisface el uso previsto por el usuario, más allá de los requerimientos documentados?
La validación confirma que el producto satisface las necesidades para su uso previsto ("construir el producto correcto"); la verificación solo confirma el cumplimiento de los requerimientos especificados. (ISO/IEC/IEEE 12207:2017, procesos de Validación de software y de Verificación de software.)
31. Un ingeniero de software compara el diseño detallado de un componente contra los requerimientos especificados en la etapa previa, para confirmar que el diseño los refleja correctamente antes de pasar a la construcción. ¿Qué proceso de ISO/IEC/IEEE 12207 describe mejor esta actividad?
La verificación confirma que un producto de trabajo refleja correctamente los requerimientos especificados de la etapa anterior ("construir el producto correctamente"), a diferencia de la validación, orientada al uso previsto. (ISO/IEC/IEEE 12207:2017, proceso de Verificación de software.)
32. La edición 2017 de ISO/IEC/IEEE 12207 armonizó su estructura de procesos de ciclo de vida del software con la de otra norma conjunta ISO/IEC/IEEE. ¿Con cuál?
Las ediciones 2017 de 12207 (software) y 15288 (sistemas) comparten una estructura común de procesos de ciclo de vida, facilitando su uso conjunto en proyectos de sistemas con componentes de software. (ISO/IEC/IEEE 12207:2017, introducción y relación con ISO/IEC/IEEE 15288:2015.)
33. Respecto a los modelos de desarrollo de software (cascada, iterativo, ágil, entre otros), ¿qué característica distingue a ISO/IEC/IEEE 12207 como norma de procesos?
12207 define qué procesos deben existir y su propósito, sin prescribir un modelo de ciclo de vida ni una metodología específica para ejecutarlos. (ISO/IEC/IEEE 12207:2017, alcance y naturaleza de norma de referencia de procesos.)
34. ¿Cuál de los siguientes procesos NO pertenece a los procesos de soporte del ciclo de vida definidos en ISO/IEC 12207 (edición 1995/2008)?
Suministro es un proceso primario en la edición 1995/2008, mientras que gestión de la configuración, auditoría y resolución de problemas son procesos de soporte del ciclo de vida. (ISO/IEC 12207:1995/2008, categorías de procesos primarios y de soporte.)
35. ¿Quién desarrolló, en 1976 durante su trabajo en IBM, el método formal de revisión de software conocido posteriormente como "inspección Fagan"?
Michael Fagan formalizó en IBM el proceso de inspección de software con roles y fases definidas; Humphrey es conocido por PSP/TSP y Boehm por COCOMO y el modelo espiral. (Fagan, M. E. (1976), 'Design and Code Inspections to Reduce Errors in Program Development', IBM Systems Journal.)