1.1大爆炸模型
大爆炸默认是相对简单的开发模型,在开发过程中,没有什么规范和计划,更没有测试
1.2 边做边改模型
相对于大爆炸模型,考虑到了项目需求,然后开发来回的编写,测试,修改缺陷的过程中。
1.3 瀑布模型
1970年,温斯顿提出,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。采用瀑布模式的项目从最初的构思到最终产品要经过一系列步骤。每一个步骤结束时,写好文档,项目小组组织审查,并决定是否进入下一步。如果项目未准备好进入下一步,就停滞下来直到准备好。
优点:
1、为项目提供了按阶段划分的检查点
2、当前一阶段完成后,您只需要去关注后续阶段
3、可在迭代模型中应用瀑布模型
4、它提供了一个模板,这个模板使得分析,设计,编码,测试和支持的方法可以在该模板下有一个共同的指导
缺点:
1、各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量
2、由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险
3、通过过多的强制完成日期和里程碑来跟踪各个项目阶段
4、瀑布模型的突出缺点是不适应用户需求的变化
1.4 螺旋模型
1988年,巴利正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
优点:
1、设计上的灵活性,可以在项目的各个阶段进行变更
2、以小的分段来构建大型系统,使成本计算变得简单容易
3、客户始终参与每个阶段的开发,保证了项目不偏离正确放心以及项目的可控性
4、随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互
5、客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品
缺点:
很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
螺旋模型的项目适用:
对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。
1.5 敏捷开发模型
人和交互重于过程和工具
客户协作终于合同谈判
随时应对变化重于循规蹈矩
敏捷开发的核心思想是:以人为本,适应变化