Software Development Life Cycle(SDLC)

What is SDLC?

SDLC stands for “Software Development Life Cycle”. It describes the various phases involved in the software development process. The software development life cycle starts with the requirement gathering phase and after that, based on the requirements are defined and design specifications are created. The high and low level designs created in the design-specification phase lead to the implementation phase. In the implementation phase, coding is done. This phase leads to a software product that is required to be tested in order to validate its business requirements. After successful testing(product with no high priority bugs), the software is deployed to the client.

Following are the different phases of Software Development Life Cycle-

  • Requirement Gathering
  • Design Specification
  • Coding/Implementation
  • Testing
  • Deployment
  • Maintenance

Now, let's see the different phases of SDLC in detail.

Requirement Gathering

Requirement gathering is one of the most critical phases of SDLC. This phase marks the basis of the whole software development process. All the business requirements are gathered from the client in this phase. A formal document is created which defines the purpose of the product and marks the guidelines for the other phases of the life cycle. For example- if we want to make a website for a restaurant. The requirement analysis phase will answer the following questions-

  • What type of website is needed – static or dynamic?
  • What kind of functionalities are needed by the client?
  • Is ordering online facility required?
  • Is online payment functionality required? etc

Design Specification

A software design or we can say a layout is prepared in this phase according to the requirements specified in the previous step(requirement gathering). In this phase, the requirements are broken down into multiple modules like login module, signup module, main functionality etc. This design document is considered as the input for the next implementation phase.


In this phase, the actual development gets started. The developer writes code using different languages and platforms, depending on the need of the product. The main stakeholder in this phase is the development team.


After the completion of the development phase testing begins. Here testers test the software and provide appropriate feedback to the developing team. The tester checks whether the software developed fulfills the specified requirements as stated in the requirement phase. Both functional and non-functional testing are performed in this phase before the final delivery to the client.


After the testing gets completed, the product is handed over to the client. This phase involves making the software product live on the production environment.


In this phase, the maintenance of the software product is taken care of. It involves making changes to the software that are required to make it operational with the change in infrastructure, configuration etc, over a period of time.

There are various models in software development life cycle depending on the requirement, budget, criticality and various other factors. Some of the widely used SDLC models are-

  • Waterfall model
  • Iterative model
  • Incremental model
  • Spiral model
  • Agile model

Irrespective of the SDLC model we use, all the models have the above phases in different parts of its lifecycle.