列表

详情


阅读以下关于软件维护的叙述,在答题纸上回答问题1至问题4。

某企业两年前自主研发的消防集中控制软件系统在市场上取得了较好的业绩,目前已成功应用到国内外众多企业用户的消防管理控制系统中。该软件系统通过不同型号消防控制器连接各种消防器件,实现集中式消防告警信息显示与控制。日前该软件系统的系统维护主管组织召开会议,对近期收集到的该软件系统的如下维护申请进行了讨论:

(1)将系统目前的专用报表功能改成通用报表生成功能,以适应未来用户可能提出的报表格式变化需求;

(2)在界面语言中增加德文支持,以满足新增的两个德国企业用户的使用要求;

(3)修正系统在与控制器通信时由于硬件网络故障导致的与控制器之间的连接失效,而控制器后续无法重新连接的问题;

(4)完成因某已支持型号消防控制器通信协议改变而导致的相应软件修改;

(5)增加与某新型号消防控制器的互连通信功能,以支持在后续推广过程中与该型号消防控制器进行互连;

(6)修正用户报告的由于系统从Win7平台迁移到最新发布的Win8平台而导致的部分显示功能失效的问题;

(7)修正用户报告的系统自动切换消防平面图形时部分器件位置显示错误的问题;

(8)改进系统历史消防告警记录的检索算法,以提高系统在处理大量消防报警记录时的效率;

(9)将系统目前针对某一特定数据库管理系统的数据库访问方式改成基于数据源的通用数据库访问方式,以适应用户可能提出的使用其他数据库管理系统的需求。

【问题1】(6分)

软件维护的内容通常分为正确性维护、适应性维护、完善性维护以及预防性维护四类,请用300字以内文字说明这4类软件维护内容的特点与区别。
【问题2】(9分)
请根据不同类型软件维护的特点,将上述(1)~(9)的维护申请填入表5-1相应的类别中。
表5-1  维护申请分类表

【问题3】(4分)
对于软件维护申请的处理,首先需要确定维护工作的类型,不同类型的维护工作,其处理流程往往不同,图5-1是区分不同维护类型的典型处理流程,请将表5-1中代表维护类型的序号(1)~(4)填入图5-1的(a)~(d)。
【问题4】(6分)
在讨论第(4)项维护工作的方案时,项目组发现与相应的消防控制器通信的子模块重用了企业之前淘汰的某款软件中实现相应功能的源代码,而现有技术人员没有参加过该代码的开发工作,并且重用的这部分代码开发不规范,其数据和代码结构设计都很差,相应的文档极不完整,维护记录也很简略。针对上述情况,项目组一致认为在原有代码基础上进行修改维护难度很大,因此决定采用软件工程的方法对该子模块进行重新设计、编码和测试,请从可行性和该模块后续可维护性两个方面简要分析采取这种方案的原因。

参考答案:

【问题1】(6分)

(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
【问题2】(9分)
(1)正确性维护 (3)(7)
(2)适应性维护 (4)(6)
(3)完善性维护 (2)(5)(8)
(4)预防性维护 (1)(9)
【问题3】(4分)
(a):(2)
(b)(c):(3)(4)
(d):(1)
【问题4】(6分)
目前的模块无文档,且已属于淘汰模块,重新开发比修改维护成本更低、效果更好,同时有利于后期的维护(一方面是开发人员对新开发的模块有很高的熟悉程度,另一方面新开发会有完善的文档)。

详细解析:

在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下四种:
(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
【问题2】的维护申请分类可参看上述维护定义进行分类。
【问题3】中的申请流程,主要区分原则是:有错误,需要修正的维护类型,其维护操作是必然的,只是依据严重性来分析是立即修改,还是添加到队列中,等待修改,所以(d)应填(1)。适应性维护类型往往是在环境发生变化时,带来的一些小毛病,这样的维护也是必须进行的,但没有严重的正确性维护那么迫切,直接进队列即可,所以(a)应填(2)。而完善性维护与预防性维护并不见得都必须进行,而需要进行评估与分类,并有可能淘汰一些维护申请,所以(b)(c)填:(3)(4)。
【问题4】是一个现实生活中常见的问题,对于过时的,无文档的模块,最佳方案是重新开发。重新开发带来的好处的多方面的:省时,省力,为以后的维护打下良好的基础。

上一题