Education homework help. 1. Why is software design necessary? Would it be more efficient for a software engineer to gather requirements and go straight to software construction? Discuss the pros and cons of such an approach.2. A software design is assessed in terms of design qualities such as sufficiency, robustness, flexibility, reusability, efficiency, and reliability. In your own words, describe the meaning of 1 or 2 of these qualities. Use examples or counterexamples on why it is important to have these qualities.