软件工程期末考试复习资料整理,顺便码了个博客,emmm~
下面都是我对各位博主文章种我认为写的比较好的内容的截取
引言
软件将要经历一个定义、开发、运行维护,直至被淘汰这样的生命周期。
为了使软件生命周期中的各项任务能够有序地按照规程进行,需要一定的工作模型对各项任务给予规程约束,这样的工作模型被称为软件过程模型。

1.瀑布模型

瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、测试、运行和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落
下面两张图摘自博客:https://blog.csdn.net/m18330808841/article/details/78452747

特点
1.阶段间具有顺序性和依赖性
具体指的是必须等前一阶段的工作完成才能开始后一阶段的工作,
前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果
2.推迟实现的观点
瀑布模型的编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,这两个阶段主要考虑目标系统的路基模型,不涉及软件的物理实现,清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现
3.质量保证的观点
每个阶段必须完成规定的文档;每个阶段结束前都要对所完成的文档进行评审
实际中的瀑布模型带有反馈
在实际的软件项目中存在着许多不稳定因素,例如,开发中的工作疏漏或通信误解;在项目实施中途,用户可能会提出一些新的要求;开发者也可能在设计中遇到某些未曾预料的实际困难,希望在需求中有所权衡等。为了解决这些问题,考虑到许多实际项目中阶段之间有通信的需要使瀑布模型带有信息反馈环,能够逐级地将后续阶段的意见返回,并在问题解决之后,再逐级地将修正结果下传。

缺点分析
1.在可运行的软件交付给用户之前,用户只能通过文档来了解产品是什么样的
2.要求用户不经过实践就提出完整准确的需求,在许多情况是不切实际的

快速原型模型

快速原型模型是不带反馈环的,软件产品的开发基本上是线性顺序进行的,快速原型地本质是快速,原型的用户是获知用户的真正需求

特点
1.原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户地需求,因此在开发过程中不会因为发现了规格说明文档地错误而进行较大地返工
2.开发人员通过建立原型系统已经学到了许多东西,因此在设计和编码阶段发生错误地可能性比较小

增量模型

增量模型也称渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。
增量模型与瀑布模型,快速原型模型想反,它分批地逐步向用户提交产品,整个软件产品被分解为许多个增量构件

优点
1.能在较短时间内向用户提交可完成部分工作地产品
2.逐步增加产品功能可以使用户有较充裕地时间学习和适应新产品
3.开发顺序灵活。 开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整
困境
1.在每个新的增量构件集成到现有软件体系结构中,必须不破坏原来已经开发出的产品
2.在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性

螺旋模型

螺旋模型很像我们高中时候学习的四象限它分为制定计划,风险分析,实施工程和客户评估阶段,整个螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
螺旋模型在每个阶段之前及经常发生的循环之前,都必须要进行风险评估。在实践中,螺旋法技术和流程变得更为简单。迭代方法体系更倾向于按照开发/设计人员的方式工作,而不是项目经理的方式。

优点
1.设计上灵活, 可以在项目的各个阶段进行变更
2.以小的分段来构建大型系统,使成本计算变得简单容易。
2.客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
4.随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
5.客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。

喷泉模型

喷泉模型主要适用于利用面向对象技术的软件开发项目,可弥补瀑布模型不支持软件重用和多项开发活动集成的不足,可使开发过程具有迭代性和无间隙性

特点
1.开发过程中的各个阶段相互重叠,反映了软件过程并行性的特点
2.以分析为基础,资源消耗呈塔形,在分析阶段消耗资源最多
3.强调增量开发,依据分析一点、设计一点的原则,并不要求一个阶段的彻底完成,整个过程一个迭代的逐步提炼的过程
4.是对象驱动的过程,对象是活动作用的主体,也是项目管理的基本内容
5.实现中由于活动不同,可分为系统实现和对象实现,这既反映了全系统的开发过程,也反映了对象族的开发和重用过程

软件工程中五种常用的软件开发模型整理相关推荐

  1. python 中五种常用的数据类型

    一.字符串 单引号定义: str1 = 'hello' 双引号定义: str1 = "hello" 三引号定义:"""人生苦短,我用python!&q ...

  2. Android中五种常用对话框的使用

    场景 Android中常用的五种对话框为 常规对话框.带列表的对话框.自定义的对话框.带进度条的对话框.带日期选择器的对话框. 注: 博客: https://blog.csdn.net/badao_l ...

  3. Android中五种常用的menu

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  4. Android UI开发第二十九篇——Android中五种常用的menu(菜单)

    Android Menu在手机的应用中起着导航的作用,作者总结了5种常用的Menu. 1.左右推出的Menu 前段时间比较流行,我最早是在海豚浏览器中看到的,当时耳目一新.最早使用左右推出菜单的,听说 ...

  5. 细节分析Linux中五种IO模型和三种实现方式

    I/O介绍 操作系统分为两种I/O 网络IO:本质是socket读取 磁盘IO:DMA操作读取 C/C++Linux服务器开发知识点 内容包括C/C++,Linux,Nginx,ZeroMQ,MySQ ...

  6. 五金模具设计丨十五种常用的模具标准化结构,你掌握了几种?

    ---常用标准化结构--- 1压线入子结构 压线的目的: (1) 材料预变形,减少折弯时的阻力,使折弯时的尺寸更为准确. (2)防止折弯时产生的拉料变形. 2压筋入子结构 压筋目的: (1)減小折弯时 ...

  7. 深入理解C++中五种强制类型转换的使用场景

    深入理解C++中五种强制类型转换的使用场景 1.C风格的强制类型转换 2.C++风格的强制类型转换 2.1.static_cast 2.1.1.用于基本内置数据类型之间的转换 2.1.2.用于指针之间 ...

  8. java简述常见的布局极其特点_请简要说明 Android 中五种常见布局的特点。_学小易找答案...

    [简答题]请简要说明有序广播和无序广播的区别 [简答题]请简要说明 Android 程序结构中 AndroidManifest.xml 的功能? [简答题]简述李村站人工办理进路的作业过程. [简答题 ...

  9. springBoot整合rabbitmq并测试五种常用模型

    之前我们记录了原生java代码使用rabbitmq的方法,很简单,类似于原生jdbc代码一样,将连接对象抽离出来作为工具类,生产者和消费者通过工具类获取连接对象,进而获取通道对象,再注册交换机或者是队 ...

最新文章

  1. MySQL性能优化之参数配置
  2. fatal error C1002: 在第2遍中编译器的堆空间不足
  3. 【算法与数据结构】一道检测inversion count的初级算法
  4. linux中的keeplived源码装,keepalived源码安装及主备配置
  5. 页面间传输中文的乱码解决方法
  6. 面试官系统精讲Java源码及大厂真题 - 21 DelayQueue 源码解析
  7. GridViewDetailsView对XML文件增删改
  8. TCP和UDP服务器性能测试工具
  9. 哪一类人用苹果手机最多?
  10. 剑指offer之二叉搜索树的第K个结点
  11. 2021年中国车载信息娱乐系统市场趋势报告、技术动态创新及2027年市场预测
  12. 2021 OWASP Top 10 榜单(初稿)发布,头牌易主
  13. 打印网页中的指定内容
  14. mysql转拼音首字母大写_mysql中文字段转拼音首字母,以及中文拼音模糊查询
  15. annot keep settings in the secure 或WRITE_SETTINGS not granted
  16. 非负数正则表达式 js jquery demo
  17. Kaggle文本语义相似度计算Top5解决方案分享
  18. Hashtable用法
  19. 基于FPGA的密码锁开发——(1)密码锁驱动
  20. python爬虫豆瓣电影评价_使用爬虫爬取豆瓣电影影评数据Python版

热门文章

  1. UVA 1646 Edge Case
  2. HashMap遍历和使用
  3. 2022长安杯复盘——lucid凡
  4. SQL——数据定义DDL
  5. Unity程序框架总结归置系列(4)——mono模块
  6. KT142A语音芯片IC的固件升级方法详细描述,PC升级和U盘升级
  7. 打印机的4种色彩输出方式
  8. 游戏服务器——中心服
  9. vue 之url拼接 根据选择条件动态修改url地址
  10. 中文分词:原理及分词算法