What is software architecture?

Definition

Software architecture describes the major parts of an application and how they exchange information. It includes responsibility boundaries, dependencies, data storage, and decisions about where important behavior belongs.

Understanding architecture helps developers and agents identify the right place for a change without reading every implementation detail. That broad understanding must still be checked against the actual code, especially where historical exceptions or tightly connected components affect behavior.

ELI5

Software architecture is the overall arrangement of a program. It shows which part handles each job and how those parts communicate.

For example, an app might separate its screens, business rules, and stored records. Understanding those boundaries helps a developer change a screen without accidentally changing how records are saved.

Frequently asked questions

How is architecture different from implementation detail?

Architecture describes major responsibilities and relationships. Implementation detail describes the specific code used to carry them out.

Can a diagram alone establish how a system works?

No. Diagrams can become outdated, so architectural assumptions should be checked against current code and observed behavior.

Videos explaining software architecture

  1. Theo Browne on understanding codebases with AI