The software development lifecycle (SDLC) is a series of steps or phases that outline how software is planned, built, and maintained. Each phase has its own plan of action that lays the foundation for the next phase.
The phases of the SDLC are illustrated below:
Below is a breakdown of what each phase entails:
The first stage in the SDLC is for the development team to get an idea of what the stakeholders and users of a software require. This clears the way for the project and sets the stage for more precise and detailed requirements.
Once the requirements phase is completed, a formal document needs to be prepared that has detailed specifications of what the proposed software will entail and how it will solve the problems that the stakeholders had described in the previous phase. Any changes to the software scope, depending on available resources and the questions about whether or not all the problems can even be solved, are discussed in the feasibility study.
After the Software Requirements Specification (SRS) document is completed in the previous phase, the system architecture is planned in the design phase. Here, the developers decide which coding frameworks to use, how to break down the software into modules, and how the user shall interact with the system.
Coding starts in the development phase. The development teams work on separate modules in the decided programming languages and frameworks. The aim is to make the proposed design into working software.
Once the coding phase is complete, the software needs to be rigorously tested to find bugs and to ensure that the software meets the requirements of the stakeholders. The found bugs are then fixed by the developers in what is known as the defect lifecycle.
Once all the bugs are fixed, the software is ready for deployment and it is installed onto the physical computers of the users/stakeholders for which the software is being made.
A phase that is becoming increasingly more and more important is the maintenance phase. Software is never meant to last forever; therefore, once it is live, it is continuously adapted to changing requirements, necessary upgrades, enhancements, and bug fixes that were not found before.
Note that these stages are fluid; they are tweaked and adjusted depending on the type of software that is being made. For example, a website may follow a slight variation of the cycle like this.
The Waterfall and Agile models also follow the SDLC framework. For more information on these models, click here.