软件维护的分类

软件维护的分类
预览:

第6章 软件维护
软件维护的概念  软件维护的活动  软件的可维护性  软件再工程


西安交通大学 刘海岩

1

6.1 软件维护的概念
当软件系统在实际环境被用户使用时,软件开发宣告结 束。但软件总是要变化的,在软件交付使用后修改软件的过 程称为软件维护。 软件维护一般不包括重大的体系结构的改变,变更的实 现方法一般是修改已有的系统构件以及在必要的地方添加新 构件到系统中。 1、软件维护的分类 • 改正性维护:修改软件缺陷。 • 适应性维护:适应变更的操作环境(硬件、操作系统 平台、其他支持软件)。 • 增强性维护:系统需求改变(机构因素、业务改变)。
西安交通大学 刘海岩 2

Lientz和Swanson(1980)对维护的工作量做过调查, 如图所示。Nosek和Palvia(1990)在十年后给出的数据与 此相似。 适应性维护和增强 性维护占了绝大部分工 作量。维护是系统开发 过程的自然延续,同样 也涉及到需求描述、设 计、实现和测试活动。

西安交通大学 刘海岩

3

2、维护的成本
维护成本和开发成本的比例在不同的应用域中是不 同的。Guimaraes(1983)的研究表明,对于业务应用系统, 维护成本和系统开发成本大体相等。对于嵌入式实时系 统,维护费用是开发成本的四倍以上。 带来高维护费用的关键因素: • 人员的不稳定 • 合同责任 • 维护人员技术水平 • 系统结构衰退 遗留系统的结构受到频繁变更的破坏;没有使用现 代的软件工程技术开发;文档不全、不一致;没有采用 配置管理,系统变更时在寻找系统构件的合适版本上浪 费时间。
西安交通大学 刘海岩 4

Belady 和 Lehman 提出了一个计算维护工作量的模型: M=p+K×e(c- d) 其中 M:软件维护所有的工作量; p:生产性工作量(分析、设计、编码及测试); K:经验常数; c:复杂程度; d:维护人员对软件的熟悉程度。 该模型描述了影响维护的诸多因素中重要的关系。 如果一个系统开发没有遵循软件工程原则,软件结构不 好,c的值就会很高,再加上维护人员对软件的不熟悉, d的值很低。结果是,维护的成本呈指数级的增长。

西安交通大学 刘海岩

5

如何降低软件维护的费用? (1)从开发阶段的一开始就按质量标准构建系统,给 予“可维护性”属性以足够的重视,这样可以使系统的 整个生命周期成本减少。下图说明了这个问题。系统1在 开发成本中多投入$25000,用于提高系统的可维护性, 结果在整个生命周期中节省了$100 000的维护成本。

西安交通大学 刘海岩

6

( 2 )采用演化式的系统开发模型(如增量、螺 旋),建立能结合新需求而演化和变更的系统。

第1页/共26页 下一页>尾页

寻找更多 "软件维护的分类"