.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