瀑布模型(Waterfall Model) 瀑布模型有以下优点: 1)为项目提供了按阶段划分的检查点
2)当前一阶段完成后,您只需要去关注后续阶段
3)可在迭代模型中应用瀑布模型
瀑布模型有以下缺点: 1)在项目各个阶段之间极少有反馈
2)只有在项目生命周期的后期才能看到结果
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段
快速原型模型 Rapid Prototype Model) 快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求
通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品
显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果
快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃
因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求
增量模型(Incremental Model) 存在以下缺陷: 1) 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构
2) 在开发过程中,需求的变化是不可避开的
增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性
螺旋模型(Spiral Model): 将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统
演化模型(incremental model) 主要针对事先不能完整定义需求的软件开发
用户可以给出待开发系统的核心需求,