SDLC stands for Software
Development Life Cycle. It is the process to design, develop, test or alter the
software products. The international standard followed is ISO/IEC 12207, which
defines all the tasks to develop and maintain the software.
Stages in SDLC
1.Planning and Requirement Gathering
Requirement gathering is done by taking inputs from various sources viz. clients, sales department, market surveys and domain experts. Once the requirement is gathered, economical, operational and technological feasibility is studied. Also the risk assessment is being done.
2.Defining the requirements:
Requirements are defined and documented in the form of SRS - Software requirement specification and got approved from the client.
3.Designing the product architecture:
Product architecture is designed and documented in the form of DDS – Design Documents Specification. It is reviewed by the various stakeholders and based on various parameters like risk assessment, product robustness, time and money constraints etc, the best design is chosen.
4.Building or Developing the product:
The product is developed by the use of various languages like C, C# etc as per the requirement.
5.Testing the product:
After being built, the product is tested to see if all the requirements are being met.
6.Deployment in the market and maintenance:
1. Waterfall Model
This model is divided into steps or phases. Each phase starts once the previous phase is completed. The output from one phase is used as the input for the other phase. None of the phases overlap.
Diagrammatically, it can be represented as follows
First the requirement is gathered from the client and analyzed (Requirement gathering and analysis). Then the system architecture is designed, keeping into consideration the hardware and the system requirements (System design). Post that, the software is being developed in the form of small programs called units and each unit is subsequently tested (Implementation). In the next phase, all the units are integrated and the entire software is tested to find its faults and failures (Integration and Testing). After that, the developed product is released in the market for use (Deployment). In case, any problem arises even after that, then patches are released to fix those problems. Also, newer versions are released with advanced and added features (Maintenance and Enhancement).
Limitation of this model is that once the testing starts, one cannot go back to fix something that was not well-documented or thought upon during the concept stage.
2. Iterative Model:
In this model, small set of requirement is used to prepare software. Once the software is prepared, tested and implemented, it is further enhanced on giving the additional requirement, the entire process is repeated (iteration) and smaller portions are kept on adding (incrementally), till the entire system is developed. The testing for the newer versions of the software are repeated and extended as the software develops, to identify any problem, faults and failures.
3. Spiral Model:
This model is the combination of Waterfall and Iterative Model with emphasis on the risk analysis. It works in 4 phases: Planning, Risk Analysis, Engineering and Evaluation. These phases are iterated which results in Spiral process.
a.)Planning: In this phase, the requirements are gathered
for the system that has to be developed.
b.)Risk Analysis: The risk is analyzed and the alternate solutions are developed.
c.)Engineering: Software is developed and the testing is done to fix any problem.
d.)Evaluation: The customer evaluates the software before the project moves to the next spiral.
4. V Model
This is also known as Verification and Validation Model. It is similar to the Waterfall model. Testing is planned parallel to the corresponding phase of the model.
Business Requirement Specification (BRS): The requirement is gathered in detail from the customers. Acceptance Testing is done in this phase.
System Requirement Specification (SRS): The hardware requirement and the communication setup are specified in this phase. System Testing is done in this phase.
High Level Design (HLD): It deals in system architecture and design. It provides overview of solution, platform, system, product and service and their integration with each other.
System Integration Testing is done in this phase.
Low Level Design (LLD): The actual software component is built in this phase. Component Testing is done in this phase.
Implementation: The entire coding and subsequent unit testing is done in this phase.
Coding: Module Design is converted into code by developers.
5. Big Bang Model:
In this model, no particular process is followed. The software is developed as the requirement comes. It starts with very less input. Sometimes, the client is not very clear about the requirement. Usually this model is for small projects where the team is very small like academic projects.
6. Agile Model:
This model is similar to iterative and incremental model. In this model, the product is broken down into smaller portions (features) and each portion is developed separately following certain steps repeatedly (iteration). Repetition of cycle is known as iteration. Each of the iteration takes one-three weeks. In this model, the methods are customized as per the requirement of the project. Once a feature is developed, unit testing is done followed by acceptance testing. Customer interaction is the backbone of agile development with least documentation. Each build is incremental of the features and the final build holds all the features required by the customer.