软件工程教学课件第8章软件维护_第1页
软件工程教学课件第8章软件维护_第2页
软件工程教学课件第8章软件维护_第3页
软件工程教学课件第8章软件维护_第4页
软件工程教学课件第8章软件维护_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程教学课件第软件工程教学课件第8 8章软件维护章软件维护 软件维护就是在软件已经交付使用之软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改后,为了改正错误或满足新的需要而修改软件的过程。软件的过程。 软件维护的最终目的,是为了满足用软件维护的最终目的,是为了满足用户对已开发产品的性能与运行环境不断提户对已开发产品的性能与运行环境不断提高的要求,进而延长软件的寿命。高的要求,进而延长软件的寿命。 由于软件维护的成本非常高,因此重由于软件维护的成本非常高,因此重视软件维护是很重要的。视软件维护是很重要的。 软件需要进行维护的原因很多,归结起来有以下五种:软件需要进行维护的

2、原因很多,归结起来有以下五种:(1)在运行中发现在测试阶段未能发现的软件错误和)在运行中发现在测试阶段未能发现的软件错误和设计缺陷;设计缺陷;(2)需要改进设计,以增强软件的功能,提高软件的)需要改进设计,以增强软件的功能,提高软件的性能;性能;(3) 要求已运行的软件能适应特定的硬件、软件、外要求已运行的软件能适应特定的硬件、软件、外部设备和通信设备等的工作环境,或是要求适应已变动部设备和通信设备等的工作环境,或是要求适应已变动的数据或文件;的数据或文件;(4)为使投入运行的软件与其他相关的程序有良好的)为使投入运行的软件与其他相关的程序有良好的接口,以利于协同工作;接口,以利于协同工作;(

3、5)为使运行软件的应用范围得到必要的扩充。)为使运行软件的应用范围得到必要的扩充。(1)改正性维护()改正性维护(Corrective Maintenance) 在软件交付使用后,因开发时测试的不彻底在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的

4、过程就叫做改正性应当进行的诊断和改正错误的过程就叫做改正性维护。维护。 (2)适应性维护)适应性维护(Adaptive Maintenance)在使用过程中,外部环境(新的硬、软件在使用过程中,外部环境(新的硬、软件配置),数据环境(数据库、数据格式、配置),数据环境(数据库、数据格式、数据输入数据输入/输出方式、数据存储介质)可能输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。修改软件的过程就叫做适应性维护。(3)完善性维护()完善性维护(Preventive Maintenance) 在软件的使用过程中,用

5、户往往会对软件提在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。这种情况下进行的维护活动叫做完善性维护。 (4)预防性维护()预防性维护(Prevertive Maintenance) 预防性维护是为了提高软件的可维护预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打性、可靠性等,为以后进一步改进软

6、件打下良好基础。预防性维护定义为:采用先下良好基础。预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制件中的某一部分(重新)进行设计、编制和测试。和测试。 目前这项维护活动相对比较少。目前这项维护活动相对比较少。 在整个软件维护阶段所花费的全部工作量在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。软件中,完善性维护占了几乎一半的工作量。软件维护活动所花费的工作占整个生存期工作量的维护活动所花费的工作占整个生存期工作量的70%70%以上,这是由于在漫长的软件运行过程中需以上,这是由于在漫长的

7、软件运行过程中需要不断对软件进行修改,以改正新发现的错误、要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错花费很多精力和时间,而且有时会引入新的错误。误。 在过去的几十年中,软件维护的费用在过去的几十年中,软件维护的费用不断上升。软件的维护成本体现为有形和不断上升。软件的维护成本体现为有形和无形两种。有形的软件维护成本指花费了无形两种。有形的软件维护成本指花费了多少钱。无形的软件维护成本指对其他方多少钱。无形的软件维护成本指对其他方面的影响。面的影响。 由于可用的资源必须提供给维护

8、软件任务由于可用的资源必须提供给维护软件任务使用。以致耽误甚至丧失了开发的良机,这是软使用。以致耽误甚至丧失了开发的良机,这是软件维护的一个无形代价。件维护的一个无形代价。 其他的无形代价还有:其他的无形代价还有:(1)看起来合理的有关改错或修改的要求不能)看起来合理的有关改错或修改的要求不能及时满足将引起用户不满;及时满足将引起用户不满;(2)由于维护时的改动,在软件中引入了潜伏)由于维护时的改动,在软件中引入了潜伏的故障,从而降低了软件的质量;的故障,从而降低了软件的质量;(3)必须把软件工程师调去从事维护工作时,)必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱。将在开发过程中

9、造成混乱。分析设计维护要求有文件吗苦读代码制定计划修改计划编码复 审 通 过 通过找到问题编码复 审 通 过 通过交付使用结构化维护非结构化维护ynnnyyy 一个维护申请提出之后,经评审需要维护,一个维护申请提出之后,经评审需要维护,则按下列过程实施维护:则按下列过程实施维护:(1)首先确定要进行维护的类型。)首先确定要进行维护的类型。(2)对改正性维护从评价错误的严重性开始。)对改正性维护从评价错误的严重性开始。(3)对适应性和完善软件维护,则需对问题进)对适应性和完善软件维护,则需对问题进行评审、确定问题的优先级。行评审、确定问题的优先级。 (4)实施维护任务。)实施维护任务。 (5)“

10、救火救火”维护。维护。 在维护任务完成后,要对维护任务进行复审,在维护任务完成后,要对维护任务进行复审,进行复审时要回答下列问题:进行复审时要回答下列问题:(1)评价维护的情况,即设计、代码和测试的)评价维护的情况,即设计、代码和测试的哪些方面已经完成;哪些方面已经完成;(2)对软件开发工作有哪些改进要求;()对软件开发工作有哪些改进要求;(3)对于维护工作,主要的、次要的障碍是什么。对于维护工作,主要的、次要的障碍是什么。 复审对将来的维护工作能否顺利进行有着重复审对将来的维护工作能否顺利进行有着重大影响。对一个软件机构来说,也是正规、有效大影响。对一个软件机构来说,也是正规、有效的管理工作

11、的一部分。的管理工作的一部分。 维护档案记录包括:程序名称、源程序语句条数、维护档案记录包括:程序名称、源程序语句条数、机器代码指令条数、所用的程序设计语言、程序安装的机器代码指令条数、所用的程序设计语言、程序安装的日期、程序安装后的运行次数、与程序安装后运行次数日期、程序安装后的运行次数、与程序安装后运行次数有关的处理故障次数、程序改变的层次及名称、修改程有关的处理故障次数、程序改变的层次及名称、修改程序增加的源程序语句条数、修改程序减少的源程序语句序增加的源程序语句条数、修改程序减少的源程序语句条数、每次修改所付出的条数、每次修改所付出的“人时人时”数、修改程序的日期数、修改程序的日期、软

12、件维护人员的姓名、维护申请报告的名称、维护类、软件维护人员的姓名、维护申请报告的名称、维护类型、维护开始时间和维护结束时间、花费在维护上的累型、维护开始时间和维护结束时间、花费在维护上的累计计“人时人时”数、维护工作的净收益等。数、维护工作的净收益等。 评价维护活动比较困难,因为缺乏可靠的数评价维护活动比较困难,因为缺乏可靠的数据。如果维护的档案记录做得比较好,可以得出据。如果维护的档案记录做得比较好,可以得出一些维护一些维护“性能性能”方面的度量值:每次程序运行方面的度量值:每次程序运行时的平均出错次数;花费在每类维护上的总时的平均出错次数;花费在每类维护上的总“人人时时”数;每个程序、每种

13、语言、每种维护类型的数;每个程序、每种语言、每种维护类型的程序平均修改次数;因为维护,增加或删除每个程序平均修改次数;因为维护,增加或删除每个源程序语句所花费的平均源程序语句所花费的平均“人时人时”数;用于每种数;用于每种语言的平均语言的平均“人时人时”数;维护申请报告的平均处数;维护申请报告的平均处理时间;各类维护申请的百分比。理时间;各类维护申请的百分比。 软件维护的过程包括维护组织、编写软件维护的过程包括维护组织、编写维护报告和对维护进行评价。为此,对每维护报告和对维护进行评价。为此,对每种维护请求都应当规定正规处理过程,并种维护请求都应当规定正规处理过程,并建立复审的评价标准,保存和记

14、录各项维建立复审的评价标准,保存和记录各项维护活动。护活动。 一个维护组织由主管人员(有批准修改权)、维护管一个维护组织由主管人员(有批准修改权)、维护管理人员和系统管理员等组成。每一项维护请求由维护管理人员和系统管理员等组成。每一项维护请求由维护管理人员转交系统管理员进行评价,系统管理员通常由软理人员转交系统管理员进行评价,系统管理员通常由软件专业人员担任,他们对软件产品的某一部分非常熟悉件专业人员担任,他们对软件产品的某一部分非常熟悉。主管修改批准权的人员决定需要进行的维护活动,并。主管修改批准权的人员决定需要进行的维护活动,并为参与维护活动的各类人员确定职责范围。维护管理人为参与维护活动

15、的各类人员确定职责范围。维护管理人员和批准修改权的人员可以是一个人,也可以是几个管员和批准修改权的人员可以是一个人,也可以是几个管理人员和高级技术人员组成的小组。理人员和高级技术人员组成的小组。 维护组织可根据任务的大小和难易程度来确定,但维护组织可根据任务的大小和难易程度来确定,但必须在活动开始之前明确分工,规定各自的职责,以避必须在活动开始之前明确分工,规定各自的职责,以避免发生不必要的混乱。目前,一般单位都没有建立正式免发生不必要的混乱。目前,一般单位都没有建立正式的维护组织,因此更加需要强调由专人负责修改审核,的维护组织,因此更加需要强调由专人负责修改审核,并由专人执行维护。并由专人执

16、行维护。 所有维护请求必须按标准的方式提出。用户要求维所有维护请求必须按标准的方式提出。用户要求维护软件时,须填写维护申请表(又称为软件问题报告)。护软件时,须填写维护申请表(又称为软件问题报告)。对于改正性维护,必须详细地描述导致出现错误的条件,对于改正性维护,必须详细地描述导致出现错误的条件,包括输入数据、错误情况、源程序清单及其他配置(如包括输入数据、错误情况、源程序清单及其他配置(如文档资料等)。对于适应性或完善性维护的请求,则只文档资料等)。对于适应性或完善性维护的请求,则只需提出简单的需求说明即可。维护申请表是一个来自外需提出简单的需求说明即可。维护申请表是一个来自外部的文件,它是

17、安排维护活动的依据。软件开发机构根部的文件,它是安排维护活动的依据。软件开发机构根据用户的请求,制订出软件修改报告,内容包括为实现据用户的请求,制订出软件修改报告,内容包括为实现维护请求所需要的工作量,要求修改的性质,请求的优维护请求所需要的工作量,要求修改的性质,请求的优先次序及相关的修改数据。在拟定详细的维护计划之前,先次序及相关的修改数据。在拟定详细的维护计划之前,需要将软件修改报告提交主管人员审查批准。需要将软件修改报告提交主管人员审查批准。 如果不重视软件维护活动的记录、保存,或者根本如果不重视软件维护活动的记录、保存,或者根本不进行记录,就无法评价维护技术的有效性,判定软件不进行记

18、录,就无法评价维护技术的有效性,判定软件产品的完全程度,甚至无法确定什么样的维护才真正有产品的完全程度,甚至无法确定什么样的维护才真正有价值。价值。 维护的过程中应记录的信息有:源程序的标识、源维护的过程中应记录的信息有:源程序的标识、源程序语句及指令的数目,选用的程序语言,程序安装日程序语句及指令的数目,选用的程序语言,程序安装日期,程序运行次数及与运行次数相关的故障处理次数,期,程序运行次数及与运行次数相关的故障处理次数,程序修改变化的次数和标识,程序修改的日期,软件工程序修改变化的次数和标识,程序修改的日期,软件工程师的标识,维护申请表的标识,维护类型,维护活动程师的标识,维护申请表的标

19、识,维护类型,维护活动的起始日期,累计的人时耗费及维护所带来的纯利润等。的起始日期,累计的人时耗费及维护所带来的纯利润等。 缺乏有效的数据就无法评价维护活动。如果已经开缺乏有效的数据就无法评价维护活动。如果已经开始保存维护记录了,则可以对维护工作做一些定量度量始保存维护记录了,则可以对维护工作做一些定量度量。至少可以从下述。至少可以从下述7个方面度量维护工作:个方面度量维护工作: (1)每次程序运行平均失效的次数;)每次程序运行平均失效的次数; (2)用于每一类维护活动的总人时数;)用于每一类维护活动的总人时数; (3)平均每个程序、每种语言、每种维护类型所做的)平均每个程序、每种语言、每种维

20、护类型所做的程序变动数;程序变动数; (4)维护过程中增加或删除一个源语句平均花费的人)维护过程中增加或删除一个源语句平均花费的人时数;时数; (5)维护每种语言平均花费的人时数;)维护每种语言平均花费的人时数; (6)一张维护要求表的平均周转时间;)一张维护要求表的平均周转时间; (7)不同维护类型所占的百分比。)不同维护类型所占的百分比。 软件可维护性是指纠正软件系统出现软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。可维护性、修改、扩充或压缩的容易程度。可维护性、可使用性、可靠性是衡量软件质量的主要可使用

21、性、可靠性是衡量软件质量的主要质量特性。软件的可维护性是软件开发阶质量特性。软件的可维护性是软件开发阶段各个时期的关键目标。段各个时期的关键目标。目前广泛使用的是用如下的七个特性来衡量程序目前广泛使用的是用如下的七个特性来衡量程序的可维护性:的可维护性:(1)可理解性)可理解性 (2)可测试性)可测试性 (3)可修改性)可修改性 (4)可移植性)可移植性 (5)可重用性)可重用性 (6)效率)效率 (7)可使用性)可使用性 文档是影响软件可维护性的决定因素。文档是影响软件可维护性的决定因素。 软件系统的文档可以分为用户文档和系统文档两类。软件系统的文档可以分为用户文档和系统文档两类。 软件文档

22、应该满足下述要求:软件文档应该满足下述要求:(1 1)必须描述如何使用这个系统,没有这种描述时即使是)必须描述如何使用这个系统,没有这种描述时即使是最简单的系统也无法使用;最简单的系统也无法使用;(2 2)必须描述怎样安装和管理这个系统;)必须描述怎样安装和管理这个系统;(3 3)必须描述系统需求和设计;)必须描述系统需求和设计;(4 4)必须描述系统的实现和测试,以便使系统成为可维护)必须描述系统的实现和测试,以便使系统成为可维护的。的。 软件再工程是对现有软件系统进行验软件再工程是对现有软件系统进行验证、评价,重新设计构造成为一个新的形证、评价,重新设计构造成为一个新的形式并加以实现,使其

23、满足新的需要或适合式并加以实现,使其满足新的需要或适合于新的运行环境的软件工程活动。于新的运行环境的软件工程活动。 在软件系统的使用过程中,其运行的在软件系统的使用过程中,其运行的内、外部环境可能发生不同程度的变化。内、外部环境可能发生不同程度的变化。软件再工程可以充分利用和改造现有软件软件再工程可以充分利用和改造现有软件以适应这些变化,避免因重新开发软件而以适应这些变化,避免因重新开发软件而造成时间、人力及软件资源的浪费。造成时间、人力及软件资源的浪费。 再工程主要应用于:再工程主要应用于:(1)改进软件的可维护性。)改进软件的可维护性。 (2)增强功能,改进性能。)增强功能,改进性能。 (

24、3)软件移植。)软件移植。 (4)系统开发。)系统开发。 根据用户对现有软件改进要求的不同,根据用户对现有软件改进要求的不同,再工程活动一般可分为三个层次:再工程活动一般可分为三个层次:(1)系统级;)系统级;(2)数据级;)数据级;(3)程序级)程序级 。 软件再工程通常由两个阶段组成:软件再工程通常由两个阶段组成:(1)逆向工程)逆向工程(reverse engineering)阶段,阶段,通过分析、理解现有软件,恢复其设计信通过分析、理解现有软件,恢复其设计信息并抽象成为高层次的表示息并抽象成为高层次的表示; (2)正向工程)正向工程(forward engineering)阶段阶段,即软件开发过程。对逆向工程提取出的,即软件开发过程。对逆向工程提取出的软件的设计软件的设计 表示进行评审,再设计,重新表示进行评审,再设计,重新产生出新的目标程序。产生出新的目标程序。软件再工程要考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论