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.
![](/overview.png)
Architectural overview
Layered structure
Each layer relies on the one below only, and provides services to the one above only.
![](/layered.png)
Layered architecture
Repository structure
All subsystem interaction done via repository.
![](/repository.png)
Repository architecture
Pipe & Filter structure
Linear data pathways formed, components process & filter the data to correct outputs.
![](/pipefilter.png)
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).
![](/mvc.png)