一、 填空题
1、为了识别和纠正错误,修改软件性能上的缺陷所需进行的确定和修改错误的维护活动称为 。 2、为了使应用软件适应计算机硬件、软件和数据环境的变化而修改软件的维护活动称为 。 3、为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为 。 4、为了提高软件的可维护性和可靠性而对软件进行的修改成为 。 5、用于软件维护工作的活动可分为 和 两种。 包括分析、评价、修改设计和修改程序代码等, 包括理解程序代码功能、解释数据结构、接口特点和设计约束。 6、软件的开发过程对软件的维护有较大影响。若不采用软件工程的方法开发软件,则软件只有程序,没有文档,维护工作非常困难,这是 ,若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是 。 7、 是一种由用户产生的文档,它用做计划维护任务的基础。 8、因修改软件而造成的错误或其他不希望出现的情况称为 。 9、必须在软件交付之前对整个 进行 ,以减少文档的副作用。 10、为了保证软件的可维护性所进行的软件质量保证审查有 、验收检查、 和 。 11、软件再工程主要包括 、 和 等三种。 12、用于软件再工程的重构技术有 和 。 13、软件再工程的风险主要包括 、 、 、技术风险、工具风险和策略风险。 14、影响维护工作量的程序特征有 、 、 、数据库技术的应用、先进的软件开发技术、应用的类型、数学模型、任务的难度等。
二、单选题
1、在软件生存期中,工作量所占比例最大的阶段是( )阶段。 A. 需求分析 B. 软件设计 C. 测试 D. 维护 2、在整个软件维护阶段,以( )维护所花费的工作量所占比例最大。 A. 改正性 B. 适应性 C. 完善性 D. 预防性 3、一个软件产品开发完成投入使用后,常常由于各种原因需要对它做适当的变更。通常把软件交付使用后所做的变更叫做( )。 A. 维护 B. 设计 C. 软件再工程 D. 逆向工程 4、软件工程针对维护工作的主要目标是提高软件( ),降低维护的成本。 A. 生产率 B. 可靠性 C. 可维护性 D. 维护效率 5、软件可维护性是指软件能够被理解、改正、( )功能的容易程度。 A. 变更 B. 维护 C. 修改 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. 软件从一个计算机系统和环境转移到另一个计算机系统和环境的容易程度。 B. 尽管有不合法的输入,软件仍能继续正常工作的能力。 C. 软件能够被理解、改正、适应和增强功能的容易程度。 D. 在规定的条件下和规定的时间内,实现指定的功能的能力。 13、在软件维护工作的过程中,第一步是先确认( )。 A. 维护环境 B. 维护类型 C. 维护要求 D. 维护者 14、不管维护类型如何,大体上要开展相同的技术工作。这些工作包括修改软件设计、( )、单元测试、集成测试、确认测试以及验收。 A. 分析 B. 测试 C. 检验 D. 修改代码 15、软件生存期的( )的工作与软件可维护性有密切的关系。 A. 编码阶段 B. 设计阶段 C. 测试阶段 D. 每个阶段 16、软件维护困难的主要原因是( )。 A. 费用低 B. 人员少 C. 开发方法缺陷 D. 维护难 17、软件维护费用高的主要原因是( )。 A. 生产率高 B. 生产率低 C. 人员多 D. 人员少 18、维护阶段的文档是( )。 A. 软件需求说明书 B. 操作手册 C. 软件问题报告 D. 测试分析报告 19、产生软件维护的副作用,是指( )。 A. 开发时的错误 B. 隐含的错误 C. 因修改软件造成的错误 D. 运行时误操作 20、在维护中,因误删除一个标识符而引起的错误是( )副作用。 A. 文档 B. 数据 C. 编码 D. 设计
三、选择填空题
1、从供选择的答案中选出与下面有关软件质量的叙述最适合的答案,将其编号填入相应的括号内。 软件产品质量是生产者和用户都十分关心的问题,早期的质量管理只看到产品的质量,近年来质量管理向( A )发展,一个重要的基本假设是( B )直接影响( C )。这一假设最初是根据制造业情况作出的。( D )自然就会得到高质量的产品。( D )的思想是美国工程师戴明(W. E. Deming)提出来的,戴明等人在质量管理中引入统计质量控制的概念,以降低软件产品缺陷数作为( D )的目标,请选择合适的答案完成下面有关软件质量与过程的关系的示意图。
供选择的答案: A~D.① 过程的质量 ② 产品的质量 ③ 产品质量的控制 ④ 过程质量的控制 ⑤ 过程的改进 ⑥ 产品的改进 ⑦ 技术的革新 E~H.① 定义过程 ② 将过程标准化 ③ 开发产品 ④ 改进过程 ⑤ 质量控制
2、从供选择的答案中选出与下面有关软件质量的叙述最适合的答案,将其编号填入相应的括号内。 对于软件产品来说,有4个方面影响着产品的质量,即( A )、( B )、( C )及成本、时间和进度等条件。重视软件过程的质量是近年来质量管理理论和实践的新发展。重视软件过程质量的控制,其部分原因可能是:相对于产品质量的控制来说,过程质量的控制是( D )、( E )、( F ),而产品质量的控制是( G )、( H )、( I )。 供选择的答案: A~C.① 开发时间 ② 开发技术 ③ 过程质量 ④ 风险控制 ⑤ 质量控制 ⑥ 人员素质 ⑦ 项目管理 ⑧ 配置管理 D~I.① 主动的 ② 被动的 ③ 整体的 ④ 系统的 ⑤ 先期的 ⑥ 事后的 ⑦ 个别的 ⑧ 部分的
3、从供选择的答案中选出与下面有关软件质量特性的叙述最适合的答案,将其编号填入相应的括号内。 McCall提出了表明软件质量的11个质量特性。它们是( A )、( B )、( C )、( D )、( E )、( F )、( G )、( H )、效率、可测试性和互连性。我们把这11个特性分为3组,使其分别隶属于产品修正、产品转移和产品运行等3个方面,如图所示。
供选择的答案: A~H. ① 可读性 ② 正确性 ③ 功能性 ④ 完整性 ⑤ 可靠性 ⑥ 可移植性 ⑦ 可复用性 ⑧ 灵活性 ⑨ 可维护性 ⑩ 可使用性
4、从供选择的答案中选出与下面有关软件质量模型的叙述最适合的答案,将其编号填入相应的括号内。 国际标准化组织和国际电工委员会于1991年发布了关于软件质量的标准ISO∕IEC 9126―1991。我国于1996年将其等同采用,成为国家标准GB∕T16260―1996《软件产品评价、质量特性及其使用指南》。在此标准中规定了6个质量特性及相关的( A )个质量子特性。质量特性包括( B )、( C )、( D )、效率、可维护性和可移植性等。准确性属于( B ),容错性属于( C ),易学习性属于( D )。 供选择的答案: A. ① 12 ② 16 ③ 21 ④ 22 B~D. ① 可靠性 ② 适应性 ③ 可使用性 ④ 安全性 ⑤ 一致性 ⑥ 功能性 ⑦ 依从性 ⑧ 互操作性 ⑨ 时间特性 ⑩ 资源特性
5、从供选择的答案中选出与下面有关软件维护的叙述最适合的答案,将其编号填入相应的括号内。 一个软件产品开发完成投入使用后,常常由于各种原因需要对它做适当的变更。在软件的使用过程中,软件原来的( A )可能不再适应用户的要求,需要进行变更;软件的工作环境也可能发生变化,最常见的是配合软件工作的( B )有变动;还有一种情况是在软件使用过程中发现错误,需要进行修正。通常把软件交付使用后做的变更称为( C )。软件投入使用后的另一项工作是( D ),针对这类软件实施的软件工程活动,主要是对其重新实现,使其具有更好的( E ),包括软件重构、重写文档等。( D )和新的软件开发工作的主要差别在于( H )。我们把常规的软件开发称为( F ),而( G )是从代码开始推导出设计或是规格说明来。 供选择的答案: A, B. ① 环境 ② 软件 ③ 硬件 ④ 功能和性能 ⑤ 要求 C, D, F, G. ① 逆向工程 ② 正向工程 ③ 软件再工程 ④ 维护 ⑤ 设计 E. ① 可靠性 ② 可维护性 ③ 可移植性 ④ 可修改性 H. ① 使用的工具不同 ② 开发的过程不同 ③ 开发的起点不同 ④ 要求不同
6、从供选择的答案中选出与下面有关软件维护的叙述最适合的答案,将其编号填入相应的括号内。 软件维护是软件生存期的最后一个阶段。软件工程学针对维护工作的主要目标是提高( A ),降低( B )。软件的( C )、( D )、( E )是决定软件可维护性的基本因素。软件生存期( F )的工作与软件可维护性有密切的关系。 右图为结构化维护和非结构化维护的对比,请选择合适的答案填入图中。 供选择的答案: A, B.① 软件的生产率 ② 文档 ③ 软件的可靠性 ④ 软件的可维护性 ⑤ 维护的代价 ⑥ 维护的效率 C, D, E. ① 可测试性 ② 互操作性 ③ 可理解性 ④ 可修改性 ⑤ 可复用性 ⑥ 可管理性 F. ① 编码阶段 ② 设计阶段 ③ 测试阶段 ④ 每个阶段 G~L. ① 复查 ② 计划途径 ③ 重编程序 ④ 评价设计 ⑤ 评价代码 ⑥ 修改设计
7、从供选择的答案中选出同下列各叙述关系最密切的字句。 A. 软件从一个计算机系统或环境转移到另一个计算系统或环境的容易程度。 B. 软件在需要它投入使用时能实现其指定的功能的概率。 C. 软件使不同的系统约束条件和用户需求得到满足的容易程度。 D. 在规定的条件下和规定的一段期间内,实现所指定的功能的概率。 E. 尽管有不合法的输入,软件仍能继续正常工作的能力。 供选择的答案: ① 可测试性 ② 可理解性 ③ 可靠性 ④ 可移植性 ⑤ 可使用性 ⑥ 兼容性 ⑦ 容错性 ⑧ 可修改性 ⑨ 可接近性 ⑩ 一致性
8、下面有关软件维护的叙述有些是不准确的,请将它们列举出来。 供选择的答案: ① 要维护一个软件,必须先理解这个软件。 ② 阅读别人写的程序并不困难。 ③ 如果文档不齐全也可以维护一个软件。 ④ 谁写的软件就得由谁来维护这个软件。 ⑤ 设计软件时就应考虑到将来的可修改性。 ⑥ 维护软件时一件很吸引人的创造性工作。 ⑦ 维护软件就是改正软件中的错误。 ⑧ 维护好一个软件是一件很难的事情。
9、从供选择的答案中选出与下面有关软件维护实施的叙述最适合的答案,将其编号填入相应的括号内。 在软件维护的实施过程中,为了正确、有效地修改,需要经历以下3个步骤:( A )、( B )、( C )。( A )是决定维护成败和质量好坏的关键。( C )包括( D )确认、计算机确认和维护后的( E )。 供选择的答案: A~C. ① 修改程序 ② 建立目标程序 ③ 分析和理解程序 ④ 重新验证程序 ⑤ 验收程序 D. ① 动态 ② 静态 ③ 人工 ④ 自动 E. ① 验证 ② 验收 ③ 检验 ④ 存档
10、从供选择的答案中选出与下面有关软件可维护性的叙述最适合的答案,将其编号填入相应的括号内。 软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改,( A )的容易程度。目前广泛使用7个特性来衡量软件的可维护性,其中就有( B )、( C )、( D )。其中,( B )和( D )主要在改正性维护中侧重应用,( C )主要在适应性维护和( E )维护中侧重应用。 供选择的答案: A. ① 维护 ② 扩充与压缩 ③ 调整 ④ 再工程 B~D. ① 安全性 ② 可靠性 ③ 完整性 ④ 适应性 ⑤ 可理解性 ⑥ 可使用性 ⑦ 一致性 ⑧ 数据无关性 E. ① 预防性 ② 完善性 ③ 改正性 ④ 容错性
11、从供选择的答案中选出与下面有关软件可移植性的叙述最适合的答案,将其编号填入相应的括号内。 软件可移植性是用来衡量软件的( A )的重要尺度之一。为了提高软件的可移植性,应注意提高软件的( B )。采用( C )有助于提高( B )。为了提高可移植性,还应( D )。使用( E )语言开发的系统软件具有较好的可移植性。 供选择的答案: A. ① 通用性 ② 效率 ③ 质量 ④ 人机界面 B. ① 使用的方便性 ② 简洁性 ③ 可靠性 ④ 设备独立性 C. ① 优化算法 ② 专用设备 ③ 表格驱动方式 ④ 树型文件目录 D. ① 有完备的文件资料 ② 选择好的宿主计算机 ③ 减少输入输出次数 ④ 选择好的操作系统 E. ① COBOL ② APL ③ C ④ SQL
12、从下列叙述中选出5条与提高软件的可移植性有关的叙述。 ① 把程序中与计算机硬件特性有关的部分集成在一起。 ② 选择时间效率和空间效率高的算法。 ③ 使用结构化的程序设计方法。 ④ 尽量用高级语言编写程序中对效率要求不高的部分。 ⑤ 尽可能减少注释。 ⑥ 采用表格控制方式。 ⑦ 文档资料详尽、正确。 ⑧ 在有虚拟存储器的计算机系统上开发软件。 ⑨ 减少程序中对文件的读写次数。 ⑩ 充分利用宿主计算机的硬件特性。
13、从供选择的答案中选出与下面有关软件再工程技术的叙述最适合的答案,将其编号填入相应的括号内。 软件再工程技术主要有( A )、( B )和( C )。分析、度量属于( C ),知识库和变换属于( D );复用工程属于( E ),其目的是( F ),使其更容易复用。通常是先寻找( G ),然后将其改造,使之能放入( H )中。实际应用可从( H )中选取( I ),以实现复用。 供选择的答案: A~E. ① 改进软件 ② 编码 ③ 理解软件 ④ 维护 ⑤ 获取、保存及扩充软件知识 F. ① 保存软件 ② 修改软件 ③ 设计软件 ④ 开发软件 G~I. ① 构件 ② 可复用库 ③ 可复用构件 ④ 信息库
14、从供选择的答案中选出与下面有关软件再工程的叙述最适合的答案,将其编号填入相应的括号内。 软件再工程是一类软件工程活动,它能够使我们:ⅰ)增进对软件的理解;ⅱ)准备或直接提高软件自身的( A )、( B )或演化性。第ⅱ部分旨在改善软件的( C ),使得软件更容易为人们服务。纯粹是出于改善性能的代码优化( D )软件再工程。逆向工程属于上述软件再工程的第( E )部分。 供选择的答案: A, B. ① 可靠性 ② 灵活性 ③ 可维护性 ④ 可复用性 ⑤ 可修改性 C.① 静态质量 ② 动态质量 ③ 性能 ④ 功能 D.① 属于 ② 不属于 E.① ⅱ ② ⅰ
15、从供选择的答案中选出与下面有关软件再工程的叙述最适合的答案,将其编号填入相应的括号内。 关于软件再工程的定义有这样两种说法。ⅰ)软件再工程是变更系统(或程序)的( A ),或是系统(或程序)的( B ),而不变更其( C )的一种工程活动。ⅱ)检查并改进对象系统,按新的模式对系统进行( D ),进而实现其新的模式。 多数软件再工程工具可按图示的自动进行再工程的模式工作。请选择合适的答案完成这个图示。 供选择的答案: A ~D. ① 外部环境 ② 接口 ③ 内部机制 ④ 流程图 ⑤ 重构 ⑥ 数据结构 ⑦ 功能性 ⑧ 层次性 E~H.① 其它产品 ② 软件工具 ③ 信息库 ④ 软件 ⑤ 软件的新视图
16、从供选择的答案中选出与下面有关软件视图的叙述最适合的答案,将其编号填入相应的括号内。 ( A )是软件的一种表达形式,或是有关软件的一种报告。( A )可分为4类:软件的规格说明属于( B ),PDL或DFD属于( C ),规格说明文本的图索引属于( D ),程序和程序段属于( E )。( A )得到工具支持时,就成为( F ),可用其支持加入、变更或浏览信息。 供选择的答案: A, F. ① 软件说明 ② 概要设计 ③ 软件视图 ④ 信息库 ⑤ 视图编辑器 ⑥ 软件设计 B~E. ① A类视图 ② 1类视图(非过程性描述和∕或元描述) ③ 2类视图(伪过程性描述和∕或面向体系结构的描述) ④ 3类视图(纯过程性描述或直接导出的信息)
四、问答题
1、为什么软件需要维护?维护有哪几种类型?简述它们的维护过程。
2、改正性维护与“排错”是否是一回事?为什么?
3、什么是程序修改的副作用?程序修改的副作用有哪几种?试举例说明?
4、讨论高级语言对适应性维护的影响。使程序适应新的环境是可能的吗?
5、在软件计划中是否应该把维护费用计划在内?实际情况如何?