软件工程2软件开发模型

内容参考https://www.cnblogs.com/kzang/archive/2012/07/06/2578835.html


1瀑布模型

瀑布模型的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈(如果有信息未被覆盖或者发现了问题,则 “返回”上一个阶段并进行适当的修改)项目开发进程从一个阶段“流动”到下一个阶段。

特点

  • (1)阶段间具有顺序性和依赖性:
    是一种线性化结构模型,其各阶段具有里程碑性质
    • 前一阶段完成后,才能开始后一阶段
    • 前一阶段的输出文本为后一阶段的输入文本
  • (2)推迟实现的观点
    • 清楚地区分逻辑设计与物理设计并尽可能推迟物理实现
  • (3)质量保证:
    严格的阶段评审机制
    • 每个阶段必须交付出合格的文档
    • 对文档进行审核

缺点

  • 开始需要把需求做到最全
  • 惧怕用户测试中的反馈,惧怕需求变更

流程框图

带反馈的瀑布模型

2快速原型模型

快速模型是增量模型的另一种形式;它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作

优缺点:

  • 优点:  
    克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。

  • 缺点

      所选用的开发技术和工具不一定符合主流的发展;
      快速建立起来的系统结构加上连续的修改可能会导致产品质量低下;
      缺乏里程碑式管理,难以控制项目进度
      软件整体性和稳定性难以保障
    

原型类型:

  • 探索型原型:  目的是要理清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊
  • 实验型原型:  主要用于设计阶段;考核、实现方案是否合适,能否实现
  • 演化型原型:  主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统

原型的运用方式:

  • 抛弃策略
    将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠;该阶段结束后,原型随之作废探索型实验型就是采用此策略的。
  • 附加策略
    将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统;演化型快速原型就是采用此策略

流程框图

快速原型模型

3 螺旋模型

螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法,并在每个周期进行风险分析。该模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次。

限制条件:

  • 适应于内部的大规模软件开发
    螺旋模型强调风险分析,许多客户都无法接受和相信这种分析
  • 适合于大规模软件项目
    执行风险分析将大大影响项目的利润,如果软件项目规模过小,进行风险分析就毫无意义
  • 软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险

优点:

  • 设计上的灵活性,可以在项目的各个阶段进行变更.
  • 以小的分段来构建大型系统,使成本计算变得简单容易
  • 客户始终参与保证了项目不偏离正确方向以及项目的可控性
  • 客户始终掌握项目的最新信息,从而能够和管理层有效地交互.
  • 客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品.

缺点:

  • 很难让用户确信这种演化方法的结果是可以控制的
  • 开发周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求.

核心:

不需要在开始的时候就把所有事情都定义的清清楚楚。在定义最重要的功能时,去实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到满意的最终产品

循环步骤

每轮循环包含如下六个步骤:

确定目标、可选项、以及强制条件
识别并化解风险
评估可选项
开发并测试当前阶段
规划下一阶段
确定进入下一阶段的方法步骤

流程框图:

螺旋模型

4增量模型

增量模型是瀑布模型和原型进化模型的综合。它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。

构件思想:

  • 第一构件完成软件提供的基本最核心的功能
  • 后面的增构件是为了第一构件提供服务、提供功能的
  • 首先完成的应该是高风险重要部分(避免把难题退后)

困难:

每个新的构件集成到现有的软件结构中必然破坏原来已开发的产品,所以必须定义很好的接口

优点:

  • 短时间内向用户提供可完成部分工作的产品
  • 逐步增加产品功能可以使用户有时间了解和适应新产品
  • 开放结构的软件拥有的维护性明显好于封闭结构的软件

缺陷:

  • 容易退化为边做边改模型,从而使软件过程的控制失去整体性
  • 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析

流程框图:

增量模型

5喷泉模型

喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。

优点:

该模型的各个阶段没有明显的界限,开发人员可以同步进行开发,可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程.

缺点:

喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员;不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大;尤其是面对可能随时加入各种信息、需求与资料的情况。

流程框图:

喷泉模型


总结

模型优点缺点适用范围
瀑布模型严格的阶段评审机制提供了质量保证对需求分析要求高,惧怕需求变更适用于需求明确,且无大的需求变更的大型工程
快速原型模型减少由于软件需求不明确带来的开发风险快速建立起来的系统结构加上连续的修改可能会导致产品质量低下适用于软件需求不明确的开发过程
螺旋模型设计灵活;客户全程参与很难让用户确信这种演化方法的结果是可以控制的;开发周期长适用于内部的大规模软件开发
增量模型可快速的提供可完成部分工作的产品;可维护性高容易退化为边做边改模型;增量包之间可能存在冲突进行已有产品的升级;完成期限严格
喷泉模型各个阶段没有明显的界限,开发人员可以同步进行开发需要大量的开发人员;对文档要求高面向对象的软件开发过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值