As software engineers, we often focus on the task of decomposing a system into components.

¿Cómo es esto?

Esto implica examinar el dominio del negocio y decidir qué partes pueden dividirse en servicios, módulos y objetos. Esencialmente, al diseñar arquitecturas de soluciones, a menudo nos centramos solo en las cajas. Sin embargo, las líneas entre ellas son al menos igual de importantes. Es esencial prestar atención al diseño de cómo interactúan esos componentes: qué conocimiento se comparte entre ellos, cómo se comparte y cómo afecta al sistema en su conjunto. Además, como has visto, el diseño de los componentes y sus interacciones están estrechamente relacionados.