.NET Architecture & System Design Interview Question #3
What is the difference between software architecture and software design?
Architecture Fundamentals, Scalability, Availability & Performance Junior Beginner
Quick Interview Answer
Software architecture deals with system-wide structure and high-impact decisions, such as service boundaries, dependency direction, databases, communication styles, and deployment models. Software design also includes lower-level decisions inside those boundaries.
Detailed Explanation
Software architecture deals with system-wide structure and high-impact decisions, such as service boundaries, dependency direction, databases, communication styles, and deployment models. Software design also includes lower-level decisions inside those boundaries.
Choosing a modular monolith is primarily architectural. Choosing Strategy to vary a pricing algorithm is usually a design-level decision. The boundary is not absolute, but architecture generally has broader scope and higher change cost.
Code Example
Architecture:
Application -> Modules -> Database
Design inside a module:
CheckoutService -> IPricingStrategy