单项选择题10. 在软件配置管理规程中应明确规定______。
①各级、各库中所管的软件实体的清单
②保证安全性、可靠性、保密性、正确性、完备性、一致性和可追踪性的具体措施
③入库控制办法和审批手续
④出库条件及其必备的手续
⑤变更控制办法和审批手续
A B C D
B
[解析] 软件配置项不论大小都必须实施软件配置管理。每个计算机系统均应制定软件配置管理规程,至少应明确规定:
(1)各级、各库中所管的软件实体的清单。
(2)保证安全性、可靠性、保密性、正确性、完备性、一致性和可追踪性的具体措施。
(3)入库控制办法和审批手续。
(4)出库条件及其必备的手续。
(5)变更控制办法和审批手续。
30. 关于维护软件所需的成本,以下叙述正确的是______。
- A.纠正外部和内部设计错误比纠正源代码错误需要更大的成本
- B.与需求定义相比,源代码的文字量大得多,所以源代码得维护成本更高
- C.用户文档需要经常更新,其维护成本超过了纠正设计错误的成本
- D.需求定义的错误会在设计时被发现并纠正,因此需求定义纠错的成本小于源代码纠错的成本
A B C D
A
[解析] 软件经过测试,交付给用户后,在使用和运行过程中可能在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。软件维护占整个软件生命周期的60%~80%,维护的类型主要有三种:
(1)改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。
(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。
(3)完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。
除了以上三类维护之外,还有一类维护活动,叫做预防性维护。这是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。
以上各种维护过程占整个软件维护工作量比例如下图所示。

各种维护所占的比例
有形的软件维护成本是花费了多少钱,而其他非直接的维护成本有更大的影响。例如,无形的成本可以是:
(1)一些看起来是合理的修复或修改请求不能及时安排,使得客户不满意;
(2)变更的结果把一些潜在的错误引入正在维护的软件,使得软件整体质量下降;
(3)当必须把软件人员抽调到维护工作中去时,就使得软件开发工作受到干扰。
软件维护的代价是在生产率方面的惊人下降。有报告说,生产率将降到原来的1/40。维护工作量可以分成生产性活动(如分析和评价、设计修改和实现)和“轮转”活动(如力图理解代码在做什么、试图判明数据结构、接口特性、性能界限等)。下面的公式给出了一个维护工作量的模型:
M=p+ke
c-d 其中,M是维护中消耗的总工作量,p是生产性工作量,k是一个经验常数,c是因缺乏好的设计和文档而导致复杂性的度量,d是对软件熟悉程度的度量。
这个模型指明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。
在软件开发过程中,错误纠正成本在逐步放大。也就是说,错误发现得越早,纠正错误所花费的成本就会越低,反之则越高。例如,如果在软件设计阶段有个错误未被发现,而待编码阶段时才发现,这时,纠正这个设计错误比纠正源代码错误需要更大的成本。