Arquitetura de software é o nível de projeto que especifica a estrutura global de um sistema, incluindo subsistemas, camadas e elementos essenciais. O documento discute como produzir uma arquitetura de software inicial, incluindo análise de casos de uso, definição de organização de subsistemas e identificação de abstrações principais.