算名章 歌件维护
第 七 章
7.1软件维护的类型 软件维护是指软件系统交付使用以后,为了改正 错误或满足新的需求而修改软件的过程。按照不 同的维护目的,维护工作可分成4类。 软件维护的类型 完善性维护( Perfective Maintenance) 扩充原有系统的功能,提高原有系统的性能,满 足用户的实际需要。 纠错性维护( Corrective Maintenance) 对在测试阶段未能发现的,在软件投入使用后才逐 渐暴露出来的错误的测试、诊断、定位、纠错以及 验证、修改的回归测试过程。 首页上页下页未页十退出
7.1 软件维护的类型 软件维护是指软件系统交付使用以后,为了改正 错误或满足新的需求而修改软件的过程。按照不 同的维护目的,维护工作可分成4类。 首页 上页 下页 末页 退出 完善性维护(Perfective Maintenance) 扩充原有系统的功能,提高原有系统的性能,满 足用户的实际需要。 纠错性维护(Corrective Maintenance) 对在测试阶段未能发现的,在软件投入使用后才逐 渐暴露出来的错误的测试、诊断、定位、纠错以及 验证、修改的回归测试过程。 一、软件维护的类型
软件维护的类型 适应性维护( Adaptive Maintenance) 要使运行的软件能适应运行环境的变动而修 改软件的过程。 预防性维护( Preventive Maintenance) 为了进一步改善软件的可靠性和易维护性, 或者为将来的维护奠定更好的基础而对软件进 行修改。 首页上页[下页末页片退出
软件维护的类型 首页 上页 下页 末页 退出 适应性维护(Adaptive Maintenance) 要使运行的软件能适应运行环境的变动而修 改软件的过程。 预防性维护(Preventive Maintenance) 为了进一步改善软件的可靠性和易维护性, 或者为将来的维护奠定更好的基础而对软件进 行修改
四类软件维护的比例 预防性 维护4% 纠错性 维护 完善性25% ■纠错性维护 口适应性维护 维护 口完善性维护 50% 适应性 预防性维护 维护21% 首页上页[下页末页片退出
四类软件维护的比例 首页 上页 下页 末页 退出 纠错性维护 适应性维护 完善性维护 预防性维护 纠错性 维护 25% 适应性 维护21% 完善性 维护 50% 预防性 维护4%
二、维护的步骤 用卢 维护人员 修改过 评价错、严重进行问 题分析 的软件/确定更 严重程度 理解分析程序 改要求纠错性 或 不严 人员安排 安排计划 维护 修改程序 要求确认维或 安排改正 维护实施 护类型 性维护 完 适 测试程序 美或应 员 评价公性将改正错误列入计划 复审 先级 高 进行问排 交付使用 或 题分析 将安排好的工 的软件 作量列入计划 软件维护的工作流程图 首页上页[下页末页片退出
二、维护的步骤 首页 上页 下页 末页 退出 用户 维护人员 安排改正 性维护 确认维 护类型 维护实施 评价优 先级 进行问 题分析 复审 评价错误 严重程度 进行问 题分析 确定更 改要求 维护 要求 完 美 性 适 应 性 将安排好的工 作量列入计划 低 高 纠错性 严重 不严重 将改正错误列入计划 人 员 安 排 交付使用 的软件 理解分析程序 安排计划 修改程序 测试程序 或 或 或 或 软件维护的工作流程图 修改过 的软件
三、维护工作的组织管理 软件维护工作不仅是技术性的,它还需要大 量的管理工作与之相配合,才能保证维护工作 的质量。管理部门应对提交的修改方案进行分 析和审查,并对修改带来的影响作充分的估计 对于不妥的修改予以撤销。需修改主文档时 管理部门更应仔细审查。 软件维护的管理流程如图所示: 首页上页[下页末页片退出
三、维护工作的组织管理 软件维护工作不仅是技术性的,它还需要大 量的管理工作与之相配合,才能保证维护工作 的质量。管理部门应对提交的修改方案进行分 析和审查,并对修改带来的影响作充分的估计, 对于不妥的修改予以撤销。需修改主文档时, 管理部门更应仔细审查。 软件维护的管理流程如图所示: 首页 上页 下页 末页 退出
软件维护的管理流程 维护修改建议 进行测试 分析修改建议 提交管理部门审批 是否合理 是否批准 修改 Y 提交管理部门审查 更新主文档 是否同 更新其他文档 撤销 修改 提交使用 首页上页[下页末页片退出
软件维护的管理流程 首页 上页 下页 末页 退出 维护修改建议 分析修改建议 是否合理 提交管理部门审查 是否同意 修改 撤销 N Y N Y 进行测试 提交管理部门审批 是否批准 更新主文档 Y 更新其他文档 提交使用 修改 N
7.2软件维护的特性 结构化维护与非结构化维护 结构化维护一指软件开发过程是按照软件工 程方法,软件的维护过程,有一整套完整的方案、 技术、审定过程。 非结构化维护一缺乏必要的文档说明,难于 确定数据结构、系统接口等特性。维护工作令人 生畏,事倍功半。 首页上页[下页末页片退出
7.2 软件维护的特性 一、结构化维护与非结构化维护 结构化维护 — 指软件开发过程是按照软件工 程方法,软件的维护过程,有一整套完整的方案、 技术、审定过程。 非结构化维护 — 缺乏必要的文档说明,难于 确定数据结构、系统接口等特性。维护工作令人 生畏,事倍功半。 首页 上页 下页 末页 退出
软件维护的代价 ·维护费用高达开发费用的55%—70%,而 且逐年上涨。 维护中还可能引入新的潜在错误。 Belady和 Lehman提出软件维护工作模型 M=P+K*EXP(C-D) 其中: M维护总工作量 P生产性活动 K经验常数 程序复杂度(由非结构化维护引起的) D对维护软件熟悉程度的度量。 结论 首页上页[下页末页片退出
二、软件维护的代价 维护费用高达开发费用的55% — 70%,而 且逐年上涨。 维护中还可能引入新的潜在错误。 Belady 和 Lehman 提出软件维护工作模型: M=P+K*EXP(C - D) 其中: M—维护总工作量 P—生产性活动 K—经验常数 C—程序复杂度(由非结构化维护引起的) D—对维护软件熟悉程度的度量。 首页 上页 下页 末页 退出 结论
7.3软件维护的技术 面向维护的技术 在软件开发阶段用来减少错误,提高软件可 维护性的技术。涉及到软件开发的所有阶段。 可维护性(可测试性、可理解性、可修改性) 二、软件支援技术 在软件维护阶段用于提高维护工作的效率和 质量的技术。主要用到测试阶段的技术。 信息收集、错误原因分析、软件分析与理解、 维护方案评价、代码与文档的修改、修改后的确 软件维护中应注意的问题(谨慎、工具使用) 首页上页[下页末页片退出
7.3 软件维护的技术 在软件开发阶段用来减少错误,提高软件可 维护性的技术。涉及到软件开发的所有阶段。 首页 上页 下页 末页 退出 可维护性(可测试性、可理解性、可修改性) 二、软件支援技术 一、面向维护的技术 在软件维护阶段用于提高维护工作的效率和 质量的技术。主要用到测试阶段的技术。 (信息收集、错误原因分析、软件分析与理解、 维护方案评价、代码与文档的修改、修改后的确 认。) 三、软件维护中应注意的问题(谨慎、工具使用)