软件开发模式整理

瀑布模型

1970年温斯顿·罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。

瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

优点:

  1. 为项目提供了按阶段划分的检查点
  2. 当前一阶段完成后,您只需要去关注后续阶段
  3. 可在迭代模型中应用瀑布模型

缺点:

  1. 在项目各个阶段之间极少有反馈。也正因为此,每个阶段都产生大量文档,增加了工作量
  2. 只有在项目生命周期的后期才能看到结果。增加了开发的风险
  3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段

使用范围:

需求明确且不易变更的软件系统。(对于经常变化的项目而言,瀑布模型毫无价值)

增量模型

将产品的功能划分为许多增量。第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。

使用范围:

技术风险较大、用户需求较为稳定的软件系统

迭代模型

迭代模式和增量模式差不多。他们的异同的如下:

他们的共同点是,通过若干个阶段的开发,完成整个软件,每阶段完成之后,都有一个新版本发布。至于不同点,主要是阶段的划分上不太一样。增量模型是从功能量上来划分的,每阶段完成一定的功能。迭代模型是从深度或细化的程度来划分的,每阶段功能得到完善、增强。

快速原型模型

由于种种原因,在需求分析阶段得到完全、一致、准确、合理的需求说明是很困难的,所以先构造一个原型。快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

使用范围:

需求复杂、难以确定、动态变化的软件系统。并且要对开发领域比较熟悉,有原型开发工具

螺旋模型

强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。对于这些系统,风险是开发不可忽视且潜在的不利因素,它可能在不同程度上损害软件开发过程,影响软件产品的质量。减小风险的目标是在造成危害之前,及时对风险进行识别及分析,决定采取何种对策,进而消除或减少风险的损害。

螺旋模式有四个阶段:制定计划,风险分析,实施工程,客户评估。这四个阶段分别处于坐标系的四个象限(如下图:)

螺旋模式沿着四个象限循环,就像螺旋状。所以叫螺旋模式

使用范围:

需求难以获取和确定、软件开发风险较大的软件系统



另外,关于软件开发模型的更详细内容可以参考http://wiki.mbalib.com/wiki/%E7%80%91%E5%B8%83%E6%A8%A1%E5%9E%8B

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值