常见的软件开发模型之———瀑布模型、原型模型、快速原型模型
- 一.瀑布模型
-
- 1.1瀑布模型的基本思想
- 1.2.瀑布模型的特点
- 1.3.瀑布模型的优点
- 1.4.瀑布模型的缺点
- 1.5 瀑布模型的应用范围
- 二. 快速原型模型
-
- 2.1 快速原型模型的基本思想
- 2.2 原型模型和快速原型模型的区别
- 2.3快速原型模型的优点
- 2.4 快速原型模型的缺点
- 2.5 快速原型模型的应用范围
一.瀑布模型
1.1瀑布模型的基本思想
瀑布模型是一种严格按照生命周期定义进行软件开发的过程模型,所以也被经典生命周期模型。
瀑布模型将软件生命周期划分为问题定义、可行性分析、需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,故而形象地称为“瀑布模型”。 其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。它是一种被广泛采用的软件开发模型。
典型的瀑布模型如图所示:
1.2.瀑布模型的特点
应用瀑布模型进行软件开发过程中,瀑布模型的特点如下:
(1)阶段间的顺序性和依赖性
顺序性是指:在瀑布模型软件开发过程中必须等到前一阶段的工作完成以后,才能开始下一阶段的工作。
依赖性是指:前一阶段的输出文档就是后一阶段的输入文档。因此前一阶段文档的正确性是保证后一阶段工作的前提条件。
(2)推迟实现的观点
实践表明,对于规模较大的软件项目,如果前面的准备工作做的不扎实,过早地考虑进行编码实现,往往会导致大量返工,有时甚至会发生无法弥补的错误,带来灾难性后果。采用瀑布模型会强制研发人员按照阶段步骤进行软件设计,避免了一开始就直接进行详细编码的错误做法。编码处于软件开发的中后期,强调了需求分析和系统设计的重要性,体现了推迟实现的观点。如果坚持阶段性的评审,采用瀑布模型可以避免后期大量返工的现象,还可以减少后期维护工作的人力和费用。
(3)文档驱动推进研发进程
瀑布模型在每阶段要完成规定的文档。软件开发是许多人共同参加、分工合作的工作,完整而合格的文档是开发人员间联系的媒介,同时是维护时期的重要依据。所以没有完成文档,就被认为没有完成该阶段的工作。 瀑布模型过程中,各个阶段与文档的关系如下图所示:
-
(1)确定用户的基本需求
由用户提出对新系统的基本要求,如功能、界面的基本形式、所需要的数据、应用范围、运行环境等,开发者根据这些信息估算开发该系统所需的费用,并建立简明的系统模型。 -
(2)构造初始原型
系统开发人员在明确系统基本要求和功能的基础上,依据计算机模型,以尽可能快的速度和尽可能多的开发工具来建造一个结构仿真模型,即快速原型构架。之所以称为原型构架,是因为这样的模型是系统总体结构、子系统以上部分的高层模型。由于要求快速,这一步骤要尽可能使用一些软件工具和原型制造工具,以辅助进行系统开发。 -
(3)运行、评价、修改原型
快速原型框架建造成后,就要交给用户立即投入试运行,各类人员对其进行试用、检查分析效果。由于构造原型中强调的是快速,省略了许多细节,一定存在许多不合理的部分。所以,在试用中要充分进行开发人员和用户之间的沟通,尤其是对用户提出的不满意的地方进行认真细致的反复迭代,并与用户交流、修改、完善,直到用户满意为止。 -
(3)形成最终的软件系统
如果用户和开发者对原型比较满意,则将其作为正式原型。然后可以采用其他软件过程开发方法,如瀑布模型进行后续开发; (该模型要结合其它模型进行后续开发)或者经过双方继续进行细致的工作,在正式原型的基础上对细节问题逐个补充、完善、求精、设计、编码,最后形成一个完整的软件系统。
下图是原型模型结合瀑布模型开发软件的过程:

2.2 原型模型和快速原型模型的区别
原型模型通常可分为两类:
- 第一类,原型演示仅是为了获得完整的需求说明,在用户认可后,按生命周期重新开发新产品,这种方法不能直接得到终端的目标系统,它的目的只是和用户交流,它保证了功能暂时牺牲了性能。在用户接受系统规格说明书(SRS)后,会将此类原型丢弃),这一类称为原型模型。
- 第二类,不丢弃原型,而是通过原型的不断增加和扩充,增强式地开发(迭代式),逐步达到产品的要求。总的目的都是为了以后尽量少返工,降低维护费用。这一类是就我们所说的快速原型模型。
快速原型法突出的特点是一个“快”字。这与瀑布模型的推迟实现观点正好相反。采用瀑布模型时,软件的需求分析也要在用户和开发人员之间往返讨论,前期需求不足,会导致用户设计出来的产品不满意的现象经常发生。快速原型法就是针对上述情况,采用演示原型(亦称模拟原型)的方法来启发和揭示系统的需求。具体来讲,其主要思想就是*:首先建立一个能够反映用户主要需求的原型,让用户实际使用未来系统的概貌,以便判断哪些功能是符合需求的,哪些方面还要改进,然后将原型反复修改,最终建立起完全符合用户要求的新系统。而快速原型系统*则是开发人员向用户提供“模型样品”,用户向开发人员迅速做出反馈,开发人员根据用户反馈及时做出产品修正、补充,最终减少了维护时期的工作量和费用,这正是快速原型法的优越性存在。
2.3快速原型模型的优点
- 在开发过程中,开发者更容易得到用户对于已做原型系统的反馈意见
- 系统开发循序渐进,反复修改,确保较好的用户满意度
- 开发周期短,费用相对少
- 尽早发现软件中的错误
- 支持需求的动态变化
2.4 快速原型模型的缺点
- 所选用的开发技术和工具不一定符合主流的发展
- 快速建立起来的系统加上连续的修稿可能导致原型质量低下
- 开发过程管理要求高,整个开发过程要经过“修改—评价—再修改”的多次反复;
- 开发人员易将原型取代系统分析;
- 如果管理不足将会导致缺乏规范化的文档资料。
2.5 快速原型模型的应用范围
快速原型法作为对传统生命周期法的一种改进,由于在研制过程中的前期就有用户的介入与反馈,使得最终系统能更好地适应用户的要求,因而被认为是一种有前途的新方法。但是,在短时间内研发者快速构成系统并快速响应用户提出的修改,对其研发者技术水平和开发环境和工具都有较高要求,从而在一定程度上影响和制约了快速原型法的迅速推广。
快速原型法适合预先不能确切定于需求的软件系统的开发,也适用于处理业务过程明确、简单以及涉及面窄的小型软件系统。 不适合处理大型、复杂的系统。因为大型复杂的系统难以直接模拟,此外存在大量运算、逻辑性强的处理系统也不便于用原型表示;最后,如果管理基础工作不完善、处理过程不规范也会影响原型法发挥作用。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!