昨天一个偶然的机会从一个朋友那里第一次听说了GeneXus,并花了很短的时间看了下程序,也没有多少印象,但它的介绍非常诱人,回来后上网找到了比较详细的中文介绍,的确非常诱人,哪位朋友如果再用的话能否介绍下心得?
以下内容来自GeneXus的中国代理商北京多联科技对GeneXus的介绍:
智能信息系统开发与维护工具
GeneXus
源于卓越理念的精良开发工具 是开发项目成功的奥秘之一
现在,您也有机会使用一个革命性的工具来提高您的竞争力
令开发与维护效率成倍提高 满足现在和将来的需要
作为一个系统开发或维护者,您一定希望使用一个理想的工具来支持您的工作。
您希望,系统的设计开发能以更自然直接的方式完成,所有的开发设计工作仅需从用户业务的角度进行,您不必去设计很难考虑完善的数据库结构,也不必考虑程序的数据一致性性和完整性控制机制,数据库和应用程序的设计都自动最优化的完成。
您希望,您的工具能把您从繁重,枯燥易错的编程调试工作中解放出来,您只需在高层应用业务的层次上对系统进行描述,而所有支持业务处理的程序和数据库都能自动无BUG的的生成。使开发和调试时间极大的缩短。
您希望,您的工具能支持用户需求和应用业务的不断改变。当改变提出时,您只需在业务描述的层面上对您的应用系统做改变,相应的改变能自动的影射到系统的所有模块与所有数据库中,您完全不需逐个修改调试您的程序模块和数据库,更无须进行你过去可能常需做的几乎完全重新开发的工作。
您希望,所使用的工具能适应IT技术的不断发展,您已经完成的在业务层面上的开发能自动的生成不同底层IT环境的应用系统,不管新环境是什么语言,是什么数据库,或是什么架构。您不必去花很大的精力去拼命追赶不断出现的新技术细节。您的工具能保证您总能应用最新的IT技术
您希望,您使用的工具能对应用系统的维护升级提供全面的支持,过去困扰您的升级影响分析,数据库移转,都能快速自动化的完成,新系统的上线再也不成为一项困难艰巨的工作。
您希望,您开发完成的系统能不断的发展扩充,比如增加工作流管理,扩展商务决策智能应用,集成其他独立的应用,而您的工具都能提供全面的支持。
.. .. ..
可能您希望的还有很多,但是这并不是异想天开。请您来考察了解GeneXus,您很快会发现您希望的它几乎都能实现,甚至它已大大超出了您的期望。
随着技术进步,软件系统开发工具的改变一直都没有停止。从汇编语言,高级语言,到集成调试环境(IDE), 开发工具的抽象层次在不断越升。目前,模型驱动构架(Model Driven Architecture MDA)的软件开发革命已经到来。GeneXus是目前世界上第一个获得广泛成功应用的模型驱动构架开发工具。
GeneXus由ARTehc公司开发,是个智能化的、支持多平台应用的开发工具。虽然MDA是最近几年才提出的概念和方法,但GeneXus技术已经历了十多年发展。在MDA概念提出前就已经实现了MDA的主要理念。GeneXus已在全球30多个国家被数万个软件开发机构应用,众多软件公司和用户机构用其成功开发出许多关键大、中型管理应用系统。另有更多最终用户使用着100%完全用Genexus开发的产品。GeneXus真正作到了软件设计、开发、维护自动化,大大提高了软件开发效率,降低开发、维护成本。
1、增量开发工具
传统开发方法假设一个前提,即应用系统有一个“稳定的数据模型”。系统分析员需要首先建立覆盖全部应用范围的完整数据模型。但事实上这个假设的“稳定的数据模型”是不可能稳定的。众说周知,用户需求膨胀,业务流程的变化,机构改革,管理思想变革,实际应用还没有暴露或了解到的需求等,在所谓的“稳定数据模型”建立之后的开发过程中、以及开发完成之后都会有许多变化。按传统开发方式,系统一旦开发完成,改变系统的成本将会非常巨大。
GeneXus采用的增量开发理论认为,“稳定的数据模型”实际上是不存在的,系统开发过程中也不可能以一次将用户的所有需求了解清楚,然后设计一个完善稳定的数据模型的方式来完成。应用系统的设计与开发,可以在部分需求清楚的情况下就开始进行。当发现新需求时,仅需把变化的对象输入系统,系统能自动将变化的数据模型合并到系统,并自动生成最优的数据库模型与应用程序。
使用GENEXUS开发完全从用户业务视图出发,不需设计完整的数据模型或数据结构。GeneXus系统内含的推理引擎可自动从用户视图推导出一个优化的数据模型。数据库结构和所有程序代码都是自动生成的,当业务需求改变时,改变只需在业务模型的层次上进行,系统自动按改变后的业务模型知识库来生成新数据库结构和新应用程序,同时系统可完全自动的将老数据库中的应用数据自动移转到新结构的数据库中。这样、新的需求可以极为方便的添加到系统中。系统的数据库结构可以按优化方式随时自动变更,从而实现增量开发。
2、自动优化设计开发工具
使用GeneXus,用户只需从业务需求出发来描述构建系统,GeneXus内含的推理机制和规则能使系统开发中许多重要工作以自动优化的方式来完成。开发人员不再需要去设计数据库结构,GeneXus可将业务模型知识库中的数据对象,按第三范式自动设计并生成一个优化数据结构;开发人员也不再需要去设计编写用来维护数据完整性和一致性的程序代码、GeneXus能自动设计并生成这些代码。代码执行效率问题也不再是开发人员必须考虑的问题,GeneXus能以令人非常满意的方式自动优化并生成程序代码。这些自动优化完成的工作能充分保证系统质量,显著减少开发工作量。
3、集设计、开发、维护功能于一体的智能型高效开发工具
市场上还存在一些其他工具平台,一些工具能支持系统设计,但编码需用另外方式完成:还有些工具可以生成部分代码,但需要用其他方式增添补充许多代码才能使系统运行。而GeneXus能对应用系统设计、开发与维护整个生命周期提供全面支持。使用GeneXus,应用系统全部开发、设计与维护工作可100%的完全在GeneXus环境中完成。数据库设计、生成与维护、应用程序代码的设计生成与维护都可以100%的完全由GeneXus自动完成。
有许多开发平台同时也是最终应用系统的运行平台,开发完成的系统不能脱离开发平台运行,这不仅增加了最终用户的系统成本。也对用户增加了许多限制。使用GeneXus开发完成的系统,能完全脱离GeneXus环境而独立运行。
4、集成、重构、扩充开发与反向工程工具
对于一个已经有信息系统运行的企业,对原有系统改造以适应新需求是项非常重要的工作,GeneXus也可对这些工作提供强有力的支持。GeneXus提供了被称为Data View(数据视图)的对象来使用原有应用系统中的数据,同时GeneXus的反向推理引擎可将原有系统的数据库反向到知识库。
系统集成:对不同平台,各种异构数据库系统的原有独立软件系统做集成和接口开发。或者从不同的系统间提取需要的额数据做新的集成应用。
系统功能扩展:在原有系统上增加新功能,完全利用原有的数据库中历史数据。
遗留系统重构:对遗留系统进行彻底改造,这种改造可以是在功能层面,系统架构层面、以及数据库层面进行。历史数据可以自动移转到新系统中获得保留和应用。比如可以将原先基于C/S架构,有许多功能缺陷的系统重构为基于.NET技术的B/S架构的新系统,在重构过程中同时扩充新功能或集成其他应用。
二、使用GeneXus的开发过程
当使用GeneXus开发应用系统时,开发人员所做的工作是:从用户视角进行分析,根据用户的业务规则分析用户业务,依据GeneXus的规则创建知识库——构建业务模型。剩下的其他工作GeneXus会以智能的方式来自动完成:开发者可以马上生成原型并立即执行来验证业务模型的正确性,如果需要修改,可以回到设计阶段去修改,再将修改后的结果合并到原型系统进行重新验证,直到最终得到需要的系统。在使用GeneXus开发应用系统时,开发者不用去关心程序代码和系统平台,GeneXus能根据统一的业务模型知识库自动生成全部需要的程序代码和数据库结构,避免了手工写繁杂的程序时所带来的许多人为错误。
采用GeneXus增量开发技术的开发过程包含“设计”;“原型”;“生产(实施)”三个阶段。通过这三个阶段的迭代循环,逐步完善系统。在“设计”与“原型”阶段,所有工作都是在微机环境下进行的,“生产”就是真正的实施阶段,是在应用程序的实际环境下进行的部署。应用系统开发者不需要用户的生产环境,所有开发设计及测试工作都可以在开发者的微机环境下完成。
1、设计阶段
采用GeneXus开发,设计阶段的工作包括:规划应用对象、应用范围、应用功能、以及构建业务模型。 其中的主要工作是业务模型构建,即用GeneXus对象来描述现实世界中的用户具体业务。描述完成的结果被称为业务模型知识库。该知识库用于自动生成应用系统需要的数据库和程序代码。GeneXus的设计阶段与传统开发方式的设计阶段的主要区别表现为以下:
传统开发方式中,设计阶段只是系统开发全过程中的初始一小部分工作。而用GeneXus,绝大部分开发工作都是在设计阶段完成, 设计阶段完成知识库的构建, 由于数据库和应用程序代码都是由知识库自动转化生成获得, 知识库的开发完成就标志着应用系统开发的基本完成.,
设计阶段所涉及的工作内容与传统开发方式中的设计阶段有些相似,但GeneXus的设计阶段只对应用业务做描述建模, 而不是设计描述"软件业务",设计过程不考虑具体的IT底层技术, 不需要做数据库结构和应用程序的设计。
2、原型阶段
原型是一个中间阶段产品,分析人员和用户用它来进行实时测试。设计者根据测试反馈意见,返回到设计做相应修改,并提供另一个可供选择的原型。这个循环通常被称作设计/原型循环。
设计阶段的某些错误是难免的,如:在需求调查时用户忘记了一些细节或作了错误的描述;系统分析员可能忽略了一些细节或错误理解了用户的需求。另外还有一些虽然并不是设计错误,而是用户需求发生改变的状况。传统开发方式下,这些问题往往在开发的最后阶段,通过测试才能发现。“GeneXus”设计了“原型”阶段使提前检测成为可能。原型阶段的数据库结构与程序和生产阶段的数据库结构与程序在功能上完全相同,唯一不同的是运行环境的差别,原型阶段的环境是开发环境,而生产阶段的程序是实施的实际生产环境。按照增量开发方法,设计者可以分阶段产生原型,检测可能的错误,及早发现问题。这种测试是为检验业务逻辑的正确性,该测试可以完全用实际数据进行,找出各种错误,然后修改设计,这一过程可以反复进行。
3. 生产阶段
实施产品——一旦原型完全通过了验证,就可以进行实施了。这时GeneXus将知识库转换生成为最终应用环境下的全部数据库结构和应用程序,应用系统开始上线使用,这个转换过程是全部自动完成的。
4.增量开发修改
当用户需求改变时,对系统的修改仅需修改业务模型知识库,可以修改原先的知识库对象或者增加、删除知识库对象。然后生成修改后的原型系统做测试。测试通过后再发布为生产环境下的新应用系统。GeneXus在修改系统时按第三范式优化规范数据库结构,如果数据库的结构需要改变,GeneXus自动生成新的数据库结构,并自动将原数据库中的数据向新结构的数据库中移转。
三、GeneXus支持的IT技术
GeneXus几乎支持用户所希望使用的任何系统平台、数据库、程序语言和系统架构。对于GeneXus生成的应用系统而言,维护或迁移到其它平台的成本是很低的。在GeneXus中最重要的内容是业务模型知识库。使用GeneXus开发应用系统能使对各种类型数据库的创建、维护工作变得非常简单,当需要在应用系统中增加功能的时候,实现起来也非常容易。GeneXus有数据库推导引擎模块,可以由统一的知识库生成各种数据库。GeneXus有代码生成器模块,可以由统一的知识库生成各种系统环境下的各种程序语言的程序代码。GeneXus依据Knowledge Base(知识库)可以生成以下环境的应用系统:
AS/400:COBOL/400、RPG/400、ILE RPG。
客户 / 数据库服务器(多层架构):
数据库服务器——DB2/400、DB2 Universal、Oracle、Informix、SQL-Server;
客户--Visual Basic、Visual FoxPro、FoxPro、Java;
远程过程--C/SQL、RPG、COBOL。
INTERNET / INTRANET / EXTRANET:
数据库服务器--DB2、Oracle、Informix、SQL-Server;
应用服务器--Visual Basic (32b)、C、RPG、Java、.NET。
四、GeneXus家族的其他产品
围绕GeneXus工具,ArTech公司开发了一系列产品,这些产品能对管理信息系统应用的各个方面提供全面支持。相关的主要产品包括如下:
1、Gxplorer数据仓库管理系统
GXplorer是一个商务智能(BI)工具,它能以智能方式协助使用者分析设计数据仓库(Data WareHouse),把经过GeneXus处理过的存在数据仓库中的数据加以转换形成用户需要的各种简单易懂的图表。Gxplorer有两个模块:Gxplorer OLAP模块和Gxplorer MetaData Manager模块。其中Gxplorer OLAP模块是用来实现信息数据的查询;Gxplorer MetaData Manager模块是来构造管理数据仓库的。Gxplorer能基于已保存在GeneXus知识库中的业务知识来创建与维护动态数据仓库,从而降低项目实施的成本,缩短项目实施周期。 以简单方便的方式对数据仓库的全生命周期-从创建到使用,提供全面支持。
2、GXFlow 工作流管理的解决方案
GXFlow 是一个工作流管理解决方案,它为需要将关键业务应用与业务流程做集成的用户提供了一个高效,低成本的解决方案,它能将总在不断改变的业务流程与相对稳定的具体业务处理在系统实现上来分开处理。满足用户对相对稳定的业务处理系统和不断改变的业务流程的需要。
GXFlow使用户能实现不需使用新的,复杂的开发环境来方便的设计,管理,监控自己的业务流程。GXFlow完全与GeneXus无缝集成,它可以很容易的使用户实现在用户的整个企业内,以及外部合作伙伴间的业务流程的集成。它内含的分析工具使用户能控制,优化自己的业务
3、GXPortal 门户网站创建工具
GXPortal 为那些希望通过Internet来联系其雇员,合作伙伴,和客户的组织机构提供了一个高效的门户网站创建工具。构建于GeneXus基础之上,GXPortal 使内容和设计视图的相互独立,并提供了内容与设计的管理的自动化。这使其在类似的解决方案中独树一帜。GXPortal使您的组织在知识,内容与应用间做无缝集成。为用户在Web上提供了一个统一全面的前台和后台解决方案。
五、使用用GeneXus的优势
传统的软件开发过程一般是由底层的设计和编码来驱动的,这个过程一般要包括概念化的需求收集、分析和功能描述、设计、编码、测试、部署等阶段。整个过程周期长,工作量大。采用传统开发技术的软件开发机构在新的市场环境中面临许多困难,这些困难主要表现为软件项目的总体价格在走低而成本急剧上升;用户需求不断改变,开发周期难于控制,项目难于结案,开发者不断的陷入项目泥潭。以代码形式表现的软件资产的价值很难积累和重用。人员流动,新技术的不断发展使人力成本急剧加大。GeneXus可以为解决这些问题提供极大的帮助
1、低成本、短开发实施周期的高效开发与维护工具
使用GeneXus开发,开发人员仅在高抽象层次上做业务模型的建模描述工作,这些工作相当于传统开发方式的需求收集、分析和功能描述。而数据模型的设计,数据库结构的生成,程序代码的编制都是由系统完全自动的完成。由于代码都是按优化的方式自动生成的,能完全保证无代码bug,传统开发方式必须的代码测试、模块测试在GeneXus开发方式中完全没有必要,仅需的测试工作是高抽象层次的业务逻辑测试。
这样、传统开发方式必须的数据模型设计、数据库设计、程序设计、代码编制和测试以及大量的文挡编制与维护工作,在使用GeneXus后完全不再需要,从而极大的减少设计开发的工作量。用传统方式需要大量开发实施人员的项目,用GeneXus仅需要很小规模的团队就可完成。能数十倍的减少开发工作量和软件开中最主要的成本-人力成本。显著的缩短设计开发周期。高效、高质量的快速完成软件开发项目。
2、知识资产的积累和重用
软件开发机构的最主要资产是软件系统。传统开发方式下,这些资产表现为程序代码。由于程序代码数量巨大、并且抽象层次低,除开发人员本身外,其他的人员很难对其他人员完成的系统全面的了解掌握,代码的重用性很低。另外,由于代码是面向特定的具体信息技术,而信息技术的发展改变速度很快。面向旧技术的代码在新的技术中需要彻底改写。人员的变动,技术的快速发展都造成软件资产的迅速贬值。
采用GeneXus开发,开发的结果是由业务模型组成的知识库。由于业务模型的抽象层次高,其内容含量较原码的数量要大为减少,而且比原码更容易理解,具有很好的可重用与可继承性。此外由于业务模型是平台无关的,当新技术出现时,在新技术平台上的代码的生成是由GeneXus自动完成的。这些都使软件机构的资产能以自然的方式获得积累和增值。面向业务的知识库的修改也极为方便,具有更好的可重用性。
3、极低的改变成本
在应用系统的整个生命周期中,变化时刻都在发生,组织,应用领域、业务流程、信息技术都在发生变化。传统开发方式下,软件系统改变的成本巨大。由于GeneXus采用增量开发的技术思路,设计-原型-系统部署的技术路线,以及平台无关的技术特性,改变能以非常方便的方式高效快速的完成。当需要改变时,只需在业务模型层次上的知识库中做改变,再重新自动生成一次新系统的数据库和应用代码就能完成。已上线系统的应用历史数据可以自动转移到新生成的系统中。这种改变同传统的打补丁的方式完全不同。新的系统在数据库结构和应用方面是按新的应用状况全新优化自动生成。改变不仅是在功能细节上的微小变化,也可以是在整个系统架构上的巨大变更,而且改变可以按需要随时随地的进行。
4、新技术的适应性
信息技术领域是技术发展变化最快的领域。软件开发机构应用新技术的成本巨大。软件开发人员也需用很大的精力和很多的时间不断追赶学习新技术。而GeneXus的面向业务模型的与底层信息技术无关的开发方式可以从根本上彻底改变这种状况。使用GeneXus开发,如果需要将系统从C/S架构转移到B/S架构,只需按B/S架构重新自动生成一次程序,改变可以在数十分钟内就能完成。过去用于生成VB程序的知识库,也可以用于产生Java或者.NET,的应用系统。这样,软件开发人员和软件机构只需要专注于知识库的开发,而低层的具体信息技术都由GeneXus来处理。软件机构和软件人员能随时跟进信息技术的前进步伐。
六、结语
作为一个革命性的开发工具,GeneXus的应用将会彻底的改变软件系统的开发方式。
首先,软件开发过程将会发生巨大的改变。传统的开发过程的需求分析阶段在新方式下仍然存在,但具体的内容发生改变,开发工作全部集中于业务模型知识库的创建工作上。而其他的设计,编码、测试等工作在GeneXus技术中完全不存在。
另外,开发人员的角色要发生改变,新的方式下只存在系统分析与设计角色,而程序员,代码测试人员工作在GeneXus方式下完全不再需要。。
文挡、模型、代码将需要被重新认识,传统的重型或轻型开发方法需要的大量文挡不再需要。业务模型知识库既是文挡又是开发结果。而代码只是由系统自动生成的、为了编译生成运行系统的一个临时的中间过程,可以完全不去关注和考虑。
可移植性与互操作性的问题将以极低的成本获得很好的解决,各种新的IT低层技术可以非常方便自然的方式获得应用。
软件开发与维护的效率将会极大的提高,软件开发团队的组织以及软件项目的管理方式也会发生巨大的改变。
软件的市场格局也会发生改变,软件系统的开发可以不是由专业的软件开发机构来主导,用户也有能力来开发,维护控制自己需要的应用系统。
无疑,推广应用“GENEXUS”将会大力推动软件业的发展。