一、瀑布模型

1、按照传统的瀑布模型开发软件,有下述几个特点。

①阶段间具有顺序性和依赖性

阶段间具有顺序性和依赖性,这个特点有两重含义:

1,必须等前一阶段的工作完成之后,才能开始后一阶段的工作;

2,前一阶段的输出文档介绍后一阶段的输入文档;

因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。

②推迟实现的观点

对于规模较大的软件项目来说,往往编程开始得越早,最终完成开发工作所需要的时间反而越长。

③质量保证的观点

软件工程的基本目标是优质,高产。为了保证所开发的软件的质量,在瀑布模型的每个阶段都坚持两个重要的做法。

(1)每个阶段都必须完成规定的文档,没有交出合格的文档介绍没有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各类人员相互通信的媒介,也是运行时期进行维护的重要依据。

(2)每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

事实上,越是早期阶段犯下的错误,暴露出来的时间越晚,排除故障改正错误所需付出的代价也越高。因此,及时审查,是保证软件质量、降低软件成本的重要措施。

2、传统的瀑布模型过于理想化

事实上,人在工作过程中不可能不犯错误。在设计阶段可能发现规格说明文档的错误,而设计上的缺陷或错误可能在实现过程中显现出来,在综合测试阶段发现需求分析、设计或编码阶段的许多错误。因此,实践的瀑布模型是带“反馈环”的。

3、瀑布模型有许多优点:

可强迫开发人员采用规范的方法(如结构化技术)

严格地规定了每个阶段必须提交的文档

要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

缺点:

1.只能通过文档了解产品,不经过实践是不切实际的;

2.实际项目很少按照该模型给出的顺序进行;

3.用户常常难以清楚地给出所有需求

4.用户必须要耐心,等到系统开发完成

瀑布模型的成功在很的程度上是由于它基本上是一种文档驱动的模型。

但是,“瀑布模型是文档驱动的”这个事实也是它的一个主要的缺点。

在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样的。但是仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品。而且事实证明,一旦一个用户开始使用一个软件,在他的头脑中关于该软件应该做说明的想法就会或多或少地发生变化,这就使得最初提出的需求变得不完全适用了。事实上,要求用户不经过实践就提出完整准确的需求,在很多情况下都是不切实际的。总之,由于瀑布模型几乎完全依赖于书面的规格说明,很有可能导致最终开发出的软件产品不能真正满足用户的需要。

4、瀑布模型适用于:

(1)需求是预知的

(2)软件实现方法是成熟的

(3)项目周期短

二、快速原型模型

所谓快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

快速原型模型是不带反馈环的,这正是这种模型的主要优点

软件产品的开发基本上线性顺序进行的

1,能基本上做到线性顺序开发的主要原因如下:

①原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户的需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。

②开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。

快速原型的本质是“快速”。

按照原型的目的对原型分类:

·  抛弃式,目的到达即可抛弃,原型不做为最终产品

·  演化式,系统的形成和发展是逐步完成的,是高度动态迭代和高度动态的,每次迭代都要对系统重新进行规格说明,重新设计和重新评价,所以是对付变化最为有效的方法,这也是与瀑布开发的主要不同点;

·  增量式,系统是一次一段地增量构造,与演化式原型的最大区别在于增量式开发是在软件总体设计基础上进行的。很显然,其对付变化比演化差;

快速原型模型的优点:

①尽早揭示软件可能存在的风险和不确定因素,尤其是关于用户需求一致性方面的风险。

②用户参与,降低风险,节省后期变更成本,提高项目成功率。

③不带反馈环,基本上做到线性顺序开发。

④开发过程与用户培训过程同步,系统易维护,对用户更友好,产品柔性好。

三、增量模型

增量模型也称渐增模型

增量模型属于非整体开发思想的产物

使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计,编码,集成和测试。

每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

使用增量模型时,第一个增量构建往往实现软件的基本需求,提供最核心的功能。

采用瀑布模型或快速原型模型开发软件时,目标都是一次就把一个满足所有需求的产品提交给用户。增量模型与之相反,它是分批逐步向用户提交产品,使得整个软件被分解成许多增量构件,开发人员一个构件接一个构件地向用户提交产品。

优点:

①能在较短的时间内向用户提交可完成部分工作的产品

②逐步增加产品的功能可以使用户有充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

缺点:

风险大,必须保证新增构件不破坏原来已开发出来的产品

    风险更大的增量模型

四、螺旋模型

螺旋模型的基本思想是:使用原型及其他方法来尽量降低风险。

理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。

螺旋模型有许多优点:

①对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标

②减少了过多的测试(浪费资金)或者测试不足(产品故障多)所带来的风险。

③在螺线模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。

螺旋模型的主要优势在于,它是风险驱动的,但是这也可能是它的一个弱点。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将会出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。

五、喷泉模型

迭代是软件开发过程中普遍存在的一种内在属性。

“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。

图中代表不同阶段的圆圈相互重叠,这说明表示两个活动之间存在交迭;而面向对象的方法在概念和表示方式上的一致性,保证了在各项开发活动之间的无缝过渡

事实上,用面向对象方法开发软件时,在分析、设计和编码等项开发活动之间并不存在明显的边界。

图中较小的圆圈代表维护,圆圈较小象征着采用了面向对象范型之后维护时间缩短了。

为避免使用喷泉模型开发软件时开发过程过分无序,应该把应该线性过程(例如,快速原型模型)作为总目标。但是,同时也应该记住,面向对象范型本身要求经常对开发活动进行迭代或求精。

瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型相关推荐

  1. 【软件测试基础理论知识】1.2.常见的软件开发模型之———增量模型(渐增模型)、螺旋模型

    增量模型(渐增模型).螺旋模型 一. 增量模型 1.1 增量模型的基本思想 1.2 增量模型的特点 1.3 增量模型的优点 1.3 增量模型的缺点 1.4 增量模型的适用范围 二. 螺旋模型 2.1 ...

  2. 【软件工程】软件过程各种模型的理解[ 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型 ]

    什么是软件过程? 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤. 软件生命周期 瀑布模型 瀑布模型优点 : 1.为项目提供了按阶段划分的检查点 2.当前活动 ...

  3. 软件过程开发模型主要有6种,1瀑布模型,2快速原型模型,3增量模型,4螺旋模型,5喷泉模型,6RUP;瀑布模型和快速原型模型本质上一种( 线性)模型;增量模型风险很大,增量模型本质是一种非整体开发模型

    软件过程模型 是为了获得高质量软件所需要完 成的一系列任务的框架,它规定了完成各项任务 的工作步骤.通常使用 生命周期模型 简洁地描 述软件过程. 增量模型也称为渐增模型,先选择一个或几个关键功能,建 ...

  4. 软件开发模型 - 瀑布模型 快速原型模型 增量模型 螺旋模型 及优缺点详解

    一.软件开发过程模型 软件开发模型(Software Development Model)是指软件开发全部过程.活动和任务的结构框架.软件开发包括需求.设计.编码和测试等阶段,有时也包括维护阶段. 软 ...

  5. 软件开发模型1:边做边改模型/瀑布模型/快速原型模型

    文章目录 1 边做边改模型(即兴模型)(Build-and-Fix Model) 1.1 优点: 1.2 缺点: 2 瀑布模型(Waterfall Model) 2.1 优点 2.2 缺点 3 快速原 ...

  6. 【软件工程】几种模型概念:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型

  7. 【软件工程】几种常见的软件开发模型:(瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)模型的概念特点优点缺点和不同。

    (瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型)各种模型的概念特点优点缺点和不同. (张海藩,吕云翔)著-软件工程 复习记录 文章目录 一.瀑布模型 二.快速原型模型 三.增量模型 四.螺旋模 ...

  8. 软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型总结...

    在校期间学习过这些模型,现在来复习一下. 瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格 ...

  9. 软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型总结

    在校期间学习过这些模型,现在来复习一下. 瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格 ...

  10. 软件开发传统模型——瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型

    软件开发模型: 定义: 软件开发的全部过程.活动和任务的结构框架,通过该模型能清晰.直观地表达软件开发全过程,明确地规定要完成的主要活动和任务,它奠定了软件项目工作的基础. 其中最为代表的就有此五类模 ...

最新文章

  1. postfix+mysql 发件服务
  2. int length c语言,第07天C语言(06):数组练习2
  3. JZOJ 5700. 【gdoi2018 day1】小学生图论题(graph)
  4. @async 默认线程池_springboot@Async默认线程池导致OOM问题
  5. 图像连通域标记算法研究
  6. 当电信诈骗犯遇上程序员,技术决定成败!
  7. 7000 字,四年多 Java 的 BAT 面经分享!
  8. Python __all__的作用
  9. 内卷时代,普通测试员的铁饭碗究竟是什么?
  10. java python混合编程_python+java混合编程
  11. SpringBoot 导出Excel 固定表头
  12. android计算器实训报告总结,计算机实训总结报告【三篇】
  13. taro开发微信小程序配置全局appid
  14. css网站变灰色代码
  15. bzoj 4484: [Jsoi2015]最小表示 拓扑排序+bitset
  16. [android] 运行编译报错:Entry name ‘assets/Icoxx.png‘ collided
  17. Flink任务失败,检查点失效:Exceeded checkpoint tolerable failure threshold.
  18. 学计算机拼音摇号,电脑摇号:作弊100%!
  19. 【Python】利用摸鱼的时间,我写了一个三国杀开盒模拟器...
  20. ppoe拨号服务器没响应,pppoe拨号失败怎么办 pppoe拨号失败解决方法

热门文章

  1. Java实现文件传输
  2. zircon ddk快速入门
  3. 数据库(员工信息表)
  4. Flash Timer的用法 计时器
  5. 用 ABAP 新建本地 Excel 文件并写入数据试读版
  6. 博客网页配色表+流行色系
  7. Mysql的用户与权限管理
  8. php bi系统,bi系统是什么系统
  9. 谷歌搜索算法分析及应对策略
  10. 格雷码(Gray Code)编码、实现及规律(附编码)