问题 单项选择题

软件的维护并不只是修正错误。为了满足用户提出的增加新功能、修改现有功能及一般性的改进要求和建议,需要进行 (19) ,它是软件维护工作的主要部分;软件测试不可能揭露旧系统中所有潜在的错误,所以这些程序在使用过程中还可能发生错误,诊断和更正这些错误的过程称为 (20) ;为了改进软件未来的可维护性或可靠性,或者为了给未来的改进提供更好的基础而对软件进行修改,这类活动称为 (21)

A.完善性维护
B.适应性维护
C.预防性维护
D.改正性维护

答案

参考答案:C

解析: 软件经过测试,交付给用户后,在使用和运行过程中可能在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。软件维护占整个软件生命周期的60%~80%,维护的类型主要有4种。
(1)改正性维护。为了识别和纠正软件错误,改正软件性能上的缺陷,排除实施中的错误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的软硬件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化而去修改软件的过程就叫做适应性维护。
(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能,增强软件性能,改进加工效率,提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。
(4)预防性维护。这是为了提高软件的可维护性、可靠性等特性,为以后进一步改进软件打下良好基础。通常,预防性维护定义为:“把今天的方法学用于昨天的系统,以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。
以上4类维护的工作量如图所示。
影响维护工作量的因素主要有系统大小、程序设计语言、系统年龄、数据库技术的应用、先进的软件开发技术五个方面。
程序修改的步骤为分析和理解程序、修改程序和重新验证程序。
经过分析,全面、准确、迅速地理解程序是决定维护成败和质量好坏的关键。为了容易地理解程序,要求自顶向下地理解现有源程序的程序结构和数据结构,为此可采用如下方法:分析程序结构图、数据跟踪、控制跟踪、分析现有文档的合理性等。
对程序的修改,必须事先做出计划,有预谋地、周密有效地实施修改。在修改时,要防止修改程序的副作用(修改代码的副作用、修改数据的副作用、修改文档的副作用)。
在将修改后的程序提交用户之前,需要用以下的方法进行充分确认和测试,以保证整个修改后的程序的正确性。这种验证可分为静态确认、计算机确认和维护后的验收。
软件维护是软件生存期的最后一个阶段,而与软件维护有关的绝大多数问题的根源在于计划阶段和开发阶段的工作有缺陷,这经常涉及软件中的代码、数据和文档的维护工作,而需求分析并不是软件的维护工作。

单项选择题
单项选择题