图
2.2-1 软件生存周期的瀑布模
[2]
瀑布模型软件开发具有以下几个特征:
(1) 阶段间的顺序性和依赖性
顺序性是指:只有等前一阶段的工作完成以后,后一阶段的工作才能开始;前一阶段的输出文档,
就是后一阶段的输入文档。依赖性又同时表明了,只有前一阶段有正确的输出时,后一阶段才可能有正
确的结果。
(2) 推迟实现的观点
过早地考虑程序的实现,常常导致大量返工,有时甚至给开发人员带来灾难性的后果。
瀑布模型在编码以前安排了分析阶段和设计阶段,并且明确宣布,这两个阶段都只考虑目标系统
的逻辑模型,不涉及软件的物理实现。
把逻辑设计与物理设计清楚地划分开来,尽可能推迟程序的物理实现,这是瀑布型软件开发的一
条重要的指导思想。
(3) 质量保证的观点
为了保证质量,瀑布型软件开发在各个阶段坚持了两个重要的做法:
每一阶段都要完成规定的文档。没有完成文档,就认为没有完成该阶段的任务。
每一阶段都要对完成的文档进行复审,以便尽早发现问题,消除隐患。
瀑布模型所带来的问题:
(1) 不适应需求经常发生变更的环境:在项目的开发过程中,变更可能会引起混乱。所以,有人形
象地把采用线性模型进行商业软件工程称之为
“在沙滩上盖楼房”。
3