【VB开源代码栏目提醒】:以下是网学会员为您推荐的VB开源代码-GeneXus增量式开发过程中组件集成方法的研究 - 硕士论文,希望本篇文章对您学习有所帮助。
学校代号:10532学 号:G03241211密 级:公开湖南大学硕士学位
论文Genexus增量式开发过程中组件集成方法的研究堂焦由违厶丝刍! △鏖盘昱!巫丝名壁壁整! 蓝垩受究亟鲎缝国副熬援埴壹垦焦! 泌直丕堂筮住生瞳童些各整! 达鲑』程迨塞逞童目塑; 2QQ鱼生垒旦19日迨塞簦避旦期1 2QQ§生§旦!!旦鳘缝重晏金圭鹿; .±纽蕴 丛五虽 〕:纛颟士
论文 摘 要 增瀵式开发能够很好囊魏解决软件开发过程中由于软件需求变化而带给软件开发颊覆性灾难。
GenoXus是一个可以依据应用系统知识痒自动实现系统重构的商遂纯软件{是西前最具影响力的增量式软件开发工具。
但是它目前实现的糟户界垂不够壤恕,难敛满足我鬻企鼗经营管灌系统魏要求。
本文提出集成G肆nexus组件与外部通用汗发平台组件的方法,来解决Genexus瑷蕊式开发我鬻企渡经营管理系统存在闽憨,并在魏基础上提离了应用该组件集成方法,开发我国企篷经营磐璞系统戆最佳过程。
炎藏,本文遴行了魏下工终: 首纯,研究得出了GencXⅡs组件的接口规范,这些规范是完成Genexu8组件与逐月开发平金缝俸集成黪褒论基础;接着在琵基獭..匕研究褥出了Ge辩Xus缀俘与通用可视化开发平台缀件之闻的集成方法,包括在G雌e×us嚣境中集成运惩开发平念组件的方法,以及在通用开发平台集成Genexus组件的方法;最后分析得出了通过集成Genexus组件与通用开发平台组传,开发企业经营繁理系统熬瓒量式软件开发过程,并给出了具体的应用示例。
褒本文掰掇毽豹£琵黧)融s缀俸与通翻开发平台组彳串的集成方法,能够解决Gene)沁s增量式开发我国企业经营管理系统时,用户界颟实现能力不足的问题。
丽在本文提密豹最馕增量式软件开发过程,为具体波用本文提融的组件集成方法,摆鞠了~条正壤金爨戆途经。
关键翊:GeneX珏s、鑫篷经蘩管遴系统、缝佟集成、增耋残开发 Genexus增麓式开发过穰中组件集成方法的研究 Abstl.act Incremental development caIl aVoid e程Icctively t11e disaSter come Wim me sof研arerequircment challgo.GeneXus is a po、verfm incremental deVelopment tool,whjch cancre融e a n嚣w syste辍prototy第automa垃eal跨based o堇l applicati∞’s GeneXusKnowledge BaSe撕1en requirements changcd.But GeneXus is poor to develop riehGraphic User Inter矗Ke(GUI),so it is hard to satis匆the rcquirement of C11inesee棚烈prise applications. Using inte铲瓣至ng memod ofGeneXHs components箍nd eommon deVelopmenlpla仃0nTl components caIl solve problem of GUI implememion of Chinose ent唧risc印plication,and me process inte铲ating GenoXlls compo黼nts a11d common&velopmenl露鬟渤蕊∞氆羽接蠛s垂∞me瓣io嚣醴&fe。
孙∞h Ge纛eX珏s GUlimpkmention problem,following works colnpleted: According to tlle reaserch糙sult of GeneXuS compo∽nts inte“犯e specification,壬呈ll硅out氇e也eo搿and met圭lo瓠i燃擎a圭主芏lg Ge辩X垃s eo擞羚建ents a堇堪co黼onplatform components,including inte伊ating GeneXuS components lHlder common Visualdevelopment platfbml,a11d inte黟ating common deVelopment platfbrm componentsund释GeneXus development environment。
BaSed on也is,檬e incremen斌deVelo搿致e嫩process fo船ed using GenexuS eomponents and commo薹l platfo强components todevelop Cllinese enterprise application. Inte擎钳ion method solved me proble嫩ofGeneXus implememion GUI ofChinesee撼e渺哇Se a弹lic箱。
拄.曛e弧c糟越e珏{蠢彘velopme珏£p∞∞ss ree四ended&糟c鑫napply血e metllods of components integration more clearly a11d efrectiVo.K错骶难s:Ge{臻Ⅸlls,En钯攀纛se A弹lie蕊。
毡C蝴po魏e珏l№豁疆£ion,琢e瓣鞋端娃£越Development 湖南大学 学位
论文原创性声明 本人郑重声明:所呈交的
论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:—矿霞劾 日期:2。
。
6年4月19目 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,同意学校保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权湖南大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位
论文。
本学位
论文属于 l、保密口,在 年解密后适用本授权书。
2、不保密囝。
(请在以上相应方框内打“√”) 作者签名:万馁彩 日期: 2006年4月19日 2006年4月19日 导师微:稻苹( ,,L ’ ● T程硕士
论文 第l章 引 言1.1研究的背景 传统的软件开发过程从获取需求到交付软件,基本上采用瀑布式开发模型。
这要求获取的软件需求相对稳定,并且获得的软件需求要尽可能完整与正确,否则会给整个软件的开发带来颠覆性的灾难【M】。
而实际开发中需求的变化是经常的,并且完整和正确的需求也不易得到,这成为目前复杂软件系统开发的瓶颈问题。
企业经营管理系统按照传统的开发方法进行开发风险比较大。
企业经营管理系统本身有着它不可避免的复杂性,业务种类繁多,业务与业务往往相互关联睁101,并且业务处理过程与方法比较灵活,这样使得企业经营管理系统的需求难以获取。
再加上企业对系统的要求会随着企业管理的改变而变化,获取准确与完整的需求更加不可能【uq 7l。
此外,企业经营管理系统的开发周期长,一个大型企业的企业经营管理系统一般至少需要一到两年的时间才能完成。
在这一开发过程中,从获取需求到编码完成具有很多环节。
软件开发过程中前期的错误,在每一个环节的传递过程中逐级放大。
如果等到编码完成将程序运行展示给用户看时,发现得到的系统并不符合当初用户的真实需求,这时完成的许多工作不得不重新从头开始。
这样少则浪费一到两个月的工作,多则是半年的工作白白浪费,如此下去,最终的产品交付日期将变得遥遥无期。
因此,传统的软件开发方法并不适宜复杂庞大的企业经营系统的开发。
正是由于这个原因,使得对增量式软件开发的方法及实用性的研究又重新成为业界的热点。
增量式的开发方法与传统的
软件开发过程不一样,它并不等到系统的所有需求明确与完整才开始下一阶段的设计与编码工作,而是在获取到一组需求之后就开始下一阶段的
工作。
在实现了获取到的这一组的需求之后,通过运行目标系统已经实现的这一部分与用户交流,及时发现并改正系统中的错误,并在完善原有需求的基础上添加新的需求,这样逐步实现整个应用系统的开发,从而保证最终完成的企业经营
管理系统符合用户的真实需求【l”。
在实际应用中,实现增量式开发的难题是新增内容与已开发内容的融合以及对已经开发部分的快速调整,即如何进行系统重构的问题。
因为如果没有一个好的办法解决系统重构问题,而在获取用户的真实需求之后,手工去修改系统的设计、数据库实现与程序
代码的话,势必大量的工作从头作起,开发效率太低难以满足要求。
如果开发工具能够根据应用系统需求与设计上修改,自动完成系统数据库与程序
代码的修改工作,这样来提高应用系统重构的效率,增量式开发方法 GeneXus增龟式开发过稃中组件集成方法的研究才能真正可行。
由ARTech公司推出的GeIleXus,是专用于企业经营管理系统的智能开发平台,可以依据应用系统的知识库自动实现系统重构,很好地解决了“系统重构”这一难题,从而使得增量式开发能够应用于实际的软件开发,这对于解决由于软件需求发生变化而产生颠覆性灾难的问题,具有非常重要的意义【1,1}也】。
1.2 Genexus增量式开发过程与特点 使用GeIleXIls进行软件开发,开发者可以在应用系统GenexllS知识库构造环境中,根据业务需求构造应用系统的业务知识库,Gene)沁会根据这一知识库完全自动生成应用系统的程序
代码与数据库。
当需求变化时,开发者可以方便地修改业务知识库,而相应的系统调整和修改由Genex璐自动完成,即由G髓eXIls自动完成系统的重构【1,1¨21。
正是由于GeIlexIls这种独有的开发方式,使得它对软件需求的变化具有了良好的适应性,为复杂的企业经营管理系统的开发带来生机与活力。
使用Genexlls进行增量式软件开发,通过不断地迭代原有的
系统完成整个应用系统的开发。
对于每一个迭代过程,都要形成目标应用系统的三个阶段性结果,而这三个阶段性结果以分别以前一个结果的得出为前题(如图1.1所示)。
这三个阶段性结果如下: 1)软件需求(Rcquirement); 2)Genexl培知识库(K_110wledge Base); 3)数据库(Databa∞)与程序
代码(Progr锄s),它们构成的目标应用系统的 系统原型。
使用Gene)(1塔进行增量式软件开发,从整体上看,就是形成上述三个阶段性结果及对它们进行不断迭代的过程,整个系统的完成是按如下过程进行的(如图1.2所示): 1)首先是根据从用户那里获得的软件需求,通过选用GeneXIls的各类业务 组件以及确定相互之间的关系,完成应用系统的知识库设计(Desigll); 2)Genex吣根据设计完成的Genc)(us知识库,自动生成应用程序的数据库 与程序
代码,形成满足原有需求的系统原型(Pr咖type); 3)在得到系统原型之后,就可以将其运行展示给用户看,听取他们的意见, 从而获取新的需求或修改原有的需求,并根据新的需求进行Genexlls知 识库的迭代设计,并重新生成应用系统的数据库与程序
代码,得到实现了 新需求的系统原型; 4)这样反复经过从设计的修改和扩展到系统原型的重新生成,得到的软件系 2 工程硕士
论文 统逐步朝着目标系统靠近,直到得到完全满足需求的最终软件产品 (Pfoduction)。
图1.1 Genexus的三个阶段性结果 图1.2 G∞exus的增量式开发过程 GenexIls之所以使增量式开发方法在实际的开发过程中可行,主要在于它完成系统重构特有的方式——自动重构。
在需求变更或发现新的需求,需要修改原有的数据库设计与程序
代码的情况下,如果手工去修改所有这些从
设计到
代码的变化,对软件开发者而言无疑是一场灾难。
GenexIIs应对这种变化却非常轻松,原因在于它能根据修改过的知识库,自动生成应用系统的数据库与程序
代码。
这种数据库与程序
代码的自动生成,源于Gene)(us根据企业经营管理的特点内建了一套业务模型,并建立了从这些业务模型到数据库与程序
代码的生成机制。
使用Ge北Ⅺ培对业务描述的过程也就是利用这些业务模型定制实际业务的过程,相当于业务类型实例化的过程。
这种实例化并没有脱离原有的模型,这使得数据库与程序
代码的自动重新生成成为可能。
这样每次在修改了应用系统的知识库之后,GeneXlls都能根据从知识库到数据库与程序
代码的映射机制,自动生成应用系统的数据库与程序
代码,即系统的自动重构,G衄eX惦正是依靠这种能够自动重构的能力将软件的增量式开发方法变为可行的。
1.3 Genexus存在的
问题与解决思路 Genex璐目前在国外已经广泛应用,并已经开始进入我国。
但我国与国外管理文化上存在差异,中国的企业管理者对系统的用户界面层提出更高的要求。
对 GeneXus增晕式开发过程中组件集成方法的研究于数据的表现方式,往往是要求展现出数据的层次逻辑关系;其次是要求用户界面的交互性强,操作方便简单,要符合中国人的操作习惯。
GeIleXus生成的系统在用户交互方式及界面风格方面,难以满足我国企业用户的要求。
主要表现在GeneXus没有提供丰富的数据展现控件,如没有展现树型结构数据的控件等;也没有提供良好的控件扩展机制,如对于已经提供的界面控件不能重新定义界面控件的事件响应等。
因此,在用户界面层的实现方面,Gene)(I塔难以满足中国企业经营管理系统的要求,这成为GemXlls在我国推广与使用的瓶颈问题。
为解决这些问题,一个主要的思路是集成Genex懈组件与外部组件,当复杂的数据不能用Genexus本身提供的控件展现时。
使用通用开发平台的用户界面组件来实现,然后将这些通用开发平台组件与GeneX懈的组件集成在一个应用系统中。
1.4本文的研究内容与意义 为解决在上文中提及的GeIlexlls在实现软件增量式开发过程中所存在的应用系统用户界面实现能力不足的问题,本文将研究在Gene)沁开发环境中集成外部开发平台组件、在外部开发平台中集成GenexIls组件、以及这两种集成模式下GencXlls组件与外部通用组件集成的实现技术。
在研究过程中,外部开发平台选择了目前两大主流开发平台.NET和J2EE开发环境,并且针对这三个平台下各种不同类型的组件(如表1.1所示)在willdows应用程序与w曲应用程序两种不同软件体系结构中的集成要求,给出了Genex哪组件分别与.Net或J2EE组件集成的可行方法。
表1.’开发环境与被集成组件种类 集成环境 被集成的组件 JFrme Genexus开发环境 JSP FonIl WOrkP∞el 通用开发平台 W曲P∞el Pmcedure
论文的主要研究内容如下: 1)对Gene)(us各类组件的接口规范的分析; 2)GencXlls组件与外部组件集成的一般性原理分析; 4 1=程硕士
论文 3)Genex哪平台下集成外部用户界面组件的方法,包括对Java窗口组件 JF硼e、.Nct窗口组件Fonn,以及与JsP的集成; 钔通用开发平台下集成Ge船Xlls组件的方法,包括.Net与J2EE开发平台下 分别对GeneXus的wDrk P锄el、w曲P锄el以及Pmcedure组件的集成; 51 GeneX呱组件与外部组件集成的软件最佳增量式开发过程。
通过上述工作,得出Ge北X弧s组件与通用开发平台组件的集成方法,解决GencxIls增量式开发我国企业经营管理系统时,GeneX吣在应用系统用户界面层方面实现能力不足的问题;并在此基础上通过分析比较,得出Genex啦组件与外部平台组件集成的最佳增量式软件开发方法,为Genex璐增量式开发我企业经营管理系统提供可行途径。
Genexus增量式开发过程中组件集成方法的研究 第2章Genexus组件规范、集成原理与
方案 本章首先简单介绍GcnexIIs的各种组件类型及其用途,然后分别分析GeneXlls用予windows应用程序与web应用
程序两类组件的接口规范与特点,从而得出外部组件与GeneX啷组件集成的一般性原理与方法。
2.1 Genexus的组件类型与特点 Gcnex啷知识库模型根据企业的业务管理的需求、以及管理信息系统的特点抽象出不同类型的组件,通过对这些组件的定制与组装构成企业经营管理系统。
这些组件主要包含如下几种类型: 1)WorkP锄el 这类组件用作Willdows应用程序中的用户界面。
设计时,上面可放置GeneXlls提供的诸如At晡bute、Button等Windows窗口控件;
代码生成时,根据所选择的编程语言生成对应的语言的WiIldows窗口类;运行时表现为一个Windows窗口,通过与用户的交互调用Genexlls其它业务组件,完成数据的展示与业务处理。
2)WebP锄el 这类组件用作Web应用程序中的用户界面。
设计时,上面放置GeneXIls提供的各种web窗口控件;
代码生成时,根据所选择的程序设计语言生成对应的平台下的Web组件
代码,如Sen,l ct..ASP.N砘运行时,表现为向测览器发送的一个网页,通过与用户的交互操作调用其它GeneX璐业务组件,完成在w曲窗口(浏览器窗口)中数据的展示与业务的处理。
3)T瑚nsaction 这是Genex惦中一类非常关键的业务组件,它与目标应用系统的数据库实现关系极为密切,通过对它的定制形成应用系统中一个个业务实体,如定单、发票。
Tr孤sacti∞组件的创建,有两个非常重要作用:一是为Genex哪自动生成应用系统的数据库提供依据;另一方面,它为其它业务组件完成对业务实体的操作与处理提供基础。
设计时,定义每个1hns枷on包含的数据项,以及这些数据项的属性与层次关系,这些数据项可以在其它Genexlls组件中访问和操作,使得在GeIleX懈中对业务逻辑的实现非常方便。
在Genexm生成应用系统程序
代码与数据库时,会同时为Transacti∞组件生 6 工程硕士
论文成它对应的如下三层的实现: ●数据存储层 一个1bnsaction对应数据库中的一个或多个表,胁action中定义的每个 数据项,在数据库中对应着表中的字段(Fields),属性对应数据类型、长 度等,层次关系对表的主从关系; ·●业务逻辑层 对Tr姐sacti∞数据项的增加、删除、修改与查找的实现; ●用户界面层 完成对业务数据的显示与操作的用户界面。
Gellexlls自动生成nansacti∞ 组件的用户界面时,会同时生成windows窗口与web窗口两种风格的界 面,它与上面生成的业务逻辑层两者紧耦合在一起,使得它的业务逻辑层 接口不便单独使用。
4)Procedure 这类组件没有用户界面,不提供与用户交互,只完成业务逻辑过程的处理。
设计时,使用Gencx憾提供的Procedu∞描述语言,完成对业务实体数据项的操作。
这种业务描述过程,不同于传统的开发工具,不需要编写对数据库的操作
代码,它直接对应用系统Genex邺知识库中1’均nsaction的数据项进行操作,因此非常高效。
以上这些组件,通过与实际业务相对照进行定制后保存起来,组成应用系统的G∞ex惦知识库。
应用系统知识库的构造与具体的编程语言和数据库类型无关。
基于该知识库,Gemxlls自动将知识库中的业务组件转换成程序
代码和数据库结构,从而生成原型系统。
在自动生成原型系统的过程中,可以对实现原型系统的程序语言和数据库类型进行指定。
目前Ge船x璐生成的程序
代码语言可以是Java、C撑、vB、c++等常见程序设计语言;支持的数据库类型可以是0racle、sQL sen,er、等常见数据库类型;应用程序的类型也可以选择是w砌ows应用程序还是web应用程序。
在清楚了上述Gcnex惦的主要组件类型与各自的不同用途后,接下来分别分析应用于wiIldows应用程序与Web应用程序两种不同类型组件的接口规范,从而进一步得出GeIlex晒组件与通用开发平台组件的集成方法。
2.2 GeneXus组件接口规范分析 为实现Genex吣组件与外部通用组件的集成,必需首先分析由G翎exIlS自动生成的程序
代码,从而分析出GeIlexIlS组件的接口规范与特点。
根据分析得出的 7 Genexus增量式开发过程中组件集成方法的研究接口规范与特点,一方面可以自行编写符合这一规范与特点的自定义组件,保证自定义组件能够很好地与Genexlls组件兼容,从而实现GenexIIs平台下对通用开发平台组件的调用与数据交换;另一方面,分析清楚了Genexl珞组件的
代码规范,可以得出在程序
代码中的调用GeneXlls组件的方法,即可在通用开发平台下通过编写
代码的方法集成GeneX璐组件。
本文以目前两大主流开发平台——J2EE与.NET为代表,分析GenexIls组件与这两大主流平台下的组件集成方法。
因此,在下文Genexlls组件的接口规范的分析过程中,会分别就Java与C撑两种程序设计语言,分别给出Gene)沁组件的接口规范。
2.2.1 Genexus Windows组件的接口规范 为了完成对Genex邺windows组件对应的Java与C样
代码的分析,可以首先设计两个work PaIlel,由一个work Panel的字符串变量传递任意一个字符串到另一个work Pallel,通过分析Genexlls生成的相应的Java或c拌
代码来分析Genexus组件的接口规范与特点。
将这两个Work Panel分别命名为SendefG朋exIls与Showe硒eneXlls,在Sende硒eneXIls中定义VarChar类型的变量sendS仃,在ShowerGe船Xus中定义VarCllar类型的变量shows仃,在这两个work Paml中分别加入一个A佃bute控件,分别显示∞ndStr与showS仃变量,并且将ScnderGeneX懈设为主程序。
在SenderGenextls中Evems页添加缺省按钮co娟rnl的EⅡter事件: Everrt Enter Call(wShowerGeneXIls,&sendS仃) 。
ElldEvent//Enter 在showerGene)(us的RⅢes页添加规则:Pam(&shows仃); 接下来为这个GeneXus项目建立Win界面的Model,设定选用的语言Jav“JavaModel)或者是C拌(C撑ModeI),在船lexlls中执行Build All操作,便生成这两个Gbnexlls work Panel组件对应的Java或c群
代码,通过对这些源
代码的分析,可以得出其组件分别针对Java与C样语言的规范与特点。
1)GcnexusWindows组件接口Java规范 根据建立Genex吣Java Modcl时所指定的Target参数,可以在Target参数所对应的路径找到Genex吣生成的Java源程序。
为了便于对源
代码的分析,可以用 webshpere或Eclipsc新建一个Java项目,将项目位置设置为Genex惜生成的源代 码所在目录,并在Java项目属性中添加对类库G锄exIlscl船盯.zip的引用。
打开Sende阳cllexlls所对应的Java文件llsendergsjava,可以看到G朗eXus work Pancl缺省按钮Confim的响应事件对应其中方法E12v052(),如下所示: 3 工程硕士
论文 public void E12V052() ·· { ev伽瞳LeVelColltexto; ,.Enter Routine·/ .Gencx璐V』h盯l〔0】2 AV5sendstr; new wshower(jenexus(∞moteHandle,comext) .cxccutc(GeneXl州cIlarl); 璐∞demene)沁.tllis.AV5sends仃=(kncxllsv ch盯1〔o】; .