You are in charge of five software development projects. The ‘characteristics’ of each of your projects are as follows:

• Project 1: Web-site for a local company. Relatively small system. Requirements are unclear and likely to change in the near future.

• Project 2: A very large embedded system whose requirements can be easily identified and are relatively stable.

• Project 3: A ‘standard’ business application. You have developed similar systems like this one in the past.

• Project 4: A relatively complex administrative system for one of the local hospitals. Some of the requirements seem to be pretty unclear, but all the requirements are stable.

• Project 5: A small real-time control system to be used for monitoring patients in a local hospital.

Consider the following software development approaches/models: waterfall, throw-away prototyping, evolutionary prototyping, component-based development, formal development. Which of the above approaches/models would you choose for each of your projects? Briefly explain your choices.