SDLC Models – Waterfall Model

SDLC Models

What is SDLC Model

SDLC Model is Software Development Life Cycle Model.

Before we discuss, what is a SDLC Model, we must know, what is SDLC (Software Development Life Cycle)

SDLC is a process of developing a Software, where we must undergo below phases or stages.

Stages involved in SDLC Model

  1. Requirement Gathering
  2. Requirement Analysis
  3. Design
  4. Coding
  5. Testing

Now, There are different types of SDLC Process, and we call them as Models, So they are called SDLC Models.

Type of SDLC Models

We have 4 main SDLC Models.

  1. Waterfall Model
  2. V Model
  3. Agile Model
  4. DevOps

So, We are going to study each of them in detail in our coming sessions, and the first one would be Waterfall Model.

Waterfall Model

What is Waterfall Model

Waterfall Model is the oldest approach, or oldest Model of SDLC.

It is also called Step Down Model.

Water always moves in downwards direction in a Waterfall, So the same way all the activities or phases involved in Waterfall Model moves in downwards direction.

All the activities or phases involved in Waterfall Model moves in downwards direction, that’s why this is also called Step Down Model.

Waterfall Model is a sequential model. We start working on the next stage only when the previous stage is completed, So that there will be no overlap between the stages.

Various stages involved in Waterfall Model

  1. Requirement Analysis – This is done by Business Analysts Team. Once Business Analysts team gather all the requirements, review them and approve it, then the Business Analysts Team provide their inputs to Design Team and after the approval, we can’t change the requirement until the completion of Testing. Business Analyst Team provide inputs in the form of Business Requirement Document or Functional Requirement Document. BRD and FRD in short form.
  2. Design – Design Team gets the input from Business Analysts and this input is given in the form of Requirements Documents So, Based on the inputs from Requirement Documents, the design team starts designing the Workflow and other required flows which is required to start the coding and once Design Team is done, Design Team provide their inputs to the Coding team or Development Team. Design Team provides these inputs in the form of Design Document. Design Document would be a High Level Design Document and Low Level Design Document.
  3. Coding – Coding is done by coders or developers and they start writing the code, and their code is based on the Design Document received from Design Team.
  4. Testing – Testing team gets the input from developers, and then start writing the test cases. Once the coding is done, and the Application is developed and available for testing, Testing team starts testing.
  5. Deployment – Once Testing activity is completed, then Product launch is done i.e., Deployment is done in the Production environment where end users start using the product. This is also called a Build. This is also called a Release. This is the time when the first working product is launched in the Market.
  6. Maintenance – Once the deployment is done, and the end user starts using the product. Then the project is ready for maintenance. The same test cases will be tested every release in the regression release cycle. Apart from that, If an defect comes in production, which means, end user faces any issues, then that issue is also resolved during Maintenance phase.

How does Waterfall Model work

Water always flows in downward direction and can’t flow in upward direction. Same way We can only move in downward direction in Waterfall Model like we can move from Requirement Analysis stage to Design stage, but we can’t move in upward direction like from Design stage to Requirement Analysis stage. This applies to all the stages of Waterfall Model.

So, If suppose all the Requirements are finalized in Requirement Analysis stage, and then sent to Design Team and Design Team finds that some requirements must be changed, and if they ask this to Requirements Team about this, then the Requirement Team will not do it, and the new changes are going to be considered only after the current version of product is launched and when we will start the process again for the new launch, We will add these new changes that time.

Example of Waterfall Model

So, Let’s take an example of Ecommerce Application where we have certain functionalities such as Sign up, Sign in, Place Order, Select Product and many more and all these functionalities are called requirement in Business Analyst Language, So let’s say we have 100 such requirements, So the Business Analyst will take some time to analyse these requirement, so let’s say it takes 2 months of time because there are more requirements or functionalities. Business Analyst will create Business Requirement Document or Functional Requirement Document. BRD and FRD in short form.

Then Business Analyst will give these Requirement Documents to the Design team and Design team will generate all the workflows for these requirements and they also take 2 months of time because there are more requirements or functionalities. 

Then Development Team will write code for these workflows, and they also take 2 months of time because there are more requirements or functionalities. 

Then Testing Team will write test cases and execute them, and they also take 2 months of time because there are more requirements or functionalities, So the number of test cases also will be more.

So, after testing completion if there are some defects pending and product launch also takes some time, let’s assume 1 or 2 months more, then the First version of the Product will be launched in almost 1 year from the planning time.

So, It takes more time to launch the first working product in production, if we use Waterfall Model as an SDLC Model for our project.

Disadvantage of Waterfall Model

  1. Very less communication –   In Waterfall Model, Business Analyst Team talks to Design Team, and then Design Team talks to Development team, and then Development Team talks to Testing Team. So Testing Team never interacts with Business Analyst and this is a big problem because in order to write test cases, We should understand requirement properly and for that We must have communication with Business Analyst for sure.
  2. Miscommunication – As we have seen, that communication scope is very less in Waterfall Model, then there is a high chance of Miscommunication, for example, Business Analyst told something to System Design team and they misunderstood it, then they will design it with their understanding, and developers will code it that way and testers will test it that way, which will not be proper, because testing might pass and testing was not as per the expected result.
  3. Idle Time – When 1 team works, other teams don’t work. When Business Analysts work, then other 3 teams don’t work, when design team, then the other 3 teams don’t work, and same as follows and this wastes a lots of time and money.
  4. Time taking process – Let’s say it takes 2 months for requirement analysis, then 2 months for design team, and 2 months for coding, and then 2 months for testing and after testing it might take 2 more months for the final product launch, so this process takes 10 months which is almost 1 year and a customer shouldn’t wait for so long.
  5. No Requirement Change – As we have seen that in the Waterfall Model, it takes close to 1 year to launch the final product and No Requirement Change until testing is completed i.e. product launch can be done, So if the requirement for the current market is changed i.e. people started using some product with different requirements which advanced as compared to the product we are working on, then our product might fail in the market.

When to use Waterfall Model

We should use Waterfall Model as an SDLC Model for our Project only when

  1. When the Requirements don’t change.
  2. When the Application is simple and not much complex.
  3. When the Project is Short.
  4. Resources should be well experienced.

Summary

We have covered below topics in this session

  1. What is SDLC Model
  2. Stages involved in SDLC Model
  3. Type of SDLC Models
  4. Waterfall Model
  5. Various stages involved in Waterfall Model
  6. How does Waterfall Model work
  7. Example of Waterfall Model
  8. Disadvantage of Waterfall Model
  9. When to use Waterfall Model

Question

Explain Waterfall Model with Examples.

Leave a Comment