软件维护

软件维护是生存走其中花钱最多、延续时间最长的活动。


1. 软件维护的种类

软件维护是指软件交付使用后,为了改正或满足需要而修改软件的工程。


软件维护分为如下几类:

  • 完善性维护:改善和加强产品的功能和性能,是软件维护的首位
  • 适应性维护:为适应运行环境的改变而进行的维护行为
  • 纠错性维护:纠正开发期间未能发现的遗留错误
  • 预防性维护:改善软件的可维护性,降低今后维护所需要的工作量



2. 软件的可维护性

所谓的可维护性是:衡量软件维护容易程度的一种软件属性。定性的可以通过如下几个方面描述软件的可维护性:

  • 可理解性:一是程序文档与注释;二是软件开发所采用的语言
  • 可修改性:软件维护时,所引入错误的概率
  • 可测试性:软件修改后测试的难易程度


如果需要定量的描述软件的可维护性,可以通过记录软件维护过程中,花在各个阶段的时间,通过时间量来衡量软件的可维护性高低。


提高软件可维护性的途径:提高软件可维护性最根本的途径就是使每个开发者懂得软件维护的重要性,在开发阶段就以降低今后维护工作量为目标。下面的两个活动与提高软件可维护性的相关:

  • 提供完整和一致的文档:
  • 采用现代化的开发方法:面向对象、软件复用、数据库技术等



3. 软件维护过程

软件维护不应该是随随便便的,而应该是严格管理和控制的。应该按照维护类型区分为不同的维护过程,同时也需要根据维护的重要性/优先级管理和控制维护的过程,当有维护需求时,可以参考如下的维护过程:

软件工程原理、方法与运用----软件维护_预防性维护

软件维护申请单与软件维护报告表 

这是一次软件维护时期新增的两个文件,分别用于软件维护开始前和软件维护开始后。

软件维护申请单(MRF),又叫做软件修改申请单或软件问题报告单,通常由申请维护的用户填写。

软件修改报告单(SCR),用来记录软件在维护期间对软件所做的每一次修改。


软件维护的副作用

软件维护的副作用是指软件维护过程中给软件引入的新的错误,软件维护的副作用可以分为如下三类:

  • 修改编码的副作用:直接修改代码所带来的副作用
  • 修改数据的副作用:修改数据文件记录或数据格式,修改全局变量,修改函数参数等。
  • 修改文档的副作用:程序与文档一致性的保护



3. 软件维护的管理