软件工程——软件维护

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
o 在软件开发过程中始终强调软件的可维护性。原因 是,一个应用系统由于需求和环境的变化以及自身 暴露的问题,在交付用户使用后,对它进行维护是 不可避免的,统计和估测结果表明,信息技术中硬 件费用一般占35%,软件占65%,而软件后期维 护费用有时竟高达软件总费用的80%,所有前期 开发费用仅占20%。
若维护方式没有大的改进,未来几年,许多 大型软件公司可能要将其预算的80%用于 软件系统的维护上。
2021/3/15
软件维护除费用外的无形代价包括
维护活动占用了其他软件开发可用的资源,使 资源的利用率降低
一些修复或修改请求得不到及时安排,使得客 户满意率下降
维护的结果把一些新的潜在的错误引入软件, 降低了软件质量
二、软件Байду номын сангаас护分类
按照维护的起因分类四类: 纠错性维护 适应性维护 完善性维护 预防性维护
2021/3/15
1. 纠错性维护(Corrective Maintenance)
——为改正软件系统中潜藏的错误而进行的活动。
纠错性维护是指在系统开发阶段已发生而系统测试阶段尚未发 现的错误。这方面的维护工作量占整个维护工作量的17%21%。所发现的错误有的不太重要,不影响系统的正常运行 ,其维护工作可随时进行;而有的错误非常重要,甚至影响整 个系统的正常运行,其维护工作必须制定计划,进行修改,并 且要进行复查和控制。
2021/3/15
三、维护问题
和软件维护有关的部分问题 :
理解别人的代码通常是非常困难的,而且难度 随着软件配置成分的缺失而迅速增加
需要维护的软件往往没有文档、或文档资料严 重不足、或软件的变化未在相应的文档中反映 出来
2021/3/15
当软件要求维护时,不能指望由原来的开发人 员来完成或提供软件的解释。由于维护持续时 间很长,因此当需要解释软件时候,往往开发 人员已经不在附近了
适应性维护是指是软件适应信息技术变化和管理需求而进行的修 改。这方面的维护工作量占整个维护工作量的18%-25%。由 于目前计算机硬件价格的不断下降,各类系统软件层出不穷,人 们常常为改善系统硬件环境和运行环境而产生系统更新换代的需 求;企业的外部市场环境和管理需求的不断变化也使得各级管理 人员不断提出新的信息需求。这些因素都将导致适应性维护工作 的产生。
将软件人员抽调到维护工作中,使得其它软件 开发过程受到干扰
2021/3/15
维护的工作可划分成:
生产性活动 如,分析评价、修改设计、编写程 序代码等
非生产性活动 如,程序代码功能理解、数据结 构解释、接口特点和性能界限分析等
2021/3/15
在软件维护中,影响维护工作量的因素主要 有以下六种:
软件工程——软件维护
2021/3/15
一、软件维护的概念 二、软件维护分类 三、维护问题 四、维护成本 五、维护过程 六、维护的副作用 七、如何做好软件维护
软件维护
o 软件维护阶段覆盖了从软件交付使用到软件被淘汰 为止的整个时期。软件的开发时间可能需要一、二 年,甚至更短,但它的使用时间可能要经历几年或 几十年。
2021/3/15
4. 预防性维护(Preventive Maintenance)
——为了进一步改善软件系统的可维护性和可靠性 ,并为以后的改进奠定基础。
预防性维护为了改进应用软件的可靠性和可维护性,为 了适应未来的软硬件环境的变化,主动增加预防性的新 的功能,以使应用系统适应各类变化而不被淘汰。这方 面的维护工作占整个维护工作量的4%左右,是维护工作 中占比最少的一部分工作。
这部分维护工作实际上就是软件系统运行过程中修改前期没有 发现的bug,在修改旧bug过程中也可能会引入新的bug,这 部分工作以后会成为新的纠错性维护工作。在软件开发过程中 加强测试,可以有效减少这部分的维护工作。
2. 适应性维护(Adaptive Maintenance)
——为适应软件运行环境的变化而修改软件的活动。
2021/3/15
3. 完善性维护(Perfective Maintenance) ——根据用户在软件使用过程中提出的建设性意见 而进行的维护活动。
完善性维护是为扩充功能和改善性能而进行的修改,主要是 指对已有的软件系统增加一些在系统分析和设计阶段中没有规 定的功能与性能特征。这些功能对完善系统功能是非常必要的 。另外,还包括对处理效率和编写程序的改进,这方面的维护 占整个维护工作的50%-60%,比重较大,也是关系到系统 开发质量的重要方面。完善性维护是软件维护工作的主要部分 ,触发这类维护工作的常常是用户业务交易增加了,或是业务 流程改变了,需要修改软件;也可能是软件不能满足业务量要 去,需要在性能上有所提高。
绝大多数软件在设计时没有考虑到将来的修改 问题
软件维护这项工作毫无吸引力。一方面是因为 软件维护,看不到什么“成果”,但工作量很 大,更重要的是维护工作难度大,软件维护人 员经常遭受挫折。
2021/3/15
四、维护成本
过去的二十年,软件维护的成本在不断增长 。
七十年代,一个信息系统机构用于软件维护 的费用占其软件总预算的35~40%,八十年 代接近60%。
系统的大小 系统规模越大,其功能就越复杂,软件维护的工 作量也随之增大。
程序设计语言 使用功能强大的程序设计语言可以控制程序的规 模。语言的功能越强,生成程序的模块化和结构 化程度越高,所需的指令数就越少,程序的可读 性越好。
2021/3/15
系统年龄
系统使用时间越长,所进行的修改就越多,而多 次的修改可能造成系统结构混乱。由于维护人员 经常更换,程序变得越来越难于理解,加之系统 开发时文档不齐全,或在长期的维护过程中文档 在许多地方与程序实现不一致,从而使维护变得 十分困难。
2021/3/15
一、软件维护的概念
什么是软件维护
是指软件系统交付使用以后,为了改正错误或 满足新的需要而修改软件的过程
国标GB/T 11457-95给出如下定义
在一软件产品交付使用后对其进行修改,以纠 正故障;
在一软件产品交付使用后对其进行修改,以纠 正故障、改进其性能和其它属性,或使产品适 应改变了的环境
相关文档
最新文档