Software Development Life Cycle Models: Waterfall, Incremental, RAD, Prototype
Software Development Life Cycle Models
Waterfall Model
The Waterfall model means that the requirements of a problem are well understood and stable in the 5 Stages of Generic Software Engineering. Documents are generated in each stage. Revisions are made after each stage; the process only passes to the next stage if the previous stage is completed.
Advantages:
- Recommended for products that have a stable definition.
- Recommended when working with known methodologies.
- Helps to minimize the costs of planning because it allows no problems in terms of time, resources, and definitions.
Disadvantages:
- It is difficult to specify clearly the requirements of a project at first, before any design and code are written.
- Small omissions in definition usually mean big changes at different stages of this form.
- Requirements errors are detected in the construction phase.
Incremental Model
The Incremental model is by nature an iterative model. It combines elements of the Waterfall model iteratively applied. It applies a staggered linear sequence over time.
Advantages:
- Useful when staff availability is scarce.
- The increases are useful to lower the technical risk of the project.
Disadvantages:
Similar to those described for the Waterfall model, but less severe.
Conclusion:
- Recommended for projects that can be implemented in installments, modularly.
- Recommended for projects with stable requirements.
Rapid Application Development (RAD) Incremental Model
Features:
- Incremental Process Model
- Model is a high-speed adaptation of the Waterfall model.
- Based on the construction of software components and automatic code generation.
Advantages:
- Recommended when the project can be separated into modules.
- Recommended when modules have well-known implementation times.
- Recommended when the project includes the implementation of components.
Disadvantages:
- Requires enough resources to form teams.
- Requires a high commitment from developers to meet the development time of each module; failure to do so can generate bottlenecks.
- Presents difficulties when a system cannot be separated into modules.
Conclusion:
- Recommended for projects that include the implementation of components.
- Recommended for projects with well-known implementation times for each module and working with known technologies.
Prototype Model
Features:
- Debugging-oriented requirements.
- Allows a high degree of interaction with the client.
- Displays results to the customer quickly.
Advantages:
- No project management is done; no time is lost on planning, documentation, quality control, or compliance with standards.
- You can immediately show signs of progress because encoding begins immediately.
- May be useful for small projects with short-lasting operation, which will be replaced or removed after.
- Aids in understanding project requirements.
Disadvantages:
- It is impossible to know the total project implementation time at the start of the project.
- The number of iterations to be performed is unknown.
- Actual implementation times are difficult to determine.
Conclusion:
- Recommended for projects that have uncertainty in defining their requirements.