The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed fully before the next phase can begin. This type of software development model is basically used for the project which is small and there are no uncertain requirements. Show
At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In this model software testing starts only after the development is complete. In waterfall model phases do not overlap. Diagram of Waterfall modelPhases of Waterfall Model in Software EngineeringThere are several phases in the waterfall model. They are briefly explained below. Let us understand the concept of Waterfall model with example of a banking application for illustrating the topic. Let us assume that the Citibank is planning to have a new banking application developed and they have approached your organization in the 1990’s. Requirements Gathering and AnalysisIn this phase the requirements are gathered by the business analyst and they are analyzed by the team. Requirements are documented during this phase and clarifications can be sought. The Business Analysts document the requirement based on their discussion with the customer. Going through the requirements and analyzing them has revealed that the project team needs answers to the following questions which were not covered in the requirements document –
System DesignThe architect and senior members of the team work on the software architecture, high level and low level design for the project. It is decided that the banking application needs to have redundant backup and failover capabilities such that system is accessible at all times. The architect creates the Architecture diagrams and high level / low level design documents. ImplementationThe development team works on coding the project. They take the design documents / artifacts and ensure that their solution follows the design finalized by the architect. Since the application is a banking application and security was a high priority in the application requirements, they implement several security checks, audit logging features in the application. They also perform several other activities like a senior developer reviewing the other developers code for any issues. Some developers perform static analysis of the code. TestingThe testing team tests the complete application and identifies any defects in the application. These defects are fixed by the developers and the testing team tests the fixes to ensure that the defect is fixed. They also perform regression testing of the application to see if any new defects were introduced. Testers with banking domain knowledge were also hired for the project so that they could test the application based on the domain perspective. Security testing teams were assigned to test the security of the banking application. DeploymentThe team builds and installs the application on the servers which were procured for the banking application. Some of the high level activities include installing the OS on the servers, installing security patches, hardening the servers, installing web servers and application servers, installing the database etc. They also co-ordinate with network and IT administrative teams etc to finally get the application up and running on the production servers. MaintenanceDuring the maintenance phase, the team ensures that the application is running smoothly on the servers without any downtime. Issues that are reported after going live are fixed by the team and tested by the testing team. Examples of Waterfall ModelIn the olden days, Waterfall model was used to develop enterprise applications like Customer Relationship Management (CRM) systems, Human Resource Management Systems (HRMS), Supply Chain Management Systems, Inventory Management Systems, Point of Sales (POS) systems for Retail chains etc. Waterfall model was used significantly in the development of software till the year 2000. Even after the Agile manifesto was published in 2001, Waterfall model continued to be used by many organization till the last decade. These days most project follow Agile Methodology, some form of Iterative model or one of the other models depending on their project specific requirement. In the olden days, applications developed in Waterfall Model like CRM Systems, Supply Chain Management Systems etc would usually take a year or longer to develop. With the evolution of technology, there were cases where large scale enterprise systems were developed over a period of 2 to 3 years but were redundant by the time they were completed. There were several reasons for this.
However, there are some areas where Waterfall model was continued to be preferred.
In such situations, Waterfall model was the preferred approach.
Having said that, even these industries are being disrupted by the use of Iterative model and Agile methodology by organizations like Space X and others. Waterfall model was also used in banking, healthcare, control system for nuclear facilities, space shuttles etc Advantages of waterfall model
Disadvantages of waterfall model
When to use the waterfall model
In Waterfall model, very less customer interaction is involved during the development of the product. Once the product is ready then only it can be demonstrated to the end users. Once the product is developed and if any failure occurs then the cost of fixing such issues are very high, because we need to update everything from document till the logic. In today’s world, Waterfall model has been replaced by other models like iterative, agile etc. Difference between: Waterfall Model vs Agile ModelThere are many differences between Waterfall and Agile model as shown below.
Have you seen Waterfall model being used in your organization? Please share your experience in the comments below. Also see: What is Agile Model? Other popular articles:
|