计算机技术飞速发展,日新月异,许多企业因为业务发展的需要和市场竞争的压力,需要建设新的企业信息系统。在这种升级改造的过程中,怎么处理和利用那些历史遗留下来的老系统,成为影响新系统建设成败和开发效率的关键因素之一。通常称这些老系统为遗留系统。
目前,学术和工业界对遗留系统的定义没有统一的意见 。Bennett 在 1995 年对遗留系统做了如下的定义:遗留系统是不知道如何处理但对组织又至关重要的系统 。Brodie 和 Stonebraker 对遗留系统的定义如下:遗留系统是指任何基本上不能进行修改和演化以满足新的变化了的业务需求的信息系统。
遗留系统应该具有以下特点:
(1)系统虽然能完成企业中许多重要的业务管理工作,但已经不能完全满足要求。一般实现业务处理电子化及部分企业管理功能,很少涉及经营决策。
(2)系统在性能上已经落后,采用的技术已经过时。如多采用主机/终端形式或小型机系统,软件使用汇编语言或第三代程序设计语言的早期版本开发,使用文件系统而不是数据库。
(3)通常是大型的系统,已经融入企业的业务运行和决策管理机制之中,维护工作十分困难。
(4)系统没有使用现代系统工程方法进行管理和开发,现在基本上已经没有文档,很难理解。
在企业信息系统升级改造过程中,如何处理和利用遗留系统,成为新系统建设的重要组成部分。处理恰当与否,直接关系到新系统的成败和开发效率。遗留系统的演化方式可以有很多种,根据系统的技术条件 、 商业价值及维护和运行系统的组织特征不同,可以采取继续维护 、 某种形式的重构或替代策略,或者联合使用几种策略。究竟采用哪些策略来处理遗留系统,需要根据对遗留系统的所有系统特性的评价来确定。
1 遗留系统的评价方法
对遗留系统评价的目的是为了获得对遗留系统更好的理解,这是遗留系统演化的基础,是任何遗留系统演化项目的起点。本文的评价方法包括度量系统技术水准 、 商业价值和与之关联的组织特征,其结果作为选择处理策略的基础。
评价方法由一系列活动组成,如图 1 所示。
1.1 启动评价
评价是为了获得对遗留系统的足够深度的理解,从技术 、 商业和企业角度对系统的理解为系统处理策略提供基础,开始评价前,需要了解以下问题。
(1)对企业来说,遗留系统是否是至关重要的。在评价过程中,可能会发现系统对企业的继续运作产生的影响不大。在这种情况下,就没有必要考虑系统的演化问题。
(2)企业的商业目标是什么。从商业观点来看,评估师必须理解企业的商业目标,因为商业目标产生演化需求。
(3)演化需求是什么。演化需求来自企业的商业目标和评价活动。需求必须是可见的,以便决定已存在的系统是否能满足需求。
(4)所期望的系统寿命多长。一个系统的寿命由软件和硬件的服务能力决定,一旦系统硬件或支撑软件过时,系统的有效性就受到限制。
(5)系统使用期限多久。如果系统的使用期限只是短期的,就没有必要花费成本来演化系统。相反,如果系统将在相当长的时期内支持主要业务流程,则必须进行演化。
(6)系统的技术状态如何。例如,如果应用软件的技术状况很差,则很难理解,维护费用会很高。
(7)企业是否愿意改变。企业对改变的态度是遗留系统演化成功的关键因素之一。
(8)企业是否有能力承受演化。企业的技术成熟度,员工的素质,支撑工具的级别等都是影响演化的因素。
1.2 商业价值评价
商业价值评价的目标是判断遗留系统对企业的重要性。
在多数情况下,重要业务过程的改变意味着旧的系统现在仅仅具有外围价值,修改这种系统只需花费少许财力和物力。在其他情况下,系统的业务价值很大,需要继续维护运行。可以在概要和详细两个级别上进行遗留系统的商业价值评价。
概要级评价将为更加详细的分析提供信息。概要级评价包括:
(1)咨询。向有关专家进行咨询,包括最终用户和负责业务处理的管理人员。
(2)评价问卷。问卷应该标识系统在业务处理过程中的哪些地方使用,本系统与其他系统的关系,如果系统不再运行所需的代价,系统已有的缺点和存在的问题等。问题的准确性依赖于所评价的系统。
(3)进行评价。有了问卷的基础后,必须认真分析系统是如何使用的,这往往会发现系统的价值,而这在问卷中是得不到的。
详细级评价包括应用系统不符合业务规范的风险分析,这种分析十分费时,最好由业务分析师来完成详细级的评价。
1.3 外部环境评价
系统的外部技术环境是指硬件、支撑软件和企业基础设施的统一体。
(1)硬件
系统硬件包括许多需要进行常规性维护的部件,这些硬件或者在一个站点,或者分布在许多站点并由网络连接。一般来说,遗留系统的硬件包括主机和小型机 、 磁盘驱动器 、 磁带 、 终端 、 打印机和网络硬件。
与商业价值评价类似,硬件评价也可以分为概要级评价和详细级评价。概要级评价把遗留系统作为一个整体,提供硬件质量估计。详细级评价包括识别系统中的每个部件。在这两种情况下,必须识别一系列特征,用作评价的基础。
特征的选择取决于要评价的系统,系统的一些常见特征有供应商 、 维护费用 、 失效率 、 年龄 、 功能 、 性能等。具体评价方法是:每一个部件(或整个系统)在每个特征上分配一个价值分数(取值为1~4),然后把所有分数相加,获得该部件的总分。
(2)支撑软件
系统的支撑软件环境也由许多部分组成,可包括操作系统 、 数据库 、 事务处理程序 、 编译器 、 网络软件 、 应用软件等。一般来说,支撑软件是依赖于某个硬件的,应用软件依赖于系统软件。在评价过程中,必须考虑这种依赖性。支撑软件的评价方法类似于硬件评价,在此省略。
(3)企业基础设施
企业基础设施包括开发和维护系统的企业职责和运行该系统的企业职责(两者可能为同一个企业),这些基础设施是很难评价的,但对遗留系统的演化起关键作用。因此必须考虑以下问题。
- 企业和使用者的类型。企业或者有自己的系统开发队伍,或者所有开发和应用管理都是请其他企业完成。系统用户或许只重复一些记录性工作,或许包括一些更有技术性的工作。
- 开发组织的技术成熟度。开发组织的技术成熟度包括是否使用了现代系统工程方法,是否遵循了统一的标准,是否进行了过程改进等。
- 企业的培训过程。如果企业(包括开发方和客户方)的培训做得好,遗留系统的演化可能会更成功。
- 系统支持人员的技术水平。如果系统支持人员的水平和经验不够,就不要急于对系统做大的改动。
- 企业是否愿意改变。企业对改变的态度是遗留系统演化成功的关键因素之一。
- 企业基础设施的评价方法类似于硬件评价,在此省略。
1.4 应用软件评价
应用软件评价也有两个级别。
(1)系统级。把整个系统看作是不可分的原子,评价时不考虑系统的任何部分。
(2)部件级。关注系统的每个子系统,考虑每个子系统的特征,包括复杂性 、 数据 、 文档 、 外部依赖性 、 合法性 、 维护记录 、 大小 、 安全性等。
具体评价方法也与硬件评价类似,在此省略。
1.5 分析评价结果
评价活动将产生硬件 、 支撑软件 、 企业基础设施和应用软件的特征值矩阵,这些特征值体现了遗留系统当前的技术因素,其加权平均值代表了系统的技术水平。
把对技术水平的全面评价结果与商业评价进行比较,可以为系统演化提供第一手的资料。具体方法是按照商业评价分值和技术水平分值的情况,把评价结果分为四种类型,如图 2 所示。
2 遗留系统的演化策略
在图 2 中,把对遗留系统的评价结果分列在坐标的四个象限内。对处在不同象限的遗留系统采取不同的演化策略。
(1)淘汰策略
第3象限为低水平 、 低价值区,即遗留系统的技术含量较低,且具有较低的商业价值。对这种遗留系统的演化策略为淘汰,即全面重新开发新的系统以代替遗留系统。
完全淘汰是一种极端性策略,一般是企业的业务产生了根本的变化,遗留系统基本上不再适应企业运作的需要;或者是遗留系统的维护人员 、 维护文档资料都丢失了。经过评价,发现将遗留系统完全淘汰,开发全新的系统比改造旧系统从成本上更合算。
对遗留系统的完全淘汰是企业资源的根本浪费,应该善于 “ 变废为宝 ” ,通过对遗留系统功能的理解和借鉴,可以帮助新系统的设计,降低新系统开发的风险。
(2)继承策略
第4象限为低水平 、 高价值区,即遗留系统的技术含量较低,可满足企业运作的功能或性能要求,但具有较高的商业价值,目前企业业务对该系统仍有很大的依赖性。
对这种遗留系统的演化策略为继承。在开发新系统时,需要完全兼容遗留系统的功能模型和数据模型。为了保证业务的连续性,新老系统必须并行运行一段时间,再逐渐切换到新系统上运行。
要做到对遗留系统的继承,必须对系统进行分析,得到旧系统的功能模型和数据模型,这种分析可以部分代替或验证系统的需求分析。
如果遗留系统的维护文档不完整,而又必须解析系统的功能模型和数据模型,那将是一项十分艰巨的任务。这时可使用有关系统重构的 CASE 工具,通过分析系统的代码生成系统结构图或其他报告。
(3)改造策略
第1象限为高水平 、 高价值区,即遗留系统的技术含量较高,本身还有较大的生命力,且具有较高的商业价值,基本上能够满足企业业务运作和决策支持的要求。这种系统可能建成的时间还很短,对这种遗留系统的演化策略为改造。
这些改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变。数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型转化的过程。
(4)集成策略
第2象限为高水平 、 低价值区,即遗留系统的技术含量较高,但其商业价值较低,可能只完成某个部门(或子公司)的业务管理。这种系统在各自的局部领域里工作良好,但从企业全局来看,多个这样的系统,他们各自基于不同的平台,不同的数据模型,无法互联互通,数据还不一致,这就是很严重的问题了。
对这种遗留系统的演化策略为集成。在集成过程中,可采用由互连系统构成的系统的架构,遗留系统可作为从属系统来描述。在企业信息系统建设过程中,如何处理那些遗留系统,将会是越来越突出的问题,因为即使是今天看来很先进的系统在明天也会成为遗留系统。对遗留系统的处理恰当与否,直接关系到新系统的成败和开发效率。如何建立一套系统的 、 行之有效的方法,以期望对实际工作有所指导,已成为一个迫切的问题。
在实际工程项目中,遇到处理遗留系统的问题时,要具体情况具体分析,选择最佳的演化策略。