软件工程第七章 软件维护和再工程ppt课件_第1页
软件工程第七章 软件维护和再工程ppt课件_第2页
软件工程第七章 软件维护和再工程ppt课件_第3页
软件工程第七章 软件维护和再工程ppt课件_第4页
软件工程第七章 软件维护和再工程ppt课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七讲第七讲 软件维护与再工程软件维护与再工程第七讲第七讲 软件维护与再工程软件维护与再工程7.1 7.1 软件维护的类型与策略软件维护的类型与策略7.2 7.2 软件可维护性的概念软件可维护性的概念7.3 7.3 软件维护的实施过程和管理软件维护的实施过程和管理7.4 7.4 软件再工程软件再工程 7.1 软件维护的类型与策略(1软件维护的基本概念软件维护的基本概念在软件运行在软件运行/维护阶段对软件所进行的修改称维护阶段对软件所进行的修改称为软件维护。为软件维护。修改可能包括代码、文档、数据等多方面。修改可能包括代码、文档、数据等多方面。软件维护比软件开发更困难,需要更多的创造软件维护比软

2、件开发更困难,需要更多的创造性工作。性工作。需要理解别人的程序需要理解别人的程序对程序的修改不能影响该程序的正确性和完整对程序的修改不能影响该程序的正确性和完整性性必须在较短的时间内完成必须在较短的时间内完成包括大量的需求分析、设计、测试等工作包括大量的需求分析、设计、测试等工作软件维护的特点软件维护的特点维护活动限定在已有系统的框架内完成。维护活动限定在已有系统的框架内完成。一般系统越老,维护越困难。一般系统越老,维护越困难。通常维护时间比开发时间长。但一项具体通常维护时间比开发时间长。但一项具体的维护工作比该软件的开发时间短。的维护工作比该软件的开发时间短。软件开发从无到有产生所有的测试数

3、据,软件开发从无到有产生所有的测试数据,而维护通常可以使用现有的测试数据进行而维护通常可以使用现有的测试数据进行回归测试。有时需要产生新的测试数据,回归测试。有时需要产生新的测试数据,对软件修改及修改后的影响进行必要的测对软件修改及修改后的影响进行必要的测试。试。 (2软件维护的种类纠错矫正性维护约占维护工作量的纠错矫正性维护约占维护工作量的2121)改正软件中的错误。改正软件中的错误。适应性维护约占维护工作量的适应性维护约占维护工作量的2525)适应外部环境变化的修改。如硬件配置、软件配置、适应外部环境变化的修改。如硬件配置、软件配置、数据环境数据环境DBDB、存储方式等)。、存储方式等)。

4、完善性维护约占维护工作量的完善性维护约占维护工作量的5050)在使用过程中,针对用户提出的新的功能与性能要在使用过程中,针对用户提出的新的功能与性能要求,而修改和再开发软件,以扩充功能、增强性能、求,而修改和再开发软件,以扩充功能、增强性能、改进处理效率、提高软件的可维护性。改进处理效率、提高软件的可维护性。预防性维护约占维护工作量的预防性维护约占维护工作量的4 4)为了提高软件的可维护性、可靠性,对软件和软件为了提高软件的可维护性、可靠性,对软件和软件中的某一部分重新进行设计、编制和测试。中的某一部分重新进行设计、编制和测试。 7.2 7.2 软件可维护性的概念软件可维护性的概念(1 1软件

5、可维护性软件可维护性指纠正软件系统出现的错误和缺陷,以及为满指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程足新的要求进行修改、扩充或压缩的容易程度。度。(2 2影响可维护性的主要软件属性影响可维护性的主要软件属性可理解性可理解性可测试性可测试性可修改性可修改性可靠性可靠性可移植性可移植性可使用性可使用性效率效率7.3 7.3 软件维护的实施过程和管理软件维护的实施过程和管理(1 1软件维护的工作流程软件维护的工作流程(2 2软件维护的主要任务软件维护的主要任务第一、分析和理解现有系统第一、分析和理解现有系统第二、修改系统第二、修改系统第三、重新验证、确认修改部分

6、第三、重新验证、确认修改部分第二、修改系统第二、修改系统最重要的维护工作最重要的维护工作设计程序的修改计划设计程序的修改计划设计如何改变程序的计划设计如何改变程序的计划在理解的基础上,从总体和全局的观点出发,在理解的基础上,从总体和全局的观点出发,提出修改计划的方针与策略;提出修改计划的方针与策略;逐步把要改变的软件部分如模块分离出来;逐步把要改变的软件部分如模块分离出来;仔细地研究每个要改变的和受影响的部分的内仔细地研究每个要改变的和受影响的部分的内部细节。部细节。按计划改变程序按计划改变程序正确、有效地编写改变部分的代码;正确、有效地编写改变部分的代码;消除任何不期望的副作用;消除任何不期

7、望的副作用;所谓副作用是指因修改软件而造成所谓副作用是指因修改软件而造成的错误或其它不希望发生的情况。的错误或其它不希望发生的情况。有三种副作用:有三种副作用:修改代码的副作用修改代码的副作用修改数据的副作用修改数据的副作用修改文档的副作用修改文档的副作用控制程序改变的波动效应。控制程序改变的波动效应。所谓波动效应是指当改变程序地一所谓波动效应是指当改变程序地一部分而影响程序地其他部分时,就部分而影响程序地其他部分时,就出现了波动效应。出现了波动效应。估计修改的影响估计修改的影响 ABCWX公共子程序公共子程序X内内含有:含有:全局变量全局变量Y,全局数据结构全局数据结构ZABCW共同使用共同

8、使用Y,Z注:修改注:修改X,则改变,则改变Y和和Z;因此要改变因此要改变A、B、CW。此时,波动效应就大。此时,波动效应就大。第三、重新验证、确认修改部分第三、重新验证、确认修改部分修改少数代码和修改多数代码都应该重新验证和修改少数代码和修改多数代码都应该重新验证和确认。确认。留意:留意:对于改变部分和未改变部分都要进行;对于改变部分和未改变部分都要进行;重新确认应该邀请用户参加;重新确认应该邀请用户参加;重新验证和确认过程中发现的错误和错误类别,重新验证和确认过程中发现的错误和错误类别,应该同从前的测试结果进行比较,估计被损害的应该同从前的测试结果进行比较,估计被损害的程度;程度;利用自动

9、工具帮助重新确认过程。利用自动工具帮助重新确认过程。(3 3软件维护的管理软件维护的管理软件维护管理的重要性软件维护管理的重要性软件维护管理的职能软件维护管理的职能控制程序的改变:有效性、合理性、经控制程序的改变:有效性、合理性、经济性济性要进行监督和控制要进行监督和控制程序的质量检查程序的质量检查按设计标准进行改变按设计标准进行改变安排维护计划安排维护计划建立维护机构建立维护机构软件维护的管理流程软件维护的管理流程软件维护申请报告软件维护申请报告一般地,维护申请报告通常由申请维护的用户填一般地,维护申请报告通常由申请维护的用户填写,是维护工作的基础。维护申请报告一般包括:写,是维护工作的基础

10、。维护申请报告一般包括:遇到的错误及其描述可从运行日志来);遇到的错误及其描述可从运行日志来);当时的环境输入、程序、其他条件等。当时的环境输入、程序、其他条件等。软件修改报告软件修改报告软件开发组织根据维护申请报告相应地做出软件软件开发组织根据维护申请报告相应地做出软件修改报告。软件修改报告应提交修改负责人,经修改报告。软件修改报告应提交修改负责人,经批准后才能进一步安排维护工作。批准后才能进一步安排维护工作。软件修改报告用于记录在维护期间对软件所作的软件修改报告用于记录在维护期间对软件所作的每一次修改。由直接进行修改和负责文档管理的每一次修改。由直接进行修改和负责文档管理的人员共同填写。软

11、件修改报告一般包括:人员共同填写。软件修改报告一般包括:为满足维护申请表的要求所需要的工作量为满足维护申请表的要求所需要的工作量要求修改的性质和范围要求修改的性质和范围请求的优先次序请求的优先次序修改有关的数据修改有关的数据7.4 7.4 软件再工程软件再工程Re-EngineeringRe-Engineering(1 1软件再工程的定义软件再工程的定义 将新技术和新工具应用于老的软件的一种较彻底的预将新技术和新工具应用于老的软件的一种较彻底的预防性维护。防性维护。软件再工程的目的:软件再工程的目的: 在商业上要提高产品的竞争力;在技术上要提高产在商业上要提高产品的竞争力;在技术上要提高产品的

12、质量。但这种愿望无法靠软件的维护来实现,由于:品的质量。但这种愿望无法靠软件的维护来实现,由于: (1 1软件的可维护性可能极差,实在不值得去做;软件的可维护性可能极差,实在不值得去做; (2 2即使软件的可维护性比较好,但也只是治表不治即使软件的可维护性比较好,但也只是治表不治本。软件再工程干脆对已有软件进行全部或部分的改造,本。软件再工程干脆对已有软件进行全部或部分的改造,赋予软件新的活力。赋予软件新的活力。(2)(2)软件再工程过程模型软件再工程过程模型 信息库分析:软件公司维护的所有应用软件的基本信息,信息库分析:软件公司维护的所有应用软件的基本信息,包括应用软件的设计、开发及维护方面

13、的数据。包括应用软件的设计、开发及维护方面的数据。文档重构:重新构建原本缺乏文档的应用系统的文档。文档重构:重新构建原本缺乏文档的应用系统的文档。逆向工程:逆向工程: 软件的逆向工程是分析程序,力图在比源代码更高软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序表示的过程;是一个设计恢复抽象层次上建立程序表示的过程;是一个设计恢复(提取数提取数据结构、体系结构和程序设计结构据结构、体系结构和程序设计结构)的过程。的过程。信息库分析信息库分析文档重构文档重构逆向工程逆向工程代码重构代码重构数据重构数据重构正向工程正向工程代码重构:代码重构: 从代码中导出遵从结构化程序设计思想的过从代码中导出遵从结构化程序设计思想的过程设计。程设计。数据重构:数据重构从理解现有数据结构开始,数据重构:数据重构从理解现有数据结构开始,再重新设计数据,包括数据标准化、数据命名合再重新设计数据,包括数据标准化、数据命名合理、文件格式转换、数据库格式转换等。理、文件格式转换、数据库格式转换等。正向工程:它根据重构后软件的设计信息,改变正向工程:它根据重构后软件的设计信息,改变或重构现存软件,已达到改善其整体质量的目的。或重构现存软件,已达到改善其整体质量的目的。软件再工程的例子软件再工程的例子软件视图、信息库、综合、分解与变换软件视图、信息库、综合、分解与变换信息库信息库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论