To design software, you need to divide the software into different components and design each part separately and avoid code repetition.