一、瀑布模型

优点:

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

缺点:

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

我的理解:

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

二、原型模型

优点:

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

缺点:

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

我的理解:

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

三、增量模型

优点:

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

缺点:

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

我的理解:

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

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

  1. 《非对称风险》书中精髓:「风险共担」是我们理解人类社会和世界的前提,一个没有风险共担的系统会慢慢积累不平衡,最终垮掉。

    <非对称风险>书中精髓:「风险共担」是我们理解人类社会和世界的前提,一个没有风险共担的系统会慢慢积累不平衡,最终垮掉. <非对称风险>的作者是纳西姆·尼古拉斯·塔勒布.对于全球 ...

  2. 【软件工程】常见的几种软件过程模型的比较

    几种常见软件过程模型的比较 一.瀑布模型(Waterfall Model)# 瀑布模型(经典生命模型)提出了软件开发的系统化的.顺序的方法.其流程从用户需求规格说明开始,通过策划.建模.构建和部署过程 ...

  3. Android基础教程之-------Android中两种设置全屏的方法!!!

    在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改! 一.在代码中设置: view plaincopy to clipboardpri ...

  4. 读《现代软件工程基础》后三问

    提出以下问题 1.软件工程师为什么要具有社会责任? 书中资料: 如前所达,软件具有极强的渗透性,其应用的触角深人人类生活的方方面面.因此,软什的行为及其质量对子现实世算和人类社会有者巨大的影响.作为软 ...

  5. 推荐系统实践----基于用户的协同过滤算法(python代码实现书中案例)

    本文参考项亮的<推荐系统实践>中基于用户的协同过滤算法内容.因其中代码实现部分只有片段,又因本人初学,对python还不是很精通,难免头大.故自己实现了其中的代码,将整个过程走了一遍. 1 ...

  6. 【软件工程】第2-3章 软件过程和软件过程模型思考题

    软件过程.软件过程模型思考题: 简述软件过程.软件生存周期.软件过程模型(软件生存周期模型)三者之间的概念区别. 软件过程就是软件开发过程么?为什么? 请选择两个常见的软件过程模型,谈谈你对它们的理解 ...

  7. 计算机专业英语chapter012,2012中科大软件学院软件工程基础考后感~~~

    2012年1月7号.8号,对于所有的考研的同胞们都是那样的惊心动魄.简单介绍一下自己吧.我是一个很普通的二本学校的本科生,这个学校普通到考研报名的时候选项里竟然没有我们学校,还要自己填写.我今年考的是 ...

  8. 软件工程中五种常用的软件开发模型整理

    软件工程期末考试复习资料整理,顺便码了个博客,emmm~ 下面都是我对各位博主文章种我认为写的比较好的内容的截取 引言 软件将要经历一个定义.开发.运行维护,直至被淘汰这样的生命周期. 为了使软件生命 ...

  9. [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别

    [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...

最新文章

  1. java工程化_(二)Java工程化--Maven实践(示例代码)
  2. Matlab编程与数据类型 -- 分支条件选择语句if/end
  3. 戏说Linux商用数据库
  4. IBM推出实时跨境支付解决方案Blockchain World Wire
  5. 回收站功能在 Linux 中的实现
  6. PHP面向对象(OOP):抽象方法和抽象类(abstract)
  7. 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章
  8. 揭秘阿里云 RTS SDK 如何实现直播降低延迟和卡顿
  9. 【渝粤题库】国家开放大学2021春2517社区工作题目
  10. spring学习笔记01-BeanFactory和ApplicationContext的区别
  11. 腾讯云对象存储 python_腾讯云对象存储(COS)服务的 API
  12. 2021年最值得推荐的七款可视化工具,人人都能学会使用
  13. codechef FEB19 Manhattan Rectangle
  14. JDBC03 利用JDBC实现事务提交与回滚【调用Connection中的方法实现事务管理】
  15. 计算机网络中特有符号,计算机基础知识测试题-一肖中特免费公开资料.doc
  16. python怎么实现eemd_EEMD算法原理与python实现
  17. php xheditor 上传图片,WordPress投稿集成xheditor编辑器(支持图片上传)
  18. uniapp如何使用uview中的loadmore上拉加载
  19. 电脑系统更新后桌面的文件全部不见了怎么恢复?
  20. 应用层加密方_加密应用层数据之前要问的6个问题

热门文章

  1. 阿里云、腾讯云、百度云究竟谁比较厉害?一文解析云计算的未来趋势
  2. java调用https的webservice,https的wsdl
  3. 怎么实现android 全局悬浮窗
  4. mysql 1326_SQL Server 出现Error: 1326错误(管理器无法连接远程数据库)问题解决方案...
  5. 一些转换器的用法和注意事项(四)——颜色设置相关的转换器
  6. 编写程序,按升序对栈进行排序(即最大元素位于栈顶)。最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构(如数组)。
  7. 一文读懂 https 底层原理
  8. (SZB)雷维翁进化皇小型攻略
  9. Go新漏洞管理工具: govulncheck
  10. 感应电动机和异步电动机的区别