To understand the Waterfall Model in SDLC, it’s necessary to dive into the model’s definition, main phases, what documents are associated as the result of each stage, advantages, and disadvantages.
SDLC stands for a software development life cycle. It’s a framework (an essential supporting structure) of a development process, which may differ from company to company. One of the most popular types of SDLC is the Waterfall Model. The Waterfall is, as one can see from above, a process model. In simple words, a generalized description of the software development process. Waterfall Model is the most widely known, as it was the first chronologically to appear and be described, by Dr.Winston W. Royce in 1970 in “Management the development of large software systems.”
There’s a range of development life-cycle model types, about which it’s written further in more detail, and they are later comers:
Certainly, they occurred to serve better where the Waterfall Model was less powerful. To understand the “thin places,” it’s necessary to dive into the Waterfall model definition, main phases, what documents are associated as the result of each stage, advantages, and disadvantages.
Waterfall Model Definition
Waterfall model is a linear (sequential) development life cycle model that describes development as a chain of successive steps. No phase can be started before or simultaneously with the previous or current one. Let’s consider the Waterfall model’s main phases as they go.
Waterfall Model’s Main Phases
1. System Requirements Phase
During the first phase, the requirements for the system are established. The process starts with eliciting business requirements, analyzing and prioritizing them, which ends with the creation of the Vision& Scope document (or 2 separate documents depending on each particular case). Vision and Scope documents are created before signing the contract. Vision is defined as a “long-term strategic concept of the ultimate purpose and form of a new system.” (Wiegers, 2012, p. 1) The scope is what “draws the boundary between what’s in and what’s out for the project.” (Wiegers, 2012, p. 1)
Denoting scope is an essential part of the project for both sides. It makes a client transparent what will be done. A good strategy for managing expectations is to identify what will not be included in a product, so client expectations are clear, that is for the Project Scope Document is created.
The Project Scope is expected to contain project roadmap, budgets, and description, with main functions defined regarding the problem vision document. Peruse an article about project scope management by an expert Vitaly Hornik.
The initial phase is unthinkable without Software Requirements Specification (SRS) that is the core of the phase.
Software Requirements Specification
A typical SRS includes a purpose, an overall description, specific requirements (functional, nonfunctional, quality attributes).
Sometimes, it may include prototypes that may be of different types: vertical/ horizontal, static/dynamic, low-fidelity/high-fidelity. Mockups (or prototypes) are sent to UI/UX designers who transform them into layouts. Feel free to estimate the Software Requirements Specification (SRS) Template created by XB Software.
2. Design Phase
The next phase in the model diagrams how precisely the requirements to the system will be technically implemented. This phase largely covers such components as a programming language, data layers, services, etc.
3. Implementation (Development) Phase
The actual source code is finally written in the third phase, implementing all models, business logic, and service integrations that were specified in the prior steps. The process of entire code creation may be subdivided into small units, and each unit is developed and tested for its functionality (unit testing). Afterward, a whole system is built out of ready-made units, and the fourth phase starts.
4. Testing Phase
After the development phase, the product should experience a thorough quality assurance and software testing to discover defects in a system. Testers are involved in finding and reporting issues that need to be resolved. To store registered issues, a bug tracking system can be utilized with the goal that the issues could be handled during the maintenance life-cycle phase.
The software can be conveyed when the code issues are fixed. The client is engaged with the acceptance testing to evaluate it for the utilization.
5. Maintenance Phase
As soon as the product is for placement to a live environment, it enters the ready maintenance phase of the development life cycle. The maintenance phase engages not just the deployment of the application, but also support and maintenance that may be required to keep it functional and up-to-date.
Waterfall Model Advantages and Disadvantages
The Waterfall model is easy to follow and understand, it is common to large institutions with many levels of decision making and coordination. Still, like any other SDLC model, it has its strong and weak sides. Waterfall model can’t suit every conceivable sort of a project. To sum up, there’s a table of the model’s pros and cons:
- Simple to oversee and preserve
- Detailed documentation
- Low possibility of unforeseen financial costs
- The outcome is clear
- Short of flexibility
- Lack of visibility of the current progress
- Increased delivery term
- Changes in the business requirements or new additions in functionality require changes at all previous steps
- Time-shift in one phase will strongly affect the whole road map as simultaneous processes are not available in a waterfall model
- The end product is available only at the end of a cycle
The Waterfall model is the best fit:
- For small and short projects.
- When requirements are unchangeable.
- For clients with a complex corporate structure with many levels of coordination.
In addition, it’s advisable to estimate a free Software Requirements Specification (SRS) Template created by XB Software.