Answer the following questions with your own words.
- What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products?
- What are the four important attributes that all professional software should possess? Suggest four other attributes that may sometimes be significant.
- Apart from the challenges of heterogeneity, business and social change, and trust and secutiry, suggest other problems and chanllenges that software engineering is likely to face in the 21st century. (Hint: Think about the envorionment.)
- Consider the integration and configuation process model shown in Figure 2.3. Explain why it is essential to repeat the requirements engineering activity in the process.
- Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process.
- Explain why software testing should always be an incremental, staged activity. Are programmers the best people to test the programs that they have developed?