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:

  1. Recommended for products that have a stable definition.
  2. Recommended when working with known methodologies.
  3. Helps to minimize the costs of planning because it allows no problems in terms of time, resources, and definitions.

Disadvantages:

  1. It is difficult to specify clearly the requirements of a project at first, before any design and code are written.
  2. Small omissions in definition usually mean big changes at different stages of this form.
  3. 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:

  1. Useful when staff availability is scarce.
  2. 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:

  1. Recommended for projects that can be implemented in installments, modularly.
  2. Recommended for projects with stable requirements.

Rapid Application Development (RAD) Incremental Model

Features:

  1. Incremental Process Model
  2. Model is a high-speed adaptation of the Waterfall model.
  3. Based on the construction of software components and automatic code generation.

Advantages:

  1. Recommended when the project can be separated into modules.
  2. Recommended when modules have well-known implementation times.
  3. Recommended when the project includes the implementation of components.

Disadvantages:

  1. Requires enough resources to form teams.
  2. Requires a high commitment from developers to meet the development time of each module; failure to do so can generate bottlenecks.
  3. Presents difficulties when a system cannot be separated into modules.

Conclusion:

  1. Recommended for projects that include the implementation of components.
  2. Recommended for projects with well-known implementation times for each module and working with known technologies.

Prototype Model

Features:

  1. Debugging-oriented requirements.
  2. Allows a high degree of interaction with the client.
  3. Displays results to the customer quickly.

Advantages:

  1. No project management is done; no time is lost on planning, documentation, quality control, or compliance with standards.
  2. You can immediately show signs of progress because encoding begins immediately.
  3. May be useful for small projects with short-lasting operation, which will be replaced or removed after.
  4. Aids in understanding project requirements.

Disadvantages:

  1. It is impossible to know the total project implementation time at the start of the project.
  2. The number of iterations to be performed is unknown.
  3. Actual implementation times are difficult to determine.

Conclusion:

  1. Recommended for projects that have uncertainty in defining their requirements.