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