Ex 2.1
A system to control antilock braking in a car This safety-critical antilock braking system should follow a waterfall process model, because the user requirements for the system are relatively stable and allow for a stable set of specifications that won’t change too much. The user knows exactly what the system should and should not do. A waterfall model would thoroughly work through each software engineering activity to produce the best-engineered system possible.
A virtual reality system to support software maintenance This system requires a fairly new technology to be applied to a fairly well-established set of activities. There are plenty of people who are very good at software maintenance, but these people may or may not be super familiar with how a supporting virtual reality system would work or what the options would be. Here I think incremental development would be the best option, because the user requirements will likely change often as the clients get more experience working with prototypes and such.
A universal accounting system that replaces an existing system I think this system would benefit from a waterfall process model. It’s extremely difficult to increment a system that is completely replacing the existing system. A waterfall model would work well, because the users would be able to thoroughly describe their requirements for the new accounting system. Accounting processes are fairly well-established, so a good client relationship should allow for a solid specification process. Once this is done, the engineers can develop and validate the system in a carefully managed way to deliver a dependable product.
An interactive travel planning system that helps users plan journeys with the lowest environmental impact This system contains a lot of moving parts, so I think the best approach would be the integration and configuration model. The goal would be to repurpose existing components for interactive web services and travel planning services with the added feature of environmental calculations that may or may not already be available. I would think the best option for this environmental feature would be to pull data or scorecards from a reputable source that provides reliable updates. It would take forever to try to build these components from scratch, and it would be hard to imagine delivering a prototype until these three major components are working together.