SE Notes
The classic sequential software development model with distinct phases.
The Waterfall model is the oldest and most straightforward software development methodology, organizing the development process into distinct, sequential phases that flow downward like a waterfall. Each phase must be completed entirely before the next phase begins, and there is no going back—at least in the model's purest form. Proposed by Winston Royce in 1970 (who, ironically, presented it as an example of a flawed approach that needed iteration), Waterfall became the dominant methodology for decades because it mirrors how other engineering disciplines work and provides clear structure, milestones, and documentation.
The Phases
The Waterfall model consists of five to seven phases, depending on the formulation:
Requirements Gathering and Analysis: The team works with stakeholders to document every requirement the system must fulfill. This produces a comprehensive Software Requirements Specification (SRS) document that serves as the contract between the client and the development team. All functional requirements, non-functional requirements, constraints, and assumptions are captured here.
System Design: Using the requirements specification, architects design the system's overall structure. This includes hardware architecture, software architecture, database design, interface specifications, and module decomposition. The design phase produces documents like the High-Level Design (HLD) specifying the overall architecture and Low-Level Design (LLD) detailing each module's internal logic.
Implementation (Coding): Developers write code according to the design specifications. Each module is coded independently following the detailed design documents. Coding standards, review processes, and unit testing by developers occur during this phase.
Testing: The complete system is tested against the requirements specification. This includes integration testing (modules working together), system testing (complete system behavior), and acceptance testing (user validation). Defects are logged, fixed, and retested.
Deployment: The tested system is deployed to the production environment. User training, data migration, and system configuration occur during this phase.
Maintenance: After deployment, the team provides ongoing support, fixes bugs discovered in production, and makes minor modifications as needed.
Real-World Example: Government Tax System
A government agency commissions a new tax processing system. The Waterfall model is chosen because:
- Requirements are defined by tax law (stable and well-known)
- The system must process millions of returns correctly (no room for "rough drafts")
- Regulatory compliance requires extensive documentation
- Fixed budget requires predictable milestones
Requirements phase (3 months): Tax regulations are translated into system requirements. Every calculation formula, every form field, every validation rule is documented. The 500-page SRS is reviewed by tax experts, legal counsel, and IT architects.
Design phase (4 months): The architecture specifies a mainframe backend with web and batch interfaces. Database schemas map every tax entity. Interface specifications define exactly how data flows between modules.
Implementation (8 months): Teams code each module according to specifications. The tax calculation engine, form processing system, audit module, and reporting system are built independently.
Testing (3 months): Integration testing combines all modules. System testing runs thousands of test scenarios including edge cases. Parallel running compares new system results against the existing system using last year's actual tax returns.
Deployment (2 months): The system goes live before tax season. Staff are trained. Data is migrated from the legacy system.
Advantages of the Waterfall Model
Simplicity and clarity: Everyone understands where the project stands. Phase completion provides clear milestones for management and stakeholders.
Comprehensive documentation: Each phase produces detailed documents that serve as references for maintenance, training, and future modifications.
Easy to manage: The linear structure makes planning, budgeting, and resource allocation straightforward. Progress is easily measured by phase completion.
Works for well-understood domains: When requirements are stable and technology is mature, Waterfall's structured approach produces high-quality results efficiently.
Regulatory compliance: Industries requiring documented evidence of systematic development (healthcare, defense, finance) find Waterfall's documentation artifacts naturally satisfy compliance requirements.
Disadvantages
No working software until late: Users see nothing functional until the testing phase. If the team misunderstood requirements, this discovery comes very late when changes are expensive.
Inflexible to change: Once a phase is complete, going back is extremely costly. In reality, requirements do change—markets shift, users learn new needs, competitors force pivots.
High risk: All testing occurs at the end. A fundamental architectural flaw might not surface until integration testing, potentially requiring redesign of the entire system.
Assumes perfect knowledge: The model assumes requirements can be completely and correctly specified before design begins, and design can be perfected before coding starts. This assumption rarely holds for complex systems.
Long delivery time: For large systems, the time from project start to working software can be years, during which the market and business needs may have changed significantly.
When to Use Waterfall
Despite its limitations, Waterfall remains appropriate for projects with stable, well-understood requirements (tax systems, payroll, regulatory compliance), safety-critical systems requiring rigorous documentation (medical devices, aviation), fixed-price contracts with defined scope, and short projects where the overhead of iterative approaches is unwarranted. The key criterion is requirement stability—if you are confident requirements will not change significantly during development, Waterfall's structured approach offers efficiency and predictability.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Waterfall Model.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Software Engineering topic.
Search Terms
software-engineering, software engineering, software, engineering, process, models, waterfall, model
Related Software Engineering Topics