软件开发模型

1.边做边改模型(Build-and-Fix Model)

软件开发模型

  • 适用性:对编写几百行的小程序来说还不错,对任何规模的开发来说都是不能令人满意的。
  • 特点:来需求就改,有问题就改。
  • 缺点
    (1) 缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;
    (2)忽略需求环节,给软件开发带来很大的风险;
    (3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。

2.瀑布模型(Waterfall Model)

软件开发模型

  • 简介:如图所示,瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动;每一个阶段的结果验证通过,作为下一阶段的输入,否则修改,重点强调每个环节的文档重要性,和结果的验证。
  • 特点:自上而下、相互衔接、线性进行。
  • 缺点:线性过程太理想化.
    (1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
    (2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险。
    (3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
  • 优点:线性是一种简洁,简洁就是美,线性是人们最容易掌握并能熟练应用的思想方法,一个复杂的系统整体将不能使用线性思想开发,但是分解出的每个阶段或细节的开发,确近似于线性,因此线性可能存在于众多复杂模型之中,比如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,其他模型中也存在线性模型的影子。

3.快速原型模型(Rapid Prototype Model)

  • 简介:通过原型设计工具,设计出满足用户需求的产品模型,准确描述用户需求,快速修改用户提出的需求意见,在设计好的需求基础上进行开发。
  • 特点:需求设计方便、快速,易调整、易修改。
  • 优点:减少由于软件需求不明确带来的开发风险

4.增量模型(Incremental Model)

又称演化模型。与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。
软件开发模型

  • 简介:将一个完整的产品分解为若干功能模块,按照需求的重要性,分批次上线。
  • 优点:适应变化,降低开发风险,优于瀑布。
  • 缺点
    (1) 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
    (2)在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。