Suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems. Explain your answer according to the type of system being developed:
- A system to control antilock braking in a car.
- A virtual reality system to support software maintenance.
- A university accounting system that replaces an existing system.
- An interactive travel planning system that helps users plan journeys with the lowest environmental impact
The Answer
a) Anti-lock braking system. This is a safety-critical system so requires a lot of up-front analysis before implementation. It certainly needs a plan-driven approach to development with the requirements carefully analyzed. A waterfall model is therefore the most appropriate approach to use, perhaps with formal transformations between the different development stages.
b) Virtual reality system. This is a system where the requirements will change and there will be an extensive user interface components. Incremental development with, perhaps, some UI prototyping is the most appropriate model. An agile process may be used.
c) University accounting system. This is a system whose requirements are fairly well-known and which will be used in an environment in conjunction with lots of other systems such as a research grant management system. Therefore, a reuse-based approach is likely to be appropriate for this.
d) Interactive travel planning system. This is a system with a complex user interface but which must be stable and reliable. An incremental development approach is the most appropriate as the system requirements will change as real user experience with the system is gained.