After, gathering our user requirements, we need to transform them into a suitable form that helps the programmers in coding and implementation work. This step is known as software design. In this section, we will focus on the principles of software design and the different types that are present.