5.2 - Padrão de Camadas
O padrão de arquitetura de programa principal e sub-rotina conduz a estruturas hierárquicas que se expandem verticalmente e horizontalmente, com cada nível de hierarquia contendo um ou mais componentes que podem interagir com um ou mais componentes com níveis mais baixos da hierarquia.
Com o padrão de arquitetura em camadas, o trabalho realizado para implementar uma função do sistema é mais compartimentada do que no programa principal e sub-rotina. Ele é usado quando o sistema pode ser decomposto em camadas coesas com uma forma estruturada de interface entre as camadas.
A arquitectura em camadas é amplamente utilizada em sistemas como a pilha de comunicação de um sistema operacional, onde cada camada é uma abstração das principais funções de comunicação do sistema operacional. Cada camada também depende dos serviços de outras camadas diretamente abaixo para criar pacotes de comunicação e para proporcionar qualidade de serviço, serviços de roteamento, comunicação ponto a ponto e transmissão usando as diferentes camadas físicas. Desta forma, as regras podem ser impostas a arquitetura lógica do sistema para restringir o acesso entre os componentes, diminuindo o acoplamento e aumentando a sua manutenibilidade e portabilidade.