What Is SDLC
There is a planned dinner at your farmhouse. When you will start planning for this? What is the approach that you will follow? Will you be enquiring about the number of guests that are coming to attend the grand party? And you will prepare a delicious menu (Let’s say Architecture)? You will start preparing the food and once it is cooked, you will test it, isn’t it? (Merely to check if there is a taste in your food). I hope that we have given you a basic idea of what we are trying to explain here, let’s jump to our topic. A Software Development Life Cycle (SDLC) is a defined approach and series of steps that are followed for developing any software in order to meet or exceed the set expectation or customer requirements.
Types Of Phases In SDLC
There are several phases in a lifecycle of software which is given below:
- Requirement Phase
- Analysis Phase
- Design Phase
- Development Phase
- Testing Phase
- Deployment & Maintenance 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 of the organizations, this role is taken care by Business Analysts. A Business Analysts interacts with the customer/clients, set up daily meetings, documents the requirements in Business Requirement Specifications (or Simple Business Specification) and handover 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.
Once the Requirement Gathering phase is completed, the next task is to analyze the requirements and get it approved from 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.
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.
This phase is where the actual implementation of programming languages and different frameworks is 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).
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.
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 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 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 implementing in the software development process. The most important and popular ones are:
- Waterfall Model
- Iterative Model
- Spiral Model
In the waterfall model, the whole process of the 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.
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 between 2-6 weeks. Each iteration develops a separate component in this approach. This model also requires a mode resource than the waterfall 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 a 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 the What Is SDLC. Here we have discussed the various types of SDLC with the Popular SDLC Models. You may also look at the following articles to learn more –