● 硬件和操作系统平台的升级换代周期越来越短,换代比例越来越高。然而半个世纪以来,大部分软件资产并没能像硬件那样频繁地经历彻底的更新换代,为了适应硬件的飞速换代,环境适应性维护周期也越来越短,范围越来越大。
● 数据——这一系统赖以存在、也是系统价值标志的基石——越积累越多,却从未彻底进行过合理重组……
如此看来,软件开发人员的担子越来越重。
20多年前曾有人预言:软件进入维护期的比例将随软件递增率一起增长,进入21世纪后将有80%的软件人员从事维护性开发。从软件的价值随着生存期而递增(参看图2)的特点来看,这并不违背市场经济的价值规律。
什么是再工程?
图3给出了一个软件生存期示意图,再工程处于软件生存期的维护期。所以要研究再工程首先要研究软件维护(Software
Maintenance)。
ANSI/IEEE在20世纪80年代是这样定义软件维护的:“软件维护是指软件成品提供使用后,为了修改差错、改善功能和性能、适应环境变化而进行的软件修正。”具体说软件维护分为4类:改正性维护、适应性维护、完善性维护和预防性维护。
而再工程是对一次工程后的成品软件进行再次开发,软件维护期的适应性、完善性、预防性维护都属于再工程范畴。再工程面对的不是原始需求,而是既存软件,是从既存软件开发出新软件的过程,为了与软件从无到有的第一次开发相区别,有必要引入如下概念:
|