ccidnet????

出版日期:1998-10-26 总期号:771 本年期号:81

本期导读
综合消息
硬件
软件
电脑工作室
重视信息系统工程的理论与方法

赵池龙

  大型信息系统建设在我国已经进行了十多年。在十几年的风雨历程中,有许多成功的案例,也有不少失败的教训,并且已经培养出了一支人数众多的信息系统开发队伍,其中许多人已掌握了信息系统建设的正确方法。遗憾的是,还有少数人仍然不懂得信息系统的设计与实现方法,仍然停留在八十年代xbase数据库系统的水平上。因此,现在很有必要在技术上总结经验,为今后国内信息系统建设铺平道路。


  ■信息系统及信息系统集成


  信息系统到底是什么?只有正确回答这个问题,才能保证信息系统的建设顺利进行。从信息工程的观点看,信息系统由社会环境、网络环境、数据环境和程序环境这四个部分组成。社会环境是指企业的管理规程、工作规范、业务规则和人员素质;网络环境是指企业网intranet或局域网的软硬件设施;数据环境是指信息系统的数据模型及数据库服务器上的数据操作;程序环境是指客户端的用户界面与应用服务器上的功能操作。从信息系统的内部构造看,它是由下表所述的七层结构组成的:

  左表中,上一层系统是下一层的实现目标,下一层系统则是上一层的建设基础。其中,数据层用case工具设计,功能层通过软件构件组装实现,这样上下七层结构互相匹配,构成一个完整的信息系统。无论从哪个角度看信息系统,数据环境(数据模型)都应该是信息系统建设的中心环节。信息系统设计者应该自觉地做到面向数据设计。只有这样,才能更好地在功能设计与实现中运用面向对象的方法。

  大型信息系统的系统集成是对网络环境、数据环境和程序环境等三个方面的集成。其中,网络环境的集成就是将局域网集成为广域网或intranet网,程序环境的集成就是对各个子系统或各个厂商的信息系统产品进行集成,这种集成主要表现在用户界面上,技术上不难实现。惟独数据集成不易实现,这是因为:第一,它要有良好的社会环境作基础;第二,它要有数据库设计专家作指导。就数据集成的方法而言,它是将文件系统集成为应用数据库,将应用数据库集成为主题数据库,再将主题数据库集成为全局数据库。集成程度越高,一致性就越强,共享性就越高,技术上的难度系数就越大。但是,只要精通e-r图的建模技术,运用case工具的设计方法,大型信息系统的数据集成还是能够顺利地实现。

  这里需要指出的是,少数人不懂得数据集成的重要性,表现在进行大型信息系统分析与设计时,只注重功能分析与设计,不注重元数据的分析和设计,在他们的设计文档中,只有业务流程图、数据流程图和功能层次图,而缺少最为关键的文档——e-r图。

  时至今日,国内业界对e-r图仍然感到非常陌生,许多软件公司或软件设计专家,仍然对e-r图不够重视,这也是case工具在我国推广不开的原因所在。在严格意义上说,懂不懂得e-r图,会不会使用case工具,应该是衡量一个公司或一名专家水平与实力的试金石。


  ■信息系统工程的理论思想


  信息系统工程的理论与方法是在八十年代诞生,并在九十年代开始发展成熟。信息系统工程与软件工程相比有所不同,软件工程强调生命周期法,其突出特色之一是结构化分析、以及结构化设计、结构化编程与结构化测试;而信息系统工程则强调快速原型法,突出的特点是面向数据的设计与面向对象的实现。在时间上,信息系统工程诞生于数据库技术之后,依托于数据库技术,提出了以数据为中心的思想: 数据位于企业信息系统的中心位置,只要企业的业务方向和内容不变,企业内部的元数据(metadata)就是稳定不变的,由元数据构成的数据模型(data model)也是基本稳定的,而对元数据的处理方法则是可变的。用不变的元数据支持可变的处理方法,这就是信息系统工程的基本原理,也就是信息系统建设的指导思想。

层号 名 称 说       明
1 用户层 用户面向对象操作
2 业务层 信息系统业务模型
3 功能层 信息系统功能模型
4 数据层 信息系统数据模型
5 工具层 信息系统开发工具
6 os层 网络操作系统
7 物理层 网络与通讯硬件

  从另外一个角度上说,信息系统工程与case是一个问题的两个方面。我们知道,完整的case包括case方法、case技术、case工具三个方面,其中,case方法指的是快速原型法,case技术指的是实体关系建模技术,case工具指的是辅助实现case方法和case技术的手段及软件工具。自从case工具出现以后,信息系统工程的理论和方法才真正进入工程化和实用化的道路。在众多的case工具中,我们推荐采用sybase公司的powerdesigner,因为它最简单易学,又能跨越多种系统平台。

  根据我们的经验,掌握case工具并不难,难的是掌握case方法和case技术。然而,尽管case工具已出现多年,但国内信息系统建设者却很少使用,这造成的最直接的后果,就是使设计文档与程序不一致,给系统维护带来了极大的困难。而克服这一困难的有效办法,只能是使用case工具。目前的case工具,不但可以进行信息系统的系统分析和设计,而且还可以快速地生成功能原型。一般而言,只要充分采用case工具,就能做到文档与程序的完全一致,为日后的功能扩充和维护打好基础。尤其是对大型企业的大型信息系统,文档与程序的完全一致更加重要。


  ■元数据以及数据模型


  元数据是组织数据的数据。通俗地讲,元数据就是信息系统中实体及其属性的集合,或者说就是基本表的表名与字段名的集合。其中,实体是指一组相关数据的集合,而基本表则是相应实体的物理表,在基本表中存放的记录叫作相应实体的一个实例。

  一般来说,基本表设计应尽量满足规范性的要求,以满足数据的一致性。由于数据的冗余度与数据的一致性成反比,只有冗余最小,一致性才最大,因此基本表设计的规范性也有助于降低数据冗余度。但中间表与临时表的设计就不用太讲究什么标准,因为它们不代表实体,只是用来存放经过处理的统计数据,供查询与打印之用。总而言之,在信息系统工程中,数据冗余不是对中间表和临时表而言的,而是专对基本表来说的。

  信息系统工程强调设计过程要面向数据,那么,什么是面向数据设计?利用元数据的概念,我们可以把信息工程的设计方式,直接归结到面向元数据设计。只有在系统分析阶段对系统的元数据反复分析与综合,才会在系统设计阶段导出系统的准确数据模型。大型企业的信息系统建设者,必须弄清什么叫元数据,才能正确地分析与设计企业的数据模型。反之,你设计出来的数据结构就是一笔糊涂账,它将会给编程与维护工作带来无穷的麻烦。

  信息系统中的数据模型,是指它的e-r图及其相应的数据字典。e-r图将系统中所有的元数据按照其内部规律组织在一起,通过它们再将所有原始数据组织在一起。有了这些原始数据,再经过各种算法分析,就能派生出系统中的一切输出数据,从而满足人们对信息系统的各种需求。由此可见,e-r图及其数据字典确实是信息系统的数据模型,谁抓住了e-r图,谁就抓住了信息系统的核心。

  数据模型分为概念数据模型cdm和物理数据模型pdm两个层次。cdm就是数据库的逻辑设计,即e-r图;pdm就是数据库的物理设计,即基本表。有了case工具后,从cdm就可以自动转换为pdm,而且还可以自动获得主键索引、外键索引、表级触发器等等。从面向数据设计的角度出发,数据模型设计应该是信息系统设计的中心环节,数据模型建设是企业信息系统大厦建设的基石,设计者与建设者万万不可粗心大意。


  ■面向数据设计与面向功能设计


  软件工程提倡面向功能设计,而信息系统工程则提倡面向数据设计。面向功能设计立足于信息系统当前的功能,由功能决定数据结构(数据模型),当功能变更时,数据结构跟着变更,从而使系统不易扩充,维护困难。面向数据设计立足于信息系统的元数据,由元数据决定数据模型,由不变的数据模型支持可变的功能设计,当功能变更时,数据结构不跟着变更,从而使系统易于扩充,维护简单,并为逐步实现零维护提供了可能性。因此,我国大型企业的信息系统建设,必须坚持面向数据设计,抛弃传统的面向功能的设计观念。

  按照信息系统的七层结构,在数据层设计数据模型,应采用面向元数据的方法;而在功能层实现功能模型,应采取面向对象的方法。“面向数据设计,面向对象实现”,这就是信息工程的精髓,也是大型信息系统开发的基本指导思路和基本工作方法。数据模型的设计方法为什么是面向数据而不是面向对象?这是因为在设计数据模型时,它的分析对象是一个个的元数据,单个的元数据不能说就是一个对象,它不具备对象的性质与特征。当所有的元数据识别出来后,将其有机地组织在一起,就形成系统的数据模型,此时就产生了基本表。基本表及其规则、缺省、表级触发器和索引,这些东西包装在一起,就形成了对象。由基本表还可以定义视图,视图本身包含算法,也称为对象。所以数据模型的出发点是面向元数据,最终导出的结果是表与视图,它俩叫作基础对象。有了这些基础对象,就为后续面向对象的功能设计与编程铺平了道路。一句话,数据模型的设计过程是将元数据组装成基础对象,是面向数据的过程。

  在功能层进行的功能模型实现过程则应该是面向对象的过程,而不是面向数据。功能层与数据层之间的标准接口通过字段实现,而功能模型则要用面向对象的语言来实现。在实现各种功能时,要充分利用已有的软件构件。构件本身是一种对象,而面向对象的语言只是一种利用对象组装软件的工具,这正如同case工具只是一种由元数据组装基本表的工具一样。功能模型是一种比较复杂的模型,对这种复杂模型的实现也有一个设计问题,即在实现中设计,在设计中实现,这种实现与设计过程都是面向对象的。

  九十年代是软件发展最快的年代,也是软件新技术和新产品出现最多的年代。站在信息系统工程的角度理解,可以把这一时期软件技术的发展归结为三大技术突破,即:

  1)用户界面由面向字符变为面向图形(窗口),这一突破的实质是用户由面向过程操作变为面向对象操作。

  2)编程人员由面向过程编程变为面向对象编程,这一突破的实质是程序开发将逐步由编程工作变为软件构件组装工作,真正面向过程的人员只是生产软件构件的产品公司。

  3)设计人员由面向功能设计变为面向数据设计,即由结构化分析设计变为面向元数据分析设计。这一突破的实质是为了解决信息系统产品的可维护性,使其逐步由难以维护转变为零维护。

  软件技术的发展和过去信息系统的建设经验都已经充分显示出:把握信息系统工程的理论和方法,才能确保系统设计和建设的顺利开展,今后还应加强这方面的研究和应用工作。