Software Development Life Cycle is the process that produces software with the lowest cost and highest quality in the shortest span of time. SDLC is a process that consists of a detailed plan describing all the details regarding how to develop, maintain, and replace/alter specific software. It is the methodology used to improve the quality of software and also improving the overall development process.
We can say, SDLC or the Software Development Life Cycle is a process that produces software with the highest quality and lowest cost in the shortest time. SDLC includes a detailed plan for how to develop, alter, maintain, and replace a software system
SDLC tries to improve the quality of software development and tries to shorten the production time, it also works on minimizing the cost of software development. SDLC achieves all these goals by creating a plan that removes all the pitfalls under software development projects.
Stages Of Software Development Programme
Following are the Stages of SDLC they ensure that the process is working in a smooth, efficient, and productive way:
1. Identify. The first step under the software development program is to identify the current problem. To ask a question “What don’t we want?” “What don’t we want?” This stage of SDLC means getting input from all stakeholders like customers, employees, programmers, etc.
2. Plan/Requirement. The next step under SDLC is to plan, it involves asking “What do we want?”. At this stage, the team defines the requirements of new software and also analyze the cost required for it.
It also details the risks involved and provides sub-plans for softening those risks. At this stage, a Software Requirement Specification document is created. Planning related to quality assurance and risks associated is also done at the initial stages. Various technical approaches are studied and followed to implement the project successfully.
Minimum risk is taken into consideration. The next step is to clearly define the product requirements. Later approval is taken from a customer or through market analysis. All this is generally done by using the SRS (Software Requirement Specification) document which holds all the requirements of the project and is designed and developed during the project life cycle.
3. Design. The next step under the Software Development Life Cycle is designing and answering “How will we get what we want?” This phase of SDLC includes changing the software specifications into a framework called Data Specification. Feedback and suggestions from all the stakeholders are then received.
It’s important to have a plan for collecting and incorporating stakeholder input into this document. Any loopholes at this stage will result in collapsing of the whole project. Generally, more than one design approach for the product architecture is offered and recorded in a DDS – Design Document Specification.
4.Build/Development. Now we will build what we have decided, answer to “Let’s create what we want.” All the actual coding is done at this stage of SDLC for building software. This is the least complicated step if all the previous steps have been followed with attention. Developers are required to follow the coding guidelines defined by their companies
Tools like compilers, interpreters, debuggers, etc. are used to generate the code. High-level programming languages such as C, Java, PHP, C++, Pascal are also used for coding. The programming language is chosen on the basis of the type of software being developed
5. Test. The next step under the Software Development Life Cycle is to Test “Did we get what we want?” At this stage, we test for defects and deficiencies. Later after detecting we try to fix all the issues until the product meets the actual specifications.
6. Deploy. “Let’s start using what we got.” This step involves feedback from mobile users, who are the end users. Depending on their feedback changes and adjustments are made. Often, this part of the SDLC process happens in a limited way at first. Depending on feedback from end users, more adjustments can be made. Software tested is released in the relevant market. Sometimes as per the requirements the product can be released in some specific market before final launch.
7. Maintain. Phases of Software Development life cycle includes another step that is to Maintain or like “Let’s get this closer to what we want.” It’s not so easy for the plan to turn out to be perfect when it runs in reality. Further, as real life conditions are different, we need to advance and update the software. After the product is released in the market, its maintenance is done for the existing customer base.
Now let’s discuss different software development life cycle Models. These are also known as Software Development Process Models. Each model follows unique steps in the process of software development.
Following are some major SDLC models which are followed in the Industry:
- Waterfall Model
- Iterative Model
- Spiral Model
- Big Bang Model
Waterfall Model was the first SDLC Model used in Software Engineering which confirms the success of the project. In this Model whole framework of software development is divided into different phases. The result of one phase acts as the input of the next phase sequentially.
The following illustration is a representation of the different phases of the Waterfall Model:
Requirement Gathering and analysis
Integration and Testing
Deployment of system
Waterfall Model – Application
Every Software developed is unique and it requires the most appropriate SDLC approach based on different external and internal factors. Some examples where the use of Waterfall model is most suitable are −
- Well documented clear and fixed requirements.
- Stable product definition.
- Stage Technology
- No ambiguous requirements.
- Adequate resources.
- Short Project.
This model begins with the most simple implementation of a subset of the requirements of the software and later enhances all the evolving versions until the full system is implemented. Design Modifications are made at each iteration, and simultaneously new functional capabilities are added. This method tries to develop a system through repeated cycles in small time.
Iterative Model Application
This model is most often used in the following situations −
- Clearly defined and understood requirements.
- Some functionalities or requested enhancements may evolve with time.
- Time available to the market constraint.
- Development team aware of new opportunities.
- Some high-risk features and goals which may change in the near future.
This model tries to combine the idea of systematic aspects of iterative development. This model is the combination of the iterative development process and the sequential linear development model. This model puts a very high emphasis on risk analysis.
Spiral Model Design
Identification, Design, Construct or Build, Evaluation and Risk Analysis.
Spiral Model Application
- Budget Constraints and risk involved.
- Medium to High-Risk projects.
- Potential changes to economic factors.
- Uncertainty in the customer requirements.
- Complex requirements.
The V-model is an SDLC model where the processing of all the steps happens in a sequential manner typically in V-shape. This model is also known as the Verification and Validation model.
This model is actually the extension of the waterfall model. Each phase in the development cycle is directly associated with the testing phase. This model is highly disciplined and the next phases start only after the previous stage gets completed.
V- Model Application
This model is somewhat the same as the waterfall model. The waterfall model too is a sequential type. In order to get successful results, the requirements of the project should be clearly discussed as it would be very expensive to restart the project from very initial phases.
Most suitable scenarios to use the V-Model application are where:
- Requirements are well defined, clearly documented and fixed.
- Stable product definition.
- Not so Dynamic technology.
- No ambiguous or undefined requirements.
- Short Project.
5.The Big Bang Model
Here in this model, we do not follow any specific process. The development process starts with the required funds and efforts as inputs, and the output is software developed, which may or may not be as per the requirements of the customers. Very little planning is required for this software development model as it does not follow any specific procedure and process. Usually, this model is followed for small projects where the development teams are very small.
Big Bang Model Design and Application
The Big Bang Model includes focusing all the resources in coding and software development, where little or no planning is required. The requirements are implemented as they appear. Any changes done will not affect the whole project. This model is good for small, academic or practice projects. It is also good for projects where one or two developers are working together. It is also ideal to use in the situation where the release date is not confirmed.
Every iteration involves cross-functional teams working simultaneously on various areas like −
- Requirements Analysis
- Unit Testing and
- Acceptance Testing.
Benefits Of SDLC
The highest level of management control and documentation can be achieved by doing SDLC correctly. It helps developers to understand what they should build and why. All the associated parties get involved and agree upon common goals and can get a clear plan for achieving that goal. It also helps all the parties involved in understanding all the costs and resources required.