《《软件工程导论》PPT课件-第8章-维护.ppt》由会员分享,可在线阅读,更多相关《《软件工程导论》PPT课件-第8章-维护.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程导论 第8章 维护 8.1 软件维护的定义 8.2 软件维护的分类 8.3 软件维护的特性 8.4 软件维护过程 8.5 软件的可维护性 8.6 提高可维护性的途径 “在交付使用后,为在交付使用后,为改正错误改正错误或或满足新需要满足新需要而修改软件的过程!而修改软件的过程!”进行软件维护的原因:进行软件维护的原因:(1)在运行中发现测试阶段未发现的潜在软件错误和设计缺陷;)在运行中发现测试阶段未发现的潜在软件错误和设计缺陷;(2)需要改进软件设计以增强软件的功能,提高软件的性能;)需要改进软件设计以增强软件的功能,提高软件的性能;(3)要求已运行软件适应特定的硬件、软件、外部设备和通
2、信设备等新)要求已运行软件适应特定的硬件、软件、外部设备和通信设备等新的工作环境,或适应已变动的数据或文件;的工作环境,或适应已变动的数据或文件;(4)为预防)为预防软件系统的失效而对软件系统实施修改。软件系统的失效而对软件系统实施修改。8.1 软件维护的定义-改正性维护改正性维护 对在测试阶段未能发现的、在软件投入使用后才逐渐暴露出对在测试阶段未能发现的、在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错,以及验证、修改的回归测试过来的错误的测试、诊断、定位、纠错,以及验证、修改的回归测试过程,称为改正性维护。程,称为改正性维护。-完善性维护完善性维护 为了满足用户在使用过程中对软
3、件提出的新的功能与性能要为了满足用户在使用过程中对软件提出的新的功能与性能要求,需要对原来的软件的功能进行修改或扩充。求,需要对原来的软件的功能进行修改或扩充。-适应性维护适应性维护 使软件适应外部新的软硬件环境或者数据环境发生的使软件适应外部新的软硬件环境或者数据环境发生的变化,而进行修改软件的过程。变化,而进行修改软件的过程。-预防性维护预防性维护 为了提高软件未来的可维护性、可靠性等,或为了给为了提高软件未来的可维护性、可靠性等,或为了给未来的改进奠定更好的基础而修改软件的过程。未来的改进奠定更好的基础而修改软件的过程。8.2 软件维护的分类Note:各类维护活动都必须应用于整个:各类维
4、护活动都必须应用于整个软件配置软件配置,包括,包括维护维护文档文档和维护软件的和维护软件的可执行代码可执行代码。8.2 软件维护的分类四类维护占总维护的比例 8.3.1 软件维护的困难 理解别人的程序非常困难理解别人的程序非常困难 开发文档不合格、缺少或开发文档不合格、缺少或与程序不一致与程序不一致 等待开发人员对软件说明等待开发人员对软件说明 设计时没考虑未来的修改维护设计时没考虑未来的修改维护 维护经常受挫维护经常受挫8.3 软件维护的特性-结构化维护结构化维护 结构化维护是指软件开发过程是按照软件工程方结构化维护是指软件开发过程是按照软件工程方法进行的、各开发阶段文档齐全的软件的维护过程
5、。法进行的、各开发阶段文档齐全的软件的维护过程。-非结构化维护非结构化维护 非结构化维护是指在只有源程序,缺乏必要的文非结构化维护是指在只有源程序,缺乏必要的文档说明,难于确定数据结构、系统接口等特性的情况下,档说明,难于确定数据结构、系统接口等特性的情况下,进行的软件维护过程。进行的软件维护过程。8.3 软件维护的特性8.3.1 软件维护的困难8.3.2 维护代价高昂 明显代价:明显代价:高昂的维护费用,已上升达高昂的维护费用,已上升达80%80%左右;左右;无形代价:无形代价:改错或修改的要求不能及时满足引起的用户不满;维护时的改动,引入潜伏错误,导致软件质量降低;软件工程师从事维护工作造
6、成的开发过程混乱。生产率的大幅下降生产率的大幅下降 维护工作量:生产性劳动+非生产性劳动。分析评价,修改设计,编写代码等理解代码功能、解释数据结构、接口特点和性能限度等8.3 软件维护的特性8.3 软件维护的特性8.3.3 软件维护的副作用(1 1)修改代码的副作用)修改代码的副作用 在修改源代码时,由于软件的内在结构等原因,任何一个小的修改都可能引起错误。因此在修改时必须特别小心。(2 2)修改数据的副作用)修改数据的副作用 在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件出错。(3 3)修改文档的副作用)修改文档的副作用 对软件成分进行修改时,必须对相关技术文档进行相应修
7、改。但修改文档过程会产生新的错误,导致文档与程序功能不匹配,默认条件改变等错误。软件维护过程的本质:软件维护过程的本质:修改和压缩了的软件定义和开发过程具体过程:具体过程:首先建立一个维护组织,随后要确定报告和评价的过程,而且必须为每个维护要求规定一个标准化的事件序列,此外还应建立一个适用于维护活动的记录保管过程,并且规定复审标准。8.4 软件维护过程修改软件设计、复查、必要的代码修改、单元测试和集成测试、验收测试和复审维护事件流(标准的事件序列)8.4 软件维护过程-概念 软件的可维护性是指维护人员理解、改正、改动或改进这个软件的难易程度,它是软件质量的主要特征之一。-影响因素 可理解性、可测试性、可修改性、可理解性、可测试性、可修改性、可移植性、可重用性、可移植性、可重用性、文档(用户文档、系统文档)文档(用户文档、系统文档)8.5 软件的可维护性1.建立明确的软件质量目标和优先级建立明确的软件质量目标和优先级 2.使用提高软件质量的技术和工具使用提高软件质量的技术和工具 3.选择便于维护的程序设计语言选择便于维护的程序设计语言4.采取明确的、有效的质量保证审查措施采取明确的、有效的质量保证审查措施5.完善程序的文档完善程序的文档8.6 提高可维护性的途径