软件开发模型-瀑布模式

瀑布模式(Waterfall Model)

        瀑布模型提供了软件开发的基本框架。它在传统的软件生命周期的基础上,以文档计划来推动项目生产的一种软件开发模式。其过程是:每个阶段(B)只接受上一阶段(A)的工作成果(A-Pro),同时评审该内容是否适合当前阶段(B)工作的基本要求。
                若不符合,则返回前一阶段(A),甚至更前面的阶段进行确认;
                若符合,则继续完成当前阶段(B)的工作内容,并将生成工作成果(B-Pro)。然后继续刚才"接受-验证-继续"的循环,直到产品完成交给用户。

19-瀑布模型.png

优势:
        因为瀑布模型的每个阶段的边界划分很清楚,而且以线性的顺序依次完成。如果我们将阶段间的联系划分的更细一些,意味着我们在阶段性交接工作成果的时候没有更多的验证约束。即使交接的工作成果有问题,我们只需要纠正一下即可。
瀑布模型有明确的需求分析,层次性的开发思路,我们只需要按部就班的完成各阶段的工作内容就可以,它是一种理想化的开发模型,非常适合过程管理。
劣势:
        直接影响正常的产品交付日期
        瀑布模型的优势也是劣势。按计划完成任务很好,但是真正的工作中有非常多的不确定性。
        1. 需求不确定:因为我们的分析阶段是自己调研的,而用户在真正接触到产品前,需求会发生变化,而且开发过程中会有很多的不确定因素,导致我们不能按照理想化的路走下去。
        2. 反馈太慢长:我们按照计划开发产品,A阶段完成后,只有到B阶段的时候才会检查A阶段工作结果的效果,效果反馈慢。而且有些错误是不可避免的,因为需求分析阶段是最容易出现错误的阶段,也就是说,我们会在错误的道路上走到最后(部署出来)才发现错了(需求错误),这就意味着,当我们意识到错误的时候,已经迟了,我们需要花费很大的成本来修复错误。
       
20-劣势.png

        3. 缺乏并行性:每个阶段只接受上一阶段的成果后才工作,没有办法多阶段并行工作。
        4. 效率低下:A阶段在进行过程中,剩余的阶段都在等待,大量的资源(人力、物力)可能处于闲置状态,而且工作的人技术不一定很好。
场景:
        大部分的项目初期阶段
        某些核心、大型、稳定性要求高的项目

你可能感兴趣的:(软件开发模型-瀑布模式)