These design decisions can be made very early on, based just on the general understanding of the main parts of the future system, their functionality, and the data they produce and exchange. There are several benefits of doing this:
- An identification of the structure of the future system that has bearings on the further design steps and implementation
- Specialization and deeper analysis of parts
- Parallel development of parts
- A better understanding of data flow