③共京宽大学 BEDING UNIVERSITY OF POSTS AND TELECOMMUNICATIONS 软件工程模型与方法 TSMdels methods of Software Telecommunications Software Engineering Group ngineering 第十三章软件维护 修佳鹏xiujiapeng(@bupt.cn 通软件中心 ⊙2008 BUPTTSEG
© 2008 BUPT TSEG 软件工程模型与方法 Models & Methods of Software Engineering 第十三章 软件维护 修佳鹏 xiujiapeng@bupt.cn
共京部電大学 本章内容 ◆13.1软件维护概述 ◆13.2软件维护活动 ◆13.3修改程序的步骤和副作用 ◆13.4软件的可维护性 ◆13.5软件的逆向工程和再工程 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 2 本章内容 ◆ 13.1 软件维护概述 ◆ 13.2 软件维护活动 ◆ 13.3 修改程序的步骤和副作用 ◆ 13.4 软件的可维护性 ◆ 13.5 软件的逆向工程和再工程
共京部電大学 13.1软件维护概述 ◆13.1.1软件维护的定义 ◆13.12软件维护的分类 ◆13.1.3影响软件维护工作量的因素 ◆13.1.4软件维护中的典型问题 ◆13.1.5软件维护的策略 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 3 13.1 软件维护概述 ◆ 13.1.1 软件维护的定义 ◆ 13.1.2 软件维护的分类 ◆ 13.1.3 影响软件维护工作量的因素 ◆ 13.1.4 软件维护中的典型问题 ◆ 13.1.5 软件维护的策略
共京部電大学 13.1.1软件维护的定义 所谓软件维护就是在软件已经交付使用之后,为 了改正错误或满足新的需要而修改软件的过程。 ◆作为软件生命周期的最后一个环节,软件维护将 持续很长时间,往往是软件生命周期中最长的阶 段 ◆大型软件维护成本高达开发成本的4倍左右。目前 ,国内外许多软件开发组织把60%以上的人力用 于维护已有的软件,而且这个百分比还有继续增 长的趋势 ◆所以,软件的可维护性已经日益成为软件设计和 开发所追求的一个重要目标。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 4 13.1.1 软件维护的定义 ◆ 所谓软件维护就是在软件已经交付使用之后,为 了改正错误或满足新的需要而修改软件的过程。 ◆ 作为软件生命周期的最后一个环节,软件维护将 持续很长时间,往往是软件生命周期中最长的阶 段。 ◆ 大型软件维护成本高达开发成本的4倍左右。目前 ,国内外许多软件开发组织把60%以上的人力用 于维护已有的软件,而且这个百分比还有继续增 长的趋势。 ◆ 所以,软件的可维护性已经日益成为软件设计和 开发所追求的一个重要目标
共京部電大学 软件维护的目的 ◆改正在特定的使用条件下暴露出来的一些 潜在程序错误或设计缺陷 ◆因在软件使用过程中数据环境发生变化或 处理环境发生变化,需要修改软件以适应 这种变化 ◆用户和数据处理人员在使用时常提出改进 现有功能、增加新的功能、以及改善总体 性能的要求,为满足这些要求,就需要修 改软件把这些要求纳入到软件之中 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 5
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 5 软件维护的目的 ◆ 改正在特定的使用条件下暴露出来的一些 潜在程序错误或设计缺陷 ◆ 因在软件使用过程中数据环境发生变化或 处理环境发生变化,需要修改软件以适应 这种变化 ◆ 用户和数据处理人员在使用时常提出改进 现有功能、增加新的功能、以及改善总体 性能的要求,为满足这些要求,就需要修 改软件把这些要求纳入到软件之中
共京部電大学 13.1.2软件维护的分类 ◆改正性维护 为了识别和纠正软件错误、改正软件性能上的缺陷、 排除实施中的误使用而进行的诊断和改正错误的过程 ,就叫做改正性维护 ◆适应性维护 为了使软件适应外部环境的变化,而去修改软件的过 程就叫做适应性维护 ◆完善性维护 为了满足这些要求,需要修改或再开发软件,以扩充 软件功能、增强软件性能、改进加工效率、提高软件 的可维护性。这种情况下进行的维护活动叫做完善性 维护 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 6 13.1.2 软件维护的分类 ◆ 改正性维护 ➢ 为了识别和纠正软件错误、改正软件性能上的缺陷、 排除实施中的误使用而进行的诊断和改正错误的过程 ,就叫做改正性维护 ◆ 适应性维护 ➢ 为了使软件适应外部环境的变化,而去修改软件的过 程就叫做适应性维护 ◆ 完善性维护 ➢ 为了满足这些要求,需要修改或再开发软件,以扩充 软件功能、增强软件性能、改进加工效率、提高软件 的可维护性。这种情况下进行的维护活动叫做完善性 维护
共京部電大学 1312软件维护的分类 适应 改正 性维护性维护 25 20 其维护 完善性维护 维护 70.8 50% 三类錐护占总紳护比例 鉗抄在软件生存期所占比例 ◆预防性维护 这种维护是为了提高软件的可维护性、可靠性 等,为以后进一步改进软件打下良好基础 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 7 13.1.2 软件维护的分类 ◆ 预防性维护 ➢ 这种维护是为了提高软件的可维护性、可靠性 等,为以后进一步改进软件打下良好基础
围壮大13.1.3影响软件维护工作量的因素 ◆影响维护工作量的程序特性有 >系统大小 程序设计语言 >系统年龄 数据库技术的应用 >先进的软件开发技术 其它 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 8 13.1.3影响软件维护工作量的因素 ◆ 影响维护工作量的程序特性有 : ➢ 系统大小 ➢ 程序设计语言 ➢ 系统年龄 ➢ 数据库技术的应用 ➢ 先进的软件开发技术 ➢ 其它
壮玄人1314软件维护中的典型问题 ◆软件维护中经常遇到的典型的问题: 理解别人写的程序通常非常困难 需要维护的软件往往没有合格的文档,或者文 档资料明显不足 不能指望开发人员仔细说明软件 决大多数软件在设计时没有考虑将来的修改, 从而导致了软件的可维护性很差 软件维护不是一项吸引人的工作,由于以上原 因经常导致维护出现困难,从而使软件维护人 员产生挫折感 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 9
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 9 13.1.4软件维护中的典型问题 ◆ 软件维护中经常遇到的典型的问题 : ➢ 理解别人写的程序通常非常困难 ➢ 需要维护的软件往往没有合格的文档,或者文 档资料明显不足 ➢ 不能指望开发人员仔细说明软件 ➢ 决大多数软件在设计时没有考虑将来的修改, 从而导致了软件的可维护性很差 ➢ 软件维护不是一项吸引人的工作,由于以上原 因经常导致维护出现困难,从而使软件维护人 员产生挫折感
共京部電大学 13.1.5软件维护的策略 ◆根据影响软件维护工作量的各种因素,针 对三种典型的维护, James martin等提出了 些策略,以控制维护成本: 改正性维护 >适应性维护 完善性维护 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 10
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 10 13.1.5软件维护的策略 ◆ 根据影响软件维护工作量的各种因素,针 对三种典型的维护,James Martin等提出了 一些策略,以控制维护成本 : ➢ 改正性维护 ➢ 适应性维护 ➢ 完善性维护