在不同的场合所用到的模型有不同,它们的作用也大有不同,如何选择正确的模型是做好一个项目的关键前提之一。
在目前,以我的观点,我认为增量模型和快速原型模型是比较流行的,下面我将会比较各模型之间的优缺点,进行分析整理。
  •  瀑布模型

  各个阶段的基本任务如下

软件开发计划,需求分析与定义,设计,编码,测试,维护。

  特点

  简单,阶段间具有顺序性和依赖性,各个阶段必须完成规定的文档,从而在审查文档的基础上保证软件的质量等。80年代前是唯一广泛采用的模型,现在也还是应用得最广泛的模型。

  不足

 (1)要求用户一开始就提出清晰完整的需求 ;

 (2)要求用户需求比较稳定;

 (3)用户的参与程度不够;

 (4)段间移交信息时,容易产生误解。

  •   快速原型模式

  目的

(1)明确并完善需求;

(2)探索设计选择方案;

(3)可帮助发展为最终的产品。

  特点

 (1)能弥补瀑布模型中用户参与不够等不足;

 (2)能减少用户需求遗漏的可能性;

 (3)快速。

  不足

 (1)用户易于视原型为正式产品;

 (2)对于开发环境要求较多;

 (3)若用户不能如期参与,将会不顺。

  • 增量模型

  特点

 (1)能快速提交可完成部分功能的产品;

 (2)能逐步增强产品功能;

 (3)用户可有较充裕的时间适应新系统。

  不足

 (1)新增部分必须不破坏现软件系统。

 (2)在设计体系结构时,必须有充分的开放性。

  •  螺旋模型

  特点

 (1)适用于内部开发的大规模软件项目;

 (2)有利于已有软件的重用;

 (3)有助于把质量作为一个重要目标;

 (4)减少过多测试或测试不足的风险。

  •  喷泉模型

  特点

 (1)呈现出非线性的工作方式;

 (2)把类及其结构作为系统的表达单元,渐增地进化;

 (3)开发模型支持软件的复用。

  总的来说对于以上几种模型在不同的场合都会发挥着自身的最大用处,只有找好了适合于模型的场合,才能使软件开发更合人意,以及提高其工作效率。下面对于几种模型进行一些优缺点及使用场合的比较。

参考资料:需求工程ppt

开发模型

优点

缺点

使用场合

瀑布模型

文档驱动

系统可能满足不了客户要求

需求明确稳定的中小型软件开发

快速原型模型

关注满足客户需求

可能导致系统设计差,效率低,难于维护

需求模糊的小型软件开发

增量模型

开发早期反馈及时,易于维护

需要开放式体系结构,可能会设计差,效率低

容易分块的大型软件开发

螺旋模型

风险驱动

风险分析人员需要有经验且经过充分训练

具有不确定性的大型软件开发