竞争情报

来源:百度文库 编辑:神马文学网 时间:2024/06/03 06:02:53
系统维护知识—系统维护2008-01-14

http://www.essa.org.cn/information/jieshao/info20080117104541.htm 

日期:2008/1/11  来源:《嵌入式系统设计师教程》(节选)

 

1.系统可维护性概念

系统的可维护性可以被定义为:维护人员理解并修改这个软件的难易程度。提高系统的可维护性是开发管理信息系统所有步骤的关键目的所在。系统是否能被很好的维护,可以用系统的可维护性这一指标来衡量。

(1)系统可维护性的评价指标

·  可理解性:指别人能理解系统的结构、界面功能和内部过程的难易程度。模块化设计、详细设计文档、结构化设计和良好的高级程序设计语言等,都有助于提高    可理解性。

·  可测试性:诊断和测试的容易程度取决于易理解的程度。好的文档资料有利于诊断和测试,同时,程序的结构、高性能的测试工具以及周密的测试工序也是至关重要的。为此,开发人员在系统设计和编程阶段就应尽力把程序设计成易于诊断和测试的。此外,在系统维护时,应该充分利用在系统测试阶段保存下来的测试用例。

·  可修改性:诊断和测试的容易程度与系统设计所制定的设计原则有直接关系。模块的耦合、内聚、作用范围与控制范围的关系等都对可修改性有影响。

(2)维护与软件文档

文档是软件可维护程度高低的决定因素。由于长期使用的大型软件系统在使用过程中必然经受多次修改,所以文档就显得非常的重要。

软件系统的文档可以分为用户文档和系统文档两类:用户文档主要描述系统功能和使用方法,而并不关心这些功能是怎样实现的;系统文档则主要描述系统设计、实现和测试等各方面的内容。

可维护性是所有软件都应具有的基本特点,必须在开发阶段保证软件具有可维护的特点。在软件工程的每一个阶段都应考虑并提高软件的可维护性,在每个阶段结束前的技术审查和管理复查中,应该着重对可维护性进行复审。

在系统分析阶段的复审过程中,应该对将来要改进的部分和可能会修改的部分加以注解并指明,并且指出软件的可移植性问题以及可能影响软件维护的系统界面;在系统设计阶段的复审期间,应该从容易修改、模块化和功能独立的目的出发,评价软件的结构和过程;在系统实施阶段的复审期间,代码复审应该强调编码风格和内部说明文档这两个影响可维护性的因素。在完成了每项维护工作之后,都应该对软件维护本身进行认真的复审。

(3)软件文档的修改

维护应该针对整个软件配置,不应该只修改源程序代码。如果对源程序代码的修改没有反映在设计文档或用户手册中,可能会产生严重的后果。每当对数据、软件结构、模块过程或任何其他有关的软件特点有了改动时,必须立即修改相应的技术文档。我们要意识到,不能准确反映软件当前状态的设计文档可能比完全没有文档更坏。在以后的维护工作中很可能因文档不符合实际需求而导致不能正确的理解软件,从而在维护中引入过多的错误。

 

2.系统维护的内容及类型

系统维护主要包括硬件设备的维护、应用软件的维护和数据的维护。

(1)硬件维护

硬件的维护应由专职的硬件维护人员来负责,主要有两种类型的维护活动:一种是定期的设备保养性维护,保养周期可以是一周或一个月不等,维护的主要内容是进行例行的设备检查与保养、易耗品的更换与安装等;另一种是突发性的故障维护,即当设备出现突发性故障时,由专职的维修人员或请厂方的技术人员来排除故障,这种维修活动所花时间不能过长,以免影响系统的正常运行。

(2)软件维护

软件维护主要是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改。修改时应充分利用源程序,修改后要填写程序修改登记表,并在程序变更通知书上写明新老程序的不同之处。

软件维护的内容一般有以下几个方面。

·  正确性维护:是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。

这方面的维护工作量要占整个维护工作量的17%~21%。所发现的错误有的不太重要,不影响系统的正常运行,其维护工作可随时进行;而有的错误非常重要,甚至影响整个系统的正常运行,其维护工作必须制定计划,进行修改,并且要进行复查和控制。

·  适应性维护:是指使应用软件适应信息技术变化和管理需求变化而进行的修改。    这方面的维护工作量占整个维护工作量的18%~25%。由于目前计算机硬件价格的不断下降,各类系统软件层出不穷,人们常常为改善系统硬件环境和运行环境而提出系统更新换代的需求;企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。这些因素都将导致适应性维护工作的产生进行这方面的维护工作也要像系统开发一样,需要有计划、有步骤地进行。

·  完善性维护:这是为扩充功能和改善性能而进行的修改,主要是指对已有的软件    系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。这些功能对完善系统功能是非常必要的。另外,还包括对处理效率和编写程序的改进,这方面的维护占整个维护工作的50%~60%,比重较大,也是关系到系统开发质量的重要方面。这方面的维护除了要有计划、有步骤地完成外,还要注意将相关的文档资料加入到前面相应的文档中去。

·  预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环  境的变化,应主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。比如将专用报表功能改成通用报表生成功能,以适应将来报表格式的变化。这方面的维护工作量占整个维护工作量的4%左右。

(3)数据维护

数据维护工作主要是由数据库管理员来负责,主要负责数据库的安全性和完整性以及进行并行性控制。数据库管理员还要负责维护数据库中的数据,当数据库中的数据类型、长度等发生变化时,或者需要添加某个数据项时,要负责修改相关的数据库、数据字典,并通知有关人员。另外,数据库管理员还要负责定期出版数据字典文件及一些其他数据管理文件,以保留系统运行和修改的轨迹。当系统出现硬件故障并得到排除后要负责数据库的恢复工作。

数据维护中还有一项很重要的内容,那就是代码维护。不过代码维护发生的频率相对较小。代码的维护应由代码管理小组进行。变更代码应经过详细讨论,确定之后要用书面形式贯彻。代码维护的困难往往不在于代码本身的变更,而在于新代码的贯彻。为此,除了成立专门的代码管理小组外,各业务部门要指定专人进行代码管理,通过他们贯彻使用新代码。这样做的目的是要明确管理职责,有助于防止和更正错误。

   

3.系统维护的管理和步骤

要强调的是,系统的修改往往会“牵一发而动全身”。程序、文件、代码的局部修改都可能影响系统的其他部分。因此,系统的维护工作应有计划有步骤的统筹安排,按照维护任务的工作范围、严重程度等诸多因素确定优先顺序,制定出合理的维护计划,然后通过一定的批准手续实施对系统的修改和维护。

通常对系统的维护应执行以下步骤:

(1)提出维护或修改要求。操作人员或业务领导用书面形式向负责系统维护工作的王管人员提出对某项工作的修改要求。这种修改要求一般不能直接向程序员提出。

(2)领导审查并做出答复,如同意修改则列入维护计划。系统主管人员进行一定的调查后,根据系统的情况和工作人员的情况,考虑这种修改是否必要、是否可行,做出是否修改、何时修改的答复。如果需要修改,则根据优先程度的不同列入系统维护计划。计划的内容应包括维护工作的范围、所需资源、确认的需求、维护费用、维护进度安排以及验收标准等。

(3)领导分配任务,维护人员执行修改。系统主管人员按照计划向有关的维护人员下达任务,说明修改的内容、要求、期限。维护人员在仔细了解原系统的设计和开发思路的情况下对系统进行修改。

(4)验收维护成果并登记修改信息。系统主管人员组织技术人员对修改部分进行测试和验收。验收通过后,将修改的部分嵌入系统,取代旧的部分。维护人员登记所做的修改,更新相关的文档,并将新系统作为新的版本通报用户和操作人员,指明新的功能和修改的地方。在进行系统维护过程中,还要注意维护的副作用。维护的副作用包括两个方面:一是修改程序代码有时会发生灾难性的错误,造成原来运行比较正常的系统变得不能正常运行,为了避免这类错误,要在修改工作完成后进行测试,直至确认和复查无错为止;二是修改数据库中数据的副作用,当一些数据库中的数据发生变化时,可能导致某些应用软件不再适应这些已经变化了的数据而产生错误。为了避免这类错误,一是要有严格的数据描述文件,即数据字典系统;二是要严格记录这些修改并进行修改后的测试工作。

总之,系统维护工作是信息系统运行阶段的重要工作内容,必须予以充分的重视。维护工作做得越好,信息系统的作用才能够得以充分发挥,信息系统的寿命也就越长。