The waterfall model is a sequential software development model.
The phases of a Waterfall model are:
Requirement Specification
You have to capture what the system should do and define the requirements in terms of use cases etc.
Design
We have to design software internals. A "blueprint" is drawn up for the developers to implement.
Implementation
During this phase coding is done for the software and this may include unit testing.
Testing
May include Integration Test, Acceptance Test, Alpha & Beta Test, Regression Test, System Test.
Maintenance
Software Maintenance is the modification of a software after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.
When to use Waterfall model
The pure waterfall performs well for products with clearly understood requirements or when working with well understood technical tools, architectures and infrastructures. It's weaknesses frequently make it inadvisable when rapid development is needed. In those cases, modified models may be more effective. Source
Advantages of Waterfall model
Waterfall model puts more emphasis on requirements and design before writing a single line of code which in a way reduces risk and ensures minimal wastage of time and effort.
Disadvantages of Waterfall model
In real life scenario projects rarely follow the sequential flow.
The customers do not state all requirements explicitly.
Also See:
Incremental model, When to use, its advantages & disadvantages
RAD model, When to use, its advantages & disadvantages
Spiral model, When to use, its advantages & disadvantages
Comparison of Software Development Models
Questions on Waterfall Model