软件开发模型
软件开发模型
软件开发模型(Software development process model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。软件开发模型能清晰、直观地表达软件开发全过程。
瀑布模型(Waterfall Model)
瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、实现、软件测试、运行和维护。它规定了由前至后、相互衔接的固定次序,是所有其他模型的一个基础。如同瀑布流水逐级下落:
测试的切入点:
测试阶段处于软件实现后,必 须在代码完成后留出足够的时 间给测试活动,否则将导致测 试不充分,很多问题到项目后期才暴露。
优点:
- 开发的各个阶段比较清晰。
- 强调早期计划及需求调查。
- 适合需求稳定的产品开发
缺点:
- 依赖于早期的需求调查,不 适应需求的变化。
- 单一流程不可逆。
- 风险往往延至后期才显露,失去及早纠正的机会
- 前面未发现的错误会传递并扩散 到后面的阶段,可能导致项目失败
快速原型模型(Rapid prototyping model)
螺旋模型(Spiral Model)
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相 符合,螺旋模型沿着螺旋线旋转,即在坐标的4个象限上分别表示了4个方面的活动。
优点:
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估
缺点:
采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中, 如果未能够及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间