La arquitectura de software proporciona un marco de referencia para guiar la construcción de software a través de patrones. Establece la estructura, funcionamiento e interacción entre las partes del software. La arquitectura de software define de manera abstracta los componentes, sus interfaces y la comunicación entre ellos.