Nie ma ostatecznej odpowiedzi na to pytanie, ponieważ „architektura oprogramowania” i „projektowanie oprogramowania” mają dość wiele definicji i nie ma też definicji kanonicznej.
Dobrym sposobem myślenia o tym jest stwierdzenie Len Bassa, Paula Clementsa i Ricka Kazmana, że „cała architektura to design, ale nie każdy design to architektura” [Software Architecture in Practice]. Nie jestem pewien, czy całkowicie się z tym zgadzam (ponieważ architektura może obejmować inne działania), ale oddaje to, że architektura jest działaniem projektowym, które zajmuje się krytycznym podzbiorem projektu.
Moja nieco niepoprawna definicja (znaleziona na stronie z definicjami SEI ) jest taka, że jest to zestaw decyzji, które, jeśli zostaną źle podjęte, spowodują anulowanie twojego projektu.
Przydatną próbę rozdzielenia architektury, projektowania i implementacji jako koncepcji dokonali Amnon Eden i Rick Kazman kilka lat temu w artykule badawczym zatytułowanym „Architektura, projektowanie, wdrażanie”, który można znaleźć tutaj: http: //www.sei.cmu .edu / library / asset / ICSE03-1.pdf . Ich język jest dość abstrakcyjny, ale w uproszczeniu mówią, że architektura to projekt, który może być stosowany w wielu kontekstach i ma być stosowany w całym systemie, projekt to (err) projekt, który może być stosowany w wielu kontekstach, ale jest stosowany w określonej części systemu i wdrożenie jest specyficzna dla danego kontekstu i zastosowana w tym kontekście.
Tak więc decyzja architektoniczna może być decyzją o integracji systemu za pomocą komunikatów, a nie RPC (więc jest to ogólna zasada, którą można zastosować w wielu miejscach i ma ona dotyczyć całego systemu), decyzją projektową może być użycie wzorca / struktura wątków slave w module obsługi żądań wejściowych w systemie (ogólna zasada, która może być używana w dowolnym miejscu, ale w tym przypadku jest używana tylko w jednym module) i na koniec decyzja o wdrożeniu może polegać na przeniesieniu odpowiedzialności za bezpieczeństwo z routera żądania do modułu obsługi żądań w module menedżera żądań (decyzja istotna tylko w tym kontekście, zastosowana w tym kontekście).
Mam nadzieję, że to pomoże!