La arquitectura de software; se refiere a las estructuras fundamentales de un sistema de software y la disciplina de crear dichas estructuras y sistemas. Incluye los elementos de software, sus propiedades externas observables, las relaciones entre ellos, también de los principios y guías de su diseño y evolución. Determina cómo se organiza el sistema, cómo interactúan sus componentes y qué limitaciones se aplican a su implementación.
La Arquitectura en Capas (Layered Architecture) es uno de los estilos más comunes.
Los componentes se organizan en capas horizontales, donde cada capa proporciona servicios a la capa inmediatamente superior y utiliza servicios de la capa inmediatamente inferior. Esto ayuda a la separación de responsabilidades (SoC).