软件工程5种开发模型对比

模型

特点

优点

缺点

适用范围

瀑布模型

1.里程碑或基线驱动。2.过程逆转性很差或者说不可逆转。逆转可能会延误工期,增加成本,造成损失  

1.开发阶段清晰,便于评审、审计、跟踪、管理和控制。

1.不可逆或很难可逆。2.问题会积累,错误会传递发散扩大,导致成本和质量失控。

1.在开发时间内需求不变化或很少变化。2.分析设计人员对此领域非常熟悉。3.低风险项目。4.用户使用环境稳定(如系统软件,工具软件)

快速原型模型

1.容易适应需求的变化

1.克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。

1.所使用的开发工具和技术不一定符合主流的发展;快速建立起来的系统架构加上连续的修改可能会导致产品质量低下。

1.需求不明确或复杂系统。2.用户无法自主提出应用需求。

增量模型

1.软件由一系列增量构件组成

1.人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。当配备人员不能在设定的时间内完成产品时,它提供了一种先推进核心产品的途径,这样即可先发部分功能给客户,对客户起到镇静剂作用。2.增量能够有计划的管理技术风险。

1.由于各个构件是逐渐并入已有的软件体系结构中,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。2.在开发过程中,需求变化是不可避免的,增量的灵活性可以使其适应这种变化的能力大大优于瀑布和快速原型模型,但也容易退化为边改边做模型,从而使软件过程的控制失去整体性。3.如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程

1.系统容易拆分。2.开发人力比较少。3.特别适用于商业软件(如QQ,网游)

螺旋模型

1.是一种周期性的方法进行系统开发。2.有许多“中间版本”。3.每个周期都包括需求定义、风险分析、工程实现和评审4个阶段

1.设计上灵活,可在项目各个阶段进行变更。2.以小的分段来构建大型系统,使成本计算变得简单容易。3.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。

1.建设周期长,而软件技术更新比较快,所以经常出现软件开发结束后,和当前的技术水平有了很大的差距,无法满足当前用户需求。

1.系统庞大,风险高。2.需求不太明确。

喷泉模型

1.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。

1.提高软件项目开发效率,节省开发时间,适用于面向对象的软件开发过程。

1.由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。2.要求严格管理文档,使得审核难度加大,尤其是面对可能随时加入的各种信息、需求与资料的情况。

1.面向对象的软件开发过程

你可能感兴趣的:(软件工程)