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.
Layered structure
Each layer relies on the one below only, and provides services to the one above only.
Repository structure
All subsystem interaction done via repository.
Pipe & Filter structure
Linear data pathways formed, components process & filter the data to correct outputs.
Modev-view-controller (MVC) structure
Focuses on interpreting user actions (controller -> model), updating the data (model), and presenting it to the user (view).