What is the Waterfall model?
The Waterfall model is the very first SDLC model which is introduced for software development. It is very user-friendly. There is no overlapping in the Waterfall model. This means that you must complete the first phase before starting the next one. You may refer to this model as the linear-sequential life cycle model.
Waterfall model phases
The Waterfall process divides process into different phases, with the output of one phase serving as the input of the next.
Requirement Gathering and analysis
All possible requirements for the development process are gathered in this phase thanks to specification documents.
System Design
The system design is based on the reference from the document from the first phase. This phase aims to identify the hardware and system requirements as well as the overall system architecture.
Implementation
The input from the system design is first developed in small programs called units. Each unit is developed and tested to ensure proper functionality, which is referred to as unit testing.
Integration and Testing
All the units developed in the implementation phase are thoroughly tested for any faults or failures.
Deployment of system
After testing is done, the product is released into the market or deployed in the customer environment.
Maintenance
There are certain issues that appear in the client environment. To resolve those issues, versions are released. These changes are delivered in the customer environment with maintenance.
Examples of Waterfall Model
In the past, the Waterfall model was used to develop enterprise applications such as customer relationship management systems, human resource management systems, supply chain management systems, inventory management systems, and point of sale systems for retail chains.
The waterfall model was significantly used in the development of software until the year 2000. Despite the publication of the Agile manifesto in 2001, the Waterfall model continued to be used by many organizations until the last decade.
Today, most projects follow the Agile methodology, or some form of the iterative model, or one of the other models, depending on their project-specific requirements.
In the past, applications developed using the Waterfall Model, such as CRM systems, supply chain management systems, etc., would often take a year or more to develop.
With the advance in technology, there have been cases where large-scale enterprise systems have been developed over a period of 2 to 3 years but are redundant by the time they are completed. There were several factors contributing to this.
In such situations, the Waterfall model was often the preferred approach.
- In such industries, the requirements are generally well understood ahead of time, and contracts are often very specific about what the project should deliver.
- Department of Defense agencies are typically considered to be compatible with the Waterfall model and the rigorous oversight process required by the government.
Even though these industries are being disrupted by the use of an iterative model and agile methodology, organizations like SpaceX and others are using these methods to improve their products.
The waterfall model was also used in banking, healthcare, nuclear control systems, and space shuttles.
When should we use the waterfall model?
1. The requirements are clear and fixed, and may not change.
2. There are no requirements that could be interpreted in more than one way.
3. This model is effective when the technology is thoroughly understood.
4. The project is brief, and the team is small.
5. Risk is zero or minimum.
Video Tutorial
Pros and Cons of Water model
Pros:
1. It is easy to understand and use.
2. It is very user-friendly.
3. It is ideal for smaller, low-budget projects with clearly defined requirements.
4. Clearly defined stages.
5. Arranging tasks is easy
6. Process and results are well documented.
Cons:
1. Progress is lengthy and difficult to measure in stages.
2. Poor model for long and ongoing projects.
3. During the life cycle, no software is produced until late in the process.
4. Risk and uncertainty are high.
5. Not a good model for big and object-oriented projects.
6. Changing requirements are not accommodated.
Instructor-led Training
Software Testing Online Training
- Manual Testing
- Database/SQL/Database Testing
- JIRA defect management tool
- Java Programming
- Selenium Framework
- TestNG
- Cucumber with Maven
- Basic of Jenkins
To get more details, please visit the following URL:
https://www.qaonlinetraining.com/courses/software-testing-courses/qa-online-training/
Software Testing Classroom Training
Software testing classroom training includes the following modules:
- Manual Testing
- Database/SQL/Database Testing
- JIRA defect management tool
- Java Programming
- Selenium Framework
- TestNG
- Cucumber with Maven
- Basic of Jenkins
- API Testing with SoapUI or Postman
- Performance Testing with Jmeter
To get more details, please visit the following URL:
https://www.qaonlinetraining.com/programs/master-of-software-testing-ba-istqb-training/