五种典型开发周期模型(瀑布、V、原型化、螺旋、迭代)

1. 瀑布模型

  • 瀑布模型是一个特别经典的,老套的周期模型。工序简化,将功能实现和设计分开。便于分工协作。
  • 一般情况下将软件开发周期分为计划需求分析概要设计详细设计编码以及单元测试测试运行维护等几个阶段。
  • 瀑布模型的周期是环环相扣的。每个周期中交互点都是一个里程碑,上一个周期的结束需要输出本次活动的工作结果,本次的活动的工作结果将会作为下一个周期的输入。这样,当某一个阶段出现了不可控的问题的时候,就会导致返工,返回到上一个阶段,甚至会延迟下一个阶段。
    自上而下、相互衔接的固定次序

优点:

(1)为项目提供了按阶段划分的检查点。
(2)当前一阶段完成后,您只需要去关注后续阶段
(3)可在迭代模型中应用瀑布模型
增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。

缺点:

(1)在项目各个阶段之间极少有反馈
(2)只有在项目生命周期的后期才能看到结果。
(3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
(4)瀑布模型的突出缺点是不适应用户需求的变化

2. V模型

  • V模型从整体上看起来,就是一个V字型的结构,由左右两边组成。
  • 左边的下划线分别代表了需求分析概要设计详细设计编码
  • 右边的上划线代表了单元测试集成测试系统测试与验收测试
  • 看起来V模型就是一个对称的结构,它的重要意义在于,非常明确的表明了测试过程中存在的不同的级别,并且非常清晰的描述了这些测试阶段和开发阶段的对应关系。

3. 原型化模型

  • 过程
  • 第一步就是创建一个快速原型,能够满足项目干系人与未来的用户可以与原型进行交互
  • 再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求
  • 进行了充分的了解之后,在原型的基础上开发出用户满意的产品
  • 在实际的项目过程中,借助于组织过程资产以及快速模型软件,一般在需求分析的时候,就可以建立一些简单的原型,例如在第一家YH公司中,因为是“行业软件提供商”,所以拥有各个地域的行业解决软件方案,惯用的伎俩就是将其他地市的项目拿到本次项目实施地,作为原型化模型。原型化模型是极具意义的项目实践。

4. 螺旋模型

  • 尤其重视风险分析阶段,特别适用于庞大并且复杂,非常高风险的项目。
  • 通常螺旋模型由四个阶段组成:制定计划风险分析实施工程客户评估。螺旋模型中,发布的第一个模型甚至可能是没有任何产出的,可能仅仅是纸上谈兵的一个目标,但是随着一次次的交付,每一个版本都会朝着固定的目标迈进,最终得到一个更加完善的版本。
    百度百科详解

5. 迭代模型

  • 迭代模型,摒弃了传统的需求分析,设计,编码,测试的流程,而是将整个生命周期变成若干个冲刺(Sprint)阶段,而每一个阶段都是由以上若干或者全部传统的流程组成,在每一个阶段中,都会包含下面四个阶段:初始阶段,细化阶段,构建阶段,交付阶段。

    • 在初始阶段中,确认本次冲刺的范围,边界,系统选择的架构,计划,以及所需要的资源等信息。
    • 在细化阶段中,对问题进行建域,创建开发案例,创建模板以及准备工具等。
    • 在构建阶段的主要任务就是完成构建的开发并且进行测试,将完成的构建集成为产品,并且测试所有的功能(CI)。
    • 在交付阶段,主要是完成本次冲刺,将软件产品交付给相关的干系人。
  • 使用条件:

    1. 在项目开发早期需求可能有所变化。
    2. 分析设计人员对应用领域很熟悉。
    3. 高风险项目。
    4. 用户可不同程度地参与整个项目的开发过程。
    5. 使用面向对象的语言或统一建模语言(Unified Modeling Language,UML)。
    6. 使用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,如Rose(Rose是非常受欢迎的物件软体开发工具。)。
    7. 具有高素质的项目管理者和软件研发团队。

优点:

与传统的瀑布模型相比较
(1)降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
(2)降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
(3)加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
(4)由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。


参考资料
【1】http://blog.csdn.net/ziwen00/article/details/40583107
【2】http://blog.csdn.net/orclight/article/details/8642585

你可能感兴趣的:(五种典型开发周期模型(瀑布、V、原型化、螺旋、迭代))