软件工程8(西南交通大学软件工程课件).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程8(西南交通大学软件工程课件).ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 西南交通大学 课件
- 资源描述:
-
1、第第8章:维护章:维护 软件维护是软件生命周期的最后一个阶段。软件维护是软件生命周期的最后一个阶段。它的任务是:维护软件的正常运行,不断改进它的任务是:维护软件的正常运行,不断改进软件的性能和质量,为软件的进一步推广应用和软件的性能和质量,为软件的进一步推广应用和更新替换做积极工作。更新替换做积极工作。软件维护所需的工作量非常大,一般说来,软件维护所需的工作量非常大,一般说来,大型软件的维护成本高达开发总成本的四倍大型软件的维护成本高达开发总成本的四倍左右。目前,软件开发组织把左右。目前,软件开发组织把60%以上的工以上的工作量用于维护自己的软件上。作量用于维护自己的软件上。问题:软件交付使用
2、问题:软件交付使用 软件验收测试以后,就标志着软件设计软件验收测试以后,就标志着软件设计开发阶段的结束。开发阶段的结束。而软件交付用户使用,才真正标志漫长而软件交付用户使用,才真正标志漫长的维护阶段的开始。的维护阶段的开始。软件交付使用就是新系统和旧系统的转换。软件交付使用就是新系统和旧系统的转换。旧系统可能是人工作业系统,也可能是某个旧旧系统可能是人工作业系统,也可能是某个旧的计算机系统。的计算机系统。软件交付应该是一个过程,而不是一个突然事软件交付应该是一个过程,而不是一个突然事件,软件的交付使用应尽可能平稳过渡,不影响件,软件的交付使用应尽可能平稳过渡,不影响生产或工作,新系统逐步安全地
3、取代旧系统。生产或工作,新系统逐步安全地取代旧系统。一、软件交付使用的工作一、软件交付使用的工作1)将旧系统的数据转换到新系统(如数据库数)将旧系统的数据转换到新系统(如数据库数据);据);2)新系统调试完成并加载入机器,准备运行;)新系统调试完成并加载入机器,准备运行;3)将有关资料(如使用说明)转交给用户;)将有关资料(如使用说明)转交给用户;4)对用户做适当的培训。)对用户做适当的培训。二、软件交付使用的方式二、软件交付使用的方式 1)直接方式)直接方式 旧系统旧系统新系统新系统(a)直接方式直接方式 直接方式是用新系统直接替换旧系统,没有过渡。直接方式是用新系统直接替换旧系统,没有过渡
4、。优点:优点:。缺点:缺点:。由于新系统没有承担过实际工作,可能会出由于新系统没有承担过实际工作,可能会出现意想不到的问题,甚至出现程序设计错误。现意想不到的问题,甚至出现程序设计错误。因此,实际应用时,采取一些措施,以便新因此,实际应用时,采取一些措施,以便新系统一旦出错,旧系统能够恢复运行。系统一旦出错,旧系统能够恢复运行。直接方式不适用于一些关系重大的系统。直接方式不适用于一些关系重大的系统。2)并行方式)并行方式 旧系统旧系统新系统新系统(b)并行方式并行方式 一些关系重大的软件产品在验收测试后,一些关系重大的软件产品在验收测试后,并不立即投入生产性运行,而是同时运行新系并不立即投入生
5、产性运行,而是同时运行新系统和旧系统,以比较处理结果,这就是并行方统和旧系统,以比较处理结果,这就是并行方式。式。:A.可以对系统进行全面测试,减少了新系统失灵可以对系统进行全面测试,减少了新系统失灵带来的风险,因为旧系统也仍然存在;带来的风险,因为旧系统也仍然存在;B用户也能够有一段熟悉新系统的时间。用户也能够有一段熟悉新系统的时间。:所需费用较高,双系统要投入更多的人力财力。所需费用较高,双系统要投入更多的人力财力。3)逐步方式)逐步方式 逐步方式是将软件分期,部分地交付使用。逐步方式是将软件分期,部分地交付使用。这种方式克服了上面两种方式的缺点,既能防这种方式克服了上面两种方式的缺点,既
6、能防止直接转换产生的危险性,又能减少并行方式止直接转换产生的危险性,又能减少并行方式的费用。的费用。但是这种方法使得整个系统中一部分是旧系但是这种方法使得整个系统中一部分是旧系统,一部分是新系统,所以必须考虑好它们的统,一部分是新系统,所以必须考虑好它们的相互配合问题和接口问题。相互配合问题和接口问题。实际应用中,常常是混合以上几种方法。对实际应用中,常常是混合以上几种方法。对系统不重要的部分采用直接方式,对系统重要系统不重要的部分采用直接方式,对系统重要部分采用并行方式,使系统平稳交付使用。部分采用并行方式,使系统平稳交付使用。通常要求进行软件维护的原因有三种:通常要求进行软件维护的原因有三
7、种:1)改正在特定使用条件下暴露出来的一些潜在)改正在特定使用条件下暴露出来的一些潜在程序错误或设计缺陷;程序错误或设计缺陷;2)因在软件使用过程中数据环境发生变化(如)因在软件使用过程中数据环境发生变化(如所要处理的数据发生变化)或处理环境发生所要处理的数据发生变化)或处理环境发生变化(如硬件或软件操作系统等发生变化),变化(如硬件或软件操作系统等发生变化),需要修改软件,以适应这种变化;需要修改软件,以适应这种变化;8.1 软件维护的定义软件维护的定义 8.1.1 软件维护的原因软件维护的原因3)用户和数据处理人员在使用时常提出改进)用户和数据处理人员在使用时常提出改进现有功能、增加新功能
8、、以及改善总体性现有功能、增加新功能、以及改善总体性能的要求,为满足这些要求,需要修改软能的要求,为满足这些要求,需要修改软件。件。1)交付给用户使用的软件,即使通过严格的测交付给用户使用的软件,即使通过严格的测试,仍可能有一些潜在的错误在用户使用的过试,仍可能有一些潜在的错误在用户使用的过程中发现和修改。诊断和改正错误的过程称为程中发现和修改。诊断和改正错误的过程称为改正性维护。改正性维护。8.1.2 软件维护的类型软件维护的类型2)适应性维护适应性维护 随着计算机的飞速发展,新的硬件系统和外随着计算机的飞速发展,新的硬件系统和外部设备时常更新和升级,一些数据库环境、数部设备时常更新和升级,
9、一些数据库环境、数据输入据输入/输出方式、数据存储介质等也可能发生输出方式、数据存储介质等也可能发生变换。为了使软件适应这些环境变化而修改软变换。为了使软件适应这些环境变化而修改软件的过程叫做适应性维护。件的过程叫做适应性维护。3)在软件投入使用过程中,用户可能还会有在软件投入使用过程中,用户可能还会有新的功能和性能要求,可能会提出增加新功新的功能和性能要求,可能会提出增加新功能、修改现有功能等要求。为了满足这类要能、修改现有功能等要求。为了满足这类要求而进行的维护称为完善性维护。求而进行的维护称为完善性维护。4)为了改进软件未来的可维护性或可靠性,或为了改进软件未来的可维护性或可靠性,或者为
10、了给未来的改进奠定更好的基础而进行的者为了给未来的改进奠定更好的基础而进行的修改,称为预防性维护。修改,称为预防性维护。这种维护活动在实践中比较少见。这种维护活动在实践中比较少见。在各类维护中,完善性维护占软件维护工作的在各类维护中,完善性维护占软件维护工作的大部分。大部分。根据国外的数据统计表明,完善性维护占全部根据国外的数据统计表明,完善性维护占全部维护活动的维护活动的50%66%,改正性维护占,改正性维护占17%21%,适应性维护占,适应性维护占18%25%,其它维护活动,其它维护活动占占4%左右。左右。8.2.1 结构化维护与非结构化维护的差别结构化维护与非结构化维护的差别 1.非结构
11、化维护非结构化维护 软件配置的唯一成分是代码,维护从评价程序代码开始,软件配置的唯一成分是代码,维护从评价程序代码开始,对软件结构、数据结构、系统接口、设计约束等常产生误对软件结构、数据结构、系统接口、设计约束等常产生误解,不能进行回归测试,维护代价大。解,不能进行回归测试,维护代价大。2.结构化维护结构化维护 有完整的软件配置,维护从评价设计文档开始,确定软有完整的软件配置,维护从评价设计文档开始,确定软件结构、性能和接口特点,现修改设计,接着修改代码,件结构、性能和接口特点,现修改设计,接着修改代码,再进行回归测试。再进行回归测试。8.2 软件维护的特点软件维护的特点 软件维护的代价表现为
12、有形代价和无形代价。软件维护的代价表现为有形代价和无形代价。有形代价指软件维护的费用开支。有形代价指软件维护的费用开支。70年代,用于软件维护的费用只占软件总预算年代,用于软件维护的费用只占软件总预算的的30%40%,80年代上升到年代上升到60%左右,左右,90年代年代许多软件项目的维护经费预算达到了许多软件项目的维护经费预算达到了80%。8.2.2 软件维护的代价软件维护的代价1.有形代价与无形代价有形代价与无形代价无形代价:无形代价:1)当一些看起来合理的要求不能及时满足时,)当一些看起来合理的要求不能及时满足时,会引起用户的不满;会引起用户的不满;2)改动软件可能会引入新的错误,使软件
13、质)改动软件可能会引入新的错误,使软件质量下降;量下降;3)把许多软件工程师调去从事维护工作,势)把许多软件工程师调去从事维护工作,势必影响开发工作。必影响开发工作。软件维护所花费的工作量,一部分用于生产软件维护所花费的工作量,一部分用于生产性活动,如分析、评价、修改设计、编写程序性活动,如分析、评价、修改设计、编写程序等;另一部分用于非生产性活动,如理解代码等;另一部分用于非生产性活动,如理解代码的含义、解释数据结构和接口特点等。的含义、解释数据结构和接口特点等。2.软件维护工作量模型软件维护工作量模型Belady和和Lehman提出了一种维护工作量模型:提出了一种维护工作量模型:其中:其中
14、:M:用于维护工作的总工作量用于维护工作的总工作量;P:生产性工作量;生产性工作量;K:经验常数;经验常数;c:因缺乏好的设计和文档而导致软件复杂性的度量;因缺乏好的设计和文档而导致软件复杂性的度量;d:维护人员对软件熟悉程度的度量。维护人员对软件熟悉程度的度量。上述模型指出:如果使用了不好的软件开发方上述模型指出:如果使用了不好的软件开发方法,原来参加开发的人员或小组不能参加维护,法,原来参加开发的人员或小组不能参加维护,则工作量和成本将按指数级增加。则工作量和成本将按指数级增加。8.2.3 软件维护的典型问题软件维护的典型问题 1)如果维护时只有程序代码而没有注释说明,)如果维护时只有程序
15、代码而没有注释说明,维护起来就相当困难;维护起来就相当困难;2)由于软件维护阶段时间长,软件开发人员)由于软件维护阶段时间长,软件开发人员经常流动,所以在维护时,不可能所有的经常流动,所以在维护时,不可能所有的维护工作都依靠原来的开发人员。这会使维护工作都依靠原来的开发人员。这会使得维护工作量增加;得维护工作量增加;3)软件没有足够的文档资料,或者程序修改后)软件没有足够的文档资料,或者程序修改后与文档资料不一致;与文档资料不一致;4)绝大多数软件在设计时没有考虑将来的修改,)绝大多数软件在设计时没有考虑将来的修改,所以建议采用功能独立的模块化设计原则,所以建议采用功能独立的模块化设计原则,增
16、加软件的可维护性;增加软件的可维护性;5)软件维护被许多人视为一种毫无吸引力的工)软件维护被许多人视为一种毫无吸引力的工作,因为维护工作常常受到挫折。作,因为维护工作常常受到挫折。要缓解以上典型问题,建议采用软件工程的方法来开发程序。要缓解以上典型问题,建议采用软件工程的方法来开发程序。8.3 软件维护过程软件维护过程 1.维护组织维护组织 维护要求维护要求(软件问题报告)(软件问题报告)维护管理员维护管理员系统管理员系统管理员软件系统软件系统变化授权人变化授权人图图8.1 维护组织维护组织 根据软件问题报告(维护要求),作出的软件修改根据软件问题报告(维护要求),作出的软件修改报告包含的信息
展开阅读全文