SDLC
SDLC
1 Waterfall Model
Waterfall model is the very first model that is used in SDLC. It is also known as the linear sequential model.
In this model, the outcome of one phase is the input for the next phase. Development of the next phase starts only when the previous phase is complete.
First, Requirement gathering and analysis is done. Once the requirement is freeze then only the System Design can start. Herein, the SRS document
created is the output for the Requirement phase and it acts as an input for the System Design.
In System Design Software architecture and Design, documents which act as an input for the next phase are created i.e. Implementation and coding.
In the Implementation phase, coding is done and the software developed is the input for the next phase i.e. testing.
In the testing phase, the developed code is tested thoroughly to detect the defects in the software. Defects are logged into the defect tracking tool and
are retested once fixed. Bug logging, Retest, Regression testing goes on until the time the software is in go-live state.
In the Deployment phase, the developed code is moved into production after the sign off is given by the customer.
Any issues in the production environment are resolved by the developers which come under maintenance.
2 V-Shaped Model
V- Model is also known as Verification and Validation Model. In this model Verification & Validation goes hand in hand i.e. development and
testing goes parallel. V model and waterfall model are the same except that the test planning and testing start at an early stage in V-Model.
a) Verification Phase:
(i) Requirement Analysis:
In this phase, all the required information is gathered & analyzed. Verification activities include reviewing the requirements.
(v) Coding:
Code development is done in this phase.
b) Validation Phase:
(i) Unit Testing:
Unit testing is performed using the unit test cases that are designed and is done in the Low-level design phase. Unit testing is performed by the
developer itself. It is performed on individual components which lead to early defect detection.
Advantages of V – Model:
It is a simple and easily understandable model.
V –model approach is good for smaller projects wherein the requirement is defined and it freezes in the early stage.
It is a systematic and disciplined model which results in a high-quality product.
Disadvantages of V-Model:
V-shaped model is not good for ongoing projects.
Requirement change at the later stage would cost too high.
3-Prototype Model
The prototype model is a model in which the prototype is developed prior to the actual software.
Prototype models have limited functional capabilities and inefficient performance when compared to the actual software. Dummy functions are
used to create prototypes. This is a valuable mechanism for understanding the customers’ needs.
Software prototypes are built prior to the actual software to get valuable feedback from the customer. Feedbacks are implemented and the
prototype is again reviewed by the customer for any change. This process goes on until the model is accepted by the customer.
Once the requirement gathering is done, the quick design is created and the prototype which is presented to the customer for evaluation is built.
Customer feedback and the refined requirement is used to modify the prototype and is again presented to the customer for evaluation. Once the
customer approves the prototype, it is used as a requirement for building the actual software. The actual software is build using the Waterfall
model approach.
(i) Planning:
The planning phase includes requirement gathering wherein all the required information is gathered from the customer and is documented.
Software requirement specification document is created for the next phase.
For Example, the risk involved in accessing the data from a remote database can be that the data access rate might be too slow. The risk can
be resolved by building a prototype of the data access subsystem.
(iii) Engineering:
Once the risk analysis is done, coding and testing are done.
(iv) Evaluation:
Customer evaluates the developed system and plans for the next iteration.
Advantages of Spiral Model:
Risk Analysis is done extensively using the prototype models.
Any enhancement or change in the functionality can be done in the next iteration.
Disadvantages of Spiral Model:
The spiral model is best suited for large projects only.
The cost can be high as it might take a large number of iterations which can lead to high time to reach the final product.
5) Iterative Incremental Model
The iterative incremental model divides the product into small chunks.
For Example, Feature to be developed in the iteration is decided and implemented. Each iteration goes through the phases namely
Requirement Analysis, Designing, Coding, and Testing. Detailed planning is not required in iterations.
Once the iteration is completed, a product is verified and is delivered to the customer for their evaluation and feedback. Customer’s feedback is
implemented in the next iteration along with the newly added feature.
Hence, the product increments in terms of features and once the iterations are completed the final build holds all the features of the product.
Big Bang Model does not require much planning and scheduling. The developer does the requirement analysis & coding and develops the
product as per his understanding. This model is used for small projects only. There is no testing team and no formal testing is done, and this
could be a cause for the failure of the project.
In Agile, a product is broken into small incremental builds. It is not developed as a complete product in one go. Each build increments in terms of
features. The next build is built on previous functionality.
In agile iterations are termed as sprints. Each sprint lasts for2-4 weeks. At the end of each sprint, the product owner verifies the product and after
his approval, it is delivered to the customer.
Customer feedback is taken for improvement and his suggestions and enhancement are worked on in the next sprint. Testing is done in each
sprint to minimize the risk of any failures.
Advantages of Agile Model:
It allows more flexibility to adapt to the changes.
The new feature can be added easily.
Customer satisfaction as the feedback and suggestions are taken at every stage.
Disadvantages:
Lack of documentation.
Agile needs experienced and highly skilled resources.
If a customer is not clear about how exactly they want the product to be, then the project would fail.