1、 31 31 系统维护工作的管理系统维护工作的管理本节内容提要:本节内容提要:31.1 31.1 系统的可维护性系统的可维护性 31.2 31.2 系统维护工作的管理系统维护工作的管理 31.1 31.1 系统的可维护性系统的可维护性(1)(1)许多软件的维护十分困难,原因在于这些软件的文档和源程序难于理解,又难于修改。从原则上讲,软件开发工作应严格按照软件工程的要求,遵循特定的软件标准或规范进行。但实际上往往由于种种原因并不能真正作到。例如,文档不全、质量差、开发过程不注意采用结构化方法,忽视程序设计风格等等。因此,造成软件维护工作量加大,成本上升,修改出错率升高。此外,许多维护要求并不是因
2、为程序中出错而提出的,而是为适应环境变化或需求变化而提出的。由于维护工作面广,维护难度大,稍有不慎,就会在修改中给软件带来新的问题或引入新的差错。所以,为了使得软件能够易于维护,必须考虑使软件具有可维护性。31.1 31.1 系统的可维护性系统的可维护性(2)(2)31.1.1 31.1.1 软件可维护性的定义软件可维护性的定义 所谓软件可维护性,是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。可维护性、可使用性、可靠性是衡量软件质量的几个主要质量特性,也是用户十分关心的几个方面。可惜的是影响软件质量的这些重要因素,目前尚没有对它们定量度量的普遍适用的方法。
3、但是就它们的概念和内涵来说则是很明确的。31.1 31.1 系统的可维护性系统的可维护性(3)(3)软件的可维护性是软件开发阶段各个时期的关键目标。目前广泛使用的是用如下的七个特性衡量程序的可维护性。而且对于不同类型的维护,这七种特性的侧重点也不相同。下表显示了在各类维护中应侧重哪些特性。图中的“”表示需要的特性。31.1 31.1 系统的可维护性系统的可维护性(4)(4)纠错性纠错性维护维护适应性适应性维护维护完善性维完善性维护护可理解性可理解性可测试性可测试性可修改性可修改性可靠性可靠性可移植性可移植性可使用性可使用性效率效率在各类维护中的侧重点31.1 31.1 系统的可维护性系统的可维
4、护性(5)(5)上面列举的这些质量特性通常体现在软件产品的许多方面,为使每一个质量特性都达到预定的要求,需要在软件开发的各个阶段采取相应的措施加以保证。即是说,这些质量要求要渗透到各开发阶段的各个步骤当中。因此,软件的可维护性是产品投入运行以前各阶段面向上述各质量特性要求进行开发的最终结果。31.1 31.1 系统的可维护性系统的可维护性(6)(6)31.1.2 31.1.2 可维护性的度量可维护性的度量 人们一直期望对软件的可维护性作出定量度量,但要作到这一点并不容易。许多研究工作集中在这个方面,形成了一个引人注目的学科软件度量学。下面介绍度量一个可维护的程序的七种特性时常用的方法。这就是质
5、量检合表、质量测试、质量标准。质量检查表是用于测试程序中某些质量特性是否存在的一个问题清单。评价者针对检查表上的每一个问题,依据自己的定性判断,回答“Yes”或者“No”。质量测试与质量标准则用于定量分析和评价程序的质量。由于许多质量特性是相互抵触的,要考虑几种不同的度量标准,相应地去度量不同的质量特性。31.1 31.1 系统的可维护性系统的可维护性(7)(7)(l)可理解性 可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。一个可理解的程序主要应具备以下一些特性:模块化(模块结构良好、功能完整、简明),风格一致性(代码风格及设计风格的一致性),不使用令人捉摸不定
6、或含糊不清的代码,使用有意义的数据名和过程名,结构化,完整性(对输入数据进行完整性检查)等。31.1 31.1 系统的可维护性系统的可维护性(8)(8)(2)可靠性 可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。关于可靠性,度量的标准主要有:平均失效间隔时间MTTF(mean time to failure)。平均修复时间MTTR(mean time to repair error)。31.1 31.1 系统的可维护性系统的可维护性(9)(9)(3)可测试性 可测试性表明论证程序正确性的容易程度。程序越简单,证明其正确性就越容易。而且设计合用的测试用例,取决于对
7、程序的全面理解;因此,一个可测试的程序应当是可理解的、可靠的、简单的。对于程序模块,可用程序复杂性来度量可测试性。程序的环路复杂性越大,程序的路径就越多。因此,全面测试程序的难度就越大。31.1 31.1 系统的可维护性系统的可维护性(10)(10)(4)可修改性 可修改性表明程序容易修改的程度。一个可修改的程序应当是可理解的、通用的、灵活的、简单的。其中,通用性是指程序适用于各种功能变化而无需修改。灵活性是指能够容易地对程序进行修改。(5)可移植性 可移植性表明程序转移到一个新的计算环境的可能性的大小。或者它表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程度。一个可移植的程序应具
8、有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能。31.1 31.1 系统的可维护性系统的可维护性(11)(11)(6)效率 效率表明一个程序能执行预定功能而又不浪费机器资源的程度。这些机器资源包括内存容量、外存容量、通道容量和执行时间。(7)可使用性 从用户观点出发,把可使用性定义为程序方便、实用及易于使用的程度。一个可使用的程序应是易于使用的、能允许用户出错和改变,并尽可能不使用户陷入混乱状态的程序。31.1 31.1 系统的可维护性系统的可维护性(12)(12)用于可使用性度量的检查项目主要有:用于可使用性度量的检查项目主要有:(l l)程序是否具有自描述性?(2 2)程序是否能
9、始终如一地按照用户的要求运行?(3 3)程序是否让用户对数据处理有一个满意的和适当的控制?(4 4)程序是否容易学会使用?(5 5)程序是否使用数据管理系统来自动地处理事务性工作和管理格式化、地址分配及存储器组织。(6 6)程序是否具有容错性?(7 7)程序是否灵活?(8 8)其它间接定量度量可维护性的方法31.1 31.1 系统的可维护性系统的可维护性(13)(13)专家们还提出了与软件维护期间工作量有关的一些数据,可以使用它们间接地对软件的可维护性作出估计。(l l)问题识别的时间;(2 2)因管理活动拖延的时间;(3 3)收集维护工具的时间;(4 4)分析、诊断问题的时间;(5 5)修改
10、规格说明的时间;31.1 31.1 系统的可维护性系统的可维护性(14)(14)(6 6)具体的改错或修改的时间;(7 7)局部测试的时间;(8 8)集成或回归测试的时间;(9 9)维护的评审时间;(1010)恢复时间。这些数据反映了维护全过程中检错一纠错一验证的周期,即从检测出软件存在的问题开始至修正它们并经回归测试验证这段时间。可以粗略地认为,这个周期越短,维护越容易。31.2 31.2 系统维护工作的管理系统维护工作的管理(1)(1)系统维护的根据是系统的文档。在系统中,一个程序的改变可能会涉及其它程序或系统。因此,系统维护要特别谨慎。系统维护工作应视维护内容指派专人负责,并通过一定审批
11、手续。对于重大的维护项目要填写申请单,经批复后方可实施。审批人应对系统非常熟悉,能够判断维护的必要性和可能性、维护的影响范围、维护的工作量及维护的后果等等。31.2 31.2 系统维护工作的管理系统维护工作的管理(2)(2)维护工作的步骤是:维护工作的步骤是:(1 1)提出维护要求。)提出维护要求。用户或系统操作人员提出维护要求,填写申请报告。(2 2)审批。)审批。维护申请报告经专家研究和领导审批。(3 3)组建维护小组)组建维护小组。根据维护工作的内容选择有关维护人员组成维护小组,负责维护工作。31.2 31.2 系统维护工作的管理系统维护工作的管理(3)(3)(4 4)维护实施。)维护实施。维护人员研究维护任务,阅读系统文档以确定维护工作的实施细则。进行维护时一定要填写维护记录。(5 5)文档维护。)文档维护。对程序进行维护后,一定要对相应的文档做维护。以保持系统的一致性,给以后的维护打好基础。(6 6)验收。)验收。维护工作完成后,由用户、专家及有关领导进行验收,同时要验收有关资料。对于重大的维护应作为小系统开发对待,按部就班地进行。