第十一章软件维护 大约20年前,软件工程人员对做完的程序将不 再关心,犹如过时的报纸,程序被束之高阁或弃而 不问。到1988年,软件界第一次提出“干年虫问 题”,工程人员不得不从洪水般的源代码中去寻找 “时间变量”。虽然,所需修改的仅仅是变量的类 型或长度,但在全球的软件行业中却掀起了巨大的 波澜
第十一章 软件维护 大约20年前,软件工程人员对做完的程序将不 再关心,犹如过时的报纸,程序被束之高阁或弃而 不问。到1988年,软件界第一次提出“千年虫问 题”,工程人员不得不从洪水般的源代码中去寻找 “时间变量”。虽然,所需修改的仅仅是变量的类 型或长度,但在全球的软件行业中却掀起了巨大的 波澜
由此可见,软件投入运行后,进行一定的修改和 维护是必不可少的。软件维护是软件生命周期的最 后一个阶段最长的一个阶段也是最为重要的一个阶 段,软件维护工作的好坏直接影响到软件使用的成 功与否
由此可见,软件投入运行后,进行一定的修改和 维护是必不可少的。软件维护是软件生命周期的最 后一个阶段,最长的一个阶段,也是最为重要的一个阶 段,软件维护工作的好坏直接影响到软件使用的成 功与否
对于软件维护工作,我们要有正确的认识,其 从工作量的角度看,软件维护往往会花费软件开发 组织的大量时间,随着用户对软件需求的不断变化 及软件环境的改变,软件维护的工作量逐渐递增。 当今软件开发人员和维护人员匮乏,如何利用有限 的软件工程技术人员去满足节节攀升的软件维护需 求是一个亟待解决的严峻问题。其二、从资金投入 的角度看,软件属产品范畴,但又不同于普通商品, 软件在投入运行后需要追加大量的维护资金,投入 量大约是开发成本的四、五倍,甚至更高
对于软件维护工作,我们要有正确的认识,其一、 从工作量的角度看,软件维护往往会花费软件开发 组织的大量时间,随着用户对软件需求的不断变化 及软件环境的改变,软件维护的工作量逐渐递增。 当今软件开发人员和维护人员匮乏,如何利用有限 的软件工程技术人员去满足节节攀升的软件维护需 求是一个亟待解决的严峻问题。其二、从资金投入 的角度看,软件属产品范畴,但又不同于普通商品, 软件在投入运行后需要追加大量的维护资金,投入 量大约是开发成本的四、五倍,甚至更高
本章我们将主要谈谈软件维护的基本概念和软件 维护的过程,以及如何提高软件的可维护性、降低 软件维护的时间、经济成本和软件维护的发展趋势。 软件维护的基本概念 口软件的可维护性 口软件维护的过程分析 口基于构件复用的软件再工程
本章我们将主要谈谈软件维护的基本概念和软件 维护的过程,以及如何提高软件的可维护性、降低 软件维护的时间、经济成本和软件维护的发展趋势。 ❑ 软件维护的基本概念 ❑ 软件的可维护性 ❑ 软件维护的过程分析 ❑ 基于构件复用的软件再工程
第一节软件维护的基本概念 软件维护的定义 所谓软件维护( Software maintenance)就是在 软件已经交付使用之后,为了改正错误或满足用户 新的需要而修改软件的过程。软件在投入运行之前, 往往要经过严格的测试,但事实表明,测试阶段不 可能完全暴露软件潜在的错误。同时,用户的需求 是发展的,软件能充分满足用户需求是软件工程人 员追求的最高目标,也是软件生命力所在
第一节 软件维护的基本概念 一、软件维护的定义 所谓软件维护(Software Maintenance)就是在 软件已经交付使用之后,为了改正错误或满足用户 新的需要而修改软件的过程。软件在投入运行之前, 往往要经过严格的测试,但事实表明,测试阶段不 可能完全暴露软件潜在的错误。同时,用户的需求 是发展的,软件能充分满足用户需求是软件工程人 员追求的最高目标,也是软件生命力所在
据《美国程序员》杂志1995年7月提供的统计资 料,全球大约5/6的软件项目存在失败的部分。所以 软件维护是任何软件生命周期必不可少的阶段,忽 视软件维护的软件工程是盲目的、危险的
据《美国程序员》杂志1995年7月提供的统计资 料,全球大约5/6的软件项目存在失败的部分。所以, 软件维护是任何软件生命周期必不可少的阶段,忽 视软件维护的软件工程是盲目的、危险的
当今信息技术发展迅猛,计算机软硬件的升级频 率越来越快,网络等通讯技术突飞猛进,增加了软 件系统环境的复杂性,也使软件维护的方式产生了 根本性的变化。诸如电话提供解决方案、定期上门 维护和网上指导性维护等方式已经逐渐成为当今软 件维护的主要方式
当今信息技术发展迅猛,计算机软硬件的升级频 率越来越快,网络等通讯技术突飞猛进,增加了软 件系统环境的复杂性,也使软件维护的方式产生了 根本性的变化。诸如电话提供解决方案、定期上门 维护和网上指导性维护等方式已经逐渐成为当今软 件维护的主要方式
软件维护的分类 ANSI/IEEE20世纪80年代从软件维护类型的 角度给出了软件维护的定义:“软件维护是指软件 成品提供使用后,为了修改差错、改善功能和性能, 适应环境变化而迸行的软件修正。”这个对软件维 护的定义给出了软件维护的分类
二、软件维护的分类 ANSI/IEEE在20世纪80年代从软件维护类型的 角度给出了软件维护的定义:“软件维护是指软件 成品提供使用后,为了修改差错、改善功能和性能、 适应环境变化而进行的软件修正。”这个对软件维 护的定义给出了软件维护的分类
软件维护通常包括四类 口为了纠正在使用过程中暴露出来的错误而进行的 改正性维护 口为了适应外部环境的变化而进行的适应性维护; 口为了改进原有的软件而进行的完善性维护; 口以及为了提高可维护性和可靠性而进行的预防性 维护
软件维护通常包括四类: ❑ 为了纠正在使用过程中暴露出来的错误而进行的 改正性维护; ❑ 为了适应外部环境的变化而进行的适应性维护; ❑ 为了改进原有的软件而进行的完善性维护; ❑ 以及为了提高可维护性和可靠性而进行的预防性 维护
(一)正确性维护( corrective maintenance) 正确性维护又称改正性维护,其主要任务是完成 软件潜在错误的改正
(一)正确性维护(corrective maintenance) 正确性维护又称改正性维护,其主要任务是完成 软件潜在错误的改正