软件工程课自测题3
软件工程测试题+参考答案

软件工程测试题+参考答案一、单选题(共40题,每题1分,共40分)1、窃听是一种()攻击,攻击者()将自己的系统插入到发送站和接收站之间。
截获是一种()攻击,攻击者()将自己的系统插入到发送站和接受站之间。
A、被动,无须,主动,必须B、被动,必须,主动,无须C、主动,无须,被动,必须D、主动,必须,被动,无须正确答案:A2、如果一名攻击者截获了一个公钥,然后他将这个公钥替换为自己的公钥并发送给接收者,这种情况属于哪一种攻击?A、重放攻击B、Smurf 攻击C、中间人攻击D、字典攻击正确答案:C3、黑客攻击服务器以后,习惯建立隐藏用户,下列哪一个用户在DOS命令net user下是不会显示的。
A、fg#B、fg%C、fg_D、fg$正确答案:D4、下列哪一种方法在支持向量机中有应用A、拉格朗日乘子法B、二分法C、最小二乘法D、极大似然估计正确答案:A5、设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为A、6B、6.5C、11D、5正确答案:B6、对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为A、NB、N/2C、(N+1)/2D、[(1+N)*N ]/2正确答案:C7、信息安全中PDR模型的关键因素是()。
A、人B、客体C、技术D、模型正确答案:A8、某业务系统具有上传功能,页面上传的文件只能上传到UPLOAD目录,由于上传页面没有过滤特殊文件后缀,存在上传漏洞,而短时间厂家无法修改上传页面源码,现采取如下措施,哪种措施可以暂时防止上传漏洞危害又不影响业务系统正常功能。
A、禁止UPLOAD目录访问权限B、删除上传页面C、禁止UPLOAD目录执行脚本文件D、以上措施都不正确正确答案:C9、在各种作业调度算法中 , 若所有作业同时到达 , 则平均周转时间最短的算法是()。
A、多级反馈队列调度算法B、先来先服务调度算法C、高优先级优先调度算法D、短作业优先调度算法正确答案:D10、下面()不是数据字典的内容。
软件工程模拟试题3答案.docx

软件工程模拟试题3答案一、选择题(20分,每小题2分)1、软件需求分析的任务不包括(C )。
A、问题分析B、信息域分析C、结构化设计C、确定逻辑结构2、进行需求分析有的多种描述工具,但不包括(C )。
A、数据流图B、判定表C、PAD图D、数据词典3、在需求分析过程中,分析员要从用户那里解决的最重要的问题是(A )。
A、要求软件做什么B、要给软件提供哪些信息C、要求软件工作效率如何D、要求软件具有什么样的结构4、软件测试的目的是(B )。
A、评价软件的质量B、发现软件的错误C、找出软件中的所有错误D、证明软件是正确的5、以下软件成本估算模型中,是动态多变量的模型有(CD )。
A、Halstead 理论模型B、Deiphi专家估算模型C、Putnam估算模型D、COCOMO模型6、关于快速建立渐进原型(RCP法)的论述不正确的是(C)。
A、RCP法建立的原型反映了系统的某些主要特征。
B、RCP法采用循环渐进的开发方式,对系统模型作连续精化。
C、RCP法建立需求规格原型,当需求说明一旦确定原型被废弃。
D、RCP法也称为追加(addon)型的原型化方法。
7、面向对象的开发方法的工作模型是(B )。
A、瀑布模型B、喷泉模型C、智能模型D、循环模型8、白盒法又称为逻辑覆盖法,主要用于(D )。
A、功能测试B、系统测试C、a测试D、单元测试9、结构化分析方法(SA法)使用的主要描述工具有(D )。
A、数据库B、模块结构图C、PAD图D、分层的DFD图10、UML中,包图是一种(C )。
A、集合B、数据结构C、分组机制D、对系统的动态描述二、简答题(45分)1、(15分)什么是软件复用?分析说明为什么面向对象的开发方法为软件复用技术提供了良好的环境?软件复用是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
可复用的软件成分一称为可复用构件(Reusable Component),从旧软件中提取,也可以专门为复用而开发。
)《软件工程》在线自测试卷 3

试题1.第1题单选题检查软件产品是否符合需求定义的过程称为______。
A、确认测试B、集成测试C、验收测试D、系统测试标准答案:A您的答案:题目分数:5此题得分:0.0批注:2.第2题单选题下面对软件的可维护性影响最小的是______。
A、可理解性B、可测试性C、可修改性D、代码效率。
标准答案:C您的答案:题目分数:5此题得分:0.0批注:3.第3题单选题软件文档是软件工程实施中的重要万分它不仅是软件开发各阶段的重要依据,而且与影响软件的______。
A、可理解性B、可维护性C、可扩展性D、可移植性标准答案:A您的答案:题目分数:5此题得分:0.0批注:4.第4题单选题随着软硬件环境变化而修改软件的过程是______。
A、改正性维护B、适应性维护C、完善性维护D、预防性维护标准答案:B您的答案:题目分数:5此题得分:0.0批注:5.第5题单选题软件维护困难的主要原因是______。
A、费用低B、人员少C、开发方法的缺陷D、得不到用户支持标准答案:C您的答案:题目分数:5此题得分:0.0批注:6.第6题单选题以下判断正确的是______。
A、所谓软件开发就是编写程序。
B、利用软件工程的思想,已成功的解决了软件危机。
C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。
D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。
标准答案:D您的答案:题目分数:5此题得分:0.0批注:7.第7题单选题产生软件维护的副作用,是指______。
A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作标准答案:D您的答案:题目分数:5此题得分:0.0批注:8.第8题单选题软件维护的四类维护活动是______。
A、改正性维护,适应性维护,完善性维护和预防性维护。
B、适应性维护,完善性维护,抢救性维护和辅助性维护。
C、改正性维护,适应性维护,完善性维护和辅助性维护。
D、适应性维护,完善性维护,抢救性维护和预防性维护。
软件工程课自测题+答案

.软件工程自测题(一)一、单项选择题1. 软件危机具有下列表现( D )。
I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住III. 软件常常不可维护IV. 软件成本逐年上升A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是()。
A. 运行和维护阶段B. 设计阶段C. 代码实现阶段D. 测试阶段3. 下列属于软件的特点的是(D )。
A. 软件是一种逻辑实体,具有抽象性B. 软件在使用过程中没有磨损、老化的问题C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高D. 以上都正确4. 软件工程的出现是由于()。
A. 软件危机的出现B. 计算机硬件技术的发展C. 软件社会化的需要D. 计算机软件技术的发展5. 软件开发技术不包含()。
A. 软件开发方法学B. 软件工程环境C. 软件工具D. 软件质量度度量6. 软件工程的课程特点( B )。
I. 学科理论及其知识应用的多维性II. 工程化III. 浓厚的方法学色彩IV. 实践性、指导性强A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确7. 下列属于应用软件的是( B )。
I. 计算机辅助教学软件II. 软件测试工具III. 办公自动化软件IV. 工程与科学计算软件A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确8. 需求分析阶段最重要的技术文档是()。
A. 设计说明书B. 需求规格说明书C. 可行性分析报告D. 用户手册9. 以下关于数据流图的说法错误的是()。
A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储B. 数据流图是用作结构化分析的一种工具1C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成D. 数据流图的绘制采用自上向下、逐层分解的方法10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()。
软件工程测试题及答案

软件工程测试题及答案一、单项选择题(每题2分,共20分)1. 软件测试的目的是:A. 证明软件无缺陷B. 证明软件存在缺陷C. 证明软件符合需求规格D. 证明软件符合设计答案:B2. 黑盒测试主要关注:A. 内部逻辑B. 输入输出关系C. 代码结构D. 内部数据结构答案:B3. 白盒测试主要关注:A. 内部逻辑B. 输入输出关系C. 代码结构D. 内部数据结构答案:A4. 单元测试通常由谁执行:A. 客户B. 测试人员C. 开发人员D. 项目经理答案:C5. 系统测试的目的是:A. 测试单个模块B. 测试整个系统C. 测试集成后的模块D. 测试用户界面答案:B二、多项选择题(每题3分,共15分)1. 以下哪些属于软件测试的类型:A. 单元测试B. 集成测试C. 系统测试D. 性能测试E. 回归测试答案:ABCDE2. 软件测试过程中可能使用到的测试用例设计技术包括:A. 等价类划分B. 边界值分析C. 决策表D. 错误猜测E. 随机测试答案:ABCDE3. 软件测试的阶段包括:A. 单元测试B. 集成测试C. 系统测试D. 验收测试E. 性能测试答案:ABCD三、填空题(每空1分,共10分)1. 软件测试的目的是________。
答案:发现软件缺陷2. 软件测试的基本原则是________。
答案:测试显示存在缺陷3. 软件测试的目的是________,而不是证明软件没有缺陷。
答案:发现错误4. 软件测试的目的是________,而不是证明软件符合需求。
答案:发现错误5. 软件测试的目的是________,而不是证明软件符合设计。
答案:发现错误四、简答题(每题5分,共20分)1. 简述软件测试的重要性。
答案:软件测试是确保软件质量的关键环节,它能够发现软件中的错误和缺陷,从而提高软件的可靠性和稳定性,减少用户在使用过程中遇到的问题。
2. 描述软件测试的一般过程。
答案:软件测试的一般过程包括测试计划、测试设计、测试实施、测试评估和测试报告。
《软件工程》试题及参考答案(第3套)

厦门理工软件学院2011 –2012 学年度下期《软件工程》试题(第3套)题号一二三四五总分题分第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的研究的一方面。
( )A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.模块的内聚性最高的是( )A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚4.在SD方法中全面指导模块划分的最重要的原则是( )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性5.软件详细设计主要采用的方法是( )A.模块设计B.结构化设计C.PDL语言D.结构化程序设计6.黑盒测试在设计测试用例时,主要需要研究( )A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明7.若有一个计算类型的程序,它的输入量只有一个,其范围是现从输入的角度考虑一组测试用例:设计这组测试用例的方法是( )A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法8下列属于维护阶段的文档是( )A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告9快速原型模型的主要特点之一是( )A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件 ;D.及早提供工作软件10.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( )A.教正性维护B.适应性维护C.完善性维护D.预防性维护11.下列文档与维护人员有关的有( )A.软件需求说明书B.项目开发计划C.概要设计说明书D.操作手册12.下列模型属于成本估算方法的有( )A.COCOMO模型B.McCall模型C.McCabe度量法D.时间估算法13. ()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
软件工程课自测题+答案

软件工程自测题(一)
一、单项选择题
1. 软件危机具有下列表现( D )。
I. 对软件开发成本估计不准确
II. 软件产品的质量往往靠不住
III. 软件常常不可维护
IV. 软件成本逐年上升
A. I、II 和 III
B. I、III 和 IV
C. II、III 和 IV
D. 以上都正确
2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( )。
2
(2. 错误。一般说来,模块的内聚程度越高,它们之间的耦合程度也就越低。) 3. 软件测试只能证明程序有错误,不能证明程序没有错误。 4. 结构化程度设计方法能改善程序结构,提高程序的运行效率。 (4. 错误。 结构化程度设计方法能改善程序结构,但往往会降低程序的运行效率。) 5. 如果测试数据满足条件覆盖,则必然满足判定覆盖。 (5. 错误。对于特定的程序而言,满足条件覆盖的测试数据不一定必然满足判定覆盖。) 四、综合题 1. 求 100~1000 间的素数。请画出描述该问题的 N-S 图。
D. 数据流图的绘制采用自上向下、逐层分解的方法
10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(
)。
A. 数据库设计
B. 数据通信
C. 数据定义
D. 数据维护
11. 需求分析阶段的研究对象是(
)。
A. 系统分析员要求
B. 用户要求
C. 软硬件要求
D. 系统要求
12. 结构化方法的基本原则是(
4
(2)程序流程图描述是:
5
6
软件工程自测题(二)
一、填空题
1. 软件 是计算机程序及其说明程序的各种文档。 程序 是计算机任务的处理对象和处理规则的描述; 文档
软件工程课自测题及答案1.docx

7. A. I 、II 和 III B.I 、 下列属于应用软件的是( I.计算机辅助教学软件III 和 IV B )。
C. IL III 和IV D.以上都正确 II.软件测试工具一、单项选择题B. I 、III 和 IVC. II 、III 和 IVD.以上都正确2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用 最多的阶段往往是(A )。
A. 软件是一种逻辑实体,具有抽象性B. 软件在使用过程中没有磨损、老化的问题D.以上都正确I. 学科理论及其知识应用的多维性 II. 工程化III. 浓厚的方法学色彩IV, 实践性、指导性强1.软件危机具有下列表现(D )。
I. 对软件开发成本估计不准确 II. 软件产品的质量往往靠不住 III. 软件常常不可维护 IV. 软件成本逐年上升A. I 、II 和 IIIA.运行和维护阶段B.设计阶段C.代码实现阶段D.测试阶段3. 下列属于软件的特点的是( D )。
C.软件不同于一般程序, 它的一个显著特点是规模庞大,复杂程度高4. 软件工程的出现是由于 )。
5. A.软件危机的出现 C.软件社会化的需要软件开发技术不包含( )。
B.计算机硬件技术的发展 D.计算机软件技术的发展 A. 软件开发方法学 B. 软件工程环境C.软件工具D,软件质量度度量 6. 软件工程的课程特点()。
III.办公自动化软件IV,工程与科学计算软件A.I、II 和IIIB.I、III 和IVC. II、III 和IVD.以上都正确8.需求分析阶段最重要的技术文档是(B )。
A.设计说明书B.需求规格说明书C.可行性分析报告D.用户手册9.以下关于数据流图的说法错误的是(C )。
A.数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储B.数据流图是用作结构化分析的一种工具C.传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成D.数据流图的绘制采用自上向下、逐层分解的方法10.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一. 判断题1.软件实际就是程序( X )2.成功的测试是没有发现错误的测试(X )3.软件工程的主要思想是从理论的角度来观察分析软件开发盒生产活动(X )4.一个模块直接引用另一个模块中的数据,这两个模块之间的耦合不是内容耦合(X )5.程序只要逻辑正确,能够被机器理解并执行就够了(X )二.选择题1.在软件质量因数中,软件在异常条件下人能运行的能力称为软件的( B )A)可靠性B)健壮性C)可用性D)安全性2.软件开发可行性研究,一般涉及经济,技术盒操作可行性,而进行可行性研究的基本依据是用户提出的软件( C )A)系统质量B)系统目标C)系统功能D)系统性能3.结构化程序设计中,一般包含3种基本结构,下列结构中哪个不属于基本结构A)顺序结构B)嵌套结构C)顺序结构D)选择结构4.JACKSON方法是一种面向( B )的方法A)对象 B )数据结构C)数据流D)控制流5.模块内部过程描述就是模块内部的( B ),它的表述形式就是详细设计语言A)模块化设计B)算法设计C)程序设计D)详细设计6.在设计测试用例时,( A )是用的最多的一种黑盒测试方法A)等价类划分B)边值分析C)因果图D)判定表17软件的可维护性,可使用性, ( B ) 是衡量软件质量的几个主要特性A)可靠性B)可复用性C)可理解性D)可修改性8.原型化方法是一种( B )型的设计过程A)自外向内B)自顶向下C)自内向外D)自底向上9.模块( B )定义为受该模块内一个判断影响的所有模块集合A)控制流B)作用域C)宽度D)接口10.程序控制的3种基本结构中,( C )结构可提供程序重复控制A)遍历B)排列 C )循环D)分支三.填空题1.黑箱测试即_________、白箱测试即_________________。
2.开发期的主要任务_____________,_________________,_______________,________________。
3. 结构化方法将软件生命周期分为____________,_________________,________________三个时期.4. 各模块经过单元测试后,将各模块组装起来进行,以检查与设计相关的的有关问题。
5. 在单元测试时,需要为被测模块设计和。
6. 集成测试的方法主要有两种:和。
7. 非渐增式方法把和分成两个不同的阶段。
8. 渐增式测试有以下两种不同的组装模块的方法:、。
9. 软件测试的目的是.。
10. 软件维护的内容有四种:、、、。
11. 为了提高软件的可维护性和可靠性而对软件进行的修改称为。
12. 因修改软件而造成的错误或其他不希望出现的情况称为。
13维护的副作用有------------------,-------------------,-----------------三种214. 软件的、、是衡量软件质量的几个主要特性。
15. 软件可维护性可用下面七个质量特性来衡量,即、、、、、和。
四.名词解释1.数据字典2.内聚性3.软件生存周期模型4.多态性5. 集成测试6. 维护7. 正确性维护8. 预防性维护五.简答题1. 软件测试的目的是什么?2. 什么是集成测试?为什么要进行集成测试?3. 非渐增式测试与渐增式测试有什么区别?4. 软件维护有哪些内容?5. 软件维护的副作用有哪些?六. 应用题1. 请将下图的DFD转换为软件结构图(注:图中的 表示“或者”)主图:34子图A :答案二. 选择题三.填空题1.功能测试 结构测试2需求分析 总体设计 详细设计 编码 测试3.计划 开发 运行4. 集成测试 软件体系结构5. 驱动模块 桩模块6. 非增式测试 渐增式测试7. 单元测试 集成测试8. 自顶向下结合 自底向上结合9. 尽可能多地发现程序中的错误 .10. 正确性维护适应性维护完善性维护预防性维护11. 预防性维护12. 维护的副作用13. 编码副作用数据副作用文档副作用14. 可理解性可使用性可靠性15. 可理解性可测试性可修改性可靠性可移植性可使用性效率四.名词解释1.数据字典是用来定义数据流图中的各个成分的具体含义的。
它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
2.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
3.是描述软件开发过程中各种活动如何执行的模型。
4.指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。
或(不同的对象,收到同一消息可以产生不同的结果。
)5. 集成测试是指在单元测试的基础上,将所有模拟按照设计要求组装成一个完整的系统进行的测试,故也称组装测试或联合测试。
6. 在软件运行/维护阶段对软件产品所进行的修改就是维护。
7. 为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
8. 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
5.五.简答题51. 答:软件测试的目的。
G. J. Myers对软件测试的目的提出了以下观点:(1)软件测试是为了发现错误而执行程序的过程。
(2)一个好的测试用例能够发现至今尚未发现的错误。
(3)一个成功的测试是发现了至今尚未发现的错误的测试。
2. 答:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试,故也称组装测试或联合测试。
实践证明,单个模块能正常工作,组装后不见得仍能正常工作,这是因为:(1)单元测试使用的驱动模块和桩模块,与它们所代替的模块并不完全等效,因此单元测试有不彻底、不严格的情况。
(2)各个模块组装起来,穿越模块接口的数据可难会丢失。
(3)一个模块的功能可能会对另一个模块的功能产生不利的影响。
(4)各个模块的功能组合起来可能达不到预期要求的主功能。
(5)单个模块可以接受的误差,组装起来可能累积和放大到不能接受的程度。
(6)全局数据可能会出现问题。
因此必须要进行集成测试,用于发现模块组装中可能出现的问题,最终构成一个符合要求的软件系统。
集成测试的方法主要有两种:非渐增式测试和渐增式测试。
(1)非渐增式测试。
首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试。
(2)渐增式测试。
逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试。
每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。
3. 渐增式与非渐增式测试的方法有以下区别:(1)非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模拟的单元测试,后一阶段完成集成测试。
而渐增式测试往往把单元测试6与集成测试合在一起,同时完成。
(2)非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。
(3)渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现。
(4)渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。
(5)渐增式比较彻底,已测试的模块和新的模块再测试。
(6)渐增式占用的时间较多,但非渐增式需更多的驱动模块。
桩模块也占用一些时间。
(7)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。
4. 答:软件维护的内容。
软件维护的内容有四种:正确性维护,适应性维护,完善性维护和预防性维护。
(1)正确性维护。
在软件交付使用后,由于在软件开发过程中产生的错误并没有完全彻底的在测试中发现,因此必然有一部分隐含的错误被带到维护阶段上来。
这些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
(2)适应性维护。
随着计算机的飞速发展,计算机硬件和软件环境也在不断发生变化,数据环境也在不断发生变化。
为了使应用软件适应这种变化而修改软件的过程称为适应性维护。
例如,某个应用软件原来是在DOS环境下运行的,现在要把它移植到Windows环境下来运行;某个应用软件原来是在一种数据库环境下工作的,现在要改到另一种安全性较高的数据库环境下工作,这些变动都需要对相应的软件作修改。
(3)完善性维护。
在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。
这是因为用户的业务会发生变化,组织机构也会发生变7化。
为了适应这些变化,应用软件原来的功能和性能需要扩充和增强。
这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
例如,软件原来的查询响应速度较慢,要提高响应速度;软件原来没有帮助信息,使用不方便,现在要增加帮助信息。
(4)预防性维护。
为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
这是为以后进一步的运行和维护打好基础。
这需要采用先进的软件工程方法对需要维护的软件或软件中的某一部分进行设计、编码和测试。
5. 答:因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用。
维护的副作用有编码副作用、数据副作用、文档副作用三种。
(1)编码副作用。
在使用程序设计语言修改源代码时可能引入错误。
例如:①删除或修改一个子程序、一个标号、一个标识符;②改变程序代码的时序关系,改变占用存储的大小,改变逻辑运算符;③修改文件的打开或关闭;④改进程序的执行效率;⑤把设计上的改变翻译成代码的改变;⑥为边界条件的逻辑测试作出改变;⑦以上这些变动都容易引入错误。
(2)数据副作用。
在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。
数据副作用是修改软件信息结构导致的结果。
例如:①重新定义局部或全局的常量,重新定义记录或文件格式;②增加或减少一个数组或高层数据结构的大小;③修改全局或公共数据;④重新初始化控制标志或指针;⑤重新排列输入/输出或子程序的参数。
(3)文档副作用。
对数据流、软件结构、模拟逻辑或任何其他有关特性进行修改时,必须对相关技术文档进行相应修改。
否则会导致文档与程序功能不匹配、缺省条件改变、新错误信息不正确等错误,使文档不能反映软件当前的状态。
如果对执行软件的修改没有反映在文档中,就会产生文档副作用。
六.应用题89。