软件工程 软件维护

上传人:wm****3 文档编号:51574596 上传时间:2018-08-15 格式:PPT 页数:111 大小:234KB
返回 下载 相关 举报
软件工程 软件维护_第1页
第1页 / 共111页
软件工程 软件维护_第2页
第2页 / 共111页
软件工程 软件维护_第3页
第3页 / 共111页
软件工程 软件维护_第4页
第4页 / 共111页
软件工程 软件维护_第5页
第5页 / 共111页
点击查看更多>>
资源描述

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

1、 软件维护的概念软件维护的概念 软件维护活动软件维护活动 程序修改的步骤及修改程序修改的步骤及修改 的副作用的副作用 可维护性可维护性 提高可维护性的方法提高可维护性的方法 1软件维护的概念软件维护的概念n n软件维护的定义软件维护的定义n n影响维护工作量的因素影响维护工作量的因素n n软件维护的策略软件维护的策略n n维护成本维护成本2软件维护的定义软件维护的定义n n在软件运行维护阶段在软件运行维护阶段对软件产品对软件产品 进行的修改进行的修改就是所谓的维护。就是所谓的维护。n n维护的类型有三种:维护的类型有三种:uu 改正性维护改正性维护uu 适应性维护适应性维护uu 完善性维护完善

2、性维护3改正性维护改正性维护n n在软件交付使用后,因开发时测试在软件交付使用后,因开发时测试 的的不彻底不彻底、不完全不完全,必然会有部分,必然会有部分 隐藏的错误遗留到运行阶段。隐藏的错误遗留到运行阶段。n n这些隐藏下来的错误这些隐藏下来的错误在某些特定的在某些特定的 使用环境下就会暴露出来使用环境下就会暴露出来。n n为了为了识别和纠正软件错误识别和纠正软件错误、改正软改正软 件性能上的缺陷件性能上的缺陷、排除实施中的误排除实施中的误 使用使用,应当进行的诊断和改正错误,应当进行的诊断和改正错误 的过程就叫做改正性维护。的过程就叫做改正性维护。4适应性维护适应性维护n n在使用过程中,

3、在使用过程中,uu 外部环境外部环境(新的硬、软件配置新的硬、软件配置)uu 数据环境数据环境(数据库、数据格式、数据库、数据格式、 数据输入数据输入/ /输出方式、数据存储介输出方式、数据存储介 质质) 可能发生变化。可能发生变化。n n为使软件适应这种变化,而去修改为使软件适应这种变化,而去修改 软件的过程就叫做适应性维护。软件的过程就叫做适应性维护。5完善性维护完善性维护n n在软件的使用过程中,用户往往会在软件的使用过程中,用户往往会 对软件提出新的对软件提出新的功能功能与与性能性能要求。要求。n n为了满足这些要求,需要修改或再为了满足这些要求,需要修改或再 开发软件,以开发软件,以

4、扩充软件功能扩充软件功能、增强增强 软件性能软件性能、改进加工效率改进加工效率、提高软提高软 件的可维护性件的可维护性。n n这种情况下进行的维护活动叫做完这种情况下进行的维护活动叫做完 善性维护。善性维护。6n n实践表明,在几种维护活动中,完实践表明,在几种维护活动中,完 善性维护所占的比重最大。善性维护所占的比重最大。即大部即大部 分维护工作是改变和加强软件,而分维护工作是改变和加强软件,而 不是纠错不是纠错。n n完善性维护不一定是救火式的紧急完善性维护不一定是救火式的紧急 维修,而可以维修,而可以是有计划、有预谋的是有计划、有预谋的 一种再开发活动一种再开发活动。n n事实证明,来自

5、用户要求扩充、加事实证明,来自用户要求扩充、加 强软件功能、性能的维护活动约占强软件功能、性能的维护活动约占 整个维护工作的整个维护工作的5050。7预防性维护预防性维护n n预防性维护是为了预防性维护是为了提高软件的可维提高软件的可维 护性护性、可靠性等可靠性等,为以后进一步改,为以后进一步改 进软件打下良好基础。进软件打下良好基础。n n预防性维护定义为:预防性维护定义为:采用先进的软采用先进的软 件工程方法对需要维护的软件或软件工程方法对需要维护的软件或软 件中的某一部分(重新)进行设计件中的某一部分(重新)进行设计 、编制和测试。、编制和测试。8n n在整个软件维护阶段所花费的全部在整

6、个软件维护阶段所花费的全部 工作量中,工作量中,完善性维护占了几乎一完善性维护占了几乎一 半的工作量。半的工作量。n n软件维护活动所花费的工作占整个软件维护活动所花费的工作占整个 生存期工作量的生存期工作量的70%70%以上以上,这是由,这是由 于在漫长的软件运行过程中需要不于在漫长的软件运行过程中需要不 断对软件进行修改,以断对软件进行修改,以改正新发现改正新发现 的错误的错误、适应新的环境和用户新的、适应新的环境和用户新的 要求,这些修改需要花费很多精力要求,这些修改需要花费很多精力 和时间,而且有时会引入新的错误和时间,而且有时会引入新的错误 。9维护在软件生维护在软件生 三类维护占三

7、类维护占 存期所占比例存期所占比例 总维护比例总维护比例10影响维护工作量的因素影响维护工作量的因素n n在软件的维护过程中,需要花费在软件的维护过程中,需要花费 大量的工作量,从而直大量的工作量,从而直接影响了接影响了 软件维护的成本软件维护的成本。n n应当考虑应当考虑有哪些因素影响软件维有哪些因素影响软件维 护的工作量护的工作量,相应,相应应该采取什么应该采取什么 维护策略维护策略,才能,才能有效地维护软件有效地维护软件 并并控制维护的成本控制维护的成本。11n n系统大小系统大小:系统越大,理解掌握起:系统越大,理解掌握起 来越困难。系统越大,所执行功能来越困难。系统越大,所执行功能

8、越复杂。因而需要更多的维护工作越复杂。因而需要更多的维护工作 量。量。n n程序设计语言程序设计语言:使用强功能的程序:使用强功能的程序 设计语言可以控制程序的规模。语设计语言可以控制程序的规模。语 言的功能越强,生成程序的模块化言的功能越强,生成程序的模块化 和结构化程度越高,所需的指令数和结构化程度越高,所需的指令数 就越少,程序的可读性越好。就越少,程序的可读性越好。12n n系统年龄系统年龄:uu 老系统随着不断的修改,结构老系统随着不断的修改,结构 越来越乱;越来越乱;uu 维护人员经常更换,程序又变维护人员经常更换,程序又变 得越来越难于理解。得越来越难于理解。uu 许多老系统在当

9、初并未按照软许多老系统在当初并未按照软 件工程的要求进行开发,因而没件工程的要求进行开发,因而没 有文档,或文档太少。有文档,或文档太少。uu 在长期的维护过程中文档在许在长期的维护过程中文档在许 多地方与程序实现变得不一致,多地方与程序实现变得不一致, 在维护时就会遇到很大困难。在维护时就会遇到很大困难。13n n数据库技术的应用数据库技术的应用:使用数据库,:使用数据库, 可以简单而有效地管理和存储用户可以简单而有效地管理和存储用户 程序中的数据,还可以减少生成用程序中的数据,还可以减少生成用 户报表应用软件的维护工作量。户报表应用软件的维护工作量。n n先进的软件开发技术先进的软件开发技

10、术:在软件开发:在软件开发 时,若使用能使软件结构比较稳定时,若使用能使软件结构比较稳定 的分析与设计技术,及程序设计技的分析与设计技术,及程序设计技 术,如面向对象技术、复用技术等术,如面向对象技术、复用技术等 ,可减少大量的工作量。,可减少大量的工作量。14n n其它其它:uu 应用的类型应用的类型uu 数学模型数学模型uu 任务的难度任务的难度uu 开关与标记、开关与标记、IFIF嵌套深度、索引嵌套深度、索引 或下标数等或下标数等 对维护工作量都有影响。对维护工作量都有影响。n n许多软件在开发时并未考虑将来的许多软件在开发时并未考虑将来的 修改,为软件的维护带来许多问题修改,为软件的维

11、护带来许多问题 。15软件维护的策略软件维护的策略n n改正性维护改正性维护 通常要生成通常要生成100100可靠的软件并不可靠的软件并不 一定合算,成本太高一定合算,成本太高。但通过使用但通过使用 新技术,可大大减少进行改正性维新技术,可大大减少进行改正性维 护的需要护的需要。 这些技术包括:这些技术包括:数据库管理系统数据库管理系统、 软件开发环境软件开发环境、程序自动生成系统程序自动生成系统 、较高级较高级( (第四代第四代) )的语言的语言。以及以及新新 的开发方法的开发方法、软件复用软件复用、防错程序防错程序 设计设计及及周期性维护审查周期性维护审查等等。16n n适应性维护适应性维

12、护 这一类维护不可避免,可以控制。这一类维护不可避免,可以控制。 (1)(1) 在配置管理时,把硬件、操作在配置管理时,把硬件、操作 系统和其它相关环境因素的可能变系统和其它相关环境因素的可能变 化考虑在内化考虑在内。 (2)(2) 把与硬件、操作系统,以及其把与硬件、操作系统,以及其 它外围设备有关的程序归到特定的它外围设备有关的程序归到特定的 程序模块中。程序模块中。 (3)(3) 使用内部程序列表、外部文件使用内部程序列表、外部文件 ,以及处理的例行程序包,可为维,以及处理的例行程序包,可为维 护时修改程序提供方便。护时修改程序提供方便。17n n完善性维护完善性维护 利用前两类维护中列

13、举的方法,也利用前两类维护中列举的方法,也 可以减少这一类维护。特别是可以减少这一类维护。特别是数据数据 库管理系统库管理系统、程序生成器程序生成器、应用软应用软 件包件包,可减少维护工作量。,可减少维护工作量。 此外,建立软件系统的原型,把它此外,建立软件系统的原型,把它 在实际系统开发之前提供给用户。在实际系统开发之前提供给用户。 用户通过研究原型,进一步完善他用户通过研究原型,进一步完善他 们的功能要求,就可以减少以后完们的功能要求,就可以减少以后完 善性维护的需要。善性维护的需要。18维护成本维护成本n n有形的软件维护成本有形的软件维护成本是花费了多少是花费了多少 钱,钱,无形的维护

14、成本无形的维护成本有更大的影响有更大的影响 。uu 一些一些合理的修复或修改请求不能合理的修复或修改请求不能 及时安排及时安排,使得客户不满意;,使得客户不满意;uu 变更的结果变更的结果引入新的故障引入新的故障,使得,使得 软件整体质量下降;软件整体质量下降;uu 把软件人员抽调到维护工作中,把软件人员抽调到维护工作中, 干扰了软件开发工作。干扰了软件开发工作。 19n n软件维护的软件维护的代价代价是是降低了生产率降低了生产率, 在做老程序的维护时非常明显。在做老程序的维护时非常明显。n n例如,例如,开发每一行源代码耗资开发每一行源代码耗资2525美美 元元,维护每一行源代码需要耗资维护

15、每一行源代码需要耗资 10001000美元美元。n n维护工作量包括维护工作量包括生产性活动生产性活动(如分(如分 析和评价、设计修改和实现)和析和评价、设计修改和实现)和“ “ 轮转轮转” ”活动活动(如力图理解代码在做(如力图理解代码在做 什么、试图判明数据结构、接口特什么、试图判明数据结构、接口特 性、性能界限等)。性、性能界限等)。20维护工作量的模型维护工作量的模型n nMM是维护中消耗的总工作量是维护中消耗的总工作量n np p是上面描述的生产性工作量是上面描述的生产性工作量n nK K是一个经验常数是一个经验常数n nc c是因缺乏好的设计和文档而导致是因缺乏好的设计和文档而导致

16、 复杂性的度量复杂性的度量n nd d是对软件熟悉程度的度量。是对软件熟悉程度的度量。21n n模型指明,如果使用了不好的软件模型指明,如果使用了不好的软件 开发方法(未按软件工程要求做)开发方法(未按软件工程要求做) ,原来参加开发的人员或小组不能,原来参加开发的人员或小组不能 参加维护,则工作量(及成本)将参加维护,则工作量(及成本)将 按指数级增加。按指数级增加。22软件维护活动软件维护活动n n为了有效地进行软件维护,应事先为了有效地进行软件维护,应事先 就开始做组织工作。就开始做组织工作。uu 首先首先建立维护的机构建立维护的机构uu 申明申明提出维护申请报告的过程提出维护申请报告的过程及及 评价的过程评价的过程uu 为每一个维护申请规

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

当前位置:首页 > 生活休闲 > 社会民生

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