Introduction to SDLC
The process of planning, creating, testing, and deploying software is called Software Development Life Cycle or SDLC. Different tasks to be performed in each step of the software development process are explained well in SDLC. Different phases of SDLC are planning, requirements, design, development, testing, deployment, and maintenance. Various SDLC models are the waterfall model, spiral model, V-shaped model, iterative model, big bang model, and agile model. Each part of software development is evaluated easily and helps programmers to work concurrently using SDLC phases. This is a process to be followed and not a technique.
Types of Phases in SDLC
There are several phases in the lifecycle of software which are given below:
- Requirement Phase
- Analysis Phase
- Design Phase
- Development Phase
- Testing Phase
- Deployment & Maintenance Phase
1. Requirement Phase
This is the first and fundamental step in the Life Cycle of Software Development. It starts with gathering the requirements from customers or clients. In most organizations, this role is taken care of by Business Analysts. A Business Analysts interacts with the customer/clients, set up daily meetings, document the requirements in Business Requirement Specifications (or Simple Business Specification), and hand over the final documented requirement to the development team. It is the responsibility of Business Analysts that every detail is captured and documented and also to make sure that everyone clearly understands the client requirements.
2. Analysis Phase
Once the Requirement Gathering phase is completed, the next task is to analyze the requirements and get them approved by the customer/clients. This is achieved through Software Requirement Specification (SRS), which consists of all the requirements gathered and developed during the Requirements Gathering phase. This phase is mainly done by Project Managers, Business Analysts, and Consultants.
3. Design Phase
Once the Analysis Phase is over, next comes the need to come up with the most accurate, robust, efficient and cost-effective architecture of the product that needs to be developed. Usually, more than one design is proposed in this phase, and the best one is selected based on different parameters such as robustness, durability, timeline, cost-effectiveness, and many more! The different design architecture is generally documented in Design Document Specification or DDS.
This phase consists of 2 design approaches:
- Low-Level Design: This task is performed by the Senior Developers where they specify the function of each module of the product architecture that has to be developed.
- High-Level Design: This task is performed by Architects/Senior Architects where they design different possible architectures of the product that has to be developed.
4. Development Phase
This phase is where the actual implementation of programming languages and different frameworks are being utilized for the development of the product. In this phase, all developers are involved. Developers are expected to follow certain predefined coding standards and guidelines; they are expected to complete the project modules within the defined deadline for the project. This phase is also the longest and one of the most critical phases in the Software Development Life Cycle. This phase is documented as a Source Code Document (SCD).
5. Testing Phase
Once the Development phase is completed, the next step is to test the developed software. The developed software is sent to the testing team, where they conduct different types of testing thoroughly on the software and look for defects. If any defect is found, the testing team records and document which is again sent back to the development team for error removal. This role is taken care of by Software Testers and Quality Analysts of the company. The testing team has to make sure that each component of the software is error-free and it works as expected.
6. Deployment and Maintenance Phase
After the testing phase is over, the first version of the software is deployed and delivered to the customer for their use. Once the customer starts using the developed software, there is the scope of bug fixing that was not detected during the testing phase as when a large group of end-users starts using the software; there could be some probability that few boundary cases might have been missed. There is also scope for upgrading the software with newer versions and the latest security patches and technologies. And finally, there is also scope for enhancement of the software by adding more features into the existing software.
Popular SDLC Models
There are many different SDLC Models that are designed for implementation in the software development process.
The most important and popular ones are:
- Waterfall Model
- Iterative Model
- Spiral Model
1. Waterfall Model
In the waterfall model, the whole process of Software Development is divided into phases where the output of one phase acts as the input to the next phase. The next phase begins only when the previous phase gets completed.
2. Iterative Model
This model starts with a smaller set of requirements, and it does not need the full context of product specification in order to start the SDLC process. This process is repetitive, and on each iteration of the SDLC process, a newer version of the software is made. Each iteration may be between 2-6 weeks. Each iteration develops a separate component in this approach. This model also requires a mode resource than the waterfall model.
3. Spiral Model
This model is a combination of a Waterfall and Spiral model, and it works in an iterative manner. Based on the risk involved in the project, this model guides the team to adopt elements of one or more SDLC models such as a waterfall or Iterative model. Here the lifecycle of Software is divided into smaller parts, and new functionality can be added to the software even at the late stages of SDLC.
V model is basically an expansion to the waterfall model where the testing and the development phases are planned in parallel. One side consists of the verification phase, while the other one consists of the validation phase, which is finally joined by coding. The next state starts only when the previous state gets completed.
This has been a guide to What Is SDLC. Here we have discussed the various types of SDLC with the popular SDLC models respectively. You may also look at the following articles to learn more –
- Software Development vs Web Development
- Defect Life Cycle
- What is Software Development?
- SDLC Methodologies