⑤,丽步交通大净现代远程教育課程 软件工程概论 主讲教师:刘海岩副教授 mailhaiyanliuhyl@yahoo.com.cn 2021/2/20
2021/2/20 1
西安交通大学现代远程教育课程 软件工程概论 第5章软件维护 软件维护的概念 软件维护的活动 软件的可维护性 软件再工程 主讲教师:刘海岩副教授
2 第5章 软件维护 • 软件维护的概念 • 软件维护的活动 • 软件的可维护性 • 软件再工程
西安交通大学现代远程教育课程 软件工程概论 61软件维护的概念 当软件系统在实际环境被用户使用时,软件开发宣告结 束。但软件总是要变化的,在软件交付使用后修改软件的过 程称为软件维护 软件维护一般不包括重大的体系结构的改变,变更的实 现方法一般是修改已有的系统构件以及在必要的地方添加新 构件到系统中 1、软件维护的分类 ·改正性维护:修改软件缺陷。 适应性维护:适应变更的操作环境(硬件、操作系统 平台、其他支持软件)。 ·增强性维护:系统需求改变(机构因素、业务改变) 主讲教师:刘海岩副教授
3 6.1 软件维护的概念 当软件系统在实际环境被用户使用时,软件开发宣告结 束。但软件总是要变化的,在软件交付使用后修改软件的过 程称为软件维护。 软件维护一般不包括重大的体系结构的改变,变更的实 现方法一般是修改已有的系统构件以及在必要的地方添加新 构件到系统中。 1、软件维护的分类 • 改正性维护:修改软件缺陷。 • 适应性维护:适应变更的操作环境(硬件、操作系统 平台、其他支持软件)。 • 增强性维护:系统需求改变(机构因素、业务改变)
西安交通大学现代远程教育课程 软件工程概论 Lien忆z和 Swanson(1980)对维护的工作量做过调查 如图所示。 Nosek和Pava(1990)在十年后给出的数据与 此相似。 适应性维护和增强 性维护占了绝大部分工 作量。维护是系统开发 缺陷修补 (17%) 过程的自然延续,同样 功能添加 也涉及到需求描述、设 软件适应性 和修改(65%) (18%) 计、实现和测试活动 维护工作量分布 主讲教师:刘海岩副教授
4 Lientz和Swanson(1980)对维护的工作量做过调查, 如图所示。Nosek和Palvia(1990)在十年后给出的数据与 此相似。 适应性维护和增强 性维护占了绝大部分工 作量。维护是系统开发 过程的自然延续,同样 也涉及到需求描述、设 计、实现和测试活动
西安交通大学现代远程教育课程 软件工程概论 2、维护的成本 维护成本和开发成本的比例在不同的应用域中是不同 的。 Guimaraes(1983)的研究表明,对于业务应用系统,维 护成本和系统开发成本大体相等。对于嵌入式实时系统,维 护费用是开发成本的四倍以上。 带来高维护费用的关键因素: ·人员的不稳定 合同责任 维护人员技术水平 系统结构衰退 遗留系统的结构受到频繁变更的破坏;没有使用现代的 软件工程技术开发;文档不全、不一致;没有采用配置管理 系统变更时在寻找系统构件的合适版本上浪费时间。 主讲教师:刘海岩副教授
5 2、维护的成本 维护成本和开发成本的比例在不同的应用域中是不同 的。Guimaraes(1983)的研究表明,对于业务应用系统,维 护成本和系统开发成本大体相等。对于嵌入式实时系统,维 护费用是开发成本的四倍以上。 带来高维护费用的关键因素: • 人员的不稳定 • 合同责任 • 维护人员技术水平 • 系统结构衰退 遗留系统的结构受到频繁变更的破坏;没有使用现代的 软件工程技术开发;文档不全、不一致;没有采用配置管理, 系统变更时在寻找系统构件的合适版本上浪费时间
西安交通大学现代远程教育课程 软件工程概论 Belady和 Lehman提出了一个计算维护工作量的模型: M=p+K×eC0 其中M:软件维护所有的工作量; p:生产性工作量(分析、设计、编码及测试); K:经验常数; C:复杂程度; d:维护人员对软件的熟悉程度。 该模型描述了影响维护的诸多因素中重要的关系。如 果一个系统开发没有遵循软件工程原则,软件结构不好, c的值就会很高,再加上维护人员对软件的不熟悉,d的值 很低。结果是,维护的成本呈指数级的增长 主讲教师:刘海岩副教授
6 Belady和Lehman提出了一个计算维护工作量的模型: M=p+K×e (c- d) 其中 M:软件维护所有的工作量; p:生产性工作量(分析、设计、编码及测试); K:经验常数; c:复杂程度; d:维护人员对软件的熟悉程度。 该模型描述了影响维护的诸多因素中重要的关系。如 果一个系统开发没有遵循软件工程原则,软件结构不好, c的值就会很高,再加上维护人员对软件的不熟悉,d的值 很低。结果是,维护的成本呈指数级的增长
西安交通大学现代远程教育课程 软件工程概论 如何降低软件维护的费用? (1)从开发阶段的一开始就按质量标准构建系统,给 予“可维护性”属性以足够的重视,这样可以使系统的整 个生命周期成本减少。下图说明了这个问题。系统1在开 发成本中多投入$25000,用于提高系统的可维护性,结 果在整个生命周期中节省了$100000的维护成本。 系统1 系统2 0501001502002503035040045050千美元 □开发成本 □维护成本 开发和维护成本 主讲教师:刘海岩副教授
7 如何降低软件维护的费用? (1)从开发阶段的一开始就按质量标准构建系统,给 予“可维护性”属性以足够的重视,这样可以使系统的整 个生命周期成本减少。下图说明了这个问题。系统1在开 发成本中多投入$25000,用于提高系统的可维护性,结 果在整个生命周期中节省了$100 000的维护成本
西安交通大学现代远程教育课程 软件工程概论 (2)采用演化式的系统开发模型(如增量、螺旋) 建立能结合新需求而演化和变更的系统 (3)实施软件再工程,改善系统结构,提高可维 护性。 8 主讲教师:刘海岩副教授
8 (2)采用演化式的系统开发模型(如增量、螺旋), 建立能结合新需求而演化和变更的系统。 (3)实施软件再工程,改善系统结构,提高可维 护性
西安交通大学现代远程教育课程 软件工程概论 62软件维护活动 Pfleeger和 Bohner(1990)提出了软件维护的一种模型, 其中包含了度量的反馈,见下图: 预防性 适应性 改正性 完善性 管理软 新系统 件维护性 变动 请求 分析软件 理解 实现维 解释波 (再)测试受 变动后果 软件的变动 护变动 动效应 影响的软件 已有系统 影响范围 复杂性 适应性 稳定性 可测试性 可追踪性 模块性 致性 检测性 导向图 文档自描述 完整性 软件维护活动 9 主讲教师:刘海岩副教授
9 6.2 软件维护活动 Pfleeger和Bohner(1990)提出了软件维护的一种模型, 其中包含了度量的反馈,见下图:
西安交通大学现代远程教育课程 软件工程概论 该图说明了当要求进行一项变动时要执行的活动,底 部带标注的箭头代表提供的度量信息,管理人员利用这些 信息决定什么时候和怎样进行变动 维护活动: (1)变更分析 各种变更带来的的负面影响 产生不正确或不完整的补丁软件、结构很差的设计与 编码、构件不标准等等。 这些负面影响使软件复杂性增加,更不易理解。因此 对变更的成本、影响要进行分析 (2)理解变更,规划新版本 根据变更的类型(缺陷修正、适应性调整或增加新功 能),决定哪些变更在下一个版本中完成 10 主讲教师:刘海岩副教授
10 该图说明了当要求进行一项变动时要执行的活动,底 部带标注的箭头代表提供的度量信息,管理人员利用这些 信息决定什么时候和怎样进行变动。 维护活动: (1)变更分析 各种变更带来的的负面影响: 产生不正确或不完整的补丁软件、结构很差的设计与 编码、构件不标准等等。 这些负面影响使软件复杂性增加,更不易理解。因此 对变更的成本、影响要进行分析。 (2)理解变更,规划新版本 根据变更的类型(缺陷修正、适应性调整或增加新功 能),决定哪些变更在下一个版本中完成