What is SDLC ?
Explanation with its Model & Phases
Software Development Lifecycle (SDLC) is a process used by the software industry to design, develop and test high quality software’s. The SDLC aims to produce high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
- SDLC is the acronym of Software Development Life Cycle.
- It is also called as Software Development Process.
- SDLC is a framework defining tasks performed at each step in the software development process.
- ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software.
What is SDLC ?
The Software Development Lifecycle (SDLC) is a framework defining the tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software. The SDLC defines a methodology for improving the quality of software and the overall development process.
The Software Development Lifecycle (SDLC) is also known as the software development process.
Why SDLC ?
There are various prime reasons why SDLC is important for developing a software system.
- It offers a basis for project planning, scheduling, and estimating.
- Provides a framework for a standard set of activities and deliverables.
- It is a mechanism for project tracking and control.
- Increases visibility of project planning to all involved stakeholders of the development process.
- Increased and enhance development speed.
- Improved client relations.
- Helps you to decrease project risk and project management plan overhead.
SDLC Methodologies
The Software Development Lifecycle (SDLC) provides a systematic process for building and delivering software applications from inception to completion.
There are a number of different SDLC methodologies –
- Waterfall Model
- V Model
- Iterative Model
- Spiral Model
- Agile Model
- Waterfall Model
Waterfall is the oldest and most straightforward of the structured SDLC methodologies. There are strict phases and each phase needs to be completed first before going to the next phase. There is no going back.
Each phase relies on information from the previous stage and has its own project plan.
Waterfall is easy to understand and simple to manage. However, it is usually prone to delays as each phase needs to be reviewed and fully signed off before the next phase can begin.
Also, since there is little room for revisions once a stage is completed, problems can’t be fixed until you get to the maintenance stage.
This model works best when all requirements are known and flexibility is not required and the project has a fixed timeline.
One disadvantage of waterfall model is that all requirements need to be known before development starts. Therefore if a requirement is wrong or missing, it won’t become apparent until the late stages of the life cycle.
- V Model
V Model which is also known as the Verification and Validation model. It was the next logical step from the Waterfall model with the aim of introducing testing at each stage of development rather than at the end of the project.
Like Waterfall, each stage begins only after the previous one has ended. This model is useful when there are no unknown requirements, as it is still difficult to go back and make changes.
The advantage of V Model is that each stage has a corresponding testing activity which helps to identify missing requirements and incorrect design early in the life cycle.
The disadvantage is that the each stage has to wait for the previous stage to be finalized and signed off.
- Iterative Model
With the Iterative model, software is built in small chunks, each time adding more functionality. Unlike the waterfall model which requires fully specified requirements before starting the implementation, with the Iterative model, you implement a small set of software requirements, then test, evaluate and refine the requirements.
With each iteration, new requirements are added and a new version of the software is produced. This process is repeated until the application is fully developed and all requirements implemented.
One advantage of Iterative model over the other SDLC methodologies is that we get a working version of the application early in the process and so it less expensive to implement changes.
One disadvantage is that resources can quickly be eaten up by repeating the process again and again.
- Spiral Model
One of the most flexible SDLC methodologies, the Spiral model takes ideas from the Iterative model and its repetition but also combined with the structured and systematic development of the waterfall model with a heavy emphasis on risk analysis.
The project passes through four phases (identification, design, build, evaluation and risk analysis) over and over in a “spiral” until completed, allowing for multiple rounds of refinement.
It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral.
This model allows for the building of a highly customized product, and user feedback can be incorporated from early on in the project. But the risk you run is creating a never-ending spiral for a project that goes on and on.
- Agile Model
The agile model is a combination of both iterative and incremental model by breaking a product into components where on each cycle or iteration, a working model of a component is delivered.
The model produces ongoing releases (iterative), each time adding small changes to the previous release (iterative). During each iteration, as the product is being built, it is also tested to ensure that at the end of the iteration the product is shippable.
The Agile model emphasizes collaboration, as the customers, developers and testers work together throughout the project.
An advantage of the agile model is that it quickly delivers a working product and is considered a very realistic development approach.
One disadvantage of this model is that because it depends heavily on customer interaction, the project can head the wrong way if the customer is not clear about the requirements or the direction he or she wants to go.
SDLC Phases
There are mainly seven phases of an SDLC. Here is Follows –
- Requirement Gathering and Analysis
- Feasibility Study
- System Design
- Implementation/Coding
- Testing
- Deployment
- Maintenance
- Requirement Gathering and Analysis
This is the most important aspect in Software Development. In this phase, we able to know the expectations of the customer, project requirements, targeted market and much more. This is the sensitive stage and considered as the foundation of any project. After requirement finalization, there is a Feasibility Analysis to check how much of the idea can be put into action. This stage requires research and analysis from the company developing it and the clients.
- Feasibility study
Once the requirement analysis phase is completed the next step is to define and document software needs. This process conducted with the help of Software Requirement Specification document also known as ‘SRS’ document. It includes everything which should be designed and developed during the project life cycle.
There are mainly five types of feasibilities checks:
- Economic: Can we complete the project within the budget or not?
- Legal: Can we handle this project as cyber law and other regulatory framework/compliances?
- Operation feasibility: Can we create operations which are expected by the client?
- Technical: Need to check whether the current computer system can support the software
- Schedule: Decide that the project can be completed within the given schedule or not.
- System Design
At this stage a blueprint of various processes and the software is prepared for the requirements gathered in the first phase. The final output of this phase is a formal design document which freezes the design and act as input for the coding phase. This document specifies everything from software and hardware requirements of overall system architecture.
- Implementation/Coding
This phase involves the actual coding/programming of the software. In this phase the task is divided among the programmers based on their skill set of either the module or the technology. Once the code is created, it is compiled by the developers. This is generally the longest phase in the SDLC. The output of this phase is library, executable, user manuals and additional software documentation.
- Testing
This phase is concerned with validation and verification of the software created. This stage ensures that the compiled code and the software are working fine without any visible issues that can hamper the working of the software. The software is tested against the requirement and once it meets the exit criteria, the code is deployed.
- Deployment
After successful testing, the software is delivered to the customer for their use. This phase involves the packing of all sub packages, together with all relevant documentation in a suitable format for distribution.
- Maintenance
After the publishing of the software live, there might be some technical issues which can crop up from time to time that need to be rectified. The process of taking care and making some minor enhancements on the developed software is maintenance.
So , it was all about What is SDLC ? , We hope you understand everything well. If you have still any questions or doubts related with What is SDLC ? then you can freely ask us in the comment box below.