The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of REQUIREMENTS, DESIGN, CODING, TESTING, and MAINTENANCE.