瀑布模型(Waterfall Model)
瀑布模型是一种比较老旧的软件开发模型,1970年温斯顿·罗伊斯提出了著名的“瀑布模型”,直到80年代都还是一直被广泛采用的模型。
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
瀑布模型优点是严格遵循预先计划的步骤顺序进行,一切按部就班比较严谨。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
1) 各个阶段的划分完全固定,阶段之间产生大量的文档 否,极大地增加了工作量;
2) 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
3) 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
4) 各个软件生命周期衔接花费时间较长,团队人员交流成本大。
5) 瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。