- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程课件第9章 软件维护
第9章 软件维护 软件工程 第九章 软件维护 9.1 软件维护的基本概念 9.2 软件维护的过程 9.3 软件维护技术 9.4 软件可维护性 9.5 逆向工程和再工程 9.1 软件维护的基本概念 软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。 软件维护工作处于软件生命期的最后阶段,维护阶段是软件生存期中最长的一个阶段,其费用高达整个软件生命期花费的约60%-70%。因此,应充分认识到维护工作的重要性和迫切性,提高软件的可维护性,减少维护的工作量和费用,延长已开发软件的生命期,以发挥其应有的效益。 9.1.1 软件维护的定义和目的 1、软件维护的定义 2、软件维护的目的 在运行中发现在测试阶段未能发现的软件错误和设计缺陷; 需要改进设计,以增强软件的功能,提高软件的性能; 要求已运行的软件能适应特定的硬件、软件、外部设备和通信设备等的工作环境,或是要求适应已变动的数据或文件; 为使投入运行的软件与其他相关的程序有良好的接口,以利于协同工作; 为使运行软件的应用范围得到必要的扩充。 由于软件的发展非常迅速,显然,对软件进行维护的目的是为了纠正软件开发过程未发现的错误,增强、改进和完善软件的功能和性能,以适应软件的发展,延长软件的寿命。 通常要求进行维护的主要原因有: 完善性维护(Perfective Maintenance) 纠错性维护(Corrective Maintenance) 适应性维护(Adaptive Maintenance) 预防性维护(Preventive Maintenance) 按照不同的维护目的,维护工作可分成4类。 9.1.2 软件维护的分类 (1)完善性维护 扩充原有系统的功能,提高系统的性能,提高软件运行的效率,满足用户的实际需要而进行的维护活动。 当一个软件系统投入使用和成功地运行时,用户会根据业务发展的实际需要,提出增加新功能、修改已有功能以及性能的改进要求等。 1、软件维护的分类 (2)纠错性维护 软件测试不可能找出一个软件系统中所有潜伏的错误,所以当软件在特定情况下运行时,这些潜伏的错误可能会暴露出来。对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程,称为纠错性维护。 (3)适应性维护 计算机的软、硬件环境,数据环境在不断的变化,使运行的软件能适应运行环境或者数据的变动而修改软件的过程称为适应性维护。 为了进一步改善软件的可靠性和易维护性,或者为预见的将来软件运行和维护打下更好的基础而对软件进行修改。 (4)预防性维护 纠错性维护25% 适应性 维护21% 完善性 维护50% 预防性 维护4% 软件维护工作量完善性维护所占的比例最大,占50%左右。各种维护的工作量所占的比例如下图所示。 纠错性维护 适应性维护 完善性维护 预防性维护 2、软件维护的策略 针对以上几种类型的维护,可采取相应的维护策略,以提高维护效率,降低维护成本。 (2)适应性维护策略 对可能变化的因素进行配置管理,将因环境变化而必须修改的部分局部化,即局限于某些程序模块等。 (1)纠错性维护策略 开发过程中采用新技术,利用应用软件包,提高系统结构化程度,进行周期性维护审查等。 (4)预防性维护策略 常采用提前实现、软件重用等技术。 (3)完善性维护策略 除了可以使用前面两类维护的策略外,还有使用功能强、使用方便的工具,采用原型化方法开发等,也可提高可维护性。 9.1.3 软件维护的特性 1、时间长、工作量大、成本高 维护阶段是软件生存期中最长的一个阶段,软件维护的工作量占整个软件生存期的70%以上,而且还在逐年增加。 维护 71% 其余 29% 维护工作比例 2、维护的副作用 维护的副作用是指由于修改程序而导致新的错误或者新增加一些不必要的活动。 (1)修改代码的副作用 在修改源代码时,可能引起的错误。 (2)修改数据的副作用 在修改数据结构时,有可能造成软件设计与数据结构不匹配因而导致软件出错。数据副作用就是修改软件信息结构导致的结果。 (3)修改文档的副作用 对软件的数据流、软件结构、模块逻辑等进行修改时,必须对相关技术文档进行相应修改。但修改文档过程会产生新的错误导致文档与程序功能不匹配,缺省条件改变等错误,产生文档的副作用。 3、软件维护的困难 由于软件维护工作通常并不由软件的设计和开发人员来完成,维护人员首先要对软件各阶段的文档和代码进行分析、理解。 (1)非
文档评论(0)