A sequential software development methodology where progress flows steadily downwards through phases of conception, initiation, analysis, design, construction, testing, deployment, and maintenance. It supports the full software development lifecycle from design through deployment and maintenance.