Tensiones entre atributos de calidad de software
Clase 11 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
Viendo ahora - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
Los atributos de calidad en arquitectura de software rara vez crecen todos a la vez. Para tomar buenas decisiones, conviene entender sus tensiones: al priorizar seguridad, modularidad o eficiencia, se afecta usabilidad, instalación o resiliencia. Aquí se explican esas compensaciones con ejemplos sencillos y aplicables.
¿Qué son las tensiones entre atributos de calidad y por qué importan?
Las tensiones aparecen cuando mejorar un atributo degrada otro. En un sistema cliente-servidor o de tres capas, asegurar el core, modularizar componentes o optimizar la ejecución cambia la forma en que se opera, monitorea e instala la solución.
- Atributos de calidad: seguridad, usabilidad, observabilidad, portabilidad, instalación, eficiencia, tolerancia a fallos, resiliencia e idoneidad funcional.
- Tensión o compensación: mejorar uno puede empeorar otro.
- Contexto de arquitectura: esquema cliente-servidor y tres capas condicionan decisiones.
¿Cómo impacta la seguridad en usabilidad, observabilidad y portabilidad?
Proteger la aplicación principal encierra el core detrás de una capa de seguridad. Eso reduce el riesgo de ataques a través de clientes, pero introduce fricción operativa.
- Seguridad: protege el core frente a accesos no deseados.
- Usabilidad: el acceso se vuelve menos directo y más costoso.
- Observabilidad/monitoreo: es más difícil “ver qué pasa adentro”.
- Portabilidad/despliegue: mover la aplicación a otro entorno puede requerir reconfigurar la seguridad.
¿Qué trade-offs muestran modularidad, resiliencia y estética de la interfaz?
Varios ejemplos ilustran cómo una decisión técnica impacta atributos distintos. Entenderlos ayuda a priorizar con criterio.
¿Cuándo la modularidad complica la instalación?
El rompecabezas sin armar representa un sistema muy modularizado: flexible, pero más difícil de instalar y mover. En cambio, el rompecabezas armado está más acoplado, pero se instala con facilidad.
- Modularidad alta: favorece flexibilidad, pero complica la instalación.
- Acoplamiento mayor: simplifica la instalación al costo de menor flexibilidad.
- Decisión práctica: elegir el nivel justo según cómo y dónde se desplegará.
¿Por qué resiliencia reduce eficiencia?
Con cuerdas, la transmisión es eficiente, pero no tolera fallos: un tirón fuerte rompe el sistema. Al introducir una sección elástica, se gana tolerancia a fallos o resiliencia, pero se pierde rapidez en la transmisión.
- Eficiencia: respuesta rápida con mínima pérdida.
- Tolerancia a fallos/resiliencia: resiste esfuerzos imprevistos sin romperse.
- Compensación: más resiliencia implica menor eficiencia temporal.
¿Cómo la estética influye en la idoneidad funcional de la UI?
Una “cámara” que en realidad es una luz prioriza estética sobre idoneidad funcional. La interfaz induce a error: se reconoce mejor una cámara que una luz, afectando la comprensión de lo que hace el sistema.
- Estética: apariencia visual atractiva.
- Idoneidad funcional: qué tan claro es lo que el sistema hace al usarlo.
- Riesgo: una UI estética que confunde reduce la efectividad del uso.
¿Con qué tensiones de atributos te has encontrado al diseñar o operar sistemas? Comparte tu experiencia y qué priorizaste en cada caso.