【软工】开发模型

来源:互联网 发布:千方百计医药软件 编辑:程序博客网 时间:2024/06/01 17:12

概念

  我们在进行软件开发的时候,我们需要对软件开发的全部过程、活动和任务设计一个框架,那就是软件开发模型。选择软件开发模型是我们进行软件开发至关重要的一步!

  它包括软件开发的需求、设计、编码、测试阶段,有时也包括运维阶段。它能够清晰地表达软件开发的全过程,明确规定了要完成的主要任务和活动,用来作为软件项目工作的基础。

  不同的软件系统,可以采用不同的开发方法、程序设计语言,不同技能的人员参与工作、运用不同的管理方法等。


分类

瀑布模型

  最早出现的软件开发模型是1970年W·Royce提出的瀑布模型。该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品,投入使用。但计算拓广到统计分析、商业事务等领域时,大多数程序采用高级语言(如FORTRAN、COBOL等)编写。瀑布模式模型也存在着缺乏灵活性、无法通过并发活动澄清本来不够确切的需求等缺点。

  1.   思想:
      从制作时间上按工序吧问题简化,将功能实现与制作分开便于分工协作
  2.   优点:
    1.   奠定了软件工程方法的基础
    2.   流水依赖,便于分工协作
    3.   推迟物理实现,便于修改文档,有复审质量保证
  3.   不足:
      与用户见面晚,成功率低,一般为25%
  4.   使用范围:
      使用于系统要求明确的系统,各种应用软件的开发均可使用

  图例:

这里写图片描述
  此模型的之间各个阶段的相互依赖性特别强,每个阶段都要产生一个文档,还要接受评审!可以看出这个模型是一步一个脚印走过来!

b模型

  b模型有由下图可以看出,就是在之前的瀑布模型的基础进行了调整,在测试阶段之后,添加了维护循环的过程,保证我们的软件开发的更加完善!(但是维护的工作量不能超过软件开发工作量的一半,超过一半那就不是软件维护了,那就是是二次开发了!)

  图例:

这里写图片描述

  它主要运用在比较注重维护的软件开发过程中,而且一般维护的成本比较高的!


快速还原模型

  快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原形使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则是在第一步的基础上开发客户满意的软件产品。

  图例:

这里写图片描述

  快速原型方法可以克服瀑布模型的不足,减少由于软件需求不明确带来的开发风险,具有显著的效果!


演化模型

  由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目的难于做到一次开发成功,出现返工的现象是在所难免的。
  所以我们在开发的时候,一般是做两次:
  第一次是试验开发,其目标只是在于探索可行性,弄清软件需求!
  第二次则是在此基础上获得较为满意的软件产品
图例(渐增模型):

这里写图片描述

  1. 基本思想:
      允许从部分需求出发,先建立一个不全面的系统,通过测试这个系统,进一步使系统扩充和完善。

  2. 优点:
      开发的过程始终有开发人员和用户参与,有问题可以随时更改,从而很好的满足用户的需求。

  3. 适用范围:
      适用于那些知识型软件系统的开发。

  4. 特点:
      从整体结构上不如瀑布模型清晰
      软件的文档不如瀑布模型的划分严格
      周期长,成本高
      与用户见面快,开发效率高


螺旋模型

  螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

  螺旋模型沿着螺线旋转,在四个象限分别表达四个方面:

  1.   制定计划:确定软件目标,续订实施方案,弄清项目开发的限制条件
  2.   风险分析:分析所选方案,考虑如何识别和消除风险
  3.   实事工程:实施软件开发
  4.   客户评估:评价开发工作,提出修正建议

  图例:

这里写图片描述


  学习还在继续!!!

原创粉丝点击