版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院第第7 7章章 软件维护技术软件维护技术( (第第7.1-7.47.1-7.4节)节)武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院主要内容主要内容软件维护基本概念软件维护基本概念软件维护过程软件维护过程软件可维护性软件可维护性软件再工程技术软件再工程技术武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院软件维护软件维护所谓软件维护是指软件所谓软件维护是指软件交付使用之后,为了改交付使用之后,为了改正错误或满足新的需求正错误或满足新的需求等而修改软件以达到延等而修改软件以达到延长软件寿命为目的的过长软件寿命为目的的过程。程
2、。 软件维护阶段的长短决软件维护阶段的长短决定了软件寿命的长短;定了软件寿命的长短;软件维护阶段的费用占软件维护阶段的费用占软件总成本的大部分。软件总成本的大部分。 软件维护像一座冰山软件维护像一座冰山武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.1 软件维护的基本概念软件维护的基本概念 软件维护不同于硬件维护,主要原因是软件维护不同于硬件维护,主要原因是软件维护不是因为使用时软件磨损或老软件维护不是因为使用时软件磨损或老化引起,而是由于软件设计不正确、不化引起,而是由于软件设计不正确、不完善或使用环境的变化等引起。完善或使用环境的变化等引起。因而,在维护类型、维护策略、维护成因
3、而,在维护类型、维护策略、维护成本以及维护的影响方面必须引起软件维本以及维护的影响方面必须引起软件维护人员的重视,否则,软件维护对软件护人员的重视,否则,软件维护对软件质量来说将是一场灾难。质量来说将是一场灾难。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.1.1 软件维护类型软件维护类型 起起 因因维维 护护 活活 动动举举 例例由于开发时测试不彻由于开发时测试不彻底或不完全导致运行底或不完全导致运行阶段出现的故障阶段出现的故障改正性维护:改正性维护:识别和纠正软件错误,改正性能上识别和纠正软件错误,改正性能上的缺陷,排除实施中的误使用而进行的诊断和改的缺陷,排除实施中的误使
4、用而进行的诊断和改正错误的活动。约占整个维护的正错误的活动。约占整个维护的20%20%特殊情况(如特殊的特殊情况(如特殊的输入数据组合)未处输入数据组合)未处理引起的故障理引起的故障运行环境的变化运行环境的变化适应性维护适应性维护:使软件适应处理环境或数据要求的:使软件适应处理环境或数据要求的变化而修改软件的活动。约占整个维护的变化而修改软件的活动。约占整个维护的25%25%在字处理系统中增加在字处理系统中增加新的打印设备新的打印设备用户对软件提出新的用户对软件提出新的功能或性能要求功能或性能要求完善性维护或增强:完善性维护或增强:修改或再开发软件,以扩充修改或再开发软件,以扩充软件功能,增强
5、软件性能等。约占整个维护的软件功能,增强软件性能等。约占整个维护的50%50%修改工资管理程序,修改工资管理程序,以体现新的结算方法以体现新的结算方法为提高软件的可维护为提高软件的可维护性等,以便将来进一性等,以便将来进一步改进软件打基础步改进软件打基础预防性维护或再工程:预防性维护或再工程:采用先进的软件工程方法采用先进的软件工程方法对需要维护的软件或软件的某一部分(重新)进对需要维护的软件或软件的某一部分(重新)进行设计、编码和测试。连同其它维护约占整个维行设计、编码和测试。连同其它维护约占整个维护的护的5%5%将非结构化的应用软将非结构化的应用软件转化成结构化的软件转化成结构化的软件件除
6、此四类维护活动外,还有一些其它类型的维护活动,如:支援除此四类维护活动外,还有一些其它类型的维护活动,如:支援性维护(如用户的培训等)。性维护(如用户的培训等)。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.1.2 软件维护策略软件维护策略 不同的维护类型需要采用不同的维护类型需要采用不同的维护策略。不同的维护策略。武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院改正性维护改正性维护 在开发过程中要生成在开发过程中要生成100%可靠无误的软件可靠无误的软件通常是不太现实的,但通过使用一些新技术,通常是不太现实的,但通过使用一些新技术,可以大大减少进行改正性维护的需要。除
7、此之可以大大减少进行改正性维护的需要。除此之外,还可通过以下方法来减少此类维护活动:外,还可通过以下方法来减少此类维护活动:利用应用软件包;利用应用软件包;进行防错程序设计;进行防错程序设计;提高系统结构化程度;提高系统结构化程度;进行周期性维护审查。进行周期性维护审查。武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院适应性维护适应性维护 运行环境的变化是不可避免的,但可以控制。运行环境的变化是不可避免的,但可以控制。进行配置管理。把硬件、操作系统和其他进行配置管理。把硬件、操作系统和其他相关环境因素的可能变化进行配置管理。相关环境因素的可能变化进行配置管理。修改局部化。把因环境变化而
8、必须修改的修改局部化。把因环境变化而必须修改的程序局部于某些程序模块中。程序局部于某些程序模块中。使用例行程序包等。例如使用内部程序列使用例行程序包等。例如使用内部程序列表等,可为维护性修改程序提供方便。表等,可为维护性修改程序提供方便。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院完善性维护完善性维护 利用前两类维护中列举的方法,可以利用前两类维护中列举的方法,可以减少此类维护。另外,使用功能强且易于减少此类维护。另外,使用功能强且易于使用的工具和通过用户使用系统原型模型使用的工具和通过用户使用系统原型模型完整地确定系统需求等可以减少完善性维完整地确定系统需求等可以减少完善性维护
9、的工作量。护的工作量。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院预防性维护预防性维护 可通过采用提前实现或可通过采用提前实现或软件重用等手段或技术来减软件重用等手段或技术来减少此类维护活动的工作量。少此类维护活动的工作量。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院支援性维护支援性维护 可通过提供最新用户文档或可通过提供最新用户文档或联机用户文档,进行适当的用户联机用户文档,进行适当的用户培训或设立专门的维护人员等方培训或设立专门的维护人员等方式来减少此类维护活动。式来减少此类维护活动。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.1.3 软件维护
10、成本软件维护成本 软件维护活动所花费的工作量占软件整个生存软件维护活动所花费的工作量占软件整个生存期工作量的期工作量的70%以上。影响软件维护工作量以上。影响软件维护工作量的因素有很多,就软件系本身而言,有以下几的因素有很多,就软件系本身而言,有以下几个主要方面:个主要方面: 系统的大小系统的大小;程序设计语言程序设计语言;系统年龄系统年龄;数据库技术的应用;数据库技术的应用;软件开发新技术的运用。软件开发新技术的运用。武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院维护工作量:维护工作量:Boehm模型模型MM维护维护=ACT*MM开发开发*EAF ACT=(修改的指令数(修改的指令
11、数+增加的指令数)增加的指令数)/指令总数指令总数;调节因子调节因子EAF(Effort Adjustment Factor) 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院Belady与与Lehman模型模型M=P+K(c-d) MM表示维护所需工作量;表示维护所需工作量;P P表示生产性工作量,如问题分析和评价、表示生产性工作量,如问题分析和评价、修改设计、实现等;修改设计、实现等;K K表示一个经验常数;表示一个经验常数;c c表示因未采用结构化方法和缺少文档而增表示因未采用结构化方法和缺少文档而增加的软件复杂度;加的软件复杂度;d表示维护人员对软件的熟悉程度。表示维护人员对软
12、件的熟悉程度。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.1.4 软件维护的副作用软件维护的副作用 所谓软件维护的副作用,就是指由于修所谓软件维护的副作用,就是指由于修改程序而导致的错误或其它不需要的活改程序而导致的错误或其它不需要的活动。动。Freedman和和Weinberg定义了三类主定义了三类主要副作用,即:修改代码的副作用、修要副作用,即:修改代码的副作用、修改数据的副作用和修改文档资料的副作改数据的副作用和修改文档资料的副作用。用。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院控制副作用控制副作用1 1按模块把修改分组;按模块把修改分组;2 2自顶向下
13、地安排所修改模块的顺序;自顶向下地安排所修改模块的顺序;3 3每次修改一个模块;每次修改一个模块;4 4对于每个修改了的模块,在安排修改下对于每个修改了的模块,在安排修改下一个模块之前,要确定这个修改的副作一个模块之前,要确定这个修改的副作用。用。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.1.5 软件维护的困难软件维护的困难 理解别人的程序困难,且困难程度随软件配置理解别人的程序困难,且困难程度随软件配置成分的减少而迅速增加。成分的减少而迅速增加。需要维护的软件往往存在文档资料不全,甚至需要维护的软件往往存在文档资料不全,甚至有文档也不易理解并和程序代码可能不一致。有文档也
14、不易理解并和程序代码可能不一致。当前,有些软件的文档是在代码形成后为了应当前,有些软件的文档是在代码形成后为了应付所谓的鉴定而突击出来的。付所谓的鉴定而突击出来的。大多数软件在开发时没有考虑到将来的维护。大多数软件在开发时没有考虑到将来的维护。软件维护被人们看成是一种没有创造性的工作,软件维护被人们看成是一种没有创造性的工作,往往不能引起人们的重视。部分人认为,维护往往不能引起人们的重视。部分人认为,维护别人的程序不如开发新的程序。别人的程序不如开发新的程序。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.2 软件维护过程软件维护过程 软件维护过程本质上是修改和压缩了的软件维护过
15、程本质上是修改和压缩了的软件定义和软件开发过程。软件定义和软件开发过程。首先,必须建立一个维护组织,确定提首先,必须建立一个维护组织,确定提出维护申请的过程及评价的过程,为每出维护申请的过程及评价的过程,为每个维护申请规定标准的处理步骤。建立个维护申请规定标准的处理步骤。建立维护活动的登记制度,并规定复审标准。维护活动的登记制度,并规定复审标准。然后,按维护组织建立的过程进行维护然后,按维护组织建立的过程进行维护活动。活动。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.2.1 维护组织维护组织 维护申请维护管理员修改批准人员系统管理员维护人员配置管理员软件系统武汉纺织大学数学与
16、计算机学院武汉纺织大学数学与计算机学院职责职责将维护申请提交给将维护申请提交给维护管理员维护管理员,由维护管理员,由维护管理员将其交给某系统的系统管理员去评价。将其交给某系统的系统管理员去评价。系统管理员系统管理员是熟悉产品程序的某部分的技术人是熟悉产品程序的某部分的技术人员。员。系统管理员对维护申请评价后由系统管理员对维护申请评价后由修改批准人员修改批准人员(又称变化授权人)决定如何进行修改。(又称变化授权人)决定如何进行修改。维护人员维护人员在系统管理员的指导下修改软件系统。在系统管理员的指导下修改软件系统。在维护人员对系统进行修改的过程中,在维护人员对系统进行修改的过程中,配置管配置管理
17、员理员应对软件配置进行审查。应对软件配置进行审查。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.2.2 维护申请维护申请 维护组织通常提供维护申请表维护组织通常提供维护申请表(Maintenance Request FormMaintenance Request Form,简写为,简写为MRFMRF),由申请维护的用户填写。),由申请维护的用户填写。如果是改正性的维护,用户必须完整地如果是改正性的维护,用户必须完整地说明出错的情况,如输入数据,全部输说明出错的情况,如输入数据,全部输出信息以及其他有关材料。出信息以及其他有关材料。如果申请的是适应性或完善性维护,则如果申请的是适
18、应性或完善性维护,则应提出一个简短的需求说明书。应提出一个简短的需求说明书。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院(1 1)为满足)为满足MRFMRF要求所需工作量。要求所需工作量。(2 2)维护请求的性质。)维护请求的性质。(3 3)维护申请的优先次序。)维护申请的优先次序。(4 4)预计修改后的状态。)预计修改后的状态。软件修改报告软件修改报告 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.2.3 维护工作流程维护工作流程 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院(1 1)分析和理解程序。)分析和理解程序。(2 2)修改程序。)修改程序。(
19、3 3)重新验证程序。)重新验证程序。 进行各种测试:进行各种测试: 修改事务、修改程序、操作过程、应用系统运用过程、使用修改事务、修改程序、操作过程、应用系统运用过程、使用过程、各部分接口、作业控制语言、系统软件接口、软件系统之过程、各部分接口、作业控制语言、系统软件接口、软件系统之间接口、安全性、备份间接口、安全性、备份/ /恢复过程等恢复过程等(4)评审)评审实施维护的步骤实施维护的步骤 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.2.4 维护记录与评价维护记录与评价 Swanson维护记录维护记录:程序标识;程序标识;源程序语句数;源程序语句数;机器代码指令数;机器代码
20、指令数;使用的程序设计语言;使用的程序设计语言;程序交付日期;程序交付日期; 程序交付以来的运行次数;程序交付以来的运行次数;自交付以来程序失效的次数;自交付以来程序失效的次数;程序变动的层次和标识;程序变动的层次和标识;因程序变动而增加的语句数;因程序变动而增加的语句数;因程序变动而删除的语句数;因程序变动而删除的语句数;每项修改耗费的人时数;每项修改耗费的人时数;程序修改日期;程序修改日期;软件工程师名字;软件工程师名字;维护请求表的标识;维护请求表的标识;维护类型;维护类型;维护开始与结束日期;维护开始与结束日期;累计用于维护的人时数;累计用于维护的人时数;与完成的维护相联系的效益。与完
21、成的维护相联系的效益。武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院维护评价维护评价程序运行失败的平均数;程序运行失败的平均数;于每类维护活动的总人时数;于每类维护活动的总人时数;平均每个程序、每种语言、每种维护类型所做平均每个程序、每种语言、每种维护类型所做的程序变动数;的程序变动数;维护过程中增加或删除一个源程序语句平均花维护过程中增加或删除一个源程序语句平均花费的人时数;费的人时数;维护每种语言所花费的工作量(平均人时数);维护每种语言所花费的工作量(平均人时数);一张维护申请表的平均周转时间;一张维护申请表的平均周转时间;不同维护类型所占百分比。不同维护类型所占百分比。 武汉
22、纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.3 软件可维护性软件可维护性 软件可维护性是指纠正软件软件可维护性是指纠正软件系统中出现的错误或缺陷,系统中出现的错误或缺陷,以及为满足新的要求进行修以及为满足新的要求进行修改、扩充和压缩软件的容易改、扩充和压缩软件的容易程度。程度。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.3.1 影响软件可维护性的软件属性影响软件可维护性的软件属性 可理解性可理解性:表现为人们通过阅读源代码和表现为人们通过阅读源代码和相关文档,理解软件的结构、接口、功相关文档,理解软件的结构、接口、功能和内部过程的容易程度。能和内部过程的容易程度。
23、 可测试性可测试性: :一个软件容易被测试的程度。一个软件容易被测试的程度。 可修改性可修改性: :程序容易修改的程度。程序容易修改的程度。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.3.2 软件可维护性的定量度量软件可维护性的定量度量 T.GilbT.Gilb建议把维护过程中各种活动耗费的时间记下来,以此来建议把维护过程中各种活动耗费的时间记下来,以此来间接度量软件的可维护性。记录的时间如下:间接度量软件的可维护性。记录的时间如下:问题识别的时间;问题识别的时间;因管理活动拖延的时间;因管理活动拖延的时间;收集维护工具的时间;收集维护工具的时间;分析、诊断问题的时间;分析、
24、诊断问题的时间;修改规格说明的时间;修改规格说明的时间;具体的改错或修改的时间;具体的改错或修改的时间;局部测试的时间;局部测试的时间;集成或回归测试的时间;集成或回归测试的时间;维护评审的时间;维护评审的时间;分发与恢复运行的时间。分发与恢复运行的时间。 以上以上1010项表明了一个维护过程所包含的全部活动。可以粗项表明了一个维护过程所包含的全部活动。可以粗略地认为,这个周期越短,维护就越容易。略地认为,这个周期越短,维护就越容易。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.3.3 提高可维护性的方法提高可维护性的方法 建立明确的软件质量目标和优先级;建立明确的软件质量目标
25、和优先级;621621 使用提高软件质量的技术和工具;使用提高软件质量的技术和工具; 进行明确的质量保证审查;进行明确的质量保证审查; 选择可维护的程序设计语言;选择可维护的程序设计语言; 改进程序文档;改进程序文档; 开发时考虑到维护。开发时考虑到维护。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.4 软件再工程技术软件再工程技术 软件再工程(软件再工程(ReengineeringReengineering)是一类软件工)是一类软件工程活动,通过对旧软件程活动,通过对旧软件( (遗留系统遗留系统) )实施处理,实施处理,以增进对软件的理解,同时又提高了软件自身以增进对软件的理
26、解,同时又提高了软件自身的可维护性、可复用性等。的可维护性、可复用性等。维护的局限:维护的局限:采用新技术所带来的竞争优势受到严重限制;采用新技术所带来的竞争优势受到严重限制;维护旧软件的成本随时间不断增加;维护旧软件的成本随时间不断增加;修改越来越困难。修改越来越困难。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.4.1 逆向工程逆向工程 软件逆向工程,通过对程序的分析,导软件逆向工程,通过对程序的分析,导出更高抽象层次的表示,如从现存的程出更高抽象层次的表示,如从现存的程序中抽取数据、体系结构、过程的设计序中抽取数据、体系结构、过程的设计信息等,是一个设计恢复过程。信息等,
27、是一个设计恢复过程。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.4.2 重构重构 软件重构是对源代码和软件重构是对源代码和/或数据进行修改,或数据进行修改,使其易于理解或维护,以适应将来的变使其易于理解或维护,以适应将来的变更。更。 ArnoldArnold总结了软件重构的好处,即:提总结了软件重构的好处,即:提高了程序的质量;改善了软件生产率;高了程序的质量;改善了软件生产率;减少了维护工作量;使软件易于测试和减少了维护工作量;使软件易于测试和调试;等等。调试;等等。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院面向对象软件重构面向对象软件重构(refactor
28、ing)n重构重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察之行为的前提下提高其可理解性、降低其修改的成本。n重构重构(动词):使用一系列的重构(名词),在不改变软件可观察之行为的前提下调整其结构,以达到提高其可理解性、降低其修改成本的目的。n重构是语义保持的(有测试作为保证)。因此重构只会使软件质量不断变好,不会造成破坏。武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院书籍书籍武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.4.3 正向工程正向工程 正向工程也称为改造,用从现存软件恢正向工程也称为改造,用从现存软件恢复设计中得到的信息去重构现存系统,复设
29、计中得到的信息去重构现存系统,以改善其整体质量。以改善其整体质量。 由于软件的原型(现存系统)已经存在,由于软件的原型(现存系统)已经存在,正向工程的生产率将远高于平均水平;正向工程的生产率将远高于平均水平;同时,又由于用户已对该软件有经验,同时,又由于用户已对该软件有经验,因而正向工程过程可以很容易地确定新因而正向工程过程可以很容易地确定新的需求和变化的方向。的需求和变化的方向。 武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院7.4.4 再工程成本再工程成本/效益分析效益分析 SneedSneed模型模型: :P P1 1:当前对某应用的年维护成本:当前对某应用的年维护成本P P2 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度全款购入进口跑车合同范本3篇
- 二零二五年度企业与个人投资回报对赌协议3篇
- 二零二五年度员工试用期工作内容调整及考核标准协议3篇
- 二零二五年度电商平台商家会员返利合同3篇
- 2025年度新能源汽车产业链投资基金合作协议3篇
- 2025年度公司股东内部关于企业并购整合的专项协议3篇
- 2025年度绿色能源项目分摊协议3篇
- 二零二五年度新能源汽车充电桩建设投资入股合同3篇
- 2025通信销售合同
- 2025年农村土地永久转让与农村电商合作框架合同3篇
- GB/T 22081-2024网络安全技术信息安全控制
- 2024-2025学年上海市闵行区华东师大二附中九年级(上)月考数学试卷(10月份)(含解析)
- 心理健康教育(共35张课件)
- GB/T 44271-2024信息技术云计算边缘云通用技术要求
- 工业项目投资估算及财务评价附表(有计算公式)
- 2024-2030年中国Micro LED行业发展现状调研及市场前景趋势报告
- 高中英语外研版 单词表 必修2
- 2024-2030年中国蓖麻行业市场发展趋势与前景展望战略分析报告
- 2025国家开放大学电大专科《基础写作》期末试题及答案(试卷号2412)
- 用所给词的适当形式填空(专项训练)人教PEP版英语六年级上册
- 2024年全国职业院校技能大赛“新型电力系统与维护”赛项考试题库-中(多选题)
评论
0/150
提交评论