Waterfall Model in SDLC : Advantages and Disadvantages
- Waterfall Model is a traditional model and It is also referred as a linear-sequential life cycle model.
- Waterfall Model in software engineering is a sequential design process, often used in SDLC, in which the progress is seen as flowing steadily downwards (like a waterfall), through the different phases.
- At the end of each phase, a review takes place to determine if the project is on the right path.
Phases in Waterfall Model
1) Requirements Gathering:
- Requirements Gathering is done by Business Analysts or Product Analyst.
- Requirements are documented during this phase and clarifications can be done.
- Translates business language into software language.
- Following are the common examples of requirement Gathering
- Brain storming etc.
- Requirement can be any type – functional or non functional
- Functional Requirement: payment-processing functionality
- Non-Functional Requirement: Response time in completing the payment
Below are the activities done in design phase.
- There are 2 stages in design,
- HLD (High Level Design) – gives the architecture of the software product to be developed and is done by architects and senior developers
- LLD (Low Level Design)– It is done by senior developers. It describes how each and every feature in the product should work and how every component should work. Here, only the design will be there and not the code.
- This is the process where we start building the software and start writing the code for the product.
- Coding is done by all developers – seniors, juniors, freshers
- Testing is the process of validating the software; find the defects and rectifying it.
- Testing done by test engineers
5) Deployment /Installation:
- The team builds and installs the application on the servers which were procured for the different applications for example banking, e-commerce etc.
- To install the product at a client’s place for using after the software has been developed and tested.
- This activity has been performed by installation engineers
- In this phase the customer uses the product, he finds certain bugs and defects and sends the product back for error correction and bug fixing.
- During this phase, the team ensures that the application is running smoothly on the servers without any downtime.
- Minor changes like adding, deleting or modifying any small feature in the software product
- 100 % testing is not possible – because, the way testers test the product is different from the way customers use the product.
Advantages of waterfall methodology:
- Easy to arrange tasks.
- Works well for smaller projects where requirements are very well understood.
- Simple and easy to understand and use.
- Phases are processed and completed one at a time
- Requirements do not change nor design or code, so we get a stable product.
Disadvantage of Waterfall Model :
- In waterfall model, backtracking is not possible i.e, we cannot back and change requirements once the design stage is reached.
- No working software is produced until late during the life cycle.
- High amounts of risk and uncertainty.
- If any Change in requirements, leads to change in design – thus bugs enter the design – which leads to change in code hence more bug. So requirements are freezed once the design of the product is started.
- Drawback of requirements freezing – the customer may not be satisfied if the changes he requires is not incorporated in the product.
- Major drawback of waterfall model – testing is a small phase, which is done after coding. Requirement is not tested, design is not tested, if there is a bug in the requirement, it goes on till the end and leads to lot of re-work.
When we can use Waterfall Model??
We can use Waterfall model in below cases
- Developing a simple application
- When we are sure that the requirements will not change
- For short duration projects
- For Small Projects
Lets take a example, waterfall model can be used in developing a simple calculator as the functions of addition, subtraction etc. and the numbers will not change for a long time.