第八章__维护
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章维护
一、概述P2
二、软件维护的定义
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。维护的类型有四种:
1、改正性维护(Corrective Maintenance)--诊断和改正错误的过程
在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部
分隐藏的错误遗留到运行阶段。
这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。
为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的
误使用,所进行的诊断和改正错误的过程就叫做改正性维护。
2、适应性维护(Adaptive Maintenance )--为适应变化了的环境而进
行的软件修改活动
在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、
数据格式、数据输入/输出方式、数据存储介质)都可能发生变化。
为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。
3、扩充与完善性维护(Perfective Maintenance)
在软件的使用过程中,用户往往会对软件提出增加新功能或修改已
有功能、改善性能的要求。
为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增
强软件性能、改进加工效率、提高软件的可维护性。
这种情况下进行的维护活动叫做扩充与完善性维护。
4、预防性维护(Preventive Maintenance)
预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步
改进软件打下良好基础。
预防性维护定义为:采用先进的软件工程方法对需要维护的软件或
软件中的某一部分(重新)进行设计、编码和测试。目前,这类维护活动相对比较少。
各类维护所占比例:
三、软件维护的特点
1、结构化维护与非结构化维护差别巨大
非结构化维护----软件配置的惟一成份是程序代码,维护活动从艰苦地评价程序代码开始。P8
结构化维护----有一套完整的软件配置存在,维护工作从评价设计文档开始。P9
2、影响软件维护的因素诸多
系统大小、程序设计语言、系统年龄、是否应用数据库技术、是否采用较先进的软件开发技术、开发时是否考虑将来的修改、其他因
素(应用的类型、数学模型、任务的难度、开关与标记、IF嵌套深度、索引或下标数等)
3、软件维护的代价高昂
首先,软件维护需要的工作量很大,平均说来,大型软件的维护成
本高达开发成本的4倍左右。目前国外许多软件开发组织把60%以上的人力用于维护已有的软件,而且随着软件数量增多和使用寿命延长,这个百分比还在持续上升。
有形的软件维护成本是花费了多少钱,而无形的维护成本有更大的
负面影响。
(1) 一些合理的修复或修改请求不能及时安排,使得客户不满意;
(2) 变更的结果引入新的故障,使得软件整体质量下降;
(3) 把软件人员抽调到维护工作中,干扰了软件开发工作。
维护工作量的计算模型:
d
c
+
=
p
Ke
M-
其中:
M 是维护中消耗的总工作量
P 是生产性工作量
K 是一个经验常数
c 是因缺乏好的设计和文档而导致复杂性的度量
d 是维护人员对软件熟悉程度的度量
模型表明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将
按指数级增加。
4、影响软件维护的典型问题P14~16
难以读懂他人的程序
无文档或不全
软件人员流动性大
设计时未考虑修改需要,修改困难
维护工作无吸引力,缺乏成就感
难以跟踪软件的创建过程、软件版本的进化过程,软件的变化未在
文档中反映出来
四、软件维护的过程
软件维护过程本质上是更改和压缩了的软件定义和开发过程。
1、前期工作
事实上,远在提出一项维护要求之前,与软件维护有关的工作已
经开始了。(机构、制度和标准)
首先要建立维护的机构
申明维护申请报告的提出过程及评价的过程
为每一个维护申请规定标准的处理步骤
建立维护活动的记录保管,并规定复审的标准
2、维护机构P18~19
维护要求维护管理员→系统管理员→变化授权人
3、维护报告
应该由软件维护人员向用户提供标准化格式表格,使用户能表达所
需软件维护要求;
维护申请报告或称软件问题报告,由申请维护的用户填写;
用户必须完整地说明产生错误的情况,包括输入数据、错误清单以
及其它有关材料;
如果申请的是适应性维护或完善性维护,用户必须提出一份修改说
明书,列出所有希望的改进。
维护申请报告将由维护管理员和系统管理员来研究处理。他们应相
应地做出软件修改报告,指明:
(1) 所需修改变动的性质;
(2) 申请修改的优先级;
(3) 为满足某个维护申请报告,所需的工作量;
(4) 预计修改后的状况。
软件修改报告应提交给变化授权人(修改负责人),经批准后才能进
一步安排维护工作。
4、软件维护工作流程P23
尽管维护申请的类型不同,但都要进行同样的技术工作----是一次
压缩了的软件工程。
(1) 修改软件需求说明
(2) 修改软件设计
(3) 设计评审
(4) 对源程序做必要的修改
(5) 单元测试