Read in English · Lire en français · Auf Deutsch lesen
Sección 2.2 de 2.8 · Intermedio · 18 min de lectura
Los modelos de calidad: ISO/IEC 25010 y cómo usarla
Videolección
4 min · narrado en inglés, con subtítulosSolo escuchar (audio)
Leer la transcripción
En la lección anterior viste que los atributos de calidad deciden la mayor parte de una arquitectura. La siguiente pregunta obvia es: ¿qué cualidades? Esta lección presenta los modelos de calidad, la principal norma internacional y cómo usarla sin ahogarse en papeleo.
Cuando compras un vehículo de segunda mano, una buena lista de comprobación evita que te olvides de cosas: el motor, los frenos, los neumáticos, el óxido, la documentación y el consumo de combustible. No necesitas que todo sea perfecto. Pero quieres haber revisado cada punto y decidido si te importa. Un modelo de calidad es esa lista de comprobación para el software.
Si se las deja a su aire, las partes interesadas mencionan las dos o tres cualidades que les hicieron daño la última vez, normalmente la velocidad y el tiempo de actividad. Un modelo de calidad es una lista estructurada de características de calidad, cada una dividida en subcaracterísticas más concretas. Cumple dos funciones. Da a las personas un vocabulario compartido, para que fiabilidad signifique lo mismo para todos. Y actúa como lista de comprobación, que te lleva a considerar cualidades que nadie ha planteado todavía. Es un mapa del territorio, no una ruta a través de él.
El modelo más citado es la norma internacional ISO/IEC 25010. Su segunda edición, publicada en dos mil veintitrés, define la calidad del producto. Tiene nueve características. La adecuación funcional pregunta si el sistema hace lo correcto y lo hace bien. Las otras ocho describen con qué calidad lo hace, y lo bien que puede operarse, protegerse y cambiarse. Tres características cambiaron respecto a la edición de dos mil once. La usabilidad pasó a llamarse capacidad de interacción, con un nuevo énfasis en la inclusividad para personas de distintas edades y capacidades. La portabilidad pasó a ser flexibilidad, que ahora incluye la escalabilidad: la capacidad de hacer frente a una carga cambiante. Y se añadió la seguridad física, porque hoy tanto software controla cosas físicas, desde automóviles hasta dispositivos médicos. Cuando un contrato mencione esta norma, comprueba a qué edición se refiere.
También encontrarás otras listas. FURPS más agrupa los requisitos en funcionalidad, usabilidad, fiabilidad, rendimiento y soportabilidad, y añade restricciones. Es breve, pero la soportabilidad mete muchas cosas en el mismo saco. El libro Software Architecture in Practice trata las cualidades que con más frecuencia guían las arquitecturas, con tácticas para cada una, lo que lo hace especialmente útil para los arquitectos. Y el modelo abierto Q42, mantenido junto a la plantilla arc42, etiqueta mucho más de un centenar de cualidades con nombre. Estas listas se solapan en gran medida. No existe una única forma correcta de descomponer la calidad, solo formas más o menos útiles para un fin.
El gran riesgo es que un modelo se convierta en un formulario, lleno de afirmaciones como el sistema será mantenible, que nadie lee y nadie prueba. En su lugar, recorre las características con las partes interesadas una vez, en más o menos una hora. Califica cada una como alta, media, baja o no aplicable, y registra una frase de justificación. Escribir no aplicable es útil, porque registra una decisión. Solo para las altas, revisa las subcaracterísticas para encontrar la inquietud precisa, como la capacidad de recuperación en lugar de la fiabilidad en general. Después convierte cada inquietud en un escenario medible, ordénalos y guarda el modelo hasta la próxima revisión.
Apliquemos esto a la app móvil de un banco con un millón doscientos mil usuarios. La tarde del día de cobro, alrededor del veinticinco por ciento inicia sesión en dos horas. Eso son trescientos mil inicios de sesión, o unos cuarenta y dos por segundo. Si se deja un margen de tres veces esa cifra para las ráfagas, salen unos ciento veinticinco por segundo. Así que el rendimiento se califica como alto, con un escenario: a ese ritmo, los saldos aparecen en dos segundos para el noventa y cinco por ciento de los usuarios con una conexión 4G. La seguridad también es alta. Las subcaracterísticas la precisan: demostrar qué cliente aprobó cada pago y resistir los ataques de credential stuffing sin bloquear a los usuarios legítimos. La seguridad física se marca como no aplicable, porque la app no puede causar daños físicos. Es una decisión, no una omisión. En una hora, el equipo califica cinco características como altas, tres como medias y una como no aplicable, y escribe once escenarios, cada uno con un número.
La sección completa enumera todas las subcaracterísticas, compara las dos ediciones e incluye el ejemplo bancario completo. A continuación, en la sección dos punto tres, aprenderás a escribir escenarios de atributos de calidad que se puedan probar. Nos vemos allí.
Lo que necesitas saber
- Un modelo de calidad ofrece un vocabulario compartido de características y subcaracterísticas de calidad y funciona como lista de comprobación para encontrar las cualidades que importan.
- ISO/IEC 25010:2023 define nueve características del producto: adecuación funcional, eficiencia de rendimiento, compatibilidad, capacidad de interacción, fiabilidad, seguridad, mantenibilidad, flexibilidad y seguridad (safety).
- En comparación con 2011, la usabilidad pasó a ser capacidad de interacción, la portabilidad pasó a ser flexibilidad, se añadió la seguridad (safety) y la calidad en uso pasó a una norma separada, ISO/IEC 25019:2023.
- Otras listas, como FURPS+, las cualidades de Software Architecture in Practice y Q42, se solapan en gran medida con ISO/IEC 25010; ninguna es la única correcta.
- Usa un modelo para provocar una decisión rápida y explícita sobre cada característica, y convierte solo las pertinentes en unos pocos escenarios medibles y priorizados.
Para qué sirve un modelo de calidad
La Sección 2.1 argumentó que los atributos de calidad deciden la mayor parte de una arquitectura. La siguiente pregunta obvia es: ¿qué cualidades? Si se las deja a su aire, las partes interesadas mencionan las dos o tres que les hicieron daño la última vez, normalmente la velocidad y el tiempo de actividad, y se olvidan del resto hasta que es demasiado tarde. Un modelo de calidad es una lista estructurada de características de calidad, cada una dividida en subcaracterísticas más concretas, con nombres y definiciones acordados. Cumple dos funciones. Da a las personas un vocabulario compartido, para que 'fiabilidad' signifique lo mismo para el product owner, el tester y el proveedor. Y actúa como lista de comprobación, que te lleva a considerar cualidades que nadie ha planteado todavía.
Un modelo no te dice qué cualidades importan para tu sistema ni cuánto necesitas de cada una. Eso sale de las partes interesadas y de los objetivos de negocio (Sección 2.8). Tampoco te dice cómo lograrlas; esa es la tarea de las tácticas, los patrones y el resto de este curso. Es un mapa del territorio, no una ruta a través de él.
ISO/IEC 25010:2023: el modelo de calidad del producto
El modelo más citado es ISO/IEC 25010, que forma parte de la familia de normas SQuaRE (Systems and software Quality Requirements and Evaluation). La segunda edición, publicada en noviembre de 2023, define un modelo de calidad del producto con nueve características. Se aplica a los productos de software y a los productos TIC en general, y la norma enumera sus usos: especificar requisitos, comprobar que los requisitos están completos, fijar objetivos de diseño y de prueba, definir criterios de aceptación y establecer medidas de calidad. Otras normas de la familia definen cómo medir cada subcaracterística (ISO/IEC 25023) y cómo evaluar un producto.
Las nueve características son adecuación funcional, eficiencia de rendimiento, compatibilidad, capacidad de interacción, fiabilidad, seguridad, mantenibilidad, flexibilidad y seguridad (safety). La primera describe si el sistema hace lo correcto y lo hace bien; las otras ocho describen con qué calidad lo hace y lo bien que puede operarse, protegerse y cambiarse. El diagrama siguiente muestra la estructura; la tabla posterior enumera todas las subcaracterísticas con una pregunta de ejemplo que podría hacerse un arquitecto.
Las nueve características
Características, subcaracterísticas y una pregunta de ejemplo para una app de banca móvil
| Característica | Subcaracterísticas | Pregunta de ejemplo |
|---|---|---|
| Adecuación funcional | Completitud funcional, corrección funcional, pertinencia funcional | ¿Calcula la app correctamente la cuota del préstamo, y hace todo lo que el cliente necesita para completar la tarea? |
| Eficiencia de rendimiento | Comportamiento temporal, utilización de recursos, capacidad | ¿Con qué rapidez aparece el saldo en un teléfono de gama media con 4G, y a cuántos usuarios simultáneos puede atender el backend? |
| Compatibilidad | Coexistencia, interoperabilidad | ¿Puede la app intercambiar datos de pago con el sistema nacional de pagos inmediatos, y funcionar junto a otras apps sin agotar los recursos compartidos? |
| Capacidad de interacción (antes usabilidad) | Reconocibilidad de la adecuación, capacidad de aprendizaje, operabilidad, protección contra errores del usuario, implicación del usuario, inclusividad, asistencia al usuario, autodescriptividad | ¿Puede un usuario nuevo configurar una orden de pago periódica sin ayuda, y puede hacer lo mismo un usuario de lector de pantalla? |
| Fiabilidad | Ausencia de defectos, disponibilidad, tolerancia a fallos, capacidad de recuperación | Si el socio de procesamiento de tarjetas está caído, ¿pueden los clientes seguir viendo sus saldos y mover dinero entre sus propias cuentas? |
| Seguridad | Confidencialidad, integridad, no repudio, responsabilidad, autenticidad, resistencia | ¿Podemos demostrar qué cliente autorizó una transferencia, y resiste la app los ataques de credential stuffing? |
| Mantenibilidad | Modularidad, reutilizabilidad, analizabilidad, modificabilidad, capacidad de prueba | ¿Cuánto se tarda en añadir un nuevo tipo de cuenta, y se pueden probar las reglas de transferencia sin un core bancario real? |
| Flexibilidad (antes portabilidad) | Adaptabilidad, escalabilidad, instalabilidad, reemplazabilidad | ¿Puede el backend crecer de 1 a 5 millones de clientes, y podríamos sustituir al proveedor de notificaciones push en un trimestre? |
| Seguridad (safety) | Restricción operativa, identificación de riesgos, seguridad ante fallos (fail safe), advertencia de peligros, integración segura | Pertinente sobre todo para sistemas que pueden causar daños a personas, bienes o el medio ambiente: una bomba de infusión, un controlador de trenes, un robot industrial. |
Conviene conocer con precisión algunas definiciones, porque difieren del uso cotidiano. En ISO/IEC 25010, la disponibilidad es una subcaracterística de la fiabilidad: el grado en que un sistema está operativo y accesible cuando se necesita. La ausencia de defectos es el grado en que un sistema realiza sus funciones sin defectos en funcionamiento normal. La capacidad, dentro de la eficiencia de rendimiento, es el límite máximo de un parámetro, como los usuarios simultáneos o las transacciones por segundo, que todavía cumple los requisitos. La escalabilidad se sitúa dentro de la flexibilidad, lo que refleja una visión del escalado como la capacidad de adaptarse a una carga cambiante más que como una cuestión de velocidad bruta. La resistencia, nueva dentro de la seguridad, es la capacidad de mantener las operaciones mientras se sufre un ataque. Las Secciones 2.4 a 2.7 vuelven a estas cualidades en profundidad; la Sección 2.5 muestra cómo calcular la disponibilidad.
Qué cambió respecto a la edición de 2011
La primera edición, ISO/IEC 25010:2011, sustituyó al antiguo modelo ISO/IEC 9126 y fue la referencia estándar durante una década. Muchos libros de texto, pliegos de licitación y plantillas todavía usan sus ocho características, así que merece la pena saber qué cambió.
ISO/IEC 25010: 2011 comparada con 2023
| Tema | Edición de 2011 | Edición de 2023 |
|---|---|---|
| Número de características | Ocho | Nueve |
| Usabilidad | Usabilidad, incluidas la estética de la interfaz de usuario y la accesibilidad | Renombrada capacidad de interacción; la estética se sustituye por la implicación del usuario; la accesibilidad se divide en inclusividad y asistencia al usuario; se añade la autodescriptividad |
| Portabilidad | Portabilidad: adaptabilidad, instalabilidad, reemplazabilidad | Renombrada flexibilidad; se añade la escalabilidad como subcaracterística |
| Fiabilidad | Madurez, disponibilidad, tolerancia a fallos, capacidad de recuperación | La madurez se sustituye por la ausencia de defectos |
| Seguridad | Confidencialidad, integridad, no repudio, responsabilidad, autenticidad | Se añade la resistencia (soportar ataques) |
| Seguridad (safety) | Tratada solo dentro de la calidad en uso (ausencia de riesgos) | Nueva característica del producto con cinco subcaracterísticas |
| Calidad en uso | Parte de ISO/IEC 25010 (efectividad, eficiencia, satisfacción, ausencia de riesgos, cobertura del contexto) | Pasa a una norma separada, ISO/IEC 25019:2023 (beneficio, ausencia de riesgos, aceptabilidad) |
Los cambios de nombre son más que cosméticos. 'Capacidad de interacción' amplía el enfoque de la facilidad de uso a todo el intercambio de información entre los usuarios y el producto en distintos contextos de uso, y la nueva subcaracterística de inclusividad sitúa la accesibilidad para personas de distintas edades y capacidades en el centro y no en los márgenes. 'Flexibilidad' agrupa las cualidades que permiten a un producto hacer frente a los cambios en su entorno: nuevas plataformas, nuevos destinos de instalación y más o menos carga. Añadir la seguridad (safety) como característica del producto refleja cuánto controla hoy el software cosas físicas, desde automóviles hasta dispositivos médicos.
El segundo cambio estructural es que la calidad en uso, la calidad que experimentan las personas que usan el producto en un contexto real, tiene ahora su propia norma, ISO/IEC 25019:2023. Sus tres características son el beneficio (usabilidad, accesibilidad e idoneidad en el uso), la ausencia de riesgos (riesgo económico, para la salud, para la vida humana, y riesgo ambiental y social) y la aceptabilidad (experiencia, confiabilidad y cumplimiento). La separación aclara una distinción útil para los arquitectos: la calidad del producto es lo que construyes y puedes probar en el producto; la calidad en uso es el resultado para personas reales, que también depende de la formación, el contexto y cómo se despliega el producto.
Otras listas que encontrarás
ISO/IEC 25010 no es la única taxonomía, y los profesionales usan a menudo listas más sencillas o divididas de otra forma. FURPS+ surgió de FURPS, una clasificación desarrollada en Hewlett-Packard y expuesta por Robert Grady y Deborah Caswell en Software Metrics: Establishing a Company-Wide Program (1987). FURPS agrupa los requisitos en funcionalidad, usabilidad, fiabilidad, rendimiento y soportabilidad; la extensión '+' posterior añade restricciones: de diseño, de implementación, de interfaz y físicas y, en algunas versiones, reglas de negocio. FURPS+ se popularizó a través del Rational Unified Process y sus sucesores. Su punto fuerte es la brevedad; su punto débil es que la 'soportabilidad' mete en el mismo saco la mantenibilidad, la capacidad de prueba, la configurabilidad, la instalabilidad y la localización.
Bass, Clements y Kazman, en la cuarta edición de Software Architecture in Practice (2021), no intentan ser exhaustivos. Dedican un capítulo a cada una de las cualidades que con más frecuencia guían las arquitecturas: disponibilidad, desplegabilidad, eficiencia energética, integrabilidad, modificabilidad, rendimiento, seguridad (safety), seguridad, capacidad de prueba y usabilidad, seguidos de un capítulo sobre cómo trabajar con otras cualidades. Para cada una, ofrecen un escenario general y un catálogo de tácticas. Su lista está organizada en torno al diseño y no a la evaluación, lo que la hace especialmente útil para los arquitectos.
Mark Richards y Neal Ford, en Fundamentals of Software Architecture, usan el término características de la arquitectura y las ordenan en grupos como el operativo (disponibilidad, rendimiento, escalabilidad), el estructural (modificabilidad, extensibilidad, portabilidad) y el transversal (seguridad, accesibilidad, aspectos legales). El modelo abierto Q42 de Gernot Starke, mantenido junto a la plantilla arc42, adopta otro enfoque más: etiqueta mucho más de un centenar de cualidades con nombre con nueve dimensiones (eficiente, flexible, mantenible, operable, fiable, seguro ante daños, seguro ante ataques, adecuado, usable) y ofrece requisitos de ejemplo para cada una.
Estas listas discrepan en los detalles, pero se solapan en gran medida. La propia discrepancia es instructiva: no existe una única descomposición correcta de la 'calidad', solo descomposiciones más o menos útiles para un fin. Usar un modelo estándar ayuda cuando necesitas comunicarte con compras, auditores u otras organizaciones; una lista más ligera puede servirle mejor a un equipo de producto en el día a día.
Usar un modelo como lista de comprobación sin crear burocracia
El gran riesgo de un modelo de calidad es que se convierta en un formulario. Una plantilla de requisitos con un apartado para cada una de las 40 subcaracterísticas invita a rellenar todas las casillas, y el resultado es un documento lleno de afirmaciones como 'el sistema será mantenible' que nadie lee y nadie prueba. El esfuerzo se reparte por igual entre cualidades que importan de forma muy desigual, y las dos o tres cualidades que de verdad decidirán la arquitectura se pierden entre las demás.
Un enfoque mejor trata el modelo como punto de partida para una conversación. Recorre las características con las partes interesadas una vez, rápidamente, preguntando para cada una: ¿importa esto para nuestro sistema y, si es así, cómo sería un fallo? Descarta explícitamente las que no sean pertinentes (escribir 'seguridad (safety): no aplicable, la app no puede causar daños físicos' es útil, porque registra una decisión). Convierte las pertinentes en un pequeño número de escenarios concretos y medibles (Sección 2.3). Ordénalos (Sección 2.8). Después guarda el modelo hasta la próxima revisión.
Una forma ligera de aplicar el modelo
- Recorre las nueve característicasEn una sesión de una hora, lee en voz alta cada característica y pregunta a las partes interesadas si importa. Anota a quién le importa y por qué.
- Marca la pertinenciaCalifica cada característica como alta, media, baja o no aplicable, y registra una frase de justificación para cada decisión.
- Profundiza en las altasSolo para las características de pertinencia alta, revisa las subcaracterísticas para encontrar la inquietud precisa, como la capacidad de recuperación en lugar de la fiabilidad en general.
- Escribe escenariosExpresa cada inquietud precisa como uno o dos escenarios medibles con un estímulo, un contexto y una medida de la respuesta.
- Prioriza y enlazaOrdena los escenarios y enlaza cada uno con las decisiones de diseño que guía, para que la lista siga siendo corta y viva.
Ejemplo práctico
Ejemplo práctico: aplicar ISO/IEC 25010 a una app de banca móvil
Un banco mediano va a sustituir su app móvil y su backend. Tiene 1.2 millones de usuarios activos de la app; la tarde del día de cobro, alrededor del 25% de ellos inicia sesión entre las 18:00 y las 20:00. El equipo recorre las nueve características en una hora y registra el resultado.
| Estimación de la carga pico | 1 200 000 × 25% = 300 000 inicios de sesión en 2 horas = 300 000 ÷ 7200 s ≈ 42 inicios de sesión por segundo de media; con un margen de 3× para las ráfagas ≈ 125 por segundo |
|---|---|
| Adecuación funcional: alta | Los intereses, las comisiones y los saldos deben ser exactos hasta el último céntimo. Escenario: todo saldo mostrado concilia con el libro mayor central en un plazo de 5 segundos desde que se registra una transacción. |
| Eficiencia de rendimiento: alta | Escenario: con 125 inicios de sesión por segundo, la pantalla de inicio con los saldos se muestra en 2 segundos para el 95% de los usuarios con una conexión 4G. El consumo de batería y de datos en el teléfono también importa (utilización de recursos). |
| Compatibilidad: media | Debe interoperar con el sistema nacional de pagos inmediatos y con las API de banca abierta que exige la normativa; debe funcionar en las dos últimas versiones principales de los dos sistemas operativos móviles. |
| Capacidad de interacción: alta | Lo que más importa es la inclusividad y la protección contra errores del usuario. Escenario: un usuario de lector de pantalla puede completar un pago a un nuevo beneficiario sin ayuda de una persona que vea; la app avisa antes de un pago a un nombre de beneficiario que no coincide con la cuenta. |
| Fiabilidad: alta | Capacidad de recuperación y tolerancia a fallos. Escenario: si falla la plataforma de tarjetas, los saldos y las transferencias entre cuentas propias siguen funcionando; el servicio completo se restablece en 30 minutos. |
| Seguridad: alta | Autenticidad, no repudio y resistencia. Escenario: cada pago se autoriza con autenticación reforzada del cliente y se registra de forma que el banco pueda demostrar quién lo aprobó; 10 000 intentos de credential stuffing por minuto se frenan sin bloquear a los usuarios legítimos. |
| Mantenibilidad: media | Modificabilidad y capacidad de prueba. Escenario: se puede lanzar un nuevo producto de ahorro en menos de 6 semanas sin cambiar el componente de pagos. |
| Flexibilidad: media | Escalabilidad. Escenario: el backend puede crecer hasta 3 millones de usuarios añadiendo instancias, sin rediseño. |
| Seguridad (safety): no aplicable | La app no puede causar daños físicos; los riesgos para el dinero se tratan en seguridad y fiabilidad. Se registra explícitamente para que la decisión sea visible. |
| Resultado | Cinco características calificadas como altas, tres como medias y una como no aplicable. Once escenarios en total, cada uno con un número. Los tres principales (seguridad, fiabilidad y rendimiento en el pico del día de cobro) se convierten en los objetivos de calidad de la primera página del documento de arquitectura. |
La aritmética convierte 'muchos usuarios el día de cobro' en una cifra de diseño (unos 125 inicios de sesión por segundo en ráfaga) que se puede probar.
Las subcaracterísticas cumplieron su función: 'seguridad' se convirtió en autenticidad, no repudio y resistencia, y cada una sugiere mecanismos distintos.
Marcar la seguridad (safety) como no aplicable es una decisión, no una omisión. Si más adelante el banco añade una funcionalidad que pudiera causar daños, el registro muestra que hay que revisarla.
Preguntas frecuentes
¿Tengo que citar ISO/IEC 25010 para hacer bien la arquitectura?
No. Es valiosa como vocabulario compartido y como lista de comprobación, e imprescindible cuando los contratos o los reguladores hacen referencia a ella. Muchos equipos excelentes usan una lista más ligera. Lo que importa es que las cualidades importantes se identifiquen, se hagan medibles y se prioricen.
¿Dónde encaja la escalabilidad: en el rendimiento o en la flexibilidad?
En ISO/IEC 25010:2023 es una subcaracterística de la flexibilidad, mientras que la capacidad se sitúa dentro de la eficiencia de rendimiento. En la práctica, las dos están muy relacionadas, y la Sección 2.4 las trata juntas. No dejes que las discusiones de clasificación retrasen la redacción del escenario.
¿Está la 'observabilidad' en el modelo?
No con ese nombre. Algunas partes corresponden a la analizabilidad (mantenibilidad) y a la responsabilidad (seguridad). Muchos profesionales la tratan hoy como una cualidad por derecho propio; la Sección 2.7 la analiza.
Comprueba lo que has entendido
¿Cómo pasaron a llamarse la usabilidad y la portabilidad en ISO/IEC 25010:2023?
La usabilidad pasó a ser capacidad de interacción y la portabilidad pasó a ser flexibilidad.
¿Dentro de qué característica sitúa ISO/IEC 25010:2023 la disponibilidad?
Dentro de la fiabilidad, junto con la ausencia de defectos, la tolerancia a fallos y la capacidad de recuperación.
¿Por qué es útil escribir 'no aplicable' junto a una característica en lugar de dejarla en blanco?
Registra una decisión deliberada con su justificación, de modo que los revisores pueden ver que se consideró y la decisión puede revisarse si el sistema cambia.
¿Cuál es el principal peligro de convertir un modelo de calidad en una plantilla de requisitos?
La gente rellena todas las casillas con afirmaciones vagas, el esfuerzo se reparte por igual entre cualidades de importancia muy desigual y las pocas cualidades que de verdad deciden la arquitectura se pierden.
Fuentes y lecturas recomendadas
¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.
Pregunta: “Tenemos una plantilla de requisitos no funcionales de 40 filas basada en ISO 25010. ¿Cómo la reduzco a algo que mi equipo vaya a usar de verdad?”