É preciso ter informações sobre os requisitos essenciais do sistema para projetar uma arquitetura de software que dê suporte a esses requisitos.
Para o desenvolvimento de sistemas de pequeno porte, a arquitetura de software precisa ser projetada, e é necessário haver documentos produzidos para descrever os aspectos críticos do sistema, como esquemas de banco de dados, a divisão de trabalho entre as equipes etc.
A arquitetura de software é afetada pelo desempenho e a robustez, bem como pela capacidade de distribuição e de manutenibilidade de um sistema.
Uma arquitetura de software é uma descrição de como um sistema de software é organizado. As propriedades de um sistema, como desempenho, proteção e disponibilidade, influenciam a arquitetura.
As propriedades emergentes de um sistema podem ter efeitos profundos sobre a arquitetura de software.