【软件工程基础】我对书中几种软件过程模型的特点以及优缺点的理解和总结

一、瀑布模型

优点:

  1. 简单易用,将复杂的软件开发过程明确分解为几个顺序的步骤,降低开发软件的复杂性。
  2. 严格,第一是每个步骤的严格,每个步骤都有明确的标准和技术审查,尽量减少每个步骤的错误,同时减少对下个阶段的影响。第二是对文档的严格要求,每个阶段都有各自的规格说明书。

缺点:

  1. 一次性:单向开发,开发期间没有迭代过程,无法适应用户不明确的需求或需求出现变动,难以适应现代软件开发模式的问题。
  2. 用户的风险:瀑布模型顺序严格,用户到软件开发结束才能看到最终结果,可能离用户预期的需求有很大差距,开发风险大。

我的理解:

      瀑布模型是在软件工程体系发展过程中基本上是最先出现的模型,在当年软件开发流程并没有明确,严格的要求时给了人们很大的帮助,促进了软件工程的应用和发展。但在现代,用户的软件需求往往不是那么明确,不是一成不变的了,故这种可变性,灵活性较低的模型已经在逐渐被淘汰,有更多灵活性更强,更适用现代软件开发的模型。


二、原型模型

优点:

  1. 快速,用户不用等到软件的全部实现就能看见和使用系统。
  2. 符合用户预期,在每次原型演化过程中,用户都能及时参与,相当于把维护阶段提前到原型的迭代过程中。

缺点:

  1. 原型是在需求不明确的情况下开发的,原型质量难以保证
  2. 用户与开发者对原型的理解可能不同,使需求产生偏差。

我的理解:

原型模型相当于一个大大压缩的瀑布模型,通过不明确的需求实现一部分功能,再通过与用户交流明确具体的需求并进行迭代,解决了瀑布模型灵活性太低的问题,但原型模型不适宜大型软件项目的开发,且原型的质量是使用原型模型开发软件的关键,若开发出成功的原型之前许多时间浪费在失败的原型上,会使时间和金钱成本较高。

三、增量模型

优点:

  1. 灵活,用户尽早对系统用直观了解,同时可以按照用户需求优先重要部分进行设计与分析,给开发时间,资源带来很大灵活性。
  2. 用户风险低,每次用户都能得到部分的功能,即使功能与需求出现偏差或系统出现错误,也能在早期和用户交流的过程中就能发现并改正。

缺点:

  1. 增量模型在后期添加功能时,难以保证不会对前期的功能产生影响。
  2. 若用户需求出现变化,前期开发的功能也要进行更改。

我的理解:

增量模型的理念比较符合现代软件开发的过程,每次增量提交部分功能,既能让用户早日体验,安心,也能早些发现软件可能出现的系统错误。同时增量模型把需求分解为数个小部分进行开发,适合于功能较多,需求不明确,开发时间长的系统。如果软件规模较小,原型模型应该更好一些,同时我认为原型模型与增量模型的部分流程相似。


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