瀑布模型(Waterfall Model)
什么是瀑布模型?
1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被普遍采取的软件开发模型。
瀑布模型核心思想
瀑布模型核心思想是按工序将困难化简,将功能的达到与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑达到与物理达到分开。将软件生命周期划分为策划计划、需求分析、软件设计、程序编撰、软件试探和运行维护等六个基本活动,而且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型的重要地位
瀑布模型是最早显现的软件开发模型,在软件工程中占有重要的地位,它给予了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实行该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同期评审该项活动的实行,若证实,则继续下一项活动;否则返回前面,甚至更前面的活动。对于经常改变的项目来说,瀑布模型毫无价值。(采取瀑布模型的软件过程如图所示)瀑布模型的优缺点
1、瀑布模型有下方优点
1)为项目给予了按阶段划分的检查点。
2)目前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
增量迭代应用于瀑布模型。迭代1处理最大的困难。每次迭代造成一个可运行的版本,同期增长许多的功能。每次迭代务必经历质量和集成试探。
2、瀑布模型有下方缺点
1)在项目各个阶段之间极少有反馈。
2)只有在项目生命周期的后期才可目睹结果。
3)通过过多的强制完成日期和转折点来追踪各个项目阶段。
4)瀑布模型的突出缺点是不适应用户需求的改变.瀑布模型的客户需求
即使瀑布模型招致了很多批评,但是它对很多种型的项目来说任然是有效的,假使正确运用,可以节省大批的时间和金钱。对于您的项目来说,能否运用这一模型首要取决于您能否能理解客户的需求以及在项目的进度中这些需求的改变程度,对于经常改变的项目来说,瀑布模型毫无价值,对于该种情形,您可以考虑其余的架构来执行项目管理,比如名叫螺旋模型(spiral model)的方法。
在瀑布模型中,软件开发的各类活动严格依照线性方式执行,目前活动接受上一项活动的工作结果,实行完成所需的工作内容。目前活动的工作结果需要执行验证,假使验证通过,则该结果作为下一项活动的输入,继续执行下一项活动,否则返回修改。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,该种模型的线性过程太理想化,已不再适合现代的软件开发模式,差不多被业界抛弃,其首要困难在于:
(1) 各个阶段的划分完全固定,阶段之间造成大批的文档,极大地增长了工作量;
(2) 受于开发模型是线性的,用户只有等到整个过程的末期才可见到开发成果,进而增长了开发的风险;
(3) 早期的错误或许要等到开发后期的试探阶段才可发现,从而导致严重的后果。
依照瀑布模型的阶段划分,软件试探可以分为单元试探,集成试探,系统试探。