An architecture design is concerned with understanding how a system should be organized and designing the overall structure of that system. In the model of software development process, architecture design is the first stage of the system. It describes hoe the system is organized as a set of communicating components.
Writing specification for the whole system might bring great complexity and it is difficult to formulate it. So, it is easier to divide the system into simpler subsystems and define their specification and it will define specification and put it into the respective subsystem.
Hence we can concurrently develop subsystems and the specifications to be readily into the implementation stage.
The architecture has to be designed before specifications are written, because
1. To provide a means of structuring.
2. The specification and developing different sub-system specifications concurrently.
3. To allow manufacture of hardware by sub-contractors and to provide a model for system costing.