适用范围:系统需求明确,技术成熟、工程管理较为严格的场合。
由Winston Royce在1970年最早提出的软件开发模型。软件开发过程与软件生命周期是一致的,也称经典的生命周期模型。
规定了各项软件工程活动,以及它们自上而下,互相衔接的固定次序,如同瀑布流水逐级下落。
是一种使用广泛,以文档为驱动的模型。
特点:
1,阶段间具有顺序性和依赖性。
2,推迟实现的观点。
3,每个阶段必须完成规定的文档,每个阶段结束前完成文档审查,及早改正错误。
主要问题:线性过程太过理想化
1,各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2,由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险。
3,早期的错误可能要等到开发后期测试阶段才能发现,进而带来了严重的后果。