Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:
A system to control a car's anti-lock braking system
You could use Incremental or Spiral process models as safety is critical so you need a method that a lot of checks and balances at each stage.
Incremental development is broken down into increments with each increment delivering part of the required functionality, where the user requirements are prioritized and the highest priority requirements are included in early increments however once the development is started, the requirements are frozen but can be used in later increments.
Spiral process is represented as a spiral rather than as a sequence of activities with backtracking where each loop in the spiral represents a phase in the process. There are no fixed phases such as specification or design but loops in the spiral are chosen depending on what is required.
Both Incremental and Spiral would achieve the goal of managing development for the car's anti-lock braking system however incremental development would be the most suited since it takes the allows for checks and balances throughout the life of the development.
A virtual reality system to support software maintenance
An evolutionary model seems to be an ideal solution for a virtual reality system, as the development team has two methods first is the exploratory development which works well with customers and to evolve a final system from an initial outline specification. Second is the throw-away prototyping with this method the objective is to understand the system requirements if the requirements are not fully laid out.
A university accounting system that replaces an existing system
Waterfall has formal structure to manage the process however the drawback is that it is difficult to accommodate changes after starting. But in the waterfall model you would go through a series of step to manage the large requirements, design and implementation requirements.
- Requirements analysis and definition
- System and software design
- Implementation and unit testing
- Integration and system testing
- Operation and maintenance
An interactive system, running in kiosks in train stations, for railway passengers that find train times
In this scenario the best approach would be evolutionary model using a throw away prototyping to find the requirements then switching to a waterfall model for a structured design and implementation.
- Ian Sommerville, (2010) Software Engineering (8th edition), Chapter 4, 5 Pearson Education
- Lecture Notes (2010) Laureate Online Education - University of Liverpool "Seminar 1 Introduction to Software Engineering Study Lecture 1" Software Engineering, © All right reserved, 2002-2010