Architectural Design
Why?
To understand how a system should be organised.
- Conceptual Integrity
- Quality driven eg. fault tolerance, maintainability, backwards compatability
- Recurring architecture styles
- Separation of concerns to reduce complexity
System overview
Represented with box/arrow diagrams. Arrows show direction of data/control flow, can also show breakdown of larger subsystems.

Architectural overview
Layered structure
Each layer relies on the one below only, and provides services to the one above only.

Layered architecture
Repository structure
All subsystem interaction done via repository.

Repository architecture
Pipe & Filter structure
Linear data pathways formed, components process & filter the data to correct outputs.

Pipe & Filter architecture
Modev-view-controller (MVC) structure
Focuses on interpreting user actions (controller -> model), updating the data (model), and presenting it to the user (view).
