软件开发过程模型

  • 瀑布模型
    • 是线性模型中的一种,在所有模型中占有重要地位,是所有其他模型的一个基础
    • 每个阶段执行一次,按线性顺序进行软件开发
    • 测试的切入点
      • 测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露
    • 优点
      • 开发的各个阶段比较清晰
      • 强调早期计划及需求调查
      • 适合需求稳定的产品开发
    • 缺点
      • 依赖于早期的需求调查,不适应需求的变化
      • 单一流程不可逆
      • 风险往往延至后期才开始显露,失去了及早纠正的机会
      • 问题在项目后期才开始暴露
      • 前面未发现的错误会传递并扩散到后面的阶段,可能导致整个项目的失败
    • 改良
      • 沿用瀑布模型的线性思想,细化了各个阶段,在某些重要的专注阶段之间掺入了迭代(不停地更新)的思想
      • 在每次完成一个阶段(比如需求分析和设计阶段)后,都要进行多方人员的讨论,对已经完成的工作进行改善

  • 快速原型模型
    • 在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作
      • 1.构建一个快速的模型,实现用户与系统的交互,用户对原型进行评价,进一步细化对开发软件的需求。通过逐步调整原型,使其满足用户的要求,开发人员可以确定用户的真正需求是什么
      • 2.在第一步的基础上开发出用户满足的软件产品
    • 优点
      • 克服瀑布模型的缺点,更好地满足用户的需求,并减少由于软件需求不明确带来的项目开发风险。适合预先不能确切定义需求的软件系统开发
    • 缺点
      • 不适合大型系统的开发(适合开发小型的、灵活性高的系统)。前提要有一个展示型的产品原型,因此在一定程度上可能会限制开发人员的创新

  • 螺旋模型
    • 将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符,螺旋模型沿着螺旋旋转,即在坐标的4个象限上分别表示了4个方面的活动(制定计划、风险分析、实施开发、客户评估)
    • 优点
      • 这种模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险品评估
    • 缺点
      • 采用这种模型需要从业人员具有相当丰富的风险评估经验和专门的知识。
      • 在风险较大的项目开发中,如果未能及时的标识风险,势必会造成重大损失。
      • 过多的迭代次数会增加开发成本,延迟提交时间

猜你喜欢

转载自www.cnblogs.com/SakuraYuanYuan/p/11108972.html