1.4.1 瀑布模型

瀑布模型即生存周期模型,是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。采用瀑布模型的软件过程如图1-2所示。

瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容,给出该项活动的工作成果,并作为输出传给下一项活动。同时,评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。

瀑布模型有利于大型软件开发过程中人员的组织及管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。然而软件开发的实践表明,上述各项活动之间并非完全是自上而下且呈线性关系的,因此瀑布模型存在严重的缺陷。

图1-2 采用瀑布模型的软件过程

(1)由于开发模型呈线性关系,所以当开发成果尚未经过测试时,用户无法看到软件的效果。这样软件与用户见面的时间间隔较长,也增加了一定的风险。

(2)在软件开发前期未发现的错误传到后面的开发活动中时,可能会扩散,进而可能会造成整个软件项目开发失败。

(3)在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的。