.NET Architecture & System Design Interview Question #1

What is software architecture?

Architecture Fundamentals, Scalability, Availability & Performance Junior Beginner

Quick Interview Answer

Software architecture is the high-level structure of a software system: its major components, their responsibilities, the relationships between them, and the principles that guide important design decisions.

Detailed Explanation

Software architecture is the high-level structure of a software system: its major components, their responsibilities, the relationships between them, and the principles that guide important design decisions.

Architecture focuses especially on decisions that are expensive to change later, such as system boundaries, deployment style, data ownership, communication patterns, security boundaries, and major technology constraints.

Code Example

Architecture describes:
- major components
- responsibilities
- dependencies
- data flow
- deployment boundaries
- important quality attributes