常见的软件开发模型之———瀑布模型、原型模型、快速原型模型
本文参考Mooc《软件工程基础》—电子科技大学、《软件工程》—陈永、《软件工程》(第四版)—张海藩、《软件测试教程》—贺平
一.瀑布模型
1.1瀑布模型的基本思想
瀑布模型是一种严格按照生命周期定义进行软件开发的过程模型,所以也被经典生命周期模型。
瀑布模型将软件生命周期划分为问题定义、可行性分析、需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,故而形象地称为“瀑布模型”。 其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。它是一种被广泛采用的软件开发模型。
典型的瀑布模型如图所示:
瀑布开发模型中各阶段的主要工作及其相应的质量控制方式如下表所示:
1.2.瀑布模型的特点
应用瀑布模型进行软件开发过程中,瀑布模型的特点如下:
(1)阶段间的顺序性和依赖性
顺序性是指:在瀑布模型软件开发过程中必须等到前一阶段的工作完成以后,才能开始下一阶段的工作。
依赖性是指:前一阶段的输出文档就是后一阶段的输入文档。因此前一阶段文档的正确性是保证后一阶段工作的前提条件。
(2)推迟实现的观点
实践表明,对于规模较大的软件项目,如果前面的准备工作做的不扎实,过早地考虑进行编码实现,往往会导致大量返工,有时甚至会发生无法弥补的错误,带来灾难性后果。采用瀑布模型会强制研发人员按照阶段步骤进行软件设计,避免了一开始就直接进行详细编码的错误做法。编码处于软件开发的中后期,强调了需求分析和系统设计的重要性,体现了推迟实现的观点。如果坚持阶段性的评审,采用瀑布模型可以避免后期大量返工的现象,还可以减少后期维护工作的人力和费用。
(3)文档驱动推进研