雨落天涯

问花花不语,为谁落,为谁开。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程,活动和任务的结构框架。它能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。


一 、瀑布模型:

瀑布模型也称为软件生存周期模型,把软件生存的漫长周期依次划分为:可行性研究与计划、需求分析、设计、编程、测试、运行与维护六个阶段。瀑布模型的每个阶段相对独立的任务,只有完成本阶段并进行评审之后,才能进入下一个阶段。

核心思想:

  1. 从制作时间上按工序把问题化简;
  2. 将功能实现与设计分开,便于分工协作;


优点

  1. 奠定了软件工程方法的基础
  2. 流水依赖,便于分工协作
  3. 推迟物理实现,易于修改文档,有复审质量保证;

开发特点:

    1. 时间的顺序性和依赖性
    2. 推迟实现的观点
    3. 质量保证的观点

缺点:

    1. 在项目各个阶段之间极少有反馈
    2. 只有在生命周期才能看到结果
    3. 不适应用户需求的变化(目标系统与用户见面比较晚)

适用用范围:

    1. 适用于系统要求明确的系统,各种应用软件的开发均可使用。
    2. 瀑布模型适合于功能和性能明确,完整,无重大变化的软件开发

二 、 快速原型模型:

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


优点:

    1. 克服瀑布模型的缺点(用户和设计人员一直在一起),减少由于软件需求不明确带来的开发风险。
    2. 适合于预先不能确切定义需求的软件系统开发。

缺点:快速建立起来的系统结构加上连续的修改可能会导致质量下降


三 、增量模型:

也称渐增模型,融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。        


优点:
    1. 人员分配灵活,刚开始不用投入大量人力资源。
    2. 有效减低项目失败的风险

缺点:

    1. 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
    2. 由于需求是不断变化的,增量型模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但是也容易退化为边做边修改,从而使软件工程失去整体性。

四 、螺旋模型:

螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即制定计划,风险分析,实施工程,客户评估。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段:

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


                                                


优点:

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

缺点:

    1. 很难让用户理解这种演化方法是很难控制的
    2. 建设周期长,无法更上软件开发技术的变更
    3. 过多的迭代次数会增加开发成本,延迟提交时间。
    4. 需要具有相当丰富的风险评估经验

适用范围:对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更


五 、喷泉模型:

是一种以用户需求为动力,以对象为驱动的模型。主要适用于描述面向对象的软件开发过程,该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。

优点:
    1. 提高软件项目开发效率
    2. 节省开发时间

缺点:

    1. 需要大量的开发人员,因而不利于项目的管理
    2. 要求严格管理文档,使得审核难度加大

 




posted on 2012-11-23 19:22  雨落天涯  阅读(258)  评论(0编辑  收藏  举报