Software Development Life Cycle Model
In previous chapter we learned about SDLC and their phases. Now let learn what are different models we have in SDLC.
We have so many models in SDLC but we will try to concentrate on the most popular / widely used models in software industry:
- Waterfall Model
Keep in mind that, irrespective the model that we use for a project, SDLC phases will not change.
Let’s explore each model in detail:
1. Waterfall Model: It’s one of the oldest models and it’s the first model which is introduced as part of SDLC models to IT industry. Let’s look at below diagram
As we see in above diagram:
- Each phase will start after previous phase is completed.
- Here one phase will not overlap on another phase.
Advantages of this model:
- It’s simple and easy to use.
- In this model phases are processed and they are completed one at a time. Phases do not overlap.
- Waterfall model best suited for smaller projects where requirements are very clearly defined
Disadvantages of waterfall model:
- Client needs to be very clear about the requirements
- This model not suggested using if it is a complex system &if it is ongoing product.
- Client will not have any visibility of the working product until long time like months or sometimes year too
- If any changes are requested in middle of some phase then it will be expensive as previous phases has to be reworked
- Client will not have any visibility of the working product until long time like months or sometimes year also
- Not suggested for ongoing projects
2. V Model:
It is known as Verification and Validation model. It’s same as Waterfall model current phase needs to be completed before starting the next phase. Here testing is planned in parallel with a corresponding phase of development.
Let’s try to look at diagram
As we see in above diagram:
- It is clearly explains for every phase of SDLC it has opposite phase.
- So for every phase we do validation phase as you guys can see right arrow is pointing to it.
- If we take requirements like SRS from above diagram, before actual development is started, a system test plan is prepared against the requirements.
- This plan focuses on meeting the functionality specified in the requirements gathering.
Advantages of V-model:
- Simple and easy to use.
- Testing activities like planning prepared before coding.
- Chances of finding defects at early stage.
- Suitable for small projects
Disadvantages of V-model:
- This model not full flexible.
- Same as waterfall model no early visibility of working product to customer
- If any changes are requested in middle of some phase then it will be expensive as previous phases has to be reworked.
This model is most widely used in IT industry now. Most of the projects / products in worldwide are running in this model now.
Agile works in iterative / incremental model not like other models.
In this model we implement the system incrementally where we take few user stories and plan them for specific sprint.
Let’s look at the diagram below:
- In non-agile methodologies like Waterfall model, client has to wait for visibility of a product for several months or year and customer will not get to see the end product until the completion of the project.
- Non-Agile projects spend most of time for requirements gathering, design, coding and testing
- Agile basically runs in Sprints or iterations which basically are shorter in duration (In general Sprints/iterations can vary from 2 weeks to 2 months) during which pre-determined features are developed and delivered.
- After every sprint is completed demo will be provided to Product Owner and get feedback. If any changes requested we can implement them immediately.
- Agile projects can have one or more iterations and deliver the complete product at the end of the final iteration.
So these are the different Software Development Life Cycle Models. Hope your doubts regarding the SDLC models are covered with this article. If you have any doubts or points that you would like to bring to our notice, do let us know in the comments section below.