第九章软件维 9.1软件维护的概念 92软件维护的特点 93软件维护过程 94软件可维护性 9.5软件维护的副作用 退出
9.2 软件维护的特点 9.3 软件维护过程 9.4 软件可维护性 9.5 软件维护的副作用 退出 第九章 软件维护 9.1 软件维护的概念
911软件维护的种类 般来说,要求进行维护的原因大致有以下几 种 (1)改正程序中的错误和缺陷。 (2)改进设计以适应新的软、硬件环境。 (3)增加新的应用范围。 综合以上几种要求进行维护的原因,我们可以 把软件维护分为以下几类: 改正性维护 2.适应性维护 3.完善性维护 4.预防性维护
一般来说,要求进行维护的原因大致有以下几 种: (1)改正程序中的错误和缺陷。 (2)改进设计以适应新的软、硬件环境。 (3)增加新的应用范围。 综合以上几种要求进行维护的原因,我们可以 把软件维护分为以下几类: 1.改正性维护 2.适应性维护 3.完善性维护 4.预防性维护 9.1.1 软件维护的种类
91.2影响维护工作量的因素 1.系统的规模 2.系统的年龄 3.系统的结构 4.程序设计语言 5.文档的质量
9.1.2 影响维护工作量的因素 1.系统的规模 2.系统的年龄 3.系统的结构 4.程序设计语言 5.文档的质量
9.2软件维护的特点 921软件工程与软件维护的关系 9,22维护成本 923维护的成本 退出
9. 2 软件维护的特点 9.2.1 软件工程与软件维护的关系 9.2.2 维护成本 退出 9.2.3 维护的成本
921软件工程与软件维护的关系 维护要求 软件 代码 配置 评价设计 评价代码 计划途径 修改设计 重新编码 重新编码 复查 复查 交付使用
9.2.1 软件工程与软件维护的关系 配置 评价设计 计划途径 修改设计 重新编码 评价代码 ? 复查 重新编码 复查 维护要求 交付使用 软件 代码
922维护成本 无形的维护成本: (1)一些看起来是合理的改错或修改的要求不能及时 满足,使得用户不满意; (2)维护时产生的改动,可能会带来新的潜伏的故障, 从而降低了软件的整体质量; (3)当必须把软件开发人员抽调去进行维护工作时, 将在开发过程中造成混乱
无形的维护成本: (1)一些看起来是合理的改错或修改的要求不能及时 满足,使得用户不满意; (2)维护时产生的改动,可能会带来新的潜伏的故障, 从而降低了软件的整体质量; (3)当必须把软件开发人员抽调去进行维护工作时, 将在开发过程中造成混乱。 9.2.2 维护成本
用于软件维护的工作量可以分为两部分:一部分用于 生产性活动,另一部分用于非生产性活动。下面的表达 式是由 Belady和 Lehman提出的维护工作量的计算模型: M=p+K×ee=0 M:维护中消耗的总工作量; p:生产性工作量 K:经验常数 c:复杂程度 d:维护人员对软件的熟悉程度。 通过这个模型可以看出,如果使用了不好的软件开发 方法,参加维护的人员都不是原来开发的人员,那么维 护工作量(及成本)将按指数级增加
用于软件维护的工作量可以分为两部分:一部分用于 生产性活动,另一部分用于非生产性活动。下面的表达 式是由Belady和Lehman提出的维护工作量的计算模型: M=p+K×e (c – d) M:维护中消耗的总工作量; p:生产性工作量; K:经验常数; c:复杂程度; d:维护人员对软件的熟悉程度。 通过这个模型可以看出,如果使用了不好的软件开发 方法,参加维护的人员都不是原来开发的人员,那么维 护工作量(及成本)将按指数级增加
923维护的问题 (1)理解他人编写的程序一般都有一定的困难性 (2)软件配置的文档严重不足甚至没有,或者没有合 格的文档。 (3)当需要对软件进行维护时,由于软件人员经常流 动,维护阶段持续的时间又很长,所以一般不能指望由原 来的开发人员来完成或提供软件的解释。 (4)绝大多数软件在设计时没有考虑到将来的修改问 题 (5)软件维护可以说是一项毫无吸引力的工作。之所 以形成这样一种观念,一方面是因为软件维护工作量大, 看不到什么“成果”,更主要的原因是因为维护工作难度 大,又经常遭受挫折
(1)理解他人编写的程序一般都有一定的困难性。 (2)软件配置的文档严重不足甚至没有,或者没有合 格的文档。 (3)当需要对软件进行维护时,由于软件人员经常流 动,维护阶段持续的时间又很长,所以一般不能指望由原 来的开发人员来完成或提供软件的解释。 (4)绝大多数软件在设计时没有考虑到将来的修改问 题。 (5)软件维护可以说是一项毫无吸引力的工作。之所 以形成这样一种观念,一方面是因为软件维护工作量大, 看不到什么“成果” ,更主要的原因是因为维护工作难度 大,又经常遭受挫折。 9.2.3 维护的问题