软件维护讲解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Dec. 6, 2005 Copyright @ Tsinghua University Page 7
预防性维护
预防性维护是为了提高软件的可维护 性、可靠性等,为以后进一步改进软 件打下良好基础。 预防性维护定义为:采用先进的软件 工程方法对需要维护的软件或软件中 的某一部分(重新)进行设计、编制 和测试。 将今天的方法应用于昨天的软件以满 足明天的需要

Dec. 6, 2005 Copyright @ Tsinghua University Page 8
三类维护占 总维护比例
维护在软件生 存期所占比例
Dec. 6, 2005
Copyright @ Tsinghua University
Page 9
在整个软件维护阶段所花费的全部工 作量中,完善性维护占了几乎一半的 工作量。 软件维护活动所花费的工作占整个生 存期工作量的70%以上,这是由于在 漫长的软件运行过程中需要不断对软 件进行修改,以改正新发现的错误、 适应新的环境和用户新的要求,这些 修改需要花费很多精力和时间,而且 有时会引入新的错误。

Dec. 6, 2005 Copyright @ Tsinghua University Page 5
适应性维护
在使用过程中,
外部环境(新的硬、软件配置) – 数据环境(数据库、数据格式、数 据输入/输出方式、存储介质) 可能发生变化。

为使软件适应这种变化,而去修
改软件的过程就叫做适应性维护

Dec. 6, 2005 Copyright @ Tsinghua University Page 10
维护实例
IBM360 Microsoft Windows – 漏洞、病毒、补丁 – AMD64 CPU,多核CPU – ……


Skyeye
Copyright @ Tsinghua University Page 11
Dec. 6, 2005

SkyEye 是一个开源软件(Open Source Software) 项目,其目标是在通用的Linux和Windows平台实现 一个模拟集成开发环境,模拟基于ARM的嵌入式计算 机系统。下面是该项目部分维护记录:
a) Fixed bugs for all cpu. b) Improve the performance of skyeye for strongarm/xscale. c) Fixed several bugs for ep7312/strongarm. d) Improve performance of LCD on ep7312 simulation. e) Porting skyeye-v0.6.8 to Windows.
Copyright @ Tsinghua University
Page 24
软件维护评审
在每次软件维护任务完成后进行情况评 审,对以下问题做一总结: (1) 在目前情况下,设计、编码、测试中的 哪一方面可以改进? (2) 哪些维护资源应该有但没有? (3) 工作中主要的或次要的障碍是什么? (4) 从维护申请的类型来看是否应当有预防 性维护? 情况评审对将来的维护工作如何进行会产 生重要的影响。
Dec. 6, 2005
Copyright @ Tsinghua University
Page 26
每个程序、每种语言、每种维护类 型的程序平均修改次数; – 因为维护,增加或删除每个源程序 语句所花费的平均“人时”数; – 用于每种语言的平均“人时”数; – 维护申请报告的平均处理时间; – 各类维护申请的百分比。 据此可对开发技术、语言选择、维护 工作计划、资源分配、以及其它许 多方面做出判定。
Dec. 6, 2005 Copyright @ Tsinghua University Page 6
完善性维护
在软件的使用过程中,用户往往会对 软件提出新的功能与性能要求。 为了满足这些要求,需要修改或再开 发软件,以扩充软件功能、增强软件 性能、改进加工效率、提高软件的可 维护性。 这种情况下进行的维护活动叫做完善 性维护。
Copyright @ Tsinghua University Page 13
Dec. 6, 2005
影响维护工作量的主要因素
系统大小: 程序设计语言: 系统年龄: 软件开发技术: 其它:


应用的类型,数学模型, 任务的难度

许多软件在开发时并未考虑将来的修 改,为软件的维护带来许多问题。

Dec. 6, 2005 Copyright @ Tsinghua University Page 27
内容提要
软件维护的概念 软件维护活动 软件可维护性 软件维护总结
Dec. 6, 2005
Copyright @ Tsinghua University
Page 28
软件可维护性
许多软件的维护十分困难,原因在于 这些软件的文档不全、质量差、开发 过程不注意采用好的方法,忽视程序 设计风格等。 许多维护要求并不是因为程序中出错 而提出的,而是为适应环境变化或需 求变化而提出的。 为了使得软件能够易于维护,必须考 虑使软件具有可维护性。
Page 3
软件维护的定义
在软件运行/维护阶段对软件产品进 行的修改(变更)就是软件维护。 软件维护“冰山”:70%成本,潜伏 影响软件维护的质量特征:可维护性 软件维护的主要类型:

– –
改正性维护, 适应性维护 完善性维护, 预防性维护
Dec. 6, 2005
Copyright @ Tsinghua University

Dec. 6, 2005 Copyright @ Tsinghua University Page 31
提高软件可维护性
明确软件质量目标和优先级 使用提高软件质量的技术和工具 进行明确的质量保证审查 选择可维护的程序设计语言 改进程序的文档

Dec. 6, 2005
Copyright @ Tsinghua University
Dec. 6, 2005
维护机构
除了较大的软件开发公司外,通常在 软件维护工作方面,并不保持一个正 式的组织机构。 虽然不要求建立一个正式的维护机构 ,但是在开发部门确立一个非正式的 维护机构则是非常必要的。

Dቤተ መጻሕፍቲ ባይዱc. 6, 2005
Copyright @ Tsinghua University
Dec. 6, 2005
模型指明,如果使用不好的软件开
发方法(未按软件工程要求做), 或原来参加开发的人员或小组不能 参加维护,则工作量(及成本)将 按指数级增加。
Dec. 6, 2005
Copyright @ Tsinghua University
Page 17
内容提要
软件维护的概念 软件维护活动 可维护性 软件维护总结
修改软件需求说明 修改软件设计 设计评审 对源程序做必要的修改 单元测试 集成测试( 回归测试) 确认测试 软件配置评审等
Copyright @ Tsinghua University Page 23
软件维护实施
类似于正常的开发过程
– – –

错误隔离 回避措施 回归测试 波动效应
Dec. 6, 2005

Dec. 6, 2005 Copyright @ Tsinghua University Page 29
软件可维护性
软件可维护性是指纠正软件系统出 现的错误和缺陷,以及为满足新的 要求进行修改、扩充或压缩的容易 程度。 可维护性、可使用性、可靠性是衡 量软件质量的主要质量特性,也是 用户十分关心的几个方面。 软件的可维护性是软件开发阶段各 个时期的关键目标。
内容提要
软件维护的概念 软件维护活动 可维护性 软件维护总结
Dec. 6, 2005
Copyright @ Tsinghua University
Page 2
软件维护的概念
软件维护的定义
软件维护的分类
维护成本
Dec. 6, 2005
Copyright @ Tsinghua University
Dec. 6, 2005 Copyright @ Tsinghua University Page 15
维护工作量的模型
M=p+Ke


c d


M是维护中消耗的总工作量 p是上面描述的生产性工作量 K是一个经验常数 c是因缺乏好的设计和文档而导致复杂性的 度量 d是对软件熟悉程度的度量。
Copyright @ Tsinghua University Page 16
Page 20
软件维护申请报告
维护申请报告或称软件问题报告( Bug Report),由申请维护的用户 填写。 用户必须完整地说明产生错误的情况 ,包括输入数据、错误清单以及其它 有关材料(重现错误)。 如果申请的是适应性维护或完善性维 护,用户必须提出一份修改说明书, 列出所有希望的修改。
Copyright @ Tsinghua University Page 14
Dec. 6, 2005
软件维护的代价是降低了生产率,
在做老程序的维护时非常明显。 例如,开发每一行源代码耗资25美 元,维护每一行源代码需要耗资 1000美元。 维护工作量包括生产性活动(如分 析和评价、设计修改和实现)和“ 轮转”活动(如力图理解代码在做 什么、试图判明数据结构、接口特 性、性能界限等)。

Dec. 6, 2005 Copyright @ Tsinghua University Page 25
软件维护评估
评价维护活动比较困难,因为缺乏 可靠的数据。 如果维护的档案记录做得比较好, 可以得出一些维护“性能”方面的度 量值。

– –
每次程序运行时的平均出错次数; 花费在每类维护上的总“人时”数;
Dec. 6, 2005
Copyright @ Tsinghua University
Page 12
维护成本
有形软件维护成本是花费了多少费
用,无形维护成本有更大的影响。
– – –
一些合理的修复或修改请求不能及 时安排,使得客户不满意; 变更的结果引入新的故障,使得软 件整体质量下降; 把软件人员抽调到维护工作中,干 扰了软件开发工作。

Dec. 6, 2005 Copyright @ Tsinghua University Page 21
软件维护 工作流程
Dec. 6, 2005
Copyright @ Tsinghua University
Page 22
软件维护实施
不同维护类型进行同样的技术工作
– – –

– –


Dec. 6, 2005

Dec. 6, 2005 Copyright @ Tsinghua University Page 30
这些质量特性通常体现在软件产品的 许多方面; 为使每一个质量特性都达到预定的要 求,需要在软件开发的各个阶段采取 相应的措施加以保证。 这些质量要求要渗透到而各开发阶段 的各个步骤当中。因此,软件的可维 护性是产品投入运行以前各阶段面向 上述各质量特性要求进行开发的最终 结果。
软件维护
董渊 Dec. 6, 2005 ( System Software & Software Engineering) Department of Computer Science & Technology Tsinghua University
Dec. 6, 2005 Copyright @ Tsinghua University Page 1
Dec. 6, 2005
Copyright @ Tsinghua University
Page 18
软件维护活动
维护机构组织 维护申请报告 维护工作流程




维护申请报告评价 维护实施步骤
类似于正常的开发步骤

建立维护活动的登记制度 维护评审和评价
Copyright @ Tsinghua University Page 19
Page 4
改正性维护
在软件交付使用后,因开发时测试的 不彻底、不完全,必然会有部分隐藏 的错误遗留到运行阶段。 这些隐藏下来的错误在某些特定的使 用环境下就会暴露出来。 为了识别和纠正软件错误、改正软件 性能上的缺陷、排除实施中的误使用 ,应当进行的诊断和改正错误的过程 就叫做改正性维护。
相关文档
最新文档