软件工程第8章 软件维护

上传人:ni****g 文档编号:590660763 上传时间:2024-09-15 格式:PPT 页数:53 大小:139.50KB
返回 下载 相关 举报
软件工程第8章 软件维护_第1页
第1页 / 共53页
软件工程第8章 软件维护_第2页
第2页 / 共53页
软件工程第8章 软件维护_第3页
第3页 / 共53页
软件工程第8章 软件维护_第4页
第4页 / 共53页
软件工程第8章 软件维护_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《软件工程第8章 软件维护》由会员分享,可在线阅读,更多相关《软件工程第8章 软件维护(53页珍藏版)》请在金锄头文库上搜索。

1、第第8 8章章 软件维护软件维护1 1 软件维护概念软件维护概念2 2 软件维护的特点软件维护的特点3 3 软件维护步骤软件维护步骤4 4 软件可维护性软件可维护性5 5 软件维护的最新方法软件维护的最新方法6 6 软件维护文档软件维护文档1本章导读本章导读要求理解:要求理解:要求理解:要求理解: ( ( ( (1 1 1 1)面向缺陷维护:程序级维护)面向缺陷维护:程序级维护)面向缺陷维护:程序级维护)面向缺陷维护:程序级维护 (2(2(2(2)面向功能维护:设计级维护)面向功能维护:设计级维护)面向功能维护:设计级维护)面向功能维护:设计级维护 (3(3(3(3)UML/CMMIUML/C

2、MMIUML/CMMIUML/CMMI对软件维护的影响对软件维护的影响对软件维护的影响对软件维护的影响 (4(4(4(4)软件维护文档和维护管理文档)软件维护文档和维护管理文档)软件维护文档和维护管理文档)软件维护文档和维护管理文档要求关注:要求关注:要求关注:要求关注: ( ( ( (1 1 1 1)软件维护的最新方法)软件维护的最新方法)软件维护的最新方法)软件维护的最新方法 (2(2(2(2)软件维护与软件产品版本升级的关系)软件维护与软件产品版本升级的关系)软件维护与软件产品版本升级的关系)软件维护与软件产品版本升级的关系 软件零维护是软件零维护是软件零维护是软件零维护是ITITITI

3、T企业追求的目标,该目标至今企业追求的目标,该目标至今企业追求的目标,该目标至今企业追求的目标,该目标至今仍没有实现。随着软件开发技术、软件管理技术仍没有实现。随着软件开发技术、软件管理技术仍没有实现。随着软件开发技术、软件管理技术仍没有实现。随着软件开发技术、软件管理技术和软件支持工具的发展,软件维护中的许多观念和软件支持工具的发展,软件维护中的许多观念和软件支持工具的发展,软件维护中的许多观念和软件支持工具的发展,软件维护中的许多观念正在发生变化。正在发生变化。正在发生变化。正在发生变化。2一、一、软件维护概念软件维护概念31.1.软件维护定义软件维护定义所谓软件维护,就是在软件产品安装、

4、运行并交付所谓软件维护,就是在软件产品安装、运行并交付所谓软件维护,就是在软件产品安装、运行并交付所谓软件维护,就是在软件产品安装、运行并交付给用户使用后,在新版本产品升级之前这段时间里给用户使用后,在新版本产品升级之前这段时间里给用户使用后,在新版本产品升级之前这段时间里给用户使用后,在新版本产品升级之前这段时间里软件厂商向客户提供的服务。软件厂商向客户提供的服务。软件厂商向客户提供的服务。软件厂商向客户提供的服务。因为软件处于运行变化状态:故障要排除,系统要因为软件处于运行变化状态:故障要排除,系统要因为软件处于运行变化状态:故障要排除,系统要因为软件处于运行变化状态:故障要排除,系统要改

5、进和优化,版本要升级等。软件维护阶段是软件改进和优化,版本要升级等。软件维护阶段是软件改进和优化,版本要升级等。软件维护阶段是软件改进和优化,版本要升级等。软件维护阶段是软件生命期中时间最长、花费精力和财力最多的阶段。生命期中时间最长、花费精力和财力最多的阶段。生命期中时间最长、花费精力和财力最多的阶段。生命期中时间最长、花费精力和财力最多的阶段。所以软件工程方法学的一个主要目的就是如何减少所以软件工程方法学的一个主要目的就是如何减少所以软件工程方法学的一个主要目的就是如何减少所以软件工程方法学的一个主要目的就是如何减少维护的工作量。维护的工作量。维护的工作量。维护的工作量。 42.2.软件维

6、护分类软件维护分类纠错性维护纠错性维护纠错性维护纠错性维护:适应性维护:适应性维护:适应性维护:适应性维护:完善性维护:完善性维护:完善性维护:完善性维护:预防性维护:预防性维护:预防性维护:预防性维护:完善性维护完善性维护50%适应性适应性维护维护25%改正性改正性维护维护21%其它其它4%53.3.软件维护过程软件维护过程软件维护过程是软件开发过程的缩影。软件维护过程是软件开发过程的缩影。 6所谓软件的可维护性,就是维护人员理解、掌所谓软件的可维护性,就是维护人员理解、掌所谓软件的可维护性,就是维护人员理解、掌所谓软件的可维护性,就是维护人员理解、掌握和修改被维护软件的难易程度。握和修改被

7、维护软件的难易程度。握和修改被维护软件的难易程度。握和修改被维护软件的难易程度。可维护性包括可理解性、可测试性、可修改性可维护性包括可理解性、可测试性、可修改性可维护性包括可理解性、可测试性、可修改性可维护性包括可理解性、可测试性、可修改性和可移植性。和可移植性。和可移植性。和可移植性。 4.4.软件的可维护性软件的可维护性7二、二、软件维护的特点软件维护的特点8在软件维护过程中,工作量直接影响了软件在软件维护过程中,工作量直接影响了软件在软件维护过程中,工作量直接影响了软件在软件维护过程中,工作量直接影响了软件维护的成本。因此应当考虑有哪些因素影响维护的成本。因此应当考虑有哪些因素影响维护的

8、成本。因此应当考虑有哪些因素影响维护的成本。因此应当考虑有哪些因素影响软件维护的工作量,相应应该采取什么维护软件维护的工作量,相应应该采取什么维护软件维护的工作量,相应应该采取什么维护软件维护的工作量,相应应该采取什么维护策略,才能有效地维护软件并控制维护的成策略,才能有效地维护软件并控制维护的成策略,才能有效地维护软件并控制维护的成策略,才能有效地维护软件并控制维护的成本。本。本。本。 影响维护工作量的因素:影响维护工作量的因素:9软件配置是否完整是影响维护工作量的重要因素;软件配置是否完整是影响维护工作量的重要因素;软件配置是否完整是影响维护工作量的重要因素;软件配置是否完整是影响维护工作

9、量的重要因素;修改别人的程序增加了维护的难度;修改别人的程序增加了维护的难度;修改别人的程序增加了维护的难度;修改别人的程序增加了维护的难度;文档不全的软件,增加了修改后测试的工作量;文档不全的软件,增加了修改后测试的工作量;文档不全的软件,增加了修改后测试的工作量;文档不全的软件,增加了修改后测试的工作量;软件结构的不合理,增加了软件修改的困难;软件结构的不合理,增加了软件修改的困难;软件结构的不合理,增加了软件修改的困难;软件结构的不合理,增加了软件修改的困难;软件经过多个版本的演化,很难追踪修改的过程;软件经过多个版本的演化,很难追踪修改的过程;软件经过多个版本的演化,很难追踪修改的过程

10、;软件经过多个版本的演化,很难追踪修改的过程;软件维护经常受挫,降低了该项工作的吸引力。软件维护经常受挫,降低了该项工作的吸引力。软件维护经常受挫,降低了该项工作的吸引力。软件维护经常受挫,降低了该项工作的吸引力。影响软件维护的因素有以下几种:影响软件维护的因素有以下几种:10维护代价分为有形的代价和无形的代价。维护代价分为有形的代价和无形的代价。维护代价分为有形的代价和无形的代价。维护代价分为有形的代价和无形的代价。有形的代价是指维护费用的数目有形的代价是指维护费用的数目有形的代价是指维护费用的数目有形的代价是指维护费用的数目无形的代价,包括:无形的代价,包括:无形的代价,包括:无形的代价,

11、包括: 维护的代价昂贵:维护的代价昂贵:在软件维护过程中,引入潜伏的错误,造在软件维护过程中,引入潜伏的错误,造在软件维护过程中,引入潜伏的错误,造在软件维护过程中,引入潜伏的错误,造成软成软成软成软 件质量下降;件质量下降;件质量下降;件质量下降; 实施维护占用的一些资源,影响到其它开实施维护占用的一些资源,影响到其它开实施维护占用的一些资源,影响到其它开实施维护占用的一些资源,影响到其它开发工作的进行;发工作的进行;发工作的进行;发工作的进行; 软件维护中部分工作没有满足用户认为合软件维护中部分工作没有满足用户认为合软件维护中部分工作没有满足用户认为合软件维护中部分工作没有满足用户认为合理

12、的需求,引起用户的不满等。理的需求,引起用户的不满等。理的需求,引起用户的不满等。理的需求,引起用户的不满等。11 M M M M:维护工作总量:维护工作总量:维护工作总量:维护工作总量 P P P P:生产性工作量:生产性工作量:生产性工作量:生产性工作量 K K K K:经验常数:经验常数:经验常数:经验常数 c c c c:软件复杂程度:软件复杂程度:软件复杂程度:软件复杂程度( ( ( (非结构化设计和缺少文档非结构化设计和缺少文档非结构化设计和缺少文档非结构化设计和缺少文档 都会增加软件的复杂程度都会增加软件的复杂程度都会增加软件的复杂程度都会增加软件的复杂程度) ) ) ) d:

13、d: d: d: 维护人员对软件的熟悉程度。维护人员对软件的熟悉程度。维护人员对软件的熟悉程度。维护人员对软件的熟悉程度。 维护工作量的一个模型:维护工作量的一个模型:MP十十Ke(cd)以上模型表明,如果软件开发途径不当,原开发人员不以上模型表明,如果软件开发途径不当,原开发人员不以上模型表明,如果软件开发途径不当,原开发人员不以上模型表明,如果软件开发途径不当,原开发人员不参加维护工作,都将使维护工作量呈指数级增加。参加维护工作,都将使维护工作量呈指数级增加。参加维护工作,都将使维护工作量呈指数级增加。参加维护工作,都将使维护工作量呈指数级增加。12结构化维护的前提是:软件产品或软件项目必

14、结构化维护的前提是:软件产品或软件项目必结构化维护的前提是:软件产品或软件项目必结构化维护的前提是:软件产品或软件项目必须有完善的文档,并且文档与程序代码互相匹须有完善的文档,并且文档与程序代码互相匹须有完善的文档,并且文档与程序代码互相匹须有完善的文档,并且文档与程序代码互相匹配。反之为非结构化维护。人们常说维护费用配。反之为非结构化维护。人们常说维护费用配。反之为非结构化维护。人们常说维护费用配。反之为非结构化维护。人们常说维护费用很高,是因为非结构化维护的比重太大。很高,是因为非结构化维护的比重太大。很高,是因为非结构化维护的比重太大。很高,是因为非结构化维护的比重太大。结构化维护和非结

15、构化维护结构化维护和非结构化维护13修改编码:使编码更加混乱,程序结构更不清修改编码:使编码更加混乱,程序结构更不清修改编码:使编码更加混乱,程序结构更不清修改编码:使编码更加混乱,程序结构更不清晰,可读性更差,而且有连锁反应。晰,可读性更差,而且有连锁反应。晰,可读性更差,而且有连锁反应。晰,可读性更差,而且有连锁反应。修改数据结构:数据结构是系统的骨架,修改修改数据结构:数据结构是系统的骨架,修改修改数据结构:数据结构是系统的骨架,修改修改数据结构:数据结构是系统的骨架,修改数据结构是对系统伤筋动骨的大手术,在数据数据结构是对系统伤筋动骨的大手术,在数据数据结构是对系统伤筋动骨的大手术,在

16、数据数据结构是对系统伤筋动骨的大手术,在数据冗余与数据不一致方面,可能顾此失彼。冗余与数据不一致方面,可能顾此失彼。冗余与数据不一致方面,可能顾此失彼。冗余与数据不一致方面,可能顾此失彼。修改用户数据:需要与用户协商,一旦有疏忽,修改用户数据:需要与用户协商,一旦有疏忽,修改用户数据:需要与用户协商,一旦有疏忽,修改用户数据:需要与用户协商,一旦有疏忽,可使系统发生意外。可使系统发生意外。可使系统发生意外。可使系统发生意外。修改文档:对非结构化维护不适应,对结构化修改文档:对非结构化维护不适应,对结构化修改文档:对非结构化维护不适应,对结构化修改文档:对非结构化维护不适应,对结构化维护要严防程

17、序与文档的不匹配。维护要严防程序与文档的不匹配。维护要严防程序与文档的不匹配。维护要严防程序与文档的不匹配。维护的副作用维护的副作用14总之,维护的副作用可能表现在:总之,维护的副作用可能表现在:总之,维护的副作用可能表现在:总之,维护的副作用可能表现在:1.1.1.1.4 4 4 4个个个个副副副副作作作作用用用用加加加加在在在在一一一一起起起起,很很很很容容容容易易易易出出出出现现现现打打打打补补补补丁丁丁丁现现现现象象象象,造造造造成成成成维维维维护护护护一一一一次次次次,就就就就追追追追加加加加一一一一个个个个补补补补丁丁丁丁,最最最最后后后后补补补补丁丁丁丁越越越越打打打打越越越越多

18、多多多,隐隐隐隐含含含含的的的的问问问问题题题题也也也也会越来越多。会越来越多。会越来越多。会越来越多。2.2.2.2.由由由由于于于于考考考考虑虑虑虑不不不不周周周周,或或或或对对对对系系系系统统统统消消消消化化化化不不不不透透透透,可可可可能能能能在在在在维维维维护护护护中中中中出出出出现现现现连连连连锁反应现象锁反应现象锁反应现象锁反应现象: : : :此处的错误改了,彼处的错误又冒出来了。此处的错误改了,彼处的错误又冒出来了。此处的错误改了,彼处的错误又冒出来了。此处的错误改了,彼处的错误又冒出来了。用用用用SW-CMMSW-CMM框架体系的思想来改善软件企业的框架体系的思想来改善软件

19、企业的框架体系的思想来改善软件企业的框架体系的思想来改善软件企业的软件过程管理。软件过程管理。软件过程管理。软件过程管理。在开发和维护中,尽量使用在开发和维护中,尽量使用在开发和维护中,尽量使用在开发和维护中,尽量使用CASECASE工具。工具。工具。工具。维护完成后,一定要进行回归测试。维护完成后,一定要进行回归测试。维护完成后,一定要进行回归测试。维护完成后,一定要进行回归测试。 为了减少维护的工作量,防止维护的副作用,人们在长期为了减少维护的工作量,防止维护的副作用,人们在长期为了减少维护的工作量,防止维护的副作用,人们在长期为了减少维护的工作量,防止维护的副作用,人们在长期的实践中积累

20、了如下的经验:的实践中积累了如下的经验:的实践中积累了如下的经验:的实践中积累了如下的经验:15维护管理员修改批准修改批准修改批准修改批准主管人员主管人员主管人员主管人员 维护要求维护要求维护要求维护要求系统管理员系统管理员系统管理员维维维维护护护护机机机机构构构构三、软件维护步骤三、软件维护步骤16第一步:软件维护申请报告第一步:软件维护申请报告为了有效地进行软件维护,应在维护前先为了有效地进行软件维护,应在维护前先为了有效地进行软件维护,应在维护前先为了有效地进行软件维护,应在维护前先做组织工作,建立维护机构,申明提出维做组织工作,建立维护机构,申明提出维做组织工作,建立维护机构,申明提出

21、维做组织工作,建立维护机构,申明提出维护申请报告的过程和评价的过程;为每一护申请报告的过程和评价的过程;为每一护申请报告的过程和评价的过程;为每一护申请报告的过程和评价的过程;为每一个维护申请规定标准的处理步骤;同时还个维护申请规定标准的处理步骤;同时还个维护申请规定标准的处理步骤;同时还个维护申请规定标准的处理步骤;同时还必须建立维护活动的登记制度以及规定评必须建立维护活动的登记制度以及规定评必须建立维护活动的登记制度以及规定评必须建立维护活动的登记制度以及规定评价和评审的标准。价和评审的标准。价和评审的标准。价和评审的标准。17软件维护工作流程:软件维护工作流程:软件维护工作流程:软件维护

22、工作流程:维护维护类型类型评价评价错误错误评价优评价优先次序先次序安排改正安排改正性维护性维护开始问开始问题分析题分析开始开始分析分析将安排好的开发将安排好的开发工作量列入目录工作量列入目录将错误改正将错误改正列入目录列入目录维护维护实施实施复复审审改正性适应性完善性维护请求严重不严重低分派人员分派人员修改过的软件通过并交付使用的软件测试测试*第二步:维护工作的实施第二步:维护工作的实施18源程序修改的步骤:源程序修改的步骤:19分析程序结构图;分析程序结构图;分析程序结构图;分析程序结构图;跟踪数据;跟踪数据;跟踪数据;跟踪数据;控制跟踪;控制跟踪;控制跟踪;控制跟踪;充分阅读和源程序清单和

23、文档,分析现有文档充分阅读和源程序清单和文档,分析现有文档充分阅读和源程序清单和文档,分析现有文档充分阅读和源程序清单和文档,分析现有文档的合理性;的合理性;的合理性;的合理性;充分使用由编译程序或汇编程序提供的交叉引充分使用由编译程序或汇编程序提供的交叉引充分使用由编译程序或汇编程序提供的交叉引充分使用由编译程序或汇编程序提供的交叉引用表、符号表及其它信息;用表、符号表及其它信息;用表、符号表及其它信息;用表、符号表及其它信息;1 1、分析和理解程序:、分析和理解程序:20一方面:考虑对人员和资源的安排一方面:考虑对人员和资源的安排一方面:考虑对人员和资源的安排一方面:考虑对人员和资源的安排

24、另一方面:需要根据修改的内容及受到修改影响的另一方面:需要根据修改的内容及受到修改影响的另一方面:需要根据修改的内容及受到修改影响的另一方面:需要根据修改的内容及受到修改影响的内容设计修改方案。包括:内容设计修改方案。包括:内容设计修改方案。包括:内容设计修改方案。包括:研究程序的各个模块、模块接口及数据库等,研究程序的各个模块、模块接口及数据库等,研究程序的各个模块、模块接口及数据库等,研究程序的各个模块、模块接口及数据库等,按全局观点提出修改计划;按全局观点提出修改计划;按全局观点提出修改计划;按全局观点提出修改计划;依次将要修改的、以及受修改影响的模块和依次将要修改的、以及受修改影响的模

25、块和依次将要修改的、以及受修改影响的模块和依次将要修改的、以及受修改影响的模块和数据结构分离出来;数据结构分离出来;数据结构分离出来;数据结构分离出来;详细分析将要修改的、以及受修改影响的模详细分析将要修改的、以及受修改影响的模详细分析将要修改的、以及受修改影响的模详细分析将要修改的、以及受修改影响的模块和数据结构的内部细节,标明新逻辑及要块和数据结构的内部细节,标明新逻辑及要块和数据结构的内部细节,标明新逻辑及要块和数据结构的内部细节,标明新逻辑及要修改的现有逻辑;修改的现有逻辑;修改的现有逻辑;修改的现有逻辑;2 2、设计程序的修改计划、设计程序的修改计划21正确、有效、谨慎地修改程序代码

26、,尽量保正确、有效、谨慎地修改程序代码,尽量保正确、有效、谨慎地修改程序代码,尽量保正确、有效、谨慎地修改程序代码,尽量保持程序的原有风格;持程序的原有风格;持程序的原有风格;持程序的原有风格;修修修修改改改改过过过过程程程程中中中中,要要要要随随随随时时时时保保保保存存存存前前前前一一一一次次次次调调调调试试试试正正正正确确确确的的的的源程序代码;源程序代码;源程序代码;源程序代码;保保保保持持持持详详详详细细细细的的的的维维维维护护护护活活活活动动动动和和和和维维维维护护护护结结结结果果果果记记记记录录录录,保保保保证证证证维护工作的可追踪性;维护工作的可追踪性;维护工作的可追踪性;维护工

27、作的可追踪性;如如如如果果果果修修修修改改改改较较较较大大大大,程程程程序序序序原原原原有有有有架架架架构构构构不不不不符符符符合合合合要要要要求求求求,可抛弃原有程序重新编写。可抛弃原有程序重新编写。可抛弃原有程序重新编写。可抛弃原有程序重新编写。3 3、修改代码,以适应变化、修改代码,以适应变化修改时应遵循的原则:修改时应遵循的原则:修改时应遵循的原则:修改时应遵循的原则:224 4、修改程序的副作用、修改程序的副作用副作用是指因修改软件而造成的错误或其它不副作用是指因修改软件而造成的错误或其它不副作用是指因修改软件而造成的错误或其它不副作用是指因修改软件而造成的错误或其它不希望发生的情况

28、。希望发生的情况。希望发生的情况。希望发生的情况。23在使用程序设计语言修改源代码时可能引起的错在使用程序设计语言修改源代码时可能引起的错在使用程序设计语言修改源代码时可能引起的错在使用程序设计语言修改源代码时可能引起的错误,如删除或修改一个标号、标识符、一个子程误,如删除或修改一个标号、标识符、一个子程误,如删除或修改一个标号、标识符、一个子程误,如删除或修改一个标号、标识符、一个子程序,改变程序代码的时序关系,改变逻辑运算符,序,改变程序代码的时序关系,改变逻辑运算符,序,改变程序代码的时序关系,改变逻辑运算符,序,改变程序代码的时序关系,改变逻辑运算符,改进程序的执行效率,改变程序占用存

29、储的大小改进程序的执行效率,改变程序占用存储的大小改进程序的执行效率,改变程序占用存储的大小改进程序的执行效率,改变程序占用存储的大小等,都很容易引入错误,应特别小心。等,都很容易引入错误,应特别小心。等,都很容易引入错误,应特别小心。等,都很容易引入错误,应特别小心。编码副作用:编码副作用:24在修改数据结构时,有可能造成软件设计和数据在修改数据结构时,有可能造成软件设计和数据在修改数据结构时,有可能造成软件设计和数据在修改数据结构时,有可能造成软件设计和数据结构的不一致,而导致软件错误。数据副作用是结构的不一致,而导致软件错误。数据副作用是结构的不一致,而导致软件错误。数据副作用是结构的不

30、一致,而导致软件错误。数据副作用是修改软件信息结构引起的,如重新定义全局或局修改软件信息结构引起的,如重新定义全局或局修改软件信息结构引起的,如重新定义全局或局修改软件信息结构引起的,如重新定义全局或局部常量,重新初始化控制标志或指针等,都容易部常量,重新初始化控制标志或指针等,都容易部常量,重新初始化控制标志或指针等,都容易部常量,重新初始化控制标志或指针等,都容易产生设计与数据不相容的错误,可通过详细设计产生设计与数据不相容的错误,可通过详细设计产生设计与数据不相容的错误,可通过详细设计产生设计与数据不相容的错误,可通过详细设计文档对数据副作用加以控制。文档对数据副作用加以控制。文档对数据

31、副作用加以控制。文档对数据副作用加以控制。数据副作用:数据副作用:25对数据流、软件结构、逻辑模块等进行修改对数据流、软件结构、逻辑模块等进行修改对数据流、软件结构、逻辑模块等进行修改对数据流、软件结构、逻辑模块等进行修改时,必须对相关技术文档进行修改,否则会时,必须对相关技术文档进行修改,否则会时,必须对相关技术文档进行修改,否则会时,必须对相关技术文档进行修改,否则会导致文档与程序功能不匹配,使文档不能反导致文档与程序功能不匹配,使文档不能反导致文档与程序功能不匹配,使文档不能反导致文档与程序功能不匹配,使文档不能反映软件当前的状态。映软件当前的状态。映软件当前的状态。映软件当前的状态。

32、文档副作用:文档副作用:265 5、重新验证程序:、重新验证程序:静态确认;静态确认;静态确认;静态确认;计算机确认;计算机确认;计算机确认;计算机确认;维护后的验收。维护后的验收。维护后的验收。维护后的验收。27记录一些与维护工作有关的数据信息,这些记录一些与维护工作有关的数据信息,这些记录一些与维护工作有关的数据信息,这些记录一些与维护工作有关的数据信息,这些信息可作为估计软件维护的有效程度,确定信息可作为估计软件维护的有效程度,确定信息可作为估计软件维护的有效程度,确定信息可作为估计软件维护的有效程度,确定软件产品的质量,确定维护的实际开销等工软件产品的质量,确定维护的实际开销等工软件产

33、品的质量,确定维护的实际开销等工软件产品的质量,确定维护的实际开销等工作的原始数据。作的原始数据。作的原始数据。作的原始数据。 第三步:维护文档整理第三步:维护文档整理28 每次程序运行时的平均出错次数;每次程序运行时的平均出错次数;每次程序运行时的平均出错次数;每次程序运行时的平均出错次数; 花费在每类维护活动上的总的花费在每类维护活动上的总的花费在每类维护活动上的总的花费在每类维护活动上的总的“ “人时人时人时人时” ”数;数;数;数; 每每每每个个个个程程程程序序序序、每每每每种种种种语语语语言言言言、每每每每种种种种维维维维护护护护类类类类型型型型程程程程序序序序的的的的平平平平均均均

34、均修修修修改改改改次数;次数;次数;次数; 维维维维护护护护工工工工作作作作中中中中增增增增加加加加或或或或删删删删除除除除每每每每个个个个源源源源程程程程序序序序语语语语句句句句所所所所花花花花费费费费的的的的平平平平均均均均“ “人时人时人时人时” ”数;数;数;数; 用于每种语言的平均用于每种语言的平均用于每种语言的平均用于每种语言的平均“ “人时人时人时人时” ”数;数;数;数; 维护申请报告的平均处理时间;维护申请报告的平均处理时间;维护申请报告的平均处理时间;维护申请报告的平均处理时间; 各类维护申请的百分比。各类维护申请的百分比。各类维护申请的百分比。各类维护申请的百分比。 一方

35、面,可判定此次维护活动开展是否顺利、成功;另一方面,一方面,可判定此次维护活动开展是否顺利、成功;另一方面,一方面,可判定此次维护活动开展是否顺利、成功;另一方面,一方面,可判定此次维护活动开展是否顺利、成功;另一方面,为今面的维护工作积累经验。为今面的维护工作积累经验。为今面的维护工作积累经验。为今面的维护工作积累经验。第四步:维护活动评价第四步:维护活动评价29改正性维护改正性维护改正性维护改正性维护 适应性维护适应性维护适应性维护适应性维护完善性维护完善性维护完善性维护完善性维护可理解性可理解性可理解性可理解性可测试性可测试性可测试性可测试性可修改性可修改性可修改性可修改性可可可可 靠靠

36、靠靠 性性性性可移植性可移植性可移植性可移植性可使用性可使用性可使用性可使用性效效效效 率率率率影响软件可维护性的七个质量特性及这影响软件可维护性的七个质量特性及这些质量特性在各类维护中的侧重点些质量特性在各类维护中的侧重点四、软件的可维护性四、软件的可维护性30软件能够被理解、修改、压缩、扩充功能的容软件能够被理解、修改、压缩、扩充功能的容软件能够被理解、修改、压缩、扩充功能的容软件能够被理解、修改、压缩、扩充功能的容易程度。易程度。易程度。易程度。软件可维护性是软件开发阶段的关键目标。影软件可维护性是软件开发阶段的关键目标。影软件可维护性是软件开发阶段的关键目标。影软件可维护性是软件开发阶

37、段的关键目标。影响软件可维护性的因素很多,设计、编码及测响软件可维护性的因素很多,设计、编码及测响软件可维护性的因素很多,设计、编码及测响软件可维护性的因素很多,设计、编码及测试中的疏忽和低劣的软件配置、缺少文档等都试中的疏忽和低劣的软件配置、缺少文档等都试中的疏忽和低劣的软件配置、缺少文档等都试中的疏忽和低劣的软件配置、缺少文档等都会对软件的可维护性带来不良影响。软件的可会对软件的可维护性带来不良影响。软件的可会对软件的可维护性带来不良影响。软件的可会对软件的可维护性带来不良影响。软件的可维护性可用几个质量特性来衡量,对于不同的维护性可用几个质量特性来衡量,对于不同的维护性可用几个质量特性来

38、衡量,对于不同的维护性可用几个质量特性来衡量,对于不同的维护类型,这几种特性的侧重点也不同。维护类型,这几种特性的侧重点也不同。维护类型,这几种特性的侧重点也不同。维护类型,这几种特性的侧重点也不同。软件可维护性的定义:软件可维护性的定义:31可从以下几方面着手:可从以下几方面着手:可从以下几方面着手:可从以下几方面着手: 建立明确的软件质量目标;建立明确的软件质量目标;建立明确的软件质量目标;建立明确的软件质量目标; 选择可维护的程序设计语言;选择可维护的程序设计语言;选择可维护的程序设计语言;选择可维护的程序设计语言; 采用结构化技术提高软件质量;采用结构化技术提高软件质量;采用结构化技术

39、提高软件质量;采用结构化技术提高软件质量;提高软件可维护性的方法:提高软件可维护性的方法:32建立明确的软件质量目标建立明确的软件质量目标若要使程序满足可维护性的七个特性的全部要求是不若要使程序满足可维护性的七个特性的全部要求是不若要使程序满足可维护性的七个特性的全部要求是不若要使程序满足可维护性的七个特性的全部要求是不现实的,为保证可维护性应在一定程度上满足可维护现实的,为保证可维护性应在一定程度上满足可维护现实的,为保证可维护性应在一定程度上满足可维护现实的,为保证可维护性应在一定程度上满足可维护性的各个特性,各个特性的重要性也应随着程序用途性的各个特性,各个特性的重要性也应随着程序用途性

40、的各个特性,各个特性的重要性也应随着程序用途性的各个特性,各个特性的重要性也应随着程序用途的不同或计算机环境的不同而改变。的不同或计算机环境的不同而改变。的不同或计算机环境的不同而改变。的不同或计算机环境的不同而改变。33选择可维护的程序设计语言选择可维护的程序设计语言第第第第4 4 4 4代语言,如查询语言、图形语言、报表生成语言、非常代语言,如查询语言、图形语言、报表生成语言、非常代语言,如查询语言、图形语言、报表生成语言、非常代语言,如查询语言、图形语言、报表生成语言、非常高级语言等,易使用,易理解,易修改,可维护性好。高级语言等,易使用,易理解,易修改,可维护性好。高级语言等,易使用,

41、易理解,易修改,可维护性好。高级语言等,易使用,易理解,易修改,可维护性好。程序设计语言对可维护性的影响程序设计语言对可维护性的影响程序设计语言对可维护性的影响程序设计语言对可维护性的影响低低低低高高高高可维护性可维护性可维护性可维护性第一代第一代第一代第一代语言语言语言语言第二代第二代第二代第二代语言语言语言语言第三代第三代第三代第三代语言语言语言语言第四代第四代第四代第四代语言语言语言语言34模块化模块化模块化模块化结构化程序设计结构化程序设计结构化程序设计结构化程序设计 整理完备的文档资料,包括:整理完备的文档资料,包括:整理完备的文档资料,包括:整理完备的文档资料,包括:系统开发日志、

42、系统开发日志、系统开发日志、系统开发日志、错误记载、错误记载、错误记载、错误记载、系统维护日志、系统维护日志、系统维护日志、系统维护日志、测试文档测试文档测试文档测试文档采用结构化技术提高软件质量;采用结构化技术提高软件质量;35逆向工程与再工程逆向工程与再工程36预防性维护工作主要针对一些多年前开发出预防性维护工作主要针对一些多年前开发出预防性维护工作主要针对一些多年前开发出预防性维护工作主要针对一些多年前开发出来的来的来的来的“ “较老较老较老较老” ”的软件,这些软件的功能仍然的软件,这些软件的功能仍然的软件,这些软件的功能仍然的软件,这些软件的功能仍然能够满足人们的某些需求,但是,由于

43、这些能够满足人们的某些需求,但是,由于这些能够满足人们的某些需求,但是,由于这些能够满足人们的某些需求,但是,由于这些软件所采用的体系结构或数据结构等方面较软件所采用的体系结构或数据结构等方面较软件所采用的体系结构或数据结构等方面较软件所采用的体系结构或数据结构等方面较差,用户在使用时存在一定困难,因此,需差,用户在使用时存在一定困难,因此,需差,用户在使用时存在一定困难,因此,需差,用户在使用时存在一定困难,因此,需要对软件进行全面修改,以适应用户需求。要对软件进行全面修改,以适应用户需求。要对软件进行全面修改,以适应用户需求。要对软件进行全面修改,以适应用户需求。 逆向工程与再生工程是目前

44、预防性维护采用逆向工程与再生工程是目前预防性维护采用逆向工程与再生工程是目前预防性维护采用逆向工程与再生工程是目前预防性维护采用的主要技术。的主要技术。的主要技术。的主要技术。 1、什么是预防性维护、什么是预防性维护37所谓软件的逆向工程就是分析已有的程序,所谓软件的逆向工程就是分析已有的程序,所谓软件的逆向工程就是分析已有的程序,所谓软件的逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。逆向寻求比源代码更高级的抽象表现形式。逆向寻求比源代码更高级的抽象表现形式。逆向寻求比源代码更高级的抽象表现形式。逆向工程是对原有设计恢复的过程,使用逆向工工程是对原有设计恢复的过程,使用逆向工

45、工程是对原有设计恢复的过程,使用逆向工工程是对原有设计恢复的过程,使用逆向工程工具可以从已存在的程序中抽取数据结构、程工具可以从已存在的程序中抽取数据结构、程工具可以从已存在的程序中抽取数据结构、程工具可以从已存在的程序中抽取数据结构、体系结构及各种有用的程序设计信息。体系结构及各种有用的程序设计信息。体系结构及各种有用的程序设计信息。体系结构及各种有用的程序设计信息。2 2、什么是逆向工程、什么是逆向工程、什么是逆向工程、什么是逆向工程38再再再再工工工工程程程程是是是是在在在在获获获获得得得得程程程程序序序序设设设设计计计计信信信信息息息息的的的的同同同同时时时时,利利利利用用用用这这这这

46、些些些些信信信信息息息息修修修修改改改改或或或或重重重重构构构构软软软软件件件件系系系系统统统统的的的的工工工工作作作作。根根根根据据据据用用用用户户户户的的的的需需需需求求求求,软软软软件件件件人人人人员员员员利利利利用用用用再再再再工工工工程程程程重重重重新新新新实实实实现现现现已已已已有有有有程程程程序序序序,同同同同时增加新的功能或改进性能。时增加新的功能或改进性能。时增加新的功能或改进性能。时增加新的功能或改进性能。3、什么是再工程、什么是再工程39五、五、软件维护的最新方法软件维护的最新方法面面面面向向向向缺缺缺缺陷陷陷陷维维维维护护护护( ( ( (程程程程序序序序级级级级维维维

47、维护护护护):):):):软软软软件件件件产产产产品品品品能能能能够够够够正正正正常常常常运运运运转转转转,可可可可以以以以满满满满足足足足用用用用户户户户的的的的功功功功能能能能、性性性性能能能能、接接接接口口口口需需需需求求求求,只只只只是是是是个个个个别别别别地地地地方方方方存存存存在在在在缺缺缺缺陷陷陷陷,使使使使用用用用户户户户感感感感到到到到不不不不便便便便。缺缺缺缺陷陷陷陷发发发发生生生生在在在在程程程程序序序序实实实实现现现现的的的的级级级级别别别别上上上上。克克克克服服服服缺缺缺缺陷陷陷陷的的的的方方方方法法法法是是是是修修修修改改改改程程程程序序序序,而而而而不不不不是是是

48、是修修修修改改改改分分分分析析析析与与与与设设设设计计计计,也也也也就就就就是是是是通通通通常常常常说说说说的的的的只只只只修修修修改改改改编编编编码码码码,不不不不修修修修改改改改数数数数据结构。据结构。据结构。据结构。面向功能维护面向功能维护面向功能维护面向功能维护( ( ( (设计级维护设计级维护设计级维护设计级维护):):):):软件产品在功能、性能、软件产品在功能、性能、软件产品在功能、性能、软件产品在功能、性能、接口上存在某些不足。不维护就不能正常运转。维护接口上存在某些不足。不维护就不能正常运转。维护接口上存在某些不足。不维护就不能正常运转。维护接口上存在某些不足。不维护就不能正

49、常运转。维护即要修改分析与设计,又要修改程序,也就是既修改即要修改分析与设计,又要修改程序,也就是既修改即要修改分析与设计,又要修改程序,也就是既修改即要修改分析与设计,又要修改程序,也就是既修改数据结构,又修改编码。数据结构,又修改编码。数据结构,又修改编码。数据结构,又修改编码。面向缺陷维护是较小的维护面向缺陷维护是较小的维护面向缺陷维护是较小的维护面向缺陷维护是较小的维护面向功能维护是较大的维护面向功能维护是较大的维护面向功能维护是较大的维护面向功能维护是较大的维护40以客户机以客户机以客户机以客户机/ / / /服务器两层结构来划分软件维护。服务器两层结构来划分软件维护。服务器两层结构

50、来划分软件维护。服务器两层结构来划分软件维护。第第1 1种方法:种方法:C/SC/S法法对这种结构的应用软件维护的方法是,将客户机和对这种结构的应用软件维护的方法是,将客户机和对这种结构的应用软件维护的方法是,将客户机和对这种结构的应用软件维护的方法是,将客户机和服务器上的两部分软件分开维护。服务器上的两部分软件分开维护。服务器上的两部分软件分开维护。服务器上的两部分软件分开维护。客户机上的软件修改后,制作成自动安装的光盘,客户机上的软件修改后,制作成自动安装的光盘,客户机上的软件修改后,制作成自动安装的光盘,客户机上的软件修改后,制作成自动安装的光盘,传递给用户自己安装,替换原来的软件。传递

51、给用户自己安装,替换原来的软件。传递给用户自己安装,替换原来的软件。传递给用户自己安装,替换原来的软件。服务器上的软件由维护人员直接在服务器上修改、服务器上的软件由维护人员直接在服务器上修改、服务器上的软件由维护人员直接在服务器上修改、服务器上的软件由维护人员直接在服务器上修改、测试、安装、运行。测试、安装、运行。测试、安装、运行。测试、安装、运行。41第第2 2种方法:远程更新法种方法:远程更新法以三层结构来划分软件维护。以三层结构来划分软件维护。以三层结构来划分软件维护。以三层结构来划分软件维护。客户机客户机客户机客户机/ / / /应用服务器应用服务器应用服务器应用服务器/ / / /数

52、据库服务器的三层结构,是目数据库服务器的三层结构,是目数据库服务器的三层结构,是目数据库服务器的三层结构,是目前普遍采用的软件结构。前普遍采用的软件结构。前普遍采用的软件结构。前普遍采用的软件结构。客户机上的软件维护,不需到用户现场去,只需在系客户机上的软件维护,不需到用户现场去,只需在系客户机上的软件维护,不需到用户现场去,只需在系客户机上的软件维护,不需到用户现场去,只需在系统后台服务器上借助网络的运行,使得软件的安装与统后台服务器上借助网络的运行,使得软件的安装与统后台服务器上借助网络的运行,使得软件的安装与统后台服务器上借助网络的运行,使得软件的安装与升级,变成了一个完全透明的过程,再

53、不用担心光盘升级,变成了一个完全透明的过程,再不用担心光盘升级,变成了一个完全透明的过程,再不用担心光盘升级,变成了一个完全透明的过程,再不用担心光盘的安装或软盘的损伤。这就是三层结构的优点之一。的安装或软盘的损伤。这就是三层结构的优点之一。的安装或软盘的损伤。这就是三层结构的优点之一。的安装或软盘的损伤。这就是三层结构的优点之一。这是网络革命带来的软件维护革命,使用户能享受简这是网络革命带来的软件维护革命,使用户能享受简这是网络革命带来的软件维护革命,使用户能享受简这是网络革命带来的软件维护革命,使用户能享受简单、方便、全面、及时的维护与升级服务。单、方便、全面、及时的维护与升级服务。单、方

54、便、全面、及时的维护与升级服务。单、方便、全面、及时的维护与升级服务。杀病毒工具升级办法,就是这样一种维护。杀病毒工具升级办法,就是这样一种维护。杀病毒工具升级办法,就是这样一种维护。杀病毒工具升级办法,就是这样一种维护。42第第3 3种方法:结构化方法种方法:结构化方法与过程开发方法相对应的面向过程维护方法。与过程开发方法相对应的面向过程维护方法。面向数据开发方法对应面向数据维护方法,就是面向数据开发方法对应面向数据维护方法,就是面向数据开发方法对应面向数据维护方法,就是面向数据开发方法对应面向数据维护方法,就是从数据库表的结构入手,运用视图技术、事务处从数据库表的结构入手,运用视图技术、事

55、务处从数据库表的结构入手,运用视图技术、事务处从数据库表的结构入手,运用视图技术、事务处理技术、分布式数据库技术、数据复制技术、数理技术、分布式数据库技术、数据复制技术、数理技术、分布式数据库技术、数据复制技术、数理技术、分布式数据库技术、数据复制技术、数据发布和订阅技术,维护数据库服务器上数据的据发布和订阅技术,维护数据库服务器上数据的据发布和订阅技术,维护数据库服务器上数据的据发布和订阅技术,维护数据库服务器上数据的完整性和一致性。完整性和一致性。完整性和一致性。完整性和一致性。面向对象开发方法对应面向对象维护方法,就是面向对象开发方法对应面向对象维护方法,就是面向对象开发方法对应面向对象

56、维护方法,就是面向对象开发方法对应面向对象维护方法,就是利用对象利用对象利用对象利用对象“ “继承继承继承继承” ”的特性,维护类库、构件库、的特性,维护类库、构件库、的特性,维护类库、构件库、的特性,维护类库、构件库、组件库、中间件库。组件库、中间件库。组件库、中间件库。组件库、中间件库。 43第第4 4种方法:五个面向法种方法:五个面向法站站站站在在在在“ “面面面面向向向向流流流流程程程程分分分分析析析析、面面面面向向向向数数数数据据据据设设设设计计计计、面面面面向向向向对对对对象象象象实实实实现现现现、面面面面向向向向功功功功能能能能测测测测试试试试、面面面面向向向向过过过过程程程程管

57、管管管理理理理” ”的的的的角角角角度度度度上上上上,来划分软件维护的方法。来划分软件维护的方法。来划分软件维护的方法。来划分软件维护的方法。 需求分析的维护,采取面向业务流程的方法。需求分析的维护,采取面向业务流程的方法。需求分析的维护,采取面向业务流程的方法。需求分析的维护,采取面向业务流程的方法。软件设计的维护,采取面向数据的方法。软件设计的维护,采取面向数据的方法。软件设计的维护,采取面向数据的方法。软件设计的维护,采取面向数据的方法。软件实现的维护,采取面向对象的方法。软件实现的维护,采取面向对象的方法。软件实现的维护,采取面向对象的方法。软件实现的维护,采取面向对象的方法。软件测试

58、的维护,采取面向功能的方法。软件测试的维护,采取面向功能的方法。软件测试的维护,采取面向功能的方法。软件测试的维护,采取面向功能的方法。项目管理的维护,采取面向过程管理的方法项目管理的维护,采取面向过程管理的方法项目管理的维护,采取面向过程管理的方法项目管理的维护,采取面向过程管理的方法44软件维护与软件产品版本升级软件维护与软件产品版本升级软件维护与软件产品版本升级有一定关系:软件维护与软件产品版本升级有一定关系:软件维护与软件产品版本升级有一定关系:软件维护与软件产品版本升级有一定关系: 若小维若小维若小维若小维护前的版本号为护前的版本号为护前的版本号为护前的版本号为V1.00V1.00V

59、1.00V1.00,则小维护后的版本号为,则小维护后的版本号为,则小维护后的版本号为,则小维护后的版本号为V1.01V1.01V1.01V1.01。若大维护前的版本号为。若大维护前的版本号为。若大维护前的版本号为。若大维护前的版本号为V1.01V1.01V1.01V1.01,则大维护后,则大维护后,则大维护后,则大维护后的版本号为的版本号为的版本号为的版本号为V1.11V1.11V1.11V1.11。一般而言,版本号中小圆点的左一位,表示该软件一般而言,版本号中小圆点的左一位,表示该软件一般而言,版本号中小圆点的左一位,表示该软件一般而言,版本号中小圆点的左一位,表示该软件产品的第几个版本。中

60、小圆点的右一位,表示该版产品的第几个版本。中小圆点的右一位,表示该版产品的第几个版本。中小圆点的右一位,表示该版产品的第几个版本。中小圆点的右一位,表示该版本的大修改次数。小圆点的右二位,表示该版本的本的大修改次数。小圆点的右二位,表示该版本的本的大修改次数。小圆点的右二位,表示该版本的本的大修改次数。小圆点的右二位,表示该版本的小修改次数。小修改次数。小修改次数。小修改次数。只有该软件产品的运行环境发生大改变时,或者该只有该软件产品的运行环境发生大改变时,或者该只有该软件产品的运行环境发生大改变时,或者该只有该软件产品的运行环境发生大改变时,或者该软件产品的功能变化超过软件产品的功能变化超过

61、软件产品的功能变化超过软件产品的功能变化超过30%30%30%30%时,其版本才能升级,时,其版本才能升级,时,其版本才能升级,时,其版本才能升级,此时,版本号中小圆点的左一位才能加此时,版本号中小圆点的左一位才能加此时,版本号中小圆点的左一位才能加此时,版本号中小圆点的左一位才能加1 1 1 1,由,由,由,由V1.11V1.11V1.11V1.11变为变为变为变为V2.00V2.00V2.00V2.00。 45软件维护的工作流程软件维护的工作流程(1).(1).(1).(1).分类整理用户意见分类整理用户意见分类整理用户意见分类整理用户意见(2).(2).(2).(2).提出维护申请提出维

62、护申请提出维护申请提出维护申请(3).(3).(3).(3).评审、审计、批准维护申请评审、审计、批准维护申请评审、审计、批准维护申请评审、审计、批准维护申请(4).(4).(4).(4).修改需求文档修改需求文档修改需求文档修改需求文档(5).(5).(5).(5).维护需求文档评审维护需求文档评审维护需求文档评审维护需求文档评审(6).(6).(6).(6).修改设计文档修改设计文档修改设计文档修改设计文档(7).(7).(7).(7).维护设计文档评审维护设计文档评审维护设计文档评审维护设计文档评审(8).(8).(8).(8).修改源程序修改源程序修改源程序修改源程序(9).(9).(

63、9).(9).回归测试回归测试回归测试回归测试(10).(10).(10).(10).修改软件产品版本号修改软件产品版本号修改软件产品版本号修改软件产品版本号(11).(11).(11).(11).交付用户运行交付用户运行交付用户运行交付用户运行(12).(12).(12).(12).进行新一轮维护,转向流程进行新一轮维护,转向流程进行新一轮维护,转向流程进行新一轮维护,转向流程(1).(1).(1).(1).46UMLUML对软件维护的影响对软件维护的影响UMLUMLUMLUML把软件生存周期定义为把软件生存周期定义为把软件生存周期定义为把软件生存周期定义为4 4 4 4个主要阶段:初始、细

64、个主要阶段:初始、细个主要阶段:初始、细个主要阶段:初始、细化、构造、移交。经过这化、构造、移交。经过这化、构造、移交。经过这化、构造、移交。经过这4 4 4 4个阶段的历程被称为一个个阶段的历程被称为一个个阶段的历程被称为一个个阶段的历程被称为一个开发周期,自动产生一个周期内的所有文档,从而开发周期,自动产生一个周期内的所有文档,从而开发周期,自动产生一个周期内的所有文档,从而开发周期,自动产生一个周期内的所有文档,从而生成一个软件产品。生成一个软件产品。生成一个软件产品。生成一个软件产品。首次经历这首次经历这首次经历这首次经历这4 4 4 4个阶段称为该产品的初始开发周期,除个阶段称为该产

65、品的初始开发周期,除个阶段称为该产品的初始开发周期,除个阶段称为该产品的初始开发周期,除非该产品的生命终止,否则它将重复初始、细化、非该产品的生命终止,否则它将重复初始、细化、非该产品的生命终止,否则它将重复初始、细化、非该产品的生命终止,否则它将重复初始、细化、构造、移交这构造、移交这构造、移交这构造、移交这4 4 4 4个阶段,从而演化为下一代产品,这个阶段,从而演化为下一代产品,这个阶段,从而演化为下一代产品,这个阶段,从而演化为下一代产品,这就是旧产品的维护,也是新产品的升级换代,这就就是旧产品的维护,也是新产品的升级换代,这就就是旧产品的维护,也是新产品的升级换代,这就就是旧产品的维

66、护,也是新产品的升级换代,这就是是是是UMLUMLUMLUML对软件维护工作的影响。对软件维护工作的影响。对软件维护工作的影响。对软件维护工作的影响。由此可见,在软件开发中,若采用由此可见,在软件开发中,若采用由此可见,在软件开发中,若采用由此可见,在软件开发中,若采用UMLUMLUMLUML建模技术和相建模技术和相建模技术和相建模技术和相应的应的应的应的CASECASECASECASE工具工具工具工具RoseRoseRoseRose,高额的软件维护费用将会较快,高额的软件维护费用将会较快,高额的软件维护费用将会较快,高额的软件维护费用将会较快地降下来。地降下来。地降下来。地降下来。 47CM

67、M/CMMICMM/CMMI对软件维护的影响对软件维护的影响软软软软件件件件为为为为什什什什么么么么需需需需要要要要维维维维护护护护?因因因因为为为为它它它它程程程程序序序序上上上上有有有有缺缺缺缺陷陷陷陷,所所所所以以以以有有有有面面面面向向向向程程程程序序序序的的的的缺缺缺缺陷陷陷陷维维维维护护护护;因因因因为为为为它它它它设设设设计计计计上上上上功功功功能能能能不不不不齐齐齐齐全全全全,所所所所以有面向设计的功能维护。以有面向设计的功能维护。以有面向设计的功能维护。以有面向设计的功能维护。当软件组织达到当软件组织达到当软件组织达到当软件组织达到CMM3CMM3CMM3CMM3以上时,由于

68、软件过程的持续改以上时,由于软件过程的持续改以上时,由于软件过程的持续改以上时,由于软件过程的持续改善,对软件质量的评审和审计活动的加强,软件过程善,对软件质量的评审和审计活动的加强,软件过程善,对软件质量的评审和审计活动的加强,软件过程善,对软件质量的评审和审计活动的加强,软件过程数据库作用的发挥,关于数据库作用的发挥,关于数据库作用的发挥,关于数据库作用的发挥,关于“ “程序上有缺陷程序上有缺陷程序上有缺陷程序上有缺陷” ”和和和和“ “设计设计设计设计上功能不齐全上功能不齐全上功能不齐全上功能不齐全” ”的情况,将会逐渐减少,所以软件的的情况,将会逐渐减少,所以软件的的情况,将会逐渐减少

69、,所以软件的的情况,将会逐渐减少,所以软件的维护工作量也会逐渐减少。维护工作量也会逐渐减少。维护工作量也会逐渐减少。维护工作量也会逐渐减少。真正维护工作量大的单位,就是真正维护工作量大的单位,就是真正维护工作量大的单位,就是真正维护工作量大的单位,就是CMM1CMM1CMM1CMM1的软件组织,因的软件组织,因的软件组织,因的软件组织,因为他们管理无序,文档不全,工作不规范,表现形式为他们管理无序,文档不全,工作不规范,表现形式为他们管理无序,文档不全,工作不规范,表现形式为他们管理无序,文档不全,工作不规范,表现形式就是:人治加个人英雄主义。就是:人治加个人英雄主义。就是:人治加个人英雄主义

70、。就是:人治加个人英雄主义。 48六、六、软件维护文档软件维护文档491.1.维护文档维护文档对于结构化维护来说,软件维护文档,就是对原来对于结构化维护来说,软件维护文档,就是对原来对于结构化维护来说,软件维护文档,就是对原来对于结构化维护来说,软件维护文档,就是对原来已有的分析文档、设计文档、实现文档、测试文档、已有的分析文档、设计文档、实现文档、测试文档、已有的分析文档、设计文档、实现文档、测试文档、已有的分析文档、设计文档、实现文档、测试文档、用户指南进行修改,形成新的开发文档。新的开发用户指南进行修改,形成新的开发文档。新的开发用户指南进行修改,形成新的开发文档。新的开发用户指南进行修

71、改,形成新的开发文档。新的开发文档的组织方式有两种格式:文档的组织方式有两种格式:文档的组织方式有两种格式:文档的组织方式有两种格式: 格式格式格式格式1 1 1 1:在先保存好原有的开发文档之后,直接在原来在先保存好原有的开发文档之后,直接在原来在先保存好原有的开发文档之后,直接在原来在先保存好原有的开发文档之后,直接在原来已有的文档上面修改,修改后形成新的小版本号文档,已有的文档上面修改,修改后形成新的小版本号文档,已有的文档上面修改,修改后形成新的小版本号文档,已有的文档上面修改,修改后形成新的小版本号文档,即在原来版本号中小圆点的右一位或右二位上加即在原来版本号中小圆点的右一位或右二位

72、上加即在原来版本号中小圆点的右一位或右二位上加即在原来版本号中小圆点的右一位或右二位上加1 1 1 1。格式格式格式格式2 2 2 2:不直接在原来已有的文档上面修改,而是将修不直接在原来已有的文档上面修改,而是将修不直接在原来已有的文档上面修改,而是将修不直接在原来已有的文档上面修改,而是将修改的内容单独作为一个附录,放在被修改文档的最后面,改的内容单独作为一个附录,放在被修改文档的最后面,改的内容单独作为一个附录,放在被修改文档的最后面,改的内容单独作为一个附录,放在被修改文档的最后面,形成一份新的小版本号文档,即在原来版本号中小圆点形成一份新的小版本号文档,即在原来版本号中小圆点形成一份

73、新的小版本号文档,即在原来版本号中小圆点形成一份新的小版本号文档,即在原来版本号中小圆点的右一位或右二位上加的右一位或右二位上加的右一位或右二位上加的右一位或右二位上加1 1 1 1。502 2维护管理文档维护管理文档用户意见反馈表用户意见反馈表用户意见反馈表用户意见反馈表用户意见分类整理表用户意见分类整理表用户意见分类整理表用户意见分类整理表维护申请单维护申请单维护申请单维护申请单维护文档评审报告维护文档评审报告维护文档评审报告维护文档评审报告产品缺陷统计表产品缺陷统计表产品缺陷统计表产品缺陷统计表功能扩充统计表功能扩充统计表功能扩充统计表功能扩充统计表未答复问题汇总表未答复问题汇总表未答复

74、问题汇总表未答复问题汇总表未验证问题汇总表未验证问题汇总表未验证问题汇总表未验证问题汇总表已修改问题汇总表已修改问题汇总表已修改问题汇总表已修改问题汇总表已验证问题汇总表已验证问题汇总表已验证问题汇总表已验证问题汇总表维护费用统计表维护费用统计表维护费用统计表维护费用统计表51本本 章章 小小 结结 软件维护令软件人员头痛的原因主要有三个:软件维护令软件人员头痛的原因主要有三个:软件维护令软件人员头痛的原因主要有三个:软件维护令软件人员头痛的原因主要有三个:非结构化的维护太难。非结构化的维护太难。非结构化的维护太难。非结构化的维护太难。维护费用开销太大。维护费用开销太大。维护费用开销太大。维护

75、费用开销太大。维护工作没有创新,学不到新知识。维护工作没有创新,学不到新知识。维护工作没有创新,学不到新知识。维护工作没有创新,学不到新知识。通过本章的学习,上述问题基本上获得了解决。通过本章的学习,上述问题基本上获得了解决。通过本章的学习,上述问题基本上获得了解决。通过本章的学习,上述问题基本上获得了解决。成熟的成熟的成熟的成熟的ITITITIT企业有专门的维护部门,维护工作井企业有专门的维护部门,维护工作井企业有专门的维护部门,维护工作井企业有专门的维护部门,维护工作井然有序,随着软件过程的不断改善,维护工作然有序,随着软件过程的不断改善,维护工作然有序,随着软件过程的不断改善,维护工作然

76、有序,随着软件过程的不断改善,维护工作量占软件总工作量的比例应当逐渐下降。量占软件总工作量的比例应当逐渐下降。量占软件总工作量的比例应当逐渐下降。量占软件总工作量的比例应当逐渐下降。52习习 题题1.1.1.1.怎么理解怎么理解怎么理解怎么理解“ “软件维护是面向用户提供的服务软件维护是面向用户提供的服务软件维护是面向用户提供的服务软件维护是面向用户提供的服务” ”?2.2.2.2.传统软件维护要讨论的问题有哪些?传统软件维护要讨论的问题有哪些?传统软件维护要讨论的问题有哪些?传统软件维护要讨论的问题有哪些?3.3.3.3.怎怎怎怎么么么么理理理理解解解解“ “软软软软件件件件产产产产品品品品

77、客客客客户户户户化化化化” ”和和和和“ “软软软软件件件件项项项项目目目目产产产产品品品品化化化化” ”?4.4.4.4.什么叫结构化维护和非结构化维护?什么叫结构化维护和非结构化维护?什么叫结构化维护和非结构化维护?什么叫结构化维护和非结构化维护?5.5.5.5.可维护性的软件应具备什么性质?可维护性的软件应具备什么性质?可维护性的软件应具备什么性质?可维护性的软件应具备什么性质?6.6.6.6.软件维护的副作用表现在哪软件维护的副作用表现在哪软件维护的副作用表现在哪软件维护的副作用表现在哪4 4 4 4个方面?个方面?个方面?个方面?7.7.7.7.面向缺陷维护的内容是什么?面向缺陷维护

78、的内容是什么?面向缺陷维护的内容是什么?面向缺陷维护的内容是什么?8.8.8.8.面向功能维护的内容是什么?面向功能维护的内容是什么?面向功能维护的内容是什么?面向功能维护的内容是什么?9.9.9.9.两层结构和三层结构的软件维护方法有什么不同?两层结构和三层结构的软件维护方法有什么不同?两层结构和三层结构的软件维护方法有什么不同?两层结构和三层结构的软件维护方法有什么不同?10.10.10.10.怎么理解软件产品的版本号?怎么理解软件产品的版本号?怎么理解软件产品的版本号?怎么理解软件产品的版本号?11.11.11.11.怎么理解怎么理解怎么理解怎么理解UML/CMMIUML/CMMIUML/CMMIUML/CMMI对软件维护的影响?对软件维护的影响?对软件维护的影响?对软件维护的影响?53

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号