Software Development Lifecycle or SDLC is a framework that provides guidelines about the well-defined tasks to be performed at each stage. In other words, SDLC or Software Development Life Cycle is a series of stages or phases that give a model for software development and lifecycle management.
There are different models of software development such as
- Waterfall Model
- Incremental Model
- V- Model
- Iterative Model
- RAD Model
- Spiral Model
- Agile Model
- Prototype Model
Each model has a specific SDLC in which different tasks that are to be performed at different phases will be mentioned clearly. Usually, SDLC has six phases.
Gathering and Analysis of Requirements
Project managers and stakeholders of the software to be developed get involved in this phase. All the business requirements are collected at this stage. Frequent meetings are conducted between the project managers, stakeholders and the users during this stage. Details of the user input data, output data are collected and analyzed thoroughly.
Preparation of system and software design will be done at this stage based on the requirements collected in the first phase. System design is aimed at specifying hardware and system requirements and to define the system architecture.
Coding or Implementation
After receiving the system design the entire work is sub-divided into modules or cells and the coding will begin. This is the longest phase among all SDLC phases and the developer plays the major role.
Once the coding is completed the same should is tested to check whether it is able to meet all the requirements collected in the first phase. Functional, Unit, Integration, System, Acceptance Testing etc are conducted in this phase along with Non-functional testings.
In this stage, the product will be delivered to the customer and they perform beta testing. In case any bugs are traced or any changes are required, the same thing will be reported to the developers and they make the necessary changes and return the product.
This is the final stage among the SDLC phases. Once the customer starts using the software, problems or issues may arise due to various reasons. All such issues and problems should be addressed and solved in this phase.
As told earlier, there are different models of software development and in each model, all these steps will be adhered to. In some models, the order of the phases may change as in the case of agile testing where development and testing go together.