(一) 圣迪信息工程开发策略
1.
信息工程开发的出发点
信息工程(Information
Engineering)是建设信息系统的一个系统工程。一个信息系统项目将涉及组织、管理、技术的各个方面。所以,信息工程不能简单地从技术角度出发。目前,中国的信息技术在世界上是处于相对落后的水平。中国人的计算机技术水平是第一流的。这说明为问题不在技术人员的素质上,而是在建设信息系统的过程中不是从系统整体角度出发。充分考虑信息系统在组织、管理中的地位,同时重视信息系统对组织、管理的影响,这才是科学的方法。
信息工程开发的出发点首先是方法(Method)。对于技术开发,方法不是万能的,但是没有方法是肯定行不通的。方法是开发的指导。方法告诉开发人员应该做什么,该怎么做。中国在信息工程的方法方面相对弱些。信息工程的方法不仅有技术方法,还要有如何实施的方法。
在方法的基础上,具体的实施中系统分析(System
Analysis)和质量保障(Quality
Assurance)是信息工程的核心技术。目前的许多计算机项目都不重视SA和QA。往往是凭的是经验,不规范不科学。
2.
信息工程的步骤
信息工程的步骤到底从哪里开始?许多项目中是首先确定平台:硬件、网络、数据库。在这三者中,我们认为是网络拓扑(包括网络系统软件)更重要些。硬件和数据库的选择对信息系统整体结构影响不大。现在的硬件和数据库都是开放和标准化的,互换和移植比较方便。网络架构一旦确定就不容易改变。
目前,信息工程中普遍存在系统规划滞后,或者设备闲置无用。系统规划、平台确定、成本控制仍然存在很多问题。信息工程是个认识过程。认识问题、分析问题、解决问题是信息工程的一般步骤。业务需求的明确程度直接影响到系统规划的准确性。如果仅仅停留于概念上的业务需求,系统规划的准确性往往小于50%。一般经验得出经过规范的系统分析(SA),然后进行系统规划准确性将高于80%。系统分析是明确需求,然后再建立计算机模型的过程。所以,平台的规划确定应该在系统分析之后进行。
信息工程作为认识过程,在开始之前,最重要的确定开发方法。然后是系统分析,系统规划,结构设计,实施,测试,交付。这是一般项目规范的基本步骤。如果这些步骤都不能保证,就缺乏对整个项目进行质量控制的手段。
(二)
信息工程的平台
1
信息工程的开发过程
工程项目是为完成明确的目的,在特定的时间内,集中各种资源所进行的活动的总和。所以,工程项目的开发过程是十分复杂的过程。一般可分为项目管理过程、质量管理过程、系统开发过程,系统管理过程。
这四个过程并不是孤立进行的,而且也不是瀑布式地先后进行。这四个过程是自始自终并行进行的,并且交错在一起,相互影响和制约。项目开发不仅仅是简单的技术开发。中国的工程技术要上水平就不能只重视技术,而是从整体去看这个问题。
2
信息工程的平台选择
对于信息工程还有它特殊性。首先,信息工程中主要是软件工程。信息系统开发中软件开发要占80%以上的人力资源。而且,软件开发的技术要求也最高,业务处理主要在软件得到实现。大多数的信息系统开发失败是败在软件上。其次,计算机系统在信息系统的开发过程中起着举足轻重的地位。信息工程本身是开发计算机系统,同时信息工程的开发也是在计算机系统上完成的。信息系统的使用对信息工程本身的开发水平而言也是至关重要的。信息系统的开发工具同时也是信息系统。
工具是生产力发展水平的标志。信息工程中的开发平台直接影响到信息工程的水平。《ISO
9000-1 1994》对产品的选择要求考虑三点因素。
·
供方的市场地位和策略
·
供方的财务状况和策略
·
供方的人才资源状况和策略
另外,技术上考虑以下因素:
2.1
首先,有先进的平台并不意味着先进技术。方法才是真正的技术。没有开发方法作为指导,信息系统平台是很难发挥作用的。所以开发平台必须从属于开发方法。
2.2
第二,开发平台的自身特点是平台选择的重要因素。这些特点是功能、性能、安全性、可用性等。尤为重要的是没有一个产品是十全十美的,每个产品都有其特色。所以,产品特色必须和系统分析得出的自身需求相一致。
2.3
第三,产品的服务是系统规划成功的重要保障。这又是和第一点是一致的,方法才是技术。产品的技术只有通过服务才能完全实现。单有产品在技术上只能是自己摸索。产品上的技术服务有几个方面。仅有产品使用的技术支持是不够的。产品对信息工程方法的实现、产品在整体系统规划中的地位和作用是目前各种产品服务中最为缺少的。另外,服务规范就是一些世界级的公司都拿不出标准。如何考核服务指标是信息行业要解决的问题。
2.4
第四,标准是必须要考虑的问题。这关系到对产品投资的有效性。事实告诉我们不符合标准的产品早晚会退出市场的。尤其最近,围绕Internet的标准战越战越酣。这对用户的利益是极大的损害。
以下主要介绍信息工程中的一些软件工具。
3
全面质量管理
在现代的管理模式中,管理已经开始和质量全面合并。由日本提出的全面质量管理成了世界潮流。信息系统的工程开发同样可以采用这种管理体系。
全面质量管理(Total
Quality Management)是一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径(ISO8402
1994)。TQM是信息工程的重要组成部分,将占到项目总量20~30%左右,而且项目越大越复杂,所占比例也就越高。
TQM的工具可以分成以下几类:
3.1
项目管理(Project
Management)
由于项目管理主要是通用过程,所以很多通用项目管理软件都可以用于信息工程。但是,在规定软件开发标准的ISO
9000-3要求软件开发必须具备版本管理和配置管理。如果项目管理软件能和版本管理、配置管理工具有接口,才能真正满足软件工程的项目管理的需要。
不同的开发方法的项目管理不尽相同,如瀑布式、快速原形、并行工程等方法。
·
P3
·
Platinum Process Continuum
·
MS Project98
3.2
质量管理
质量(Quality)是反映实体满足明确和隐含需要的能力的特性总和(ISO
8024 1994)。对产品质量有主要影响的四个方面可归纳如下:(ISO
9000-1:1994)
·
与确定产品需求有关的质量
·
与产品设计有关的质量
·
与产品设计的符合性有关的质量
·
与产品保障有关的质量
质量管理(Quality
Management)指确定质量方针、目的和职能并在质量体系中通过诸如质量策划、质量控制、质量保证和质量改进使其实施的全部管理职能的所有活动。质量保证和质量管理是两个不同的概念(ISO
9000:1994)。而在软件工程中习惯将软件测试称为质量保证(QA)。
信息工程中的质量活动可分为产品质量和进程质量。产品质量就是一般讲的质量的概念。而ISO
9000系列其实并没有规定产品质量,而是进程质量。所以,只采用ISO
9000的质量标准是不够的。
3.2.1
进程质量
进程(Process)是将输入转化为输出的一组彼此相关的资源和活动(ISO
8024:1994)。显然,进程的质量首先是进程划分的质量,也就是过程(Procedure)的质量。其次是控制输入、输出信息的质量。
进程的质量控制是开发方法的重要组成部分。不同的开发方法的进程控制也不尽相同,如面向过程、面向数据、面向对象等方法。
3.2.2
产品质量
产品质量的实现工具主要是调试工具和测试工具。调试工具只立足于解决软件代码中的问题。测试工具则不同于调试。测试工具可分为功能测试和性能测试。另外还可分出客户端测试、服务器测试、Web测试等。对测试软件的选择依据是看工具是否覆盖了测试的功能要求。
但是测试是一种软件方法,并不是简单的测试软件的过程。在实施测试前还有测试需求分析、测试计划、测试方案设计等工作。所以,测试软件往往十分复杂。这要求使用者是真正理解测试。这样才能选择一个符合要求的测试软件。
·
Cyrano
·
Final Exam
·
V-Test
·
SQA
·
Purify
·
Numega
4
系统开发
系统开发是信息工程的主要活动,要占总工作量的40~60%左右。但是项目越复杂,所占比例越低。系统开发是开发方法的主要实现部分。面向对象、结构化等开发方法所使用的工具是截然不同的。
根据系统开发的主要工作,所使用的工具可分成如下几类:
4.1
系统分析设计
系统分析设计工具就是CASE工具,是技术要求最高的工具。因为CASE工具直接代表了信息工程的开发方法。
4.1.1
业务分析
4.1.1.1
面向对象
面向对象的开发方法从九十年代发展至今已成为一种成熟的开发方法。面向对象和OOP是有区别的。没有OOA、OOD,OOP也就成空中楼阁。
OO方法有许多流派,所以OO工具的选择也十分讲究。最近OMG(Object
Management Group)制定了的第一个OO标准——UML(Unified
Modeling Language)。所以,支持UML是OO CASE工具的重要选择依据。但是OO方法有很多,仅仅支持UML是不够的,况且UML不是一个成熟的标准。支持更多的OO方法更符合实际情况。第三,OO方法在数据库设计阶段是一个需要经受考验的阶段。这是由于OO模型和ER模型是不同的,许多OO
CASE在这方面作得还不够。第四,CASE工具和编程工具之间接口又是一个考验。正向、逆向的转换中信息的完整性是要引起重视的。第五,CASE和其他开发工具之间的接口也是CASE工具使用中要考虑的问题,如文档工具、版本控制软件、Web等。
·
Paradigm Plus
·
Object Domain
·
Rational Rose
·
SoDA
·
RequistPro
4.1.1.2
结构化
结构化的开发方法已有几十年的历史,至今仍然是种成熟的开发方法而普遍采用。
不过,目前的主流开发工具都是面向对象的,所以如果在这地方处理不当将是一个隐患。
·
PowerDesigner
·
Designer2000
·
SA
·
BP Win
·
Visio
·
FlowChart
4.1.2
数据库设计
在上述的工具中往往带有数据库设计工具,也有专门的CASE工具。这类工具应该讲是比较成熟的,因为数据库大多数是关系数据库。首先,CASE工具对数据库的支持种类很重要。Reference、Constrain、Trigger、Stored Procedure等在各数据库中都不相同。其次,在选择是主要看工具是否可以正向开发、逆向开发和循环开发。在逆向开发中常会发生信息丢失的现象。无信息丢失的循环开发将是优秀的CASE工具。第三,对数据库开发方法的支持是目前CASE工具普遍存在的问题。逻辑模型和物理模型、范式理论在CASE工具中的实现是重要的环节。第四,近来数据库开发除关系数据库之外,对象关系数据库、面向对象数据库、数据仓库等技术出现也要求CASE能支持更多的建模方法。
·
Paradigm Plus
·
ER Win
·
PowerDesigner
·
Designer2000
4.2
系统结构
4.2.1
集中系统
集中式处理模式的计算机系统主要有主机系统(Mainframe)。其特点是系统中的程序是由一台主机执行完成。然后,驱动终端。这样的系统有专用系统,如IBM
ES/9000、AS/400等;也有开放系统,如UNIX。从软件来看,大多数的UNIX数据库都有这样的解决方案。开发工具中3GL目前主要也就是应用于这种情况。同时,早期的4GL也有很多。这种系统多为字符界面。这种系统对于TPS系统来说仍然是最好的选择之一。
4.2.2
桌面系统(Desktop)
桌面系统十分适合个人的信息处理。在桌面系统基础上进一步发展成早期的网络系统,通过文件共享的方式,实现工作组(Workgroup)应用。但这样的系统安全性、稳定性和性能都比较差。
4.2.3
客户/服务器系统(Client/Server)
C/S结构严格地讲是指计算机处理(Procedure)是逻辑上由Client进程(Process)和Server进程共同完成。通常而言的C/S结构是指Client进程和Server进程物理地分布于两台计算机上,所以是两层结构。而且一般专指数据库应用。目前的主流数据库厂商都提供这样的产品。
4.2.4
三层结构(Three
Tiers)
三层结构的出现对计算机的系统结构是一次重大的变革,其基础就是分布式计算环境(DCE)。三层结构的出现其意义不亚于当初的C/S结构。有些观点将Web也说成三层结构。那是对三层结构的真正含义并不清楚。三层结构是指Presentation
Services、Business
Services、Data Services,是指业务处理的逻辑分布是三层结构。其主要的部件是中间的应用服务器。TP
Monitor就是指这类服务器。
4.3
系统软件
4.3.1
数据库
数据库是建立企业信息系统的基础平台之一。数据库产品相对成熟,目前数据库以关系数据库为主。最近出现的支持多媒体的通用数据库(Universal Server)多是采用对象关系数据库的方式。ORDBMS将成为今后数据库的主流产品。OODBMS将有很长的路要走。
·
Oracle
·
Sybase
·
DB2
·
SQL Server
·
Informix
·
Jasmine
4.3.2
应用服务器
应用服务器是伴随着分布式计算环境的出现而出现的,又被称为中间件(Middleware)。它将成为计算机技术新的热点。是计算机体系结构上的重大变革。
·
Tuxedo
·
Forte
·
CICS
·
Web Logic
·
Websphere
·
MQSeries
·
DCE/RPC
·
AionDS
·
Jaguar
·
MS CTS
4.3.3
互联网(Internet/Intranet)
互联网的出现改变了信息处理模式。它的出现并不是计算机技术上的革命,而是信息处理媒体上的革命。全世界的人可以在一个不受地域限制的共同媒体上进行信息交流,而不是以前的纸张文件、报刊、广播、电视、电影等。计算机信息化真正全球化。
互联网上的技术其实有许多。重要有TCP/IP、Web、HTML、Java、JavaScript、Plug In等技术。但是从计算机技术角度来看互联网只是改变了计算机的用户界面的计算模式。整体结构的其它部分改变不大。
这些技术目前处于急剧变化和发展中。开发平台的选择必须首先考虑标准。否则,信息系统必将是极大的浪费。其次是开发模式。这往往是被忽略的重要问题。WEB最初是用于发布文章式的信息的,所以WEB用于信息系统时其平面设计式的开发模式和信息工程技术开发格格不入。信息工程是严谨的过程,是以方法为核心的。所以,WEB开发工具开发模式应该符合信息工程的方法。第三,由于互联网技术是由许多技术组成,所以开发工具之间的接口也是选择的重要指标。第四,互联网技术是平台无关的。跨平台问题也使许多开发工具成不了优秀的工具。
·
Netscape
·
MS IIS
·
Oracle Web Server
·
SUN
4.3.4
群件工作流
群件开发工具目前比较少,本身群件工具也没有标准,主流的工具只有Lotus
Notes和MS Exchange两种。而且,Notes还占据着主导地位。在统一微软平台时,Exchange是可以考虑的。但目前,群件受到来自互联网技术的挑战,正处于不稳定阶段。
·
Lotus Notes
·
MS Exchange
·
Netscape SuiteSpot
·
Groupwise
4.3.5
在线分析(OLAP)
在线分析技术进入市场的时间很短,但已经十分火暴。专用OLAP技术使OLAP的数据查询的时间大大地缩短。OLAP是使用多维数组的形式来存储数据。多维数据立方体,旋转、切片是OLAP的主要技术。目前的OLAP技术到底用于什么领域却不是都讲得清楚的。另外,OLAP技术还不成熟,标准问题尚未解决。MOLAP、ROLAP等技术的出现使OLAP在设计的方法上不能统一。所以,开放性成了选择OLAP技术的主要考虑。
目前的产品分客户端和服务器端两类。
·
Platinum InfoBeacon + Forest&Tree + InfoReport
·
COGNOS PowerPlay + Impromptu
·
Information Builder
·
Business Objects
4.3.6
数据仓库(Data
Warehouse)
数据仓库也是新出现的技术。数据仓库是一种数据库系统架构的概念,其中的技术其实都是一些已有的成熟技术。如数据库之间的复制、转移。数据仓库(Data
Warehouse)是面向主题的、综合的、不同时间的、稳定的数据的集合,用以支持经营管理中的决策制定(Decision
Make)过程(Bill Inmon)。
但有些观点认为OLAP是数据仓库或是数据仓库中重要部分。其实,数据仓库可以是OLTP,也可以是OLAP,也可以是非关系数据库。大多数OLAP在10G字节时效率不高。而最新的并行数据库的出现使OLTP的性能大大提高。
同时,设计思想方法也是数据仓库产品的考虑的一个方面。目前,数据仓库的开发方法在技术上最为匮乏,数据仓库的开发方法是急待解决的问题。
·
Prism Solutions
·
Platinum DataWriter
·
Oracle Express
·
Informix MateCub
·
IBM Visual Warehouse
·
Sybase IQ
4.4
系统开发
4.4.1
系统层开发工具
现在,系统层开发工具使用越来越少。但在工控系统和一些大型项目中还是少不了。系统层开发工具基本都是一些3GL的工具。目前,使用最多的是C/C++,也有汇编语言、Pascal、Cobol等。这类产品应该说时间很长,技术稳定,十分成熟。所以,市场趋于稳定,只有少数产品瓜分市场。选择时主要考虑市场占有率。同时也要考虑和其他工具之间的接口。
·
MS VC
·
Borland C++
·
Watcom C++
·
Unix C
4.4.2
应用层开发工具
应用开发工具对整个信息系统来讲是最重要的软件之一。因为,业务需求是在应用软件上实现的,软件的开发工作主要是在开发工具上完成。而且,系统软件的标准化程度很高,但开发工具却不然。所以开发工具的选择十分重要。经常考虑的因素有:首先是对软件工程的支持。规范化的编程模式和项目管理对大型项目而言是最重要的环节,小项目却并不十分重要。面向对象支持程度是区别优秀工具的标志之一。第二是开发效率。RAD工具才能成为应用开发工具。可视化、自动生成代码、编程向导等使开发效率的重要标志。第三是运行效率。解释型和编译型之间的竞争结果最终还是编译型占先。主流开发工具纷纷转向采用编译方式就是证明。第四是对服务器的支持。对数据库来讲是ODBC还是Native连接对性能和功能都是十分重要的。对非数据库服务器的支持有时也十分重要,如WEB、Lotus Notes、SAP/R3、CICS、DCE/RPC、TUXEDO等。第五是体系结构上的开放和扩充性。对于特殊应用这是十分重要的。第六是运行平台的支持。Windows是主流,但UNIX平台仍然在高端应用中占据主导地位。第七是工具接口。主要是对开放标准的支持,如CGI、TCP/IP、CORBA、DCOM、OLE、ActiveX等。
4.4.2.1
数据库
数据库的开发工具是开发工具中最大的一个家族。数据库开发工具除了常规要求外,十分看重和数据库的连接技术。各种开发工具的数据库连接都开始采用Native连接方式。但还是有数据库种类上的区别。有时还会出现AS/400的问题。另外,对体系结构的支持能力也十分重要,如桌面、C/S、三层结构、WEB等。
·
Forte
·
Centura Team Developer
·
Borland Delphi/C++Builder/JBuilder
·
IBM VisualGen
·
Sybase PowerBuilder/PowerJ/Power++
·
MS VB
4.4.2.2
Web开发工具
Web开发工具主要是用于开发HTML和JavaScript的应用。对于Intranet来讲更要求对数据库的访问能力。如果要用于建设企业信息系统,则对开发方式的支持是这一类工具最重要的方面。保护企业对信息系统的已有投资是十分重要的。这个投资不仅仅是系统平台,还有系统分析和设计的技术积累、业务流程的实现、人员的素质培养等。
·
Jbuilder
·
VisualAge for Java
·
Vstudio.NET
5
系统管理
系统管理对整个信息工程来讲是第三个主要工作,要占总工作量的30~40%左右。但是项目越大,系统管理的工作量就越大。系统管理关系到系统开发完成的系统最终为业务需求服务。目前对系统管理的重要性的认识还不够。许多技术人员过分信赖自身的技术水平,这是十分有害的。系统管理不仅仅是技术问题,从技术上讲,系统管理要实现自动化,减少人为因素。人是整个系统最不稳定的因素。从管理上讲,系统管理有效性的时效性、地域性是十分重要的,缺陷的修复直接影响到经营价值。完全依靠人为实现系统管理在时效性和地域性上是很难保证的。从组织上讲,可大幅度减少人员配置,简化操作。
5.1
运行时(Run
Time)系统管理
系统管理是十分复杂的工作,所以平台的选择十分困难。一是考虑应用范围。网络管理、数据库管理、安全性管理、系统管理、应用管理、分发管理等,功能越丰富越好。二是考虑平台接口。PC、UNIX、AS/400、大型机、Apple等系统,微软、IBM、Oracle、Sybase、Informix、Netscape等软件,越多越好。三是技术能力。不仅要监视、控制,还要有恢复能力。四是体系结构。体系结构要先进灵活,配置简单。如果可用户进一步开发将更好。在系统管理软件中出现Agent技术。这是继面向对象技术后,又一个计算机界的重要技术。
·
BMC Patrol
·
Platinum Provision
·
EPM
·
IBM Tivoli
·
CA Unicenter
·
OpenView
5.2
设计时(Design
Time)系统管理
设计时的系统管理工作也有系统运行的管理,但更重要的是有信息系统开发时的软件配置管理(Software
Configuration Management)以及文档版本管理(Version
Control)。这类软件很多,在选择时首先要考虑到是否符合开发方法,如何实现项目管理。因为,软件配置管理是项目管理的组成部分。其次是体系结构。早期的软件是采用文件共享的方式。这种系统结构无论是安全性还是稳定性都相对差些。第三,平台支持也十分重要。在大型项目中平台会很多,文档种类丰富。要实现文档统一管理,软件就必须同时支持各种平台。第四,配置管理软件和其他工具之间的借口。这样使用上可以更方便。
·
CCC/Harvest
·
Team Object Management
·
ObjectCycle
·
PVCS
·
PMVS
·
Visual SourceSafe
·
SCCS/Make
|