Carlos Eduardo Diaz Polanco
ATAM: Architecture Tradeoff Analysis Method
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.
¿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.
¿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.
¿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.
¿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.
¿Con qué tensiones de atributos te has encontrado al diseñar o operar sistemas? Comparte tu experiencia y qué priorizaste en cada caso.
Carlos Eduardo Diaz Polanco
ATAM: Architecture Tradeoff Analysis Method
Hiram Rodriguez Gomez
Al principio me pareció chistoso lo que estaba realizando el profesor en el video. Pero conforme avanzó, me dejó con el ojo cuadrado lo claro que quedó explicado el,tema de la clase.
Ojalá hubiera más clases así, sobre todo en los cursos densamente teóricos.
Flor Dulcinea Peña Campos
Coincido con esto, explicar temas complejos con palabras simples hace que no se olvide.
David Andrade Morales
Super interesante, por eso el rol del arquitecto es tan importante, porque él entiende del problema y desarrolla su arquitectura dependiendo de los requerimientos, riesgos, restricciones y ahora de sus atributos. Es genial, esto debería saberlo cualquier programador.
Alejandro Cortes
La mejor y mas clara explicación de lo que vimos, de verdad que muy bueno, entendí todo en esta sola clase
Guadalupe Monge Barale
Matriz de Tensiones de los Atributos de Calidad
En la tabla, cada atributo (como Disponibilidad, Uso de recursos, Capacidad de instalación, etc.) se compara con los otros. Un símbolo + indica que hay una relación positiva entre los atributos, lo que significa que mejorar uno puede mejorar el otro. Por ejemplo, una mayor Madurez podría resultar en mejor Reusabilidad. Un símbolo - indica que hay una relación negativa, es decir, mejorar uno puede afectar negativamente al otro. Por ejemplo, aumentar la Seguridad podría disminuir la Usabilidad.
Análisis por Atributo
Alejandro Picado Brenes
¿Cómo se lee la tabla de tensiones entre atributos compartida? si entendí bien leyendo la primera línea de las verticales, si tengo Disponibilidad entonces tengo + Madurez y + Robusteza en la línea de las horizontales y si aparece un - (menos) entonces tengo menos del atributo.
Cristian Blandon
Lo que indicas está perfecto.
Relacionándolo un poco con el ejemplo de seguridad mostrado en clase, si te fijas en la tabla, si me enfoco en la seguridad, mi aplicación será menos eficiente, menos portable, menos usable, será más difícil hacer pruebas con ella porque ahora hay una capa extra al medio; pero será más madura y estará más protegida ante errores.
¡Saludos!
Juan José Fernández Duarte
En la arquitectura de software, los atributos de calidad son directamente influenciados por las decisiones arquitectónicas que tomamos. En algunos libros se le conoce como "tradeoffs" a los intercambios que existen entre estos atributos, por ejemplo:
La idea es optimizar todos los atributos de calidad que tomemos en cuenta, siempre en base a los requerimientos de nuestro sistema.
Andrés Madrigal
Esa camara/lampara esta genial!!
German Tapia Galvan
Al final de este video menciona que dejará una lectura, ¿En donde se encuentra esta lectura?
Cristian Gómez
Que buena representación y/o analogía para hacerse entender, muy claro.
Luis Rodolfo Altuve Cáceres
En arquitectura de software, las tensiones entre atributos de calidad se refieren a los compromisos o conflictos que surgen cuando optimizar un atributo (como seguridad o eficiencia) afecta negativamente a otro (como portabilidad o mantenibilidad). Estos trade-offs son inevitables, ya que los recursos y el diseño tienen límites, y priorizar un aspecto puede desbalancear otros. Entre las interrogantes que pueden surgir:
La seguridad (ej. cifrado, autenticación) puede reducir la eficiencia (más procesamiento) y complicar la mantenibilidad (código más complejo), aunque mejora la confiabilidad al proteger el sistema.
Alta modularidad facilita la mantenibilidad, pero puede dificultar la instalación si cada módulo requiere configuraciones específicas, afectando la portabilidad.
La eficiencia (rapidez) a menudo sacrifica redundancia, mientras que la resiliencia (recuperación ante fallos) la necesita. Se balancea priorizando según el contexto: velocidad en sistemas críticos de tiempo real, resiliencia en sistemas distribuidos.
La estética (interfaz atractiva) puede sobrecargar el sistema (más recursos) o simplificar demasiado la funcionalidad, reduciendo su utilidad práctica por enfocarse en apariencia.
Conclusión: Estas tensiones requieren decisiones estratégicas basadas en los objetivos del sistema. Un buen arquitecto evalúa el contexto para encontrar un equilibrio aceptable.
Juan Carlos Ortiz Romero
En los inicios de la informática, la programación se consideraba un arte y se desarrollaba como tal debido a la dificultad que entrañaba para la mayoría de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guías generales, con base a las cuales se puedan resolver los problemas. A estas, se les ha denominado arquitectura de software, porque, a semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software. En el libro "An introduction to Software Architecture", David Garlan y Mary Shaw definen que la arquitectura es un nivel de diseño que hace foco en aspectos "más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la estructura global del sistema es un nuevo tipo de problema".
Winston Chavez
Cree software de alta calidad, aproveche las prácticas de la industria y planifique la calidad en su solución; pero asegúrese de priorizar con cuidado
Diego Guevara
Seria genial que incluyeran el link de la lectura sugerida por el profesor. gracias.
Diego Forero
Team PlatziLo encuentras en la pestaña de enlaces, esta en el último slide, sin embargo lo dejo aquí
Diego Guevara
Gracias.
Ramón Isidro García Esquer
Alguien puede explicar como se interpreta el archivo de Tensiones entre atributos
Jeisson Duran
Psss yo lo leí el atributo de calidad que estamos evaluando en la columna, y como se ve afectado los otros atributos en cada fila
Antonio Madrid
¡Excelentes similitudes! Me encanta cuando en Platzi generan ejemplos tan sencillos y tan conectados al tema de forma super ingeniosa. Absolutamente genial.
Juan David Mantilla López
Cool. Me gustó mucho las analogías que uso Guido
JOSE DIAZ
La novia: Donde estará mi colita amarilla?
Kevin Fiorentino
Jajajaja
Kevin Fiorentino
Muy buenas analogías!