Software Development Life Cycle

A software life cycle model is either a descriptive or a perspective characterization of how the software should be developed. Software development projects are very often very large projects. A number of people work on such a project for a very long time and therefore the entire process needs to be controlled and the process must be monitored. Hence some software process models are used for the development of quality software product.

The following are the typical phases of a Software Development Life Cycle:

  • Project initiation and planning
  • Feasibility study
  • System design
  • Coding
  • Testing
  • Implementation
  • Maintenance

Software development life cycle 

The following are some software development models.

1. Waterfall model: The waterfall model is also called a classic life model or linear sequential model.

  • Requirement analysis
  • Design
  • Coding
  • Testing
  • Maintenance

Waterfall model 

The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase must be complete before moving onto the next phase.

When we use a waterfall model:
  • Requirements are very well known.
  • When it is possible to produce a stable design.

2. Prototype model: In the prototype model the initial requirements gathering is done. A quick design prototype is prepared. The customer evaluates the prototype to refine the requirements.

prototype model

In the prototype model the requirements can be set earlier and the more reliable customer sees the results very quickly. The requirements can be communicated more clearly and completely.

3. Spiral model: The spiral model was originally proposed by "Boehm". It is an evolutionary software process model combining the iterative nature of prototyping with the controlled and systematic aspects of a linear sequential model. It provides the potential for rapid development of incremental versions of the software.

The spiral model is intended for large, expensive and complicated projects.

The spiral model focuses on identifying and eliminating high-risk problems by careful process design.

Spiral model

4. Iterative enhancement model: This model has the same phases as the waterfall model, but with some restrictions. Generally the phases occur in the same order as in the waterfall model, but they may be conducted in several cycles. In the Evolutionary Model, the development engineering effort is made first to establish correct and precise requirement definitions and system scope, as agreed by all the users across the organization.

This is done through application of iterative processes to evolve a system most suited to the given circumstances.

Iterative enhancement model