软件工程理论与实践 (吕云翔)第十四章 软件维护与软件工程管理课后习题与解析
第十四章 软件维护与软件工程管理
1.判断题
(1)代码行技术是比较简单的定量估算软件规模的方法。(√)
(2)功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。(√)
(3)常用的制订进度计划的工具主要有Word和Excel两种。(×)
解析:制订进度计划常用的工具不仅限于Word和Excel,还包括专门的项目管理工具和甘特图软件等
(4)民主制程序员组的一个重要特点是,小组成员完全平等,享有充分民主,通过协商做出技术决策(√)
(5)主程序员组的两个关键特性是专业化和层次性。(√)
(6)现代程序员组中,技术组长既负责技术工作,又负责非技术事务。(×)
解析:现代程序员组中,技术组长通常负责技术工作,而非技术事务通常由项目经理或其他管理人员负责。
(7)风险有两个显著特点,二个是不确定性,另一个是损失。(√)
(8)回避风险是指,风险倘若发生,就接受后果。(×)
解析:回避风险是指采取措施来避免风险的发生,而不是接受风险后果。
(9)软件质量保证的措施主要有,基于非执行的测试(也称为复审)、基于执行的测试和程序正确性证明。(√)
(10)总体上说,软件工程文档可以分为用户文档、开发文档和管理文档3类。(√)
(11)文档是影响软件可维护性的决定因素。(√)
(12)适应性维护是在软件使用过程中,用户会对软件提出新的功能和性能要求,为了满足这些新的要求而对软件进行修改,使之在功能和性能上得到完善和增强的活动。(√)
(13)进行软件维护活动时,直接修改程序,无须修改文档。(×)
进行软件维护活动时,除了修改程序外,也需要相应地修改相关的文档,以保持一致性和可维护性。
(14)软件生命周期的最后一个阶段是书写软件文档。(×)
解析:软件生命周期的最后一个阶段通常是维护阶段,其中包括维护文档、更新文档等活动。
(15)CMM是指导软件开发的一种面向对象的新技术。(×)
解析:CMM 代表“Capability Maturity Model”(能力成熟度模型),它是一个用于评估和指导软件开发过程的框架。CMM 并不是一种面向对象的新技术,而是一种管理和评估软件开发过程成熟度的方法。它有不同的级别,每个级别表示组织的软件过程能力的不同成熟度水平。 CMM 有五个级别,从初始级别(Level 1)到优化级别(Level 5)。每个级别都定义了一组特定的过程目标和实践。
2.选择题
(1)软件工程针对维护工作的主要目标是提高软件的可维护性,降低(B)。
A.维护的效率
B.维护的工作量
C.文档
D.维护的代价
解析:软件工程在维护工作中的主要目标是提高软件的可维护性,降低维护的工作量
(2)(B)的作用是为有效、定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。
A.估算
B.度量
C.风险分析
D.进度安排
解析:度量的作用是为了有效、定量地进行管理,以了解软件工程过程的实际情况和产品质量。
(3)LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的(A)不同。
B.分解要求
C.使用方法
D.改进过程
A.详细程度
解析:LOC(Lines of Code,代码行数)和FP(Function Points,功能点)是两种不同的估算技术,它们在分解软件所需的详细程度上有所不同。
(4)项目团队原来有6个成员,现在又增加了6个成员,这样沟通渠道增加了多少?(A)
A.4.4倍
B.2倍
C.6倍
D.6条
解析:原来有6个成员时,沟通渠道数为6(6-1)/2 = 15。现在增加了6个成员,总共有12个成员。新的沟通渠道数为12(12-1)/2 = 66。
所以,新的沟通渠道数相对于原来增加了66-15=51条。
51/15 *100%=3.4倍
但是每这个选项。
(5)下列哪项不是风险管理的过程?(D)。
A.风险规划
B.风险识别
C.风险评估
D.风险收集
解析:风险管理的过程包括风险规划、风险识别和风险评估,但不包括风险收集
(6)按照软件配置管理的原始指导思想,受控制的对象应是(C)
A.软件过程
B.软件项目
C.软件配置项
D.软件元素
解析:按照软件配置管理的原始指导思想,受控制的对象是软件配置项。
(7)下面(D)不是人们常用的评价软件质量的4个因素之一。
A.可理解性
B.可靠性
C.可维护性
D.易用性
解析:人们常用的评价软件质量的四个因素是可理解性、可靠性、可维护性和可用性
(8)使用软件时提出增加新功能,就必须进行(C)维护。
A.预防性
B.适应性
C.完善性
D.纠错性
解析:当用户提出增加新功能时,需要进行完善性维护来满足新需求。
(9)软件维护的副作用是指(C)。
A.运行时误操作
B.隐含的错误
C.因修改软件而造成的错误
D.开发时的错误
解析:因修改软件而造成的错误。软件维护的副作用指的是在修改软件过程中可能引入新的错误。
(10)软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且
也影响软件的(B)。
A.可用性
B.可维护性
C.可扩展性
D.可移植性
解析:软件文档不仅是软件开发阶段的重要依据,还影响软件的可维护性。
(11)影响软件可维护性的主要因素不包括(C)。
A.可修改性
B.可测试性
C.可用性
D.可理解性
解析:影响软件可维护性的主要因素包括可修改性、可测试性、可理解性,但不包括可用性。
(12)CMM表示(A)。
A.软件过程成熟度模型
B.软件配置管理
C.软件质量认证
D.软件重用
解析:CMM代表软件过程成熟度模型,用于评估和指导软件开发过程的成熟度。
3.简答题
(1)请简述软件项目管理和软件工程的区别和关系。
软件项目管理和软件工程的区别和关系:
- 软件项目管理是指对软件项目进行规划、组织、协调和控制的过程,以达到项目目标。它关注项目的进度、成本、质量和风险等方面的管理。
- 软件工程是一门学科,涉及开发、维护和管理软件的原理、方法和工具。它关注软件生命周期的各个阶段,包括需求分析、设计、编码、测试和维护等。
软件项目管理和软件工程的关系在于:
- 软件项目管理是软件工程的一部分,它负责管理软件项目的执行过程,确保项目按计划进行。
- 软件工程提供了开发软件所需的方法和工具,为软件项目管理提供支持和指导,帮助实现项目的目标。
(2)请简述软件估算的意义。
- 为项目决策提供依据:估算结果可以帮助决策者评估项目可行性和资源需求,做出是否启动项目的决策。
- 为项目计划提供依据:估算结果可以帮助制定合理的项目计划,合理安排资源和时间,提高项目执行的可控性。
- 为项目交付提供依据:估算结果可以帮助与客户或利益相关者达成共识,明确项目目标和交付期限。
(3)怎样进行代码行LOC度量?怎样进行功能点FP度量?
- 代码行LOC度量:代码行数(Lines of Code)是一种度量软件规模的方法。通过统计源代码中的有效行数(排除空行和注释),可以估算出软件的规模大小。LOC度量可以通过代码编辑器或专门的工具进行统计。
- 功能点FP度量:功能点(Function Points)是一种度量软件功能规模的方法。它基于用户可见的功能需求,将软件系统划分为独立的功能模块,通过对这些模块的评估和加权计算,得出软件的功能点数。FP度量可以通过专门的工具或手工计算进行估算。
(4)请简述制订进度计划的两种方式。
- 基于任务的进度计划(Task-based Scheduling):该方式根据项目的任务和工作包来制定进度计划。对于每个任务,确定其开始时间、结束时间、持续时间和依赖关系,并进行任务分配和资源安排。通过对任务的逐一安排,形成全面的进度计划。
- 基于里程碑的进度计划(Milestone-based Scheduling):该方式以项目的关键里程碑为基础来制定进度计划。将项目划分为若干个关键阶段或阶段性目标,并确定每个里程碑的完成时间。通过控制和追踪里程碑的完成情况,来管理整个项目的进度。
(5)目前项目开发时常用的小组组织方法有哪些?
- 瀑布模型:将开发过程划分为一系列线性阶段,每个阶段依次进行,各个阶段之间有明确的交付物和阶段评审。适用于需求明确、变化较少的项目。
- 敏捷开发:采用迭代、增量的方式开发软件,将需求分解为用户故事或任务,每个迭代周期内完成一部分功能,并经常与客户进行交互和反馈。适用于需求变化频繁、灵活性要求高的项目。
- 增量式开发:将项目划分为多个独立的模块或子系统,每个模块独立开发和测试,然后逐步集成形成完整的系统。适用于大型项目或多个团队合作开发的项目。
(6)请简述主程序员组的优缺点。
优点:
- 经验丰富:主程序员拥有丰富的开发经验和技术能力,能够提供指导和支持,确保项目的技术实现达到高质量标准。
- 统一风格:主程序员能够统一团队的编码风格和规范,提高代码的可读性和可维护性。
- 技术传承:通过与其他成员的合作和指导,主程序员能够传授技术知识和经验,提升整个团队的能力水平。
缺点:
- 依赖性高:团队成员高度依赖主程序员的指导和支持,缺乏独立解决问题的能力。
- 单点风险:如果主程序员离开或无法参与项目,可能会对项目进展和质量造成影响。
- 沟通成本:主程序员需要花费较多的时间和精力与其他成员进行沟通和协调,可能增加项目管理的复杂性。
(7)民主制和主程员制各存在什么问题?
- 民主制问题:在民主制下,团队成员的意见可能分散,决策过程较为缓慢,难以达成一致。可能出现决策权不明确、权责不对等等问题。
- 主程员制问题:主程员制下,团队成员的能动性较低,缺乏主动性和创造性。可能出现对主程序员过度依赖、缺乏团队合作等问题。
(8)如何进行软件项目的风险分析?
- 风险识别:识别项目中可能出现的风险,包括技术风险、进度风险、需求风险等。可以通过头脑风暴、经验总结、文档分析等方法识别风险。
- 风险评估:对已识别的风险进行评估,确定其概率和影响程度。可以使用定性和定量方法进行风险评估,如概率-影响图、风险矩阵等。
- 风险优先级排序:根据风险的概率和影响程度,对风险进行排序,确定优先处理的风险。
- 风险应对策略:制定相应的风险应对策略,包括风险避免、风险转移、风险缓解和风险接受等。针对不同的风险,采取相应的措施进行应对。
(9)请简述软件质量的定义。
软件质量的定义:软件质量是指软件产品或系统在满足特定需求的同时,具备良好的性能、可靠性、可维护性、安全性等特征的程度。
(10)针对软件质量保证问题,最有效的办法是什么?
针对软件质量保证问题,最有效的办法是进行全面的软件测试。通过测试可以发现和修复软件中的缺陷和错误,确保软件在交付前具备高质量和稳定性。软件测试包括单元测试、集成测试、系统测试、验收测试等多个阶段,覆盖不同层次和不同方面的功能和性能。
(11)软件配置管理的目的是什么?
软件配置管理的目的是确保软件系统的可控性和可追溯性。它通过对软件配置项的标识、控制、记录和审计,管理软件系统的变更和版本,以满足软件开发和维护的需求。软件配置管理可以帮助保证软件开发过程的可控性,确保软件的正确性和稳定性。
(12)请简述软件配置管理的工作内容。
软件配置管理的工作内容包括:
- 配置标识:对软件中的配置项进行唯一标识,确保每个配置项都能被准确地识别和管理。
- 配置控制:管理软件配置项的变更,包括变更的提出、评审、批准和实施,确保变更的正确性和一致性。
- 配置记录:记录软件配置项的状态和历史信息,包括版本号、变更记录、发布信息等,以便追溯和回溯。
- 配置审计:对软件配置项进行审查和验证,确保软件的配置符合规定的标准和要求。
- 配置管理工具:使用专门的配置管理工具来支持配置管理的各项工作,提高效率和准确性。
(13)为什么要进行软件维护?软件维护的作用有哪些?
软件维护是指对已经交付使用的软件进行修改、改进和优化的过程。软件维护的目的是确保软件系统的稳定性、可靠性和可用性,满足用户的需求和期望。软件维护的作用包括:
- 缺陷修复:修复软件中的错误和缺陷,提高软件的质量和可靠性。
- 功能增强:根据用户需求和市场变化,增加、改进和扩展软件的功能,提升用户体验和竞争力。
- 适应环境变化:随着硬件、操作系统和外部接口的变化,对软件进行适应性修改,确保软件在新环境下的正常运行。
- 数据迁移:对数据库结构和数据进行调整和迁移,以满足新的需求或提高性能。
(14)软件维护的副作用表现在哪4个方面?
可读性下降、引入新缺陷、成本增加、兼容性问题
(15)请简述软件文档的意义。
- 知识传递和共享:软件文档记录了软件系统的设计、实现和使用等方面的知识,可以帮助团队成员之间进行知识传递和共享。
- 开发指导和规范:软件文档提供了对软件系统的整体结构、组件功能和接口等的描述,可以作为开发人员的指导和规范,帮助他们更好地进行开发工作。
- 系统理解和维护:软件文档可以帮助开发人员和维护人员理解软件系统的各个部分和功能,从而更好地进行系统的维护和修改工作。
- 用户培训和支持:软件文档可以作为用户使用软件的参考手册,提供使用说明、操作指南和故障排除等信息,帮助用户学习和使用软件。
- 质量保证和审计:软件文档可以作为软件质量保证和审计的依据,对软件系统进行评估和审查,确保软件的正确性和可靠性。
(16)假设你所在的信息系统开发公司指定你为项目负责人。你的任务是开发一个应用系统,该系统类似于你的小组以前做过的那些系统,不过这个规模更大而且更复杂一些。需求已经由客户写成了完整的文档。你将选用哪种小组结构?为什么?你准备采用哪(些)种软件过程模型?为什么?
在面对这个更大且更复杂的项目时,我会选择采用瀑布模型的小组结构。瀑布模型适用于规模较大、需求相对稳定的项目,有明确的阶段划分和交付节点,便于控制和管理。小组结构可以将开发人员划分为不同的职能组,如需求分析组、设计组、编码组和测试组,每个组专注于自己的任务,并按照瀑布模型的阶段顺序进行工作。
对于软件过程模型的选择,我会采用增量模型和迭代模型的结合。增量模型将整个项目划分为多个增量,每个增量都是一个可交付的、具有完整功能的子系统。迭代模型则将每个增量划分为多个迭代,每个迭代都包括需求分析、设计、编码和测试等阶段。这种结合可以在保证整体进度的同时,允许在每个迭代中进行反馈和调整,减少风险和提高开发效率。
综上所述,我会选择瀑布模型的小组结构,并采用增量模型和迭代模型的结合作为软件过程模型。这样可以在保证项目控制和管理的同时,灵活应对需求和变更,并逐步交付具备完整功能的子系统。
致词:
软件工程十四章课后习题已经全部更新完成,谢谢大家!如有问题,可在评论区指出!
相关文章:
软件工程理论与实践 (吕云翔)第十四章 软件维护与软件工程管理课后习题与解析
第十四章 软件维护与软件工程管理 1.判断题 (1)代码行技术是比较简单的定量估算软件规模的方法。(√) (2)功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。(√) &#…...

Flutter 桌面应用开发之读写Windows注册表
文章目录 需求来源Windows查询Windows版本号方法1. 如何查看Windows版本号2. Windows开发如何通过代码查询Windows版本号(1) 使用C#代码:(2) 使用VB.NET代码 3.通过注册表查看Windows版本信息 Flutter查询Windows版本号方法依赖库支持平台实现步骤1. 在pubspec.yaml…...

【Java Spring】SpringBoot 日志系统
文章目录 一、Spring Boot 日志系统1.1 Spring Boot 日志框架1.2 自定义日志打印1.3 日志级别设置1.4 日志持久化1.5 lombok 简化日志输出 一、Spring Boot 日志系统 1.1 Spring Boot 日志框架 SLF4J 和 logback都是spring boot内置的日志框架,开发者只负责调用对…...

Rust UI开发(四):iced中如何添加菜单栏(串口调试助手)
注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 这是一个系列博文,本文是第四篇,前三篇链接: 1、Rust UI开发(一):使用iced构建UI时…...

P19 C++ 构造函数的成员初始化列表
目录 前言 01 如果不用成员列表如何初始化变量 02 成员列表初始化 03 为什么要使用成员列表初始化呢? 04 案例代码 前言 本期我们聊聊构造函数初始化列表。 你应该经常使用成员初始化列表,如果你不喜欢这种代码风格,建议你还是慢慢习惯吧…...
acwing算法基础之数学知识--Nim游戏和集合Nim游戏
目录 1 基础知识2 模板3 工程化 1 基础知识 (一) Nim游戏: n n n堆物品,每堆有 a i a_i ai个,两个玩家轮流取走任意一堆的任意个物品,但不能不取。取走最后一个物品的人获胜。 结论:如果这n…...

大数据Doris(二十八):Routine Load查看和修改作业
文章目录 Routine Load查看和修改作业 一、查看导入作业状态...

顺序表总结
📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 目录 🌤️arraylist的简…...

flutter 文本不随系统设置而改变大小[最全的整理]
文本不随系统设置而改变大小[四] 前言方案十九:使用LayoutBuilder和RichText方案二十:使用Transform.scale方案二十一:使用自定义文本缩放因子方案二十二:使用SingleChildScrollView方案二十三:使用FittedBox方案二十四…...

python -opencv 图像锐化
python -opencv 图像锐化 图像锐化其实,是一种增强图片对比度的技术,我们可以通过计算图像的导数,把导数绝对值数值大于零的数值加回原图像,通过这种方法,可以增强图像的对比度。 实现代码如下: import c…...

数字电源为什么一般用DSP控制,而不能用普通的单片机?
数字电源为什么一般用DSP控制,而不能用普通的单片机? 首先你要清楚,数字电源需要一个芯片具备什么功能? 1 能发PWM波 ,并且具备保护关断功能; 电源对PWM发波 要求很高,精度要ns级甚至ps级的&…...

个人投资白银收益怎么样?
个人投资白银是可以带来丰厚的收益,但收益的具体情况取决于多种因素。以下是一些明确的答案和举例,帮助投资者更好地理解个人投资白银的收益情况。 白银市场的价格波动是决定投资收益的主要因素之一,白银价格受全球经济形势、地缘局势风险、…...

代码随想录算法训练营 ---第四十五天
前言: 昨天的题做过之后,今天的题基本上都很简单,但是要注重一下细节。 第一题: 简介: 动态规划五部曲: 1.确定dp数组的含义 dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法 2.确定dp…...

【密码学】【多方安全计算】不经意传输(Oblivious Transfer,OT)
文章目录 不经意传输(oblivious transfer)定义不经意传输的实例(1 out 2,二选一不经意传输)基于RSA的1 out 2 不经意传输疑问 不经意传输(oblivious transfer)定义 不经意传输(obli…...
STL常用算法-C++
概述: 算法主要是由头文件 <algorithm> <functional> <numeric> 组成。<algorithm> 是所有 STL 头文件中最大的一个,范围涉及是比较、交换、查找、遍历操作、复制、修改等等。<functional> 定义了一些模板类,…...

一、Lua基础
文章目录 一、Lua是什么二、Lua特性(一)轻量级(二)可扩展(三)其它特性 三、Lua安装四、Lua应用 看到评论说,C让我见识了语言的严谨与缜密,lua让我见识到了语言的精巧与创新ÿ…...
vue3 webSocket 封装及使用
vue3 webSocket 封装及使用 封装 import { ref, onUnmounted } from vue; interface SocketOptions {heartbeatInterval?: number;reconnectInterval?: number;maxReconnectAttempts?: number; }class Socket {url: string;ws: WebSocket | null null;opts: SocketOption…...
记录vscode常用插件集合(extensions)
名称用处Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code适用于 VS Code 的中文(简体)语言包Dev ContainersVisual Studio代码开发容器ES7 React/Redux/GraphQL/React-Native snippetsES7 React/Redux/GraphQL/Rect Native代码段…...
正则表达式详解
一、正则表达式概述 正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。通俗的讲就是按照某种规则去匹配符合条件的字符串 一个正则表达式是一种从左到右匹配主体字符串的模式。 “Regular expression”这个词比较拗口&a…...
【限时免费】20天拿下华为OD笔试之【双指针】2023Q1A-两数之和绝对值最小【欧弟算法】全网注释最详细分类最全的华为OD真题题解
文章目录 题目描述与示例题目描述输入输出示例一输入输出说明 解题思路代码解法一pythonjavacpp 解法二pythonjavacpp 时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 给定一个整数数组nums,请你在该数组中找出两个数,…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...