第六章 软件维护PPT讲稿.ppt

上传人:石*** 文档编号:78718714 上传时间:2023-03-19 格式:PPT 页数:48 大小:2.11MB
返回 下载 相关 举报
第六章 软件维护PPT讲稿.ppt_第1页
第1页 / 共48页
第六章 软件维护PPT讲稿.ppt_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《第六章 软件维护PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第六章 软件维护PPT讲稿.ppt(48页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第六章第六章 软件维护软件维护第1页,共48页,编辑于2022年,星期三软件维护软件维护 大型软件维护成本甚至高达开发成本的四倍左右。大型软件维护成本甚至高达开发成本的四倍左右。大型软件维护成本甚至高达开发成本的四倍左右。大型软件维护成本甚至高达开发成本的四倍左右。国外软件开发组织把国外软件开发组织把国外软件开发组织把国外软件开发组织把60%60%60%60%左右的人力用于维护,并有上升趋势。左右的人力用于维护,并有上升趋势。左右的人力用于维护,并有上升趋势。左右的人力用于维护,并有上升趋势。增强功能大约占软件维护成本的增强功能大约占软件维护成本的60%60%,错误更正仅,错误更正仅占占17%

2、17%。因此,软件维护的主题是在旧软件中加入。因此,软件维护的主题是在旧软件中加入新功能,而不是更正错误。新功能,而不是更正错误。维护是解决方案,而不是问题。维护是解决方案,而不是问题。比较软件开发和软件维护中的工作,除了维护中比较软件开发和软件维护中的工作,除了维护中“理解现有的产品理解现有的产品”这项工作之外,其他工作都这项工作之外,其他工作都一样。这项工作占据了大约一样。这项工作占据了大约30%30%的维护时间,是主的维护时间,是主要的维护活动。因此可以说维护比开发更难。要的维护活动。因此可以说维护比开发更难。第2页,共48页,编辑于2022年,星期三软件维护软件维护编程大师曾说过:编程

3、大师曾说过:“哪怕程序只有三行长,总有哪怕程序只有三行长,总有一天你也不得不对它进行维护。一天你也不得不对它进行维护。”软件维护是软件生命周期的最后一个阶段,软件软件维护是软件生命周期的最后一个阶段,软件从部署完毕到退役的整个时间内对软件的改动所从部署完毕到退役的整个时间内对软件的改动所做的工作都是维护的内容。做的工作都是维护的内容。在项目的各个阶段对项目的可维护性进行充分考在项目的各个阶段对项目的可维护性进行充分考虑、对可维护性的严格评审以及在维护阶段有效虑、对可维护性的严格评审以及在维护阶段有效地组织和管理维护活动,则是保证软件可维护性地组织和管理维护活动,则是保证软件可维护性和降低维护费

4、用的关键。和降低维护费用的关键。第3页,共48页,编辑于2022年,星期三第六章第六章 软件维护软件维护6.1 软件维护的定义和分类软件维护的定义和分类6.2 软件维护的特点软件维护的特点6.3 可维护性可维护性6.4 维护过程与维护活动维护过程与维护活动6.5 软件维护的副作用软件维护的副作用6.6 软件再工程软件再工程6.7 小结小结第4页,共48页,编辑于2022年,星期三6.1 软件维护的定义和分类软件维护的定义和分类软软件件维维护护:是是在在软软件件已已经经交交付付使使用用之之后后,为为了了改正错误或满足新的需要而修改软件的过程。改正错误或满足新的需要而修改软件的过程。维维护护的的目

5、目的的:保保证证软软件件系系统统能能持持续续地地与与用用户户环环境境、数数据据处处理理操操作作、政政府府或或其其他他有有关关部部门门的请求取得协调。的请求取得协调。第5页,共48页,编辑于2022年,星期三软件维护的分类q按照维护的起因分类:纠错性维护 适应性维护 改善性维护 预防性维护四类四类第6页,共48页,编辑于2022年,星期三1.纠错性维护纠错性维护在软件交付使用后,因开发时测试的不彻底、不在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就这些隐藏下来的错误在某些

6、特定的使用环境下就会暴露出来。会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做纠错性维护。正错误的过程就叫做纠错性维护。第7页,共48页,编辑于2022年,星期三2.适应性维护适应性维护 适应性维护适应性维护适应性维护适应性维护为适应软件运行环境的变化而修改软件的活动。为适应软件运行环境的变化而修改软件的活动。为适应软件运行环境的变化而修改软件的活动。为适应软件运行环境的变化而修改软件的活动。在使用过程中,在使用过程中,在使用过程中,在使用过程中

7、,l外部环境(新的硬、软件配置)l数据环境(数据库、数据格式、数据输入/输输出方式、数据存储介质)出方式、数据存储介质)可能发生变化。可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维为使软件适应这种变化,而去修改软件的过程就叫做适应性维为使软件适应这种变化,而去修改软件的过程就叫做适应性维为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。护。护。护。第8页,共48页,编辑于2022年,星期三3.改善性维护改善性维护 改善性维护改善性维护根据用户在软件使用过程中提出根据用户在软件使用过程中提出的建设性意见而进行的维护活动。的建设性意见而进行的维护活动。主要是针对用户提

8、出的新的软件需求或修改原有主要是针对用户提出的新的软件需求或修改原有的软件需求而进行的维护,该种维护通常占所有的软件需求而进行的维护,该种维护通常占所有维护工作量的一半以上。软件在部署之后一段时维护工作量的一半以上。软件在部署之后一段时间内,用户的改善性维护应该是递减的。间内,用户的改善性维护应该是递减的。第9页,共48页,编辑于2022年,星期三4.预防性维护预防性维护 预防性维护预防性维护为了进一步改善软件系统的可维为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。护性和可靠性,并为以后的改进奠定基础。预防性维护可以采取逆向工程(预防性维护可以采取逆向工程(reverse

9、engineering)和重构工程()和重构工程(re-engineering)方)方式。式。第10页,共48页,编辑于2022年,星期三6.2 软件维护的特点软件维护的特点6.2.1 软件工程方法对维护的影响软件工程方法对维护的影响6.2.2 维护的代价高昂维护的代价高昂6.2.3 软件维护中的一些典型问题软件维护中的一些典型问题第11页,共48页,编辑于2022年,星期三6.2.1 软件工程方法对维护的影响 软件的开发过程对软件的维护产生较大的影响。软件的开发过程对软件的维护产生较大的影响。软件的开发过程对软件的维护产生较大的影响。软件的开发过程对软件的维护产生较大的影响。如果采用软件工程

10、的方法进行软件开发,保证每个阶段如果采用软件工程的方法进行软件开发,保证每个阶段如果采用软件工程的方法进行软件开发,保证每个阶段如果采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档,这样维护会相对容易,被称为都有完整且详细的文档,这样维护会相对容易,被称为都有完整且详细的文档,这样维护会相对容易,被称为都有完整且详细的文档,这样维护会相对容易,被称为结构化的维护。结构化的维护。结构化的维护。结构化的维护。反之,如果不采用软件工程方法开发软件,软件只有程反之,如果不采用软件工程方法开发软件,软件只有程反之,如果不采用软件工程方法开发软件,软件只有程反之,如果不采用软件工程方法开发

11、软件,软件只有程序而欠缺文档,则维护工作变得十分困难,被成为非结序而欠缺文档,则维护工作变得十分困难,被成为非结序而欠缺文档,则维护工作变得十分困难,被成为非结序而欠缺文档,则维护工作变得十分困难,被成为非结构化的维护。构化的维护。构化的维护。构化的维护。结构化维护结构化维护非结构化维护非结构化维护程序程序文档文档第12页,共48页,编辑于2022年,星期三结构化维护与非结构化维护交付使用交付使用分析设计分析设计制定计划制定计划修改计划修改计划重新编码重新编码复审通过复审通过文件有吗文件有吗苦读代码苦读代码找到问题找到问题重新编码重新编码复审通过复审通过维护请求维护请求n ny yy yy y

12、y yn nn nn n结构化维护结构化维护 非结构化维护非结构化维护 第13页,共48页,编辑于2022年,星期三非结构化维护非结构化维护在非结构化维护过程中,开发人员只能通过阅读、在非结构化维护过程中,开发人员只能通过阅读、理解和分析理解和分析源程序源程序来了解系统功能、软件结构、来了解系统功能、软件结构、数据结构、系统接口和设计约束等,这样做是十数据结构、系统接口和设计约束等,这样做是十分困难的,也容易产生误解。分困难的,也容易产生误解。要弄清楚整个系统,势必要花费大量的人力和物要弄清楚整个系统,势必要花费大量的人力和物力,对源程序修改产生的后果难以估计。力,对源程序修改产生的后果难以估

13、计。在没有文档的情况下,也不可能进行回归测试,在没有文档的情况下,也不可能进行回归测试,很难保证程序的正确性。很难保证程序的正确性。第14页,共48页,编辑于2022年,星期三结构化维护结构化维护在结构化维护的过程中,所开发的软件具有各个在结构化维护的过程中,所开发的软件具有各个阶段的文档,它对于理解和掌握软件的功能、性阶段的文档,它对于理解和掌握软件的功能、性能、体系结构、数据结构、系统接口和设计约束能、体系结构、数据结构、系统接口和设计约束等有很大的作用。等有很大的作用。维护时,开发人员从分析需求规格说明开始,明维护时,开发人员从分析需求规格说明开始,明白软件功能和性能上的改变,对设计说明

14、文档进白软件功能和性能上的改变,对设计说明文档进行修改和复查,再根据设计修改进行程序变动,行修改和复查,再根据设计修改进行程序变动,并用测试文档中的测试用例进行回归测试,最后并用测试文档中的测试用例进行回归测试,最后将修改后的软件再次交付使用。这种维护有利于将修改后的软件再次交付使用。这种维护有利于减少工作量和降低成本,大大提高软件的维护效减少工作量和降低成本,大大提高软件的维护效率。率。第15页,共48页,编辑于2022年,星期三6.2.2 6.2.2 维护的代价高昂维护的代价高昂维护费用只不过是软件维护最明显的代价,其他维护费用只不过是软件维护最明显的代价,其他一些还不明显的代价将来可能更

15、为人们关注。其一些还不明显的代价将来可能更为人们关注。其他无形的代价还有:他无形的代价还有:可用的资源被软件维护所占用。可用的资源被软件维护所占用。未能及时满足用户的维护要求时引起用户不满。未能及时满足用户的维护要求时引起用户不满。维护时改动软件,引入了潜在故障,降低了软维护时改动软件,引入了潜在故障,降低了软件质量。件质量。抽调人员从事维护工作,对新的开发过程造成抽调人员从事维护工作,对新的开发过程造成混乱。混乱。导致生产率的大幅下降。导致生产率的大幅下降。第16页,共48页,编辑于2022年,星期三软件维护的代价高昂软件维护的代价高昂用于维护工作的劳动可以划分成:用于维护工作的劳动可以划分

16、成:生产性活动生产性活动(如,分析评价、修改设计、编写(如,分析评价、修改设计、编写程序代码等)程序代码等)非生产性活动非生产性活动(例如,理解程序代码功能、解(例如,理解程序代码功能、解释数据结构、接口特点、性能限度等)释数据结构、接口特点、性能限度等)第17页,共48页,编辑于2022年,星期三维护工作量的计算模型维护工作量的计算模型MP+Ke(c-d)其中:其中:其中:其中:M M M M:维护所用工作量;:维护所用工作量;:维护所用工作量;:维护所用工作量;P P P P:生产性工作量:生产性工作量:生产性工作量:生产性工作量 分析评价、修改设计和代码;分析评价、修改设计和代码;分析评

17、价、修改设计和代码;分析评价、修改设计和代码;KeKeKeKe(c-d)(c-d)(c-d)(c-d):助动性工作量:助动性工作量:助动性工作量:助动性工作量 理解文档和代码;理解文档和代码;理解文档和代码;理解文档和代码;K K K K:经验常数;:经验常数;:经验常数;:经验常数;c c c c:软软软软件件件件的的的的维维维维护护护护复复复复杂杂杂杂度度度度,由由由由软软软软件件件件本本本本身身身身的的的的复复复复杂杂杂杂度度度度,软软软软件件件件的的的的设设设设计质量以及文档化的程度等因素决定;计质量以及文档化的程度等因素决定;计质量以及文档化的程度等因素决定;计质量以及文档化的程度等

18、因素决定;d d d d:维护人员对软件的熟悉程度;:维护人员对软件的熟悉程度;:维护人员对软件的熟悉程度;:维护人员对软件的熟悉程度;上述模型表明,如果软件开发没有运用软件工程方法学,上述模型表明,如果软件开发没有运用软件工程方法学,上述模型表明,如果软件开发没有运用软件工程方法学,上述模型表明,如果软件开发没有运用软件工程方法学,而且原来的开发人员未能够参与到维护工作之中,则维而且原来的开发人员未能够参与到维护工作之中,则维而且原来的开发人员未能够参与到维护工作之中,则维而且原来的开发人员未能够参与到维护工作之中,则维护工作量和费用将指数增加。护工作量和费用将指数增加。护工作量和费用将指数

19、增加。护工作量和费用将指数增加。第18页,共48页,编辑于2022年,星期三6.2.3 软件维护中的一些典型问题软件维护中的一些典型问题与软件维护有关的大多数问题都可归因于软件定与软件维护有关的大多数问题都可归因于软件定义和开发方法上的不足。义和开发方法上的不足。软件开发时采用急功近利,还是放眼未来的态度,软件开发时采用急功近利,还是放眼未来的态度,对软件维护影响极大。对软件维护影响极大。一般说来,软件开发若不严格遵循软件开发标准,一般说来,软件开发若不严格遵循软件开发标准,软件维护就会遇到许多困难。软件维护就会遇到许多困难。第19页,共48页,编辑于2022年,星期三维护的问题维护的问题(1

20、 1 1 1)理解他人编写的程序一般都有一定的困难性。)理解他人编写的程序一般都有一定的困难性。)理解他人编写的程序一般都有一定的困难性。)理解他人编写的程序一般都有一定的困难性。(2 2 2 2)软件配置的文档严重不足甚至没有,或者没有合格的文档。)软件配置的文档严重不足甚至没有,或者没有合格的文档。)软件配置的文档严重不足甚至没有,或者没有合格的文档。)软件配置的文档严重不足甚至没有,或者没有合格的文档。(3 3 3 3)当当当当需需需需要要要要对对对对软软软软件件件件进进进进行行行行维维维维护护护护时时时时,由由由由于于于于软软软软件件件件人人人人员员员员经经经经常常常常流流流流动动动动

21、,维维维维护护护护阶阶阶阶段段段段持持持持续续续续的的的的时时时时间间间间又又又又很很很很长长长长,所所所所以以以以一一一一般般般般不不不不能能能能指指指指望望望望由由由由原原原原来来来来的的的的开开开开发发发发人人人人员员员员来来来来完完完完成成成成或或或或提提提提供软件的解释。供软件的解释。供软件的解释。供软件的解释。(4 4 4 4)绝大多数软件在设计时没有考虑到将来的修改问题。)绝大多数软件在设计时没有考虑到将来的修改问题。)绝大多数软件在设计时没有考虑到将来的修改问题。)绝大多数软件在设计时没有考虑到将来的修改问题。(5 5 5 5)软软软软件件件件维维维维护护护护可可可可以以以以说

22、说说说是是是是一一一一项项项项毫毫毫毫无无无无吸吸吸吸引引引引力力力力的的的的工工工工作作作作。之之之之所所所所以以以以形形形形成成成成这这这这样样样样一一一一种种种种观观观观念念念念,一一一一方方方方面面面面是是是是因因因因为为为为软软软软件件件件维维维维护护护护工工工工作作作作量量量量大大大大,看看看看不不不不到到到到什什什什么么么么“成成成成果果果果”,更更更更主要的原因是因为维护工作难度大,又经常遭受挫折。主要的原因是因为维护工作难度大,又经常遭受挫折。主要的原因是因为维护工作难度大,又经常遭受挫折。主要的原因是因为维护工作难度大,又经常遭受挫折。第20页,共48页,编辑于2022年,

23、星期三6.3 可维护性可维护性6.3.1 决定软件可维护性的因素决定软件可维护性的因素6.3.2 可维护性的若干量化的测度可维护性的若干量化的测度6.3.3 提高软件的可维护性方法提高软件的可维护性方法第21页,共48页,编辑于2022年,星期三6.3 6.3 可维护性可维护性软件可维护性可以定性地定义为:维护人员理解、软件可维护性可以定性地定义为:维护人员理解、改正、改动和改进这个软件的难易程度。软件的改正、改动和改进这个软件的难易程度。软件的可维护性是软件开发的目标之一。可维护性是软件开发的目标之一。可维护性、可用性、可靠性是软件质量的主要质可维护性、可用性、可靠性是软件质量的主要质量特征

24、。量特征。第22页,共48页,编辑于2022年,星期三6.3.1 决定软件可维护性的因素决定软件可维护性的因素决定软件可维护性的因素主要有下述决定软件可维护性的因素主要有下述5个:个:(1)可理解性可理解性(2)可测试性可测试性(3)可修改性可修改性(4)可移植性可移植性(5)可重用性可重用性第23页,共48页,编辑于2022年,星期三6.3.2 可维护性的若干量化的测度 软件可维护性与软件质量和可靠性一样是难于量化的概念,软件可维护性与软件质量和可靠性一样是难于量化的概念,然而借助维护活动中可以定量估算的属性,能间接地度量可然而借助维护活动中可以定量估算的属性,能间接地度量可维护性维护性:(

25、1)(1)问题识别时间。问题识别时间。(2)(2)管理延迟时间。管理延迟时间。(3)(3)收集维护工具所用的时间。收集维护工具所用的时间。(4)(4)分析问题所需时间。分析问题所需时间。(5)(5)形成修改说明书所需时间。形成修改说明书所需时间。(6)(6)纠错(或修改)所用时间。纠错(或修改)所用时间。(7)(7)局部测试所用时间。局部测试所用时间。(8)(8)整体测试所用时间。整体测试所用时间。(9)(9)维护复审所用时间。维护复审所用时间。(10)(10)完全恢复所用时间。完全恢复所用时间。第24页,共48页,编辑于2022年,星期三6.3.3 提高软件的可维护性方法提高软件的可维护性方

26、法(1)建立软件质量目标和优先级(2)使用提高软件质量的技术和工具(3)进行明确的质量保证审查(4)选择可维护性好的程序设计语言(5)建立维护文档第25页,共48页,编辑于2022年,星期三6.4 维护过程与维护活动维护过程与维护活动6.4.1 软件维护工作的内容软件维护工作的内容6.4.2 建立维护机构建立维护机构6.4.3 软件维护流程软件维护流程6.4.4 维护报告维护报告第26页,共48页,编辑于2022年,星期三6.4 维护过程与维护活动维护过程与维护活动为了有效地进行软件维护,应事先就开始做组织为了有效地进行软件维护,应事先就开始做组织工作。工作。首先首先建立维护的机构建立维护的机

27、构 申明申明提出维护申请报告的过程提出维护申请报告的过程及及评价的过程评价的过程 为每一个维护申请规定为每一个维护申请规定标准的处理步骤标准的处理步骤 建立建立维护活动的登记制度维护活动的登记制度以及规定以及规定评价和评审评价和评审的标准的标准。第27页,共48页,编辑于2022年,星期三6.4.1 软件维护工作的内容软件维护工作的内容(1)评价系统的升级要求,在对软件功能和运行环境分析的基础上,提出升级报告。(2)评价系统的改正问题请求,提出对请求改正的解决办法。(3)程序的紧急排错。(4)制定系统的维护更新计划。(5)维护更新版本需求分析,编写更新需求文档。(6)维护更新版本设计,设计维护

28、更新版本的程序及数据结构,完成设计。第28页,共48页,编辑于2022年,星期三6.4.1 软件维护工作的内容软件维护工作的内容(7)维护更新版本编码和测试,产生新的版本。(8)发布新版本。(9)实施预防性维护。(10)人员培训。(11)周期性系统评估,写出评估报告。(l2)系统运行一定时间后,对系统进行全面评审,写出报告。第29页,共48页,编辑于2022年,星期三6.4.2 建立维护机构建立维护机构维护决策机构维护决策机构维护管理员维护管理员系统管理员系统管理员维护人员维护人员配置管理员配置管理员维护申请维护申请每个维护申请通过维护管理员转告给系统管理员,系统管理员一般每个维护申请通过维护

29、管理员转告给系统管理员,系统管理员一般都是对程序都是对程序(某一部分某一部分)特别熟悉的技术人员,他们对维护申请及可特别熟悉的技术人员,他们对维护申请及可能引起的软件修改进行评估,并向修改控制决策机构能引起的软件修改进行评估,并向修改控制决策机构(一个或一组管一个或一组管理者理者)报告,由它最后确定是否采取行动。报告,由它最后确定是否采取行动。在维护活动开始之前就明确维护责任是十分必要的,可以大大地减在维护活动开始之前就明确维护责任是十分必要的,可以大大地减少维护过程中可能出现的混乱。少维护过程中可能出现的混乱。第30页,共48页,编辑于2022年,星期三6.4.3 软件维护流程软件维护流程第

30、31页,共48页,编辑于2022年,星期三6.4.4 维护报告维护报告编写维护报告要填写两项文件:编写维护报告要填写两项文件:(1)维护申请报告()维护申请报告(Maintenance Request Form)。)。(2)软件维护记录)软件维护记录常用的软件维护档案可参见表常用的软件维护档案可参见表6-1。第32页,共48页,编辑于2022年,星期三维护申请报告MRF 应该用标准的格式来表达维护要求。软件维护人员通常提应该用标准的格式来表达维护要求。软件维护人员通常提供给用户空白的维护请求表(报告)即软件问题报告,该供给用户空白的维护请求表(报告)即软件问题报告,该报告(表)由要求一项维护活

31、动的用户填写。报告(表)由要求一项维护活动的用户填写。如遇到什么错误,用户需要详细描述错误出现的现场信息如遇到什么错误,用户需要详细描述错误出现的现场信息(包括包括输入数据、列表文件和其他有关信息输入数据、列表文件和其他有关信息);对适应性维护、完善性维护应该给出一个简短的需求规对适应性维护、完善性维护应该给出一个简短的需求规格说明书。最终由维护管理员和系统管理员评价用户用格说明书。最终由维护管理员和系统管理员评价用户用户提出的维护请求表。户提出的维护请求表。一个维护申请被核准后,维护请求表就成为外部文档,视作规划一个维护申请被核准后,维护请求表就成为外部文档,视作规划本次维护任务的依据。本次

32、维护任务的依据。第33页,共48页,编辑于2022年,星期三例子:软件维护申请报告评价负责人:*申请评价结果:修正错误批准 拒绝申请人:*环境 自 *年*月*日 至 *年*月*日 共计 0.5 人月维护时间维护要求及优先级:在测评之前必须修正,否则会造成测评结果的不准确软件:纠错维护 适应维护 完善维护硬件:系统设备 外部设备维护类型远程维护现场维护维护安排预计维护的结果:修正程序中的人员权限,使得每种类型的人员只能进行自身类型的测评。问题说明:(数据输入、错误现象)不同类型的人员可以进行交叉测评。按需求:各类人员只进行自身类型的测评,如管理人员只能对管理人员进行测评,教师只能测评教师。项目编

33、号网络测评系统项目名称第34页,共48页,编辑于2022年,星期三软件维护记录的保存 有效的保存维护记录是极端重要的。有效的保存维护记录是极端重要的。保存维护记录的第一个问题就是那些数据值得保存?保存维护记录的第一个问题就是那些数据值得保存?SwansonSwanson给出了下述的项目表:给出了下述的项目表:(1 1 1 1)程序名称;程序名称;程序名称;程序名称;(2 2 2 2)源程序语句条数;源程序语句条数;源程序语句条数;源程序语句条数;(3 3 3 3)机器代码指令条数;机器代码指令条数;机器代码指令条数;机器代码指令条数;(4 4 4 4)使用的程序设计语言;使用的程序设计语言;使

34、用的程序设计语言;使用的程序设计语言;(5 5 5 5)程序的安装日期;程序的安装日期;程序的安装日期;程序的安装日期;(6 6 6 6)程序安装后的运行次数;程序安装后的运行次数;程序安装后的运行次数;程序安装后的运行次数;(7 7 7 7)与程序安装后运行次数有关的处理故障的次数;与程序安装后运行次数有关的处理故障的次数;与程序安装后运行次数有关的处理故障的次数;与程序安装后运行次数有关的处理故障的次数;第35页,共48页,编辑于2022年,星期三软件维护记录(8 8 8 8)程序修改的层次和名称;程序修改的层次和名称;程序修改的层次和名称;程序修改的层次和名称;(9 9 9 9)由于程序

35、修改而增加的源程序语句条数;由于程序修改而增加的源程序语句条数;由于程序修改而增加的源程序语句条数;由于程序修改而增加的源程序语句条数;(10101010)由于程序修改而删除的源程序语句条数;由于程序修改而删除的源程序语句条数;由于程序修改而删除的源程序语句条数;由于程序修改而删除的源程序语句条数;(11111111)每项修改所付出的每项修改所付出的每项修改所付出的每项修改所付出的“人时人时人时人时”数;数;数;数;(12121212)程序修改的日期;程序修改的日期;程序修改的日期;程序修改的日期;(13131313)软件维护人员的姓名;软件维护人员的姓名;软件维护人员的姓名;软件维护人员的姓

36、名;(14141414)维护申请报告的名称;维护申请报告的名称;维护申请报告的名称;维护申请报告的名称;(15151515)维护类型;维护类型;维护类型;维护类型;(16161616)维护开始时间和维护结束时间;维护开始时间和维护结束时间;维护开始时间和维护结束时间;维护开始时间和维护结束时间;(17171717)用于维护的累计用于维护的累计用于维护的累计用于维护的累计“人时人时人时人时”数;数;数;数;(18181818)维护工作的净收益。维护工作的净收益。维护工作的净收益。维护工作的净收益。第36页,共48页,编辑于2022年,星期三例子:软件维护记录维护结维护结果:果:经过对经过对需求的

37、需求的进进一步确一步确认认,对对指定指定编编号的模号的模块进块进行了修改,行了修改,纠纠正了源程序中出正了源程序中出现现的的错误错误。维护维护人人员员:*0.20.2个人月个人月修改部分源程序修改部分源程序查错查错,确定,确定错误错误位置位置*月月*日日维护维护人人员员工作量工作量增增/删删/改改维护维护内容内容日期日期编编号:号:evalobject_01evalobject_01机器指令机器指令长长度:度:25Kb25Kb程序安装日期:程序安装日期:*年年*月月*日日程序运行程序运行时间时间:模模块块名称:名称:测评测评控制管理控制管理源程序行数:源程序行数:210210编编程程语语言:言

38、:PHPPHP失效次数:失效次数:3 3初始状初始状态态描述:不同描述:不同类类型的人型的人员员可以可以进进行交叉行交叉测评测评。按需求:各。按需求:各类类人人员员只只进进行自身行自身类类型的型的测测评测测评,如管理人,如管理人员员只能只能对对管理人管理人员进员进行行测评测评,教,教师师只能只能测评测评教教师师。项项目名称:网目名称:网络测评络测评系系统统计计划划编编号:号:eval_wh_012eval_wh_012日期:日期:*年年*月月*日日记录编记录编号:号:eval_wh_012 eval_wh_012 第37页,共48页,编辑于2022年,星期三6.4.5 6.4.5 维护评价维护

39、评价 一般来说,可以从以下七个方面来评价维护工作:一般来说,可以从以下七个方面来评价维护工作:一般来说,可以从以下七个方面来评价维护工作:一般来说,可以从以下七个方面来评价维护工作:(1 1 1 1)每次程序运行时的平均出错次数;)每次程序运行时的平均出错次数;)每次程序运行时的平均出错次数;)每次程序运行时的平均出错次数;(2 2 2 2)用于每一类维护活动的总)用于每一类维护活动的总)用于每一类维护活动的总)用于每一类维护活动的总“人时人时人时人时”数;数;数;数;(3 3 3 3)每个程序、每种语言、每种维护类型所做的平均修改数;)每个程序、每种语言、每种维护类型所做的平均修改数;)每个

40、程序、每种语言、每种维护类型所做的平均修改数;)每个程序、每种语言、每种维护类型所做的平均修改数;(4 4 4 4)维维维维护护护护过过过过程程程程中中中中,增增增增加加加加或或或或删删删删除除除除每每每每条条条条源源源源程程程程序序序序语语语语句句句句花花花花费费费费的的的的平平平平均均均均“人时人时人时人时”数;数;数;数;(5 5 5 5)用于每种语言的平均)用于每种语言的平均)用于每种语言的平均)用于每种语言的平均“人时人时人时人时”数;数;数;数;(6 6 6 6)一张维护申请报告的平均处理时间;)一张维护申请报告的平均处理时间;)一张维护申请报告的平均处理时间;)一张维护申请报告的

41、平均处理时间;(7 7 7 7)各类维护类型所占的百分比。)各类维护类型所占的百分比。)各类维护类型所占的百分比。)各类维护类型所占的百分比。第38页,共48页,编辑于2022年,星期三6.5 软件维护的副作用 软件修改是一项很危险的工作软件修改是一项很危险的工作软件修改是一项很危险的工作软件修改是一项很危险的工作,对一个复杂的逻辑过程对一个复杂的逻辑过程对一个复杂的逻辑过程对一个复杂的逻辑过程,那怕那怕那怕那怕做一项微小的改动做一项微小的改动做一项微小的改动做一项微小的改动,都可能引入潜在的错误都可能引入潜在的错误都可能引入潜在的错误都可能引入潜在的错误,虽然设计文档化和虽然设计文档化和虽然

42、设计文档化和虽然设计文档化和细致的回归测试有助于排除错误细致的回归测试有助于排除错误细致的回归测试有助于排除错误细致的回归测试有助于排除错误,但是维护仍然会产生副但是维护仍然会产生副但是维护仍然会产生副但是维护仍然会产生副作用。作用。作用。作用。软件维护的副作用指,由于维护或在维护过程中其他一些软件维护的副作用指,由于维护或在维护过程中其他一些软件维护的副作用指,由于维护或在维护过程中其他一些软件维护的副作用指,由于维护或在维护过程中其他一些不期望的行为引入的错误不期望的行为引入的错误不期望的行为引入的错误不期望的行为引入的错误,副作用大致可分为三类副作用大致可分为三类副作用大致可分为三类副作

43、用大致可分为三类:代码副作用代码副作用代码副作用代码副作用 数据副作用数据副作用数据副作用数据副作用 文档的副作用文档的副作用文档的副作用文档的副作用第39页,共48页,编辑于2022年,星期三代码的副作用修改或删除子程序;修改或删除语句标号;修改或删除标识符;为提高执行效率而做的修改;修改文件的open、close操作;修改逻辑操作符;由设计变动引起的代码修改;修改对边界条件的测试。第40页,共48页,编辑于2022年,星期三数据的副作用局部和全局常量的再定义;记录或文件格式的再定义;增减数据或其他复杂数据结构的体积;修改全局数据;重新初始化控制标志和指针;重新排列I/O表或子程序参数表。第

44、41页,共48页,编辑于2022年,星期三文档的副作用 维护应统一考虑整个软件配置维护应统一考虑整个软件配置维护应统一考虑整个软件配置维护应统一考虑整个软件配置,而不仅仅是源代码。否则而不仅仅是源代码。否则而不仅仅是源代码。否则而不仅仅是源代码。否则,由于在设计文档和用由于在设计文档和用由于在设计文档和用由于在设计文档和用户手册中未能准确反映修改情况而引起文档副作用。户手册中未能准确反映修改情况而引起文档副作用。户手册中未能准确反映修改情况而引起文档副作用。户手册中未能准确反映修改情况而引起文档副作用。对软件的任何修改都应在相应的技术文档中反映出来对软件的任何修改都应在相应的技术文档中反映出来

45、对软件的任何修改都应在相应的技术文档中反映出来对软件的任何修改都应在相应的技术文档中反映出来,如果设计文档不能与如果设计文档不能与如果设计文档不能与如果设计文档不能与软件当前的状况对应则比没有文档更糟。软件当前的状况对应则比没有文档更糟。软件当前的状况对应则比没有文档更糟。软件当前的状况对应则比没有文档更糟。对用户来说对用户来说对用户来说对用户来说,若使用说明中未能反映修改后的状况若使用说明中未能反映修改后的状况若使用说明中未能反映修改后的状况若使用说明中未能反映修改后的状况,那么用户在这些问题上必定那么用户在这些问题上必定那么用户在这些问题上必定那么用户在这些问题上必定出错。出错。出错。出错

46、。一次维护完成之后一次维护完成之后一次维护完成之后一次维护完成之后,再次交付软件之前应仔细复审整个配置再次交付软件之前应仔细复审整个配置再次交付软件之前应仔细复审整个配置再次交付软件之前应仔细复审整个配置,有效地减少文档副有效地减少文档副有效地减少文档副有效地减少文档副作用。作用。作用。作用。某些维护申请不必修改设计和代码某些维护申请不必修改设计和代码某些维护申请不必修改设计和代码某些维护申请不必修改设计和代码,只需整理用户文档便可达到维护的只需整理用户文档便可达到维护的只需整理用户文档便可达到维护的只需整理用户文档便可达到维护的目的。目的。目的。目的。第42页,共48页,编辑于2022年,星

47、期三6.6 软件再工程软件再工程6.6.1 软件再工程过程模型软件再工程过程模型6.6.2 逆向工程逆向工程6.6.3 软件重构软件重构第43页,共48页,编辑于2022年,星期三6.6 软件再工程软件再工程 所谓软件再工程(所谓软件再工程(所谓软件再工程(所谓软件再工程(Software ReengineeringSoftware Reengineering),就是将新技术),就是将新技术),就是将新技术),就是将新技术和新工具应用于老的软件的一种较和新工具应用于老的软件的一种较和新工具应用于老的软件的一种较和新工具应用于老的软件的一种较“彻底彻底彻底彻底”的预防性维护。的预防性维护。的预防

48、性维护。的预防性维护。软件再工程不同于一般的软件维护。后者是局部的,以完成纠软件再工程不同于一般的软件维护。后者是局部的,以完成纠软件再工程不同于一般的软件维护。后者是局部的,以完成纠软件再工程不同于一般的软件维护。后者是局部的,以完成纠错或适应需求变化为目的;而软件再工程则是运用逆向工程错或适应需求变化为目的;而软件再工程则是运用逆向工程错或适应需求变化为目的;而软件再工程则是运用逆向工程错或适应需求变化为目的;而软件再工程则是运用逆向工程(Reverse EngineeringReverse Engineering)、重构()、重构()、重构()、重构(RestructureRestruc

49、ture)等技术,)等技术,)等技术,)等技术,在充分理解原有软件的基础上,进行分解、综合,并重新构在充分理解原有软件的基础上,进行分解、综合,并重新构在充分理解原有软件的基础上,进行分解、综合,并重新构在充分理解原有软件的基础上,进行分解、综合,并重新构建软件,用以提高软件的可理解性、可维护性、可复用性或建软件,用以提高软件的可理解性、可维护性、可复用性或建软件,用以提高软件的可理解性、可维护性、可复用性或建软件,用以提高软件的可理解性、可维护性、可复用性或演化性(演化性(演化性(演化性(EvolvabilityEvolvability)。)。)。)。第44页,共48页,编辑于2022年,星

50、期三6.6.1 软件再工程过程模型软件再工程过程模型 信息库中保存了由软件公司维护的所有应用软件的基本信息,包括应用信息库中保存了由软件公司维护的所有应用软件的基本信息,包括应用信息库中保存了由软件公司维护的所有应用软件的基本信息,包括应用信息库中保存了由软件公司维护的所有应用软件的基本信息,包括应用软件的设计、开发及维护方面的数据,例如最初构建时间、以往维护情软件的设计、开发及维护方面的数据,例如最初构建时间、以往维护情软件的设计、开发及维护方面的数据,例如最初构建时间、以往维护情软件的设计、开发及维护方面的数据,例如最初构建时间、以往维护情况、访问的数据库、接口情况、文档数量与质量、对象与

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com