【中级软考】软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型、RUP(Rational Unified Process 统一软件开发过程)、敏捷开发(开发方法,不是周期模型)

文章目录

    • 瀑布模型/改进的瀑布模型(Waterfall Model)
    • 螺旋模型(Spiral Model)
    • 增量和迭代模型(Incremental Model)
    • 原型法(RAPId Prototype Model)
    • 喷泉模型(fountain model 面向对象的生存期模型,OO模型)
    • 快速和敏捷开发
    • 关于选择生命周期模型的最后的总结

瀑布模型/改进的瀑布模型(Waterfall Model)

虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求 ->分析->设计->编码->测试的阶段进行,每一个阶段都可以定义明确的产出物和验证准则.瀑布模型在每一个阶段完成后都可以 组织相关的评审和验证,只有在评审通过后才能够进入到下一个阶段.

由于需要对每一个阶段进行验证,瀑布模型要求每一个阶段都有明确的文档产出,对于严格的瀑布模型每一个阶段都不应该重叠,而应该是在评审通过,相关的产出物都已经基线后才能够进入到下一个阶段.

在项目管理中有一种压缩进度的方法叫赶工,因此瀑布模型的另外改进处就在适当的重叠各个阶段过程,达到资源的有效利用.比如我们通过讨论,会议确定的实现方式就可以开始执导下一个阶段的工作而不一定完全等到相关的交付物文档化出来.

螺旋模型(Spiral Model)

首先螺旋模型是遵从瀑布模型的.即需求->架构->设计->开发->测试的路线.螺旋模型最大的价值在于整个开发过程是迭代和风险驱动的.通过将瀑布模型的多个阶段转化到多个迭代过程中,以减少项目的风险.

业界比较标准的增量模型往往要求在软件需求规格说明书全部出来后后续的设计开发再进行增量.同时每个增量也可以是独立发布的小版本.由于系统的总体设计 往往对一个系统的架构和可扩展性有重大的影响,因此我们推荐的增量最好是在架构设计完成后再开始进行增量,这样可以更好的保证系统的健壮性和可扩展性.

原型法(RAPId Prototype Model)

原型一般都不是单独采用的一种生命周期模型,往往会结合瀑布和增量迭代等方法一起使用.对于螺旋模型就可以理解为瀑布+迭代+原型+风险的一种生命周期 模型.对于迭代开发来讲,每一个迭代周期的产出都可以看做是下个阶段要精化的原型.而对于瀑布模型开发来讲,我们在需求阶段也可以进行界面和操作建模,形 成DEMO后和用户做进一部的需求沟通和确认.

当你的用户没有信息系统的使用经验,你的系统分析员也没有过多的需求分析和挖掘经验的时候,需求分析和调研过程则更需要是一个启发式的过程.而原型则是 这种很好的启发式方法,可以快速的挖掘用户需求并达成需求理解上的一致.否则即使双方都签字认可的需求往往仍然不是客户真正想要的东西.

原型可以分为抛弃型的和不抛弃型的.如果原型仅仅是需求阶段方面和用户沟通画的DEMO,则这种原型一般都建议抛弃掉.而对于迭代开发来将,每次迭代的 产出都是可以独立运行和包含基础功能的系统,是后续细化的基础,这类原型一般都不建议抛弃,后期的设计开发也要基于该原型逐渐的进行完善.

喷泉模型(fountain model 面向对象的生存期模型,OO模型)

喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。

快速和敏捷开发

我们一般将快速和敏捷开发做为方法论,而很少将其做为一种软件开发生命周期模型.敏捷的目的是减少繁重和不必要的工件的输出,提高效率.而不是要我们去 挑阶段或过程,不是分析设计都还没有做就去做开发.因此对于瀑布,增量迭代或原型我们都可以借鉴敏捷方法论中的一些好的实践,这些实践都是对传统的生命周 期模型很好的补充.对于敏捷方法论在此不再做过多的叙述.

关于选择生命周期模型的最后的总结

1.在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型.
  2.在用户无信息系统使用经验,需求分析人员技能不足情况下一定要借助原型.
  3.在不确定性因素很多,很多东西前面无法计划情况下尽量采用增量迭代和螺旋模型
  4.在需求不稳定情况下尽量采用增量迭代模型
  5.在资金和成本无法一次到位情况下可以采用增量模型,软件产品分多个版本进行发布
  6.对于完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应该遵循瀑布模型
  7.对于全新系统的开发必须在总体设计完成后再开始增量或并行.
  8.对于编码人员经验较少情况下建议不要采用敏捷或迭代等生命周期模型.
  9.增量,迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口准则。

引用文章1:软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型总结

引用文章2:瀑布模型、演化模型、螺旋模型、喷泉模型等等的区别

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月3日
下一篇 2020年2月3日

相关推荐