Software design is a process through which requirements are translated into a ― blueprint for constructing the software. Initially, the blueprint shows how the software will look and what kind of data or components will be required to in making it. The software is divided into separately named components, often called ‘MODULES’, that are used to detect problems at ease. This follows the "DIVIDE AND CONQUER" conclusion. It's easier to solve a complex problem when you break it into manageable pieces.