A arquitetura de software é algo complexo de se representar e, consequentemente, de se documentar. Por este motivo, é possível identificarmos diferentes maneiras de olhar e compreender uma arquitetura. Voltando a nossa analogia com a construção civil, as visões da arquitetura de software seriam as diferentes plantas existentes para a construção de uma casa ou um prédio.
Em 1995 Philippe Krutchen em seu artigo 4 + 1 Model View traz à luz uma maneira de descrever e compreender uma arquitetura através de quatro pontos de vista:
Estes pontos de vista são amarrados pelos casos de uso arquiteturalmente significativos (muitas vezes chamados de cenários). Estes basicamente capturam os requisitos para a arquitetura e, portanto, estão relacionados a mais de um ponto de vista em particular.
Ao trabalhar com as etapas em um caso de uso, a arquitetura pode ser "testada", explicando como os elementos de design na arquitetura respondem ao comportamento exigido no caso de uso.
Esta visão descreve os elementos significativos da arquitetura e as relações entre eles. A visão lógica essencialmente captura a estrutura do aplicativo usando diagramas de classe ou equivalentes.
XEsta visão se concentra em descrever os elementos de concorrência e de comunicação de uma arquitetura. Em aplicações de TI, as principais preocupações estão descrevendo componentes de segmentos multithreaded e os mecanismos de comunicação síncrona ou assíncrona usado.
XEsta visão descreve como os principais processos e componentes são mapeados para o hardware da aplicação. Ele pode mostrar, por exemplo, como os servidores de banco de dados e web são distribuídos através de um número de servidores.
XEsta visão capta a organização interna dos componentes de software, tipicamente como eles são mantidos em um ambiente de desenvolvimento ou ferramenta de gerenciamento de configuração. Por exemplo, a descrição de uma hierarquia de pacote e classe de uma aplicação Java representa o ponto de vista do desenvolvimento de uma arquitetura.
X