第6章软件维护 软件维护的概念 软件维护的活动 软件的可维护性 软件再工程 安交通大学刘海岩
西安交通大学 刘海岩 1 第6章 软件维护 ⚫ 软件维护的概念 ⚫ 软件维护的活动 ⚫ 软件的可维护性 ⚫ 软件再工程
61软件维护的概念 当软件系统在实际环境被用户使用时,软件开发宣告结 束。但软件总是要变化的,在软件交付使用后修改软件的过 程称为软件维护 软件维护一般不包括重大的体系结构的改变,变更的实 现方法一般是修改已有的系统构件以及在必要的地方添加新 构件到系统中 1、软件维护的分类 改正性维护:修改软件缺陷 适应性维护:适应变更的操作环境(硬件、操作系统 平台、其他支持软件) 增强性维护:系统需求改变(机构因素、业务改变)。 安交通大学刘海岩
西安交通大学 刘海岩 2 6.1 软件维护的概念 当软件系统在实际环境被用户使用时,软件开发宣告结 束。但软件总是要变化的,在软件交付使用后修改软件的过 程称为软件维护。 软件维护一般不包括重大的体系结构的改变,变更的实 现方法一般是修改已有的系统构件以及在必要的地方添加新 构件到系统中。 1、软件维护的分类 • 改正性维护:修改软件缺陷。 • 适应性维护:适应变更的操作环境(硬件、操作系统 平台、其他支持软件)。 • 增强性维护:系统需求改变(机构因素、业务改变)
Lientz和 Swanson(1980)对维护的工作量做过调查, 如图所示。Noek和 Pavia(190在十年后给出的数据与 此相似。 适应性维护和增强 性维护占了绝大部分工 缺陷修补 (17%) 作量。维护是系统开发 功能添加 过程的自然延续,同样 软件适应性 和修改(65%) (18%) 也涉及到需求描述、设 计、实现和测试活动 维护工作量分布 安交通大学刘海岩
西安交通大学 刘海岩 3 Lientz和Swanson(1980)对维护的工作量做过调查, 如图所示。Nosek和Palvia(1990)在十年后给出的数据与 此相似。 适应性维护和增强 性维护占了绝大部分工 作量。维护是系统开发 过程的自然延续,同样 也涉及到需求描述、设 计、实现和测试活动
2、维护的成本 维护成本和开发成本的比例在不同的应用域中是不 同的。 Guimaraes(1983)的研究表明,对于业务应用系统, 维护成本和系统开发成本大体相等。对于嵌入式实时系 统,维护费用是开发成本的四倍以上 带来高维护费用的关键因素: 人员的不稳定 合同责任 维护人员技术水平 系统结构衰退 遗留系统的结构受到频繁变更的破坏;没有使用现 代的软件工程技术开发;文档不全、不一致;没有采用 配置管理,系统变更时在寻找系统构件的合适版本上浪 费时间。 安交通大学刘海岩
西安交通大学 刘海岩 4 2、维护的成本 维护成本和开发成本的比例在不同的应用域中是不 同的。Guimaraes(1983)的研究表明,对于业务应用系统, 维护成本和系统开发成本大体相等。对于嵌入式实时系 统,维护费用是开发成本的四倍以上。 带来高维护费用的关键因素: • 人员的不稳定 • 合同责任 • 维护人员技术水平 • 系统结构衰退 遗留系统的结构受到频繁变更的破坏;没有使用现 代的软件工程技术开发;文档不全、不一致;没有采用 配置管理,系统变更时在寻找系统构件的合适版本上浪 费时间
Belady和 Lehman提出了一个计算维护工作量的模型: M=p+K×e-0 其中M:软件维护所有的工作量; p:生产性工作量(分析、设计、编码及测试) K:经验常数; c:复杂程度 d:维护人员对软件的熟悉程度。 该模型描述了影响维护的诸多因素中重要的关系 如果一个系统开发没有遵循软件工程原则,软件结构不 好,c的值就会很高,再加上维护人员对软件的不熟悉, d的值很低。结果是,维护的成本呈指数级的增长 安交通大学刘海岩
西安交通大学 刘海岩 5 Belady和Lehman提出了一个计算维护工作量的模型: M=p+K×e (c- d) 其中 M:软件维护所有的工作量; p:生产性工作量(分析、设计、编码及测试); K:经验常数; c:复杂程度; d:维护人员对软件的熟悉程度。 该模型描述了影响维护的诸多因素中重要的关系。 如果一个系统开发没有遵循软件工程原则,软件结构不 好,c的值就会很高,再加上维护人员对软件的不熟悉, d的值很低。结果是,维护的成本呈指数级的增长