Não existe uma resposta definitiva para isso, porque "arquitetura de software" e "design de software" têm várias definições e também não existe uma definição canônica.
Uma boa maneira de pensar sobre isso é a afirmação de Len Bass, Paul Clements e Rick Kazman de que "toda arquitetura é design, mas nem todo design é arquitetura" [Arquitetura de Software na Prática]. Não sei se concordo plenamente com isso (porque a arquitetura pode incluir outras atividades), mas captura a essência de que a arquitetura é uma atividade de design que lida com o subconjunto crítico do design.
Minha definição levemente irreverente (encontrada na página de definições do SEI ) é que é o conjunto de decisões que, se tomadas de maneira errada, fazem com que seu projeto seja cancelado.
Uma tentativa útil de separar arquitetura, design e implementação como conceitos foi realizada por Amnon Eden e Rick Kazman, há alguns anos, em um trabalho de pesquisa intitulado "Arquitetura, Design, Implementação", que pode ser encontrado aqui: http: //www.sei.cmu .edu / library / assets / ICSE03-1.pdf . Sua linguagem é bastante abstrata, mas simplisticamente eles dizem que a arquitetura é um design que pode ser usado em muitos contextos e deve ser aplicado em todo o sistema, design é um design (err) que pode ser usado em muitos contextos, mas é aplicado em uma parte específica do sistema e a implementação é design específico para um contexto e aplicado nesse contexto.
Portanto, uma decisão de arquitetura pode ser uma decisão de integrar o sistema via sistema de mensagens em vez de RPC (portanto, é um princípio geral que pode ser aplicado em muitos locais e se destina a ser aplicado a todo o sistema), uma decisão de design pode ser o uso de um mestre / estrutura de encadeamento escravo no módulo de tratamento de solicitações de entrada do sistema (um princípio geral que poderia ser usado em qualquer lugar, mas neste caso é apenas usado em um módulo) e, finalmente, uma decisão de implementação pode ser a de transferir responsabilidades pela segurança do Request Router ao manipulador de solicitações no módulo Gerenciador de solicitações (uma decisão relevante apenas para esse contexto, usada nesse contexto).
Eu espero que isso ajude!