




已阅读5页,还剩49页未读, 继续免费阅读
(计算机软件与理论专业论文)net环境下基本业务系统生成平台的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文通过对代码生成技术的研究,设计并实现了n e t 环境下基本业务系统生 成平台,以提高业务系统的开发效率。文章在分析了平台的实现意义、功能需求 的基础上,对生成平台进行了详细的设计,并描述了部分设计的实现方法。 论文首先分析了目前流行的代码生成技术,在此基础上选择了适于本系统特 征的代码生成技术。接着抽象出各种基本业务的模型,并列出了基本业务的逻辑 定义,重点分析了基于模板技术的代码生成器的设计。然后提出了生成代码的优 化方法和海量数据的分页显示方法,并采用面向对象思想对代码生成器进行分析。 最后介绍了生成平台在w e b 业务系统开发中的应用。 通过实际应用证明,平台提高了软件开发人员的工作效率,把开发人员从单 调的代码编写中解放出来,使其能够开发出更符合客户需求的基本业务系统。 关键字:生成平台代码生成业务系统业务逻辑 a b s t r a c t a f t e ri n d e p t hr e s e a r c ho nc o d eg e n e r a t i n gt e c h n i q u e ,ab a s i cb u s i n e s ss y s t e m g e n e r a t i o np l a t f o r mo n n e tp l a t f o r mi sd e s i g n e da n di m p l e m e n t e dt oi m p r o v et h e d e v e l o pe f f i c i e n c yi nb u s i n e s ss y s t e m b a s e d o nt h ea n a l y s i so ft h ep l a t f o r m s i m p l e m e n t a t i o ns i g n i f i c a n c ea n df u n c t i o nd e m a n d ,t h eg e n e r a t i o np l a t f o r mi sd e s i g n e d i nd e t a i la n ds o m ed e s i g n i n gd e t a i li sa l s od e s c r i b e d t h ec o d eg e n e r a t i o nt e c h n i q u e sc o m m o n l yu s e da tp r e s e n ta r ea n a l y z e df i r s t l y , t h e nac o d eg e n e r a t et e c h n i q u ew h i c hi ss u i t a b l ef o rt h es y s t e mi ss e l e c t e db a s e do nt h a t a l lk i n d so fb a s i cb u s i n e s sm o d e la r ea b s t r a c t e da n dt h el o g i cd e f i n i t i o no fb a s i c b u s i n e s si sp r e s e n t e d t h ed e s i g no fc o d eg e n e r a t o rb a s e do nt e m p l a t et e c h n i q u ei s a d d r e s s e di nd e t a i l t h eo p t i m i z a t i o nm e t h o di nc o d eg e n e r a t i o na n dm a s sd a t a p a g e d - d i s p l a ym e t h o da r ep r e s e n t e d ,t h eo b j e c t o r i e n t e dt e c h n i q u ei s t a k e nt oa n a l y z e a n di m p l e m e n tt h ec o d eg e n e r a t o r t h ea p p l i c a t i o no fg e n e r a t i o np l a t f o r mi nw e b b u s i n e s sd e v e l o p m e n ti sd e s c r i b e da tl a s t t h r o u g hp r a c t i c a la p p l i c a t i o n , t h i sp l a t f o r mc o u l di m p r o v es o f t w a r ed e v e l o p e r s w o r k i n ge f f i c i e n c ya n ds e tt h e mf r e ef r o mt h et e d i o u sc o d i n gw o r k s ,s oam o r e a c c o m m o d a b l eb a s i cb u s i n e s sw h i c hw i um e e tt h ec l i e n t s n e e d sc a t lb ed e v e l o p e d e a s i l y k e y w o r d s :g e n e r a t i o n p l a t f o r mg e n e r a t o rc o d eb u s i n e s s s y s t e m b u s i n e s sl o g i c 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:琴拓敫 关于论文使用授权的说明 同期:丝塑:乏:里 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名: 导师签名: 日期:丝塑:墨:坐 同期:】口。萝寻0 第一章绪论 第一章绪论 1 1 研究背景 随着互联网技术的飞速发展,越来越多的企业利用互联网技术来实现自己的 业务系统,许多企业都要求建立基于w e b 业务系统或将现有的业务系统改造成基于 w e b 形式。客户端操作界面的一致性以及服务器端系统维护的简便性和基于标准的 连接方案,大大加强了企业与外部的联系。同时,动态的、交互式的信息发布改 进了企业的服务质量,增加企业的商业机会【l 捌。 虽然这些w e b 业务系统因具体业务不同,在业务逻辑上会有所不同,但从软件 开发的角度看,这些软件应用系统的开发过程是相似的。当前,在开发这些基于 w e b 业务系统时,软件开发人员不断重复着些不必要而且浪费很多时间的技术性 劳动。如果能够按照一定的方法和流程,自动的生成全部或者大部分的业务系统 代码,一方面能够缩短软件项目开发周期,降低成本,另一方面,能够解放开发人 员的生产力,提高软件产品的设计质量。因此,基于w e b 业务系统代码自动生成技 术越来越引起业界的重视。 为了简化基于w e b 业务系统的开发,一些公司先后提出了一些开发框架,如 s t r u t s 、h i b e r n a t e 、r u b yo nr a i l s 等,这些开发框架可以有效提高系统的开发效率, 但是由于其未充分考虑实际系统的业务逻辑,因此要求开发人员至少进行基于某 种脚本语言的开发,当系统的业务功能庞杂且用户需求变化很快时,系统的开发 周期与所开发代码的质量仍很难满足实际需要。 1 2 本课题的研究意义 如前所述,本课题作为基于w e b 业务系统生成平台的重要组成部分,其研 究在整个课题研究中占有重要地位。在以数据库为核心的业务系统中,相当一 部分业务属于录入编辑、删除、查询、或基于上述基本功能的组合业务模式。因 此,基本业务系统是业务系统的基础,基本业务系统的质量直接决定了最终的业 务系统的质量。 基本业务系统都是以对数据库信息的操作为核心,在基本业务系统的开发过 程中,每种基本业务的业务逻辑存在着很多相似的地方。目前,在开发基本业务 系统时,软件开发人员不断重复着一些不必要且耗时的技术性劳动:另一方面, 这类系统用户需求变化很快,如何缩短开发周期并应对用户对系统需求的快速变 2 n e t 环境下基本业务系统生成平台的设计与实现 化成为前期研发和后期维护中最大难题。 一直以来,课题组致力于为企业用户提供软件服务,先后为陕西多家企业开 发了各自的业务系统。在这些业务系统的开发过程中,特别是对基本业务的开发 存在很多重复的劳动。本文决定在为企业开发基于w e b 业务系统时,以突出代码重 用性为重点,并且为达到这个目标设计和开发一套基本业务代码生成平台,用于 业务系统中基本业务系统的设计和开发。因为n e t 技术已经得到长足的发展,而 且在课题组开发的软件产品中己经成为主要的开发框架,为了最大化这个项目的 研究价值,本次研究定位为基于n e t 平台的基本业务的自动生成。 本课题的研究意义在于: 1 实际客户需求千变万化,但仍然具有一定规则和相同之处。 2 开发人员在开发不同系统时,有大量重复工作,浪费大量人力。 3 因为机械的重复编码工作对人力资源的大量消耗,设计和开发人员没有足 够时间和精力研究客户需求。 4 n e t 的技术已日趋成熟,其优异的性能帮助软件工作者解决了很多棘手 的问题。 1 3 与课题相关的国内外研究综述 针对客户对基本业务系统的新需求,目前国内外基本业务系统生成平台的研 究很多,而且成熟的产品也比较多【2 】,应用也很广泛,总结它们的共同特点归纳 有以下几个方面: 1 ) 简单易用:大多生成平台提供了可视化的编辑界面,国内产品基本上全采 用全中文菜单、提供给用户简单的鼠标拖放式操作,并将复杂w e b 程序设计屏蔽 掉,用户只要通过鼠标操作和对话框填写就可以方便地定义具体业务的逻辑。 2 ) 模块化的设计和开发方式:大多生成平台提供了丰富的页面组件和业务逻 辑形式,并可在线进行完全可视化页面设计,并生成完整的代码。 3 ) 独立运行:通过生成平台生成的基本业务系统,已经具备了w e b 业务系 统中所需的基本业务。开发的基本业务系统生成后,再通过软件开发人员的测试 和扩充,便可交付用户使直接发布并运行。 随着客户需求的不断变化和计算机技术的发展,这些基本业务系统生成平台 的不足也日益明显,主要有: 以固定的数据库设计为基础:目前的业务系统生成平台,基本上采用了软件 开发人员设计的固定的数据库,在此基础开发的基本业务生成平台,限制了 生成平台的通用性,只能用于某一特定行业放的基本业务系统的开发。 核心功能简单:大多数基本业务生成平台的只能用于简单的业务或特定领域 第一章绪论 的业务地开发,不能满足客户对复杂业务逻辑的需求。 权限管理功能不完善:大多数的基本业务系统生成平台不支持权限管理功能。 最终产品单一:现行的基本业务生成平台,最终生成的代码都是j a v a 代码,或 者j a v a 和j s p ,只有少部分生成a s p n e t 代码,但都只能开发特定编程语言的 基本业务系统,市场需求面比较窄,不能满足不同客户的需求。 根据目前市场上流行的基本业务系统生成平台的优点和不足,本文提出了一 种基于代码生成的工程化开发方法,用于以数据库为核心的基本业务系统的自动 生成。采用类似编译器基础架构的特定域软件体系结构;提出了一种用于代码生 成的方法,使得生成的代码便于二次定制与维护;在简单业务逻辑自动生成的基 础上开发了支持复杂业务逻辑自动生成的平台。 1 4 论文研究内容 本文主要研究以下几项内容: 1 作者首先对代码生成技术进行了研究,介绍了常用的代码生成技术中存在 的优点和不足,重点介绍了主流的代码生成技术。 2 在对n e t 环境下基本业务系统生成平台的进行需求分析的基础上,作者 首先从整体上介绍了生成平台的系统结构和操作流程,然后对生成平台的功能进 行了划分并说明了本文所采用的代码生成技术。 3 作者描述了n e t 环境下基本业务系统生成平台的重要功能模块的设计, 从具体技术的应用到各功能模块设计的细节,分别进行了详细地阐述。重点介绍 各种基本业务的逻辑定义、代码生成技术和权限管理。 4 作者选取了几个关键的功能模块,对其实现方法进行了描述,重点介绍了 查询业务、代码生成器、代码生成中代码优化技术。 5 作者介绍了利用n e t 环境下基本业务系统生成平台实现了治安管理信 息系统中的基本业务系统。 在“n e t 环境下基本业务系统生成平台的开发中,作者独立完成了系统 的分析、设计、实现、测试、发布的全过程。现在,由基于w e b 技术的业务系统 生成环境所生成具体的业务系统已通过国家有关部门的评审,投入行业的应用中。 1 5 论文的章节安排 第一章介绍了课题的研究背景和研究内容; 第二章分析了代码生成技术,重点介绍了各种的代码生成技术; 第三章首先从整体上描述了n e t 环境下基本业务系统生成平台的功能分 4 n e t 环境下基本业务系统生成平台的设计与实现 : 一一一 析、实现目标、研究任务、系统结构和操作流程;接着描述了生成平台重要功能 模块的设计,如基本业务系统的模式设计、代码生成器的审计等,重点列出了基 本业务的业务逻辑定义。 第四章分析了生成平台的具体实现细节,重点介绍了海量数据的查询方法和 代码生成器的实现细节; 第五章介绍了生成平台在实际项目中的应用; 第六章对本文作了一个总结,分析了本课题研究的n e t 环境下基本业务系 统生成平台的优点和不足以及如何改进。 第二章代码生成技术的研究 第二章代码生成技术的研究 代码生成技术涵盖面很广泛,由高级语言到中间代码的过程也是一种代码生 成。本文是针对高级代码的生成过程,即源代码的生成技术。本章介绍了代码自 动生成技术的基本概念,代码自动生成技术的衡量标准,以及本课题的代码自动 生成技术的选择。 2 1 代码生成器 代码生成器,顾名思义是指可以自动生成代码的程序。代码生成器的基本功 能是读取元数据( m e t a - d a t a ) ,例如数据库模型,然后根据一定的规则生成相应的 源代码。 模式模板:代码生成中的不变关系或模式,代表了代码生成域工程中的共性。 域元数据:将在生成代码中模型化的元数据,通常被开发人员所提供的外部数 据所参数化。 域规则:用以约束域数据结构和行为的规则,通常被代码生成器所封装【3 】。 在实际的项目开发中决定使用代码生成器或者选择己有的代码生成器需要从 以下几方面来进行衡量。 质量( q u a l i t y ) :是指生成代码的质量。在一个项目的开发周期中,由于软件工 程师的编码能力的不同,手工编码会形成代码质量上的参差不齐。而使用代码生 成器则可以在整个开发周期中提高代码质量,这是因为程序的许多b u g 可以通过修 订代码模板来完善整个代码库。生成代码的质量直接影响到生成器的可用性。 一致性( c o n s i s t e n c y ) :是指生成器生成的a p i 类,变量命名以及方法名是否容易 保持其稳定性,从而使得软件设计人员可以在较高层次上进行使用,而不太需要 考虑底层的变动。一致性决定了一个生成器向下的兼容性,是否设计得稳定可靠, 不会因为引入了生成器反而增加了系统的太多不确定性。 效率( p r o d u c t i v i t y ) :是指生成器可以在多大程度上替代人工的编码工作能力。 代码生成器可以节省大量的人工时间,可以使软件工程师尽可能避免烦琐的重复 开发工作,从而可以把精力放在更需要创造性的任务当中。效率的大小决定了是 否需要创建或选择生成器的决策。 抽象性( a b s t r a c t i o n ) :是指生成代码所具有的层次性是否清晰,是否容易划分 业务逻辑等,而不是混作一团。在实际的软件开发应用中,常常发现会比较容易 陷入到代码的各种细节中,从而忽视了业务逻辑规则。生成器所产生的确定代码 6n e t 环境下基本业务系统生成平台的设计与实现 可以以种明确的形式来保持这些业务模式和业务规则。同时,这些文件可以独 立出来并且文档化3 1 。 2 2 代码生成器技术的优点和不足 对于软件开发人员来说,代码生成技术有如下优点【1 3 j : 1 质量:一个项目周期里大量的手写代码,往往会由于软件工程师在编码时 不断采用新的或者更好的方法而良莠不齐。或者开始时候的代码质量好,而后期 的代码质量差了,或者开始时候的代码质量差,而后期的代码质量变好了。代码 生成技术是从编码的开始阶段通过模板创建了一份基本的代码,而通过修改模板 和再次运行代码生成器来对所有已经生成的基本代码修正缺陷或优化。 2 一致性:由代码生成器生成的代码在a p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 的设计和变量名的写法上完全是一致的。这就给使用者提供了易懂易用的接口。 3 提供更多的设计时间:运用代码生成技术的项目和完全手写代码的项目在 时间表上有很大的不同。对于完全手写代码的项目,很少有时间留给编程人员来 分析a p i 的最佳用法,这往往会导致这样一种情况:开始作了不完善的设计,而后 来为了正确的使用a p i 把大量的时间花在代码的重写上。而使用代码生成技术,软 件开发人员能够较容易地重写模板中调用a p i 的部分,并运行代码生成器来产生修 改代码。而且,代码的自动生成为项目节省了许多编码的时间,更多的时间可以 用来进行设计和原型的测试,这样可以更大程度上的避免后期的重做工作。 4 突出设计决策:一些高层的商业逻辑有时会在琐碎的实现代码中被忽略。 而代码生成器用抽象的定义文件来定义要产生的代码的设计。 虽然代码生成器有着以上的种种优点,它亦有着以下的一些不足: 1 ) 代码生成器的设计和开发不容易。由域工程的分析来形成良好的代码生成 器的选择或设计是一件很困难的事情。 2 ) 不是所有的程序代码都可以用代码生成器来生成,总是需要手工编写一定 的代码。实际上,代码生成器的真正作用是为手工代码的提供良好的框架和组件, 例如提供特定的业务逻辑处理类,在此类的开发过程中,容器提供了支撑代码的 自动生成,但是具体的业务规则的类模块总是需要软件开发人员来设计和实施的。 3 ) 代码生成器的应用领域一般存在着局限性:由于代码生成器都是针对特定 领域或某一类型的软件系统的开发,所以代码生成器的存在着一定局限性。 2 3 代码生成器的技术选择 代码生成器的技术选择也是本课题需面对的难题之一。现在常用的代码生成 第二章代码生成技术的研究 7 技术有以下几种: 1 利用x m l 语言、x s l t 技术实现 该方法构造一种系统自己的模板语言,使用x m l 描述其文法【4 】。x m ls c h e m a 语言是利用可应用到一类x m l 文档上的规则或结构模块来进行形式化约束的语 言。其优点是文法描述的直观性,利用现有的诸多x m l 编辑工具,如x m ls p y 等 可以很清晰的展现其文法结构,避免了编写繁琐而易错的文法文件。同时,通过 x m l 的有效性检验,可以及时的检验文档的语法,避免意外的操作。 2 基于模型的生成技术【4 j 该方法能创建出可视的,并且支持直接操纵的用户界面自动生成的图形用户 界面开发工具。利用它能够建立支持软件工程的对象图、类图、逻辑关系图和组 件图,并且能够实现从非形式化语言描述的用户需求到计算机可识别的形式化语 言的转换。最终通过它们来实现整个应用工程的全部目标代码的自动生成。该方 法主要是用户界面的自动生成,基于自身建立的知识库和语法语义转换规则,实 现界面及界面上各种元素的生成。但对于涉及到业务逻辑处理代码的生成却无能 为力,比如界面与界面之间复杂的逻辑关系,界面上控件操作功能的处理等。 通过对各种代码生成技术的对比、分析,并考虑到目标系统的需求,本文决 定采用模板技术来实现代码生成器。在平台的设计阶段,本文通过对每种基本业 务地抽象,作者定义了每种基本业务的业务逻辑,为每种业务建立了统一的逻辑 定义。根据每种基本业务的逻辑定义,用户为每种业务建立了模板文件,模板文 件分为两种:框架模板文件和业务逻辑模板文件。框架模板决定被生成代码单元 的结构,而逻辑模板决定被生成代码单元的业务逻辑。平台用x m l 文件作为记录 用户的配置信息,平台提供给用户可视化的界面用于配置业务逻辑。 本文的代码生成器是针对具体业务的代码生成,生成平台先解析x m l 文件获 取用户的配置信息,然后再解析相应的业务逻辑模板,根据解析的信息生成关于 具体业务的业务逻辑的代码,最后代码生成器将这部分代码嵌入框架代码中便生 成了具体业务的代码单元。 2 4 本章小结 本章首先引入了代码生成器的概念,并描述衡量代码生成器的标准和代码生 成器的优点和不足。最后对实现代码生成器的各种技术进行分析对比,在此基础 上确定了本文所要采用的代码自动生成技术。 第三章n e t 环境下基本业务系统生成平台的分析与设计 9 第三章n e t 环境下基本业务系统生成平台的分析与设计 3 1 1 系统的需求分析 3 1 系统概述 自动化己是当前软件工程领域的重要研究方向之一。以往惯用的人工编写的 高级语言程序,特别是大型、复杂的程序,其可读性很差,即使是有文档说明, 在源程序维护上仍要花费大量精力,效率比较低。面对这些问题,怎样为软件人 员提供有效、方便、自动编程的开发环境和自动生成技术,己经成为软件工程重 要研究课题之一。 基本业务是企业业务系统中最基本的业务也是最不可缺少的业务,许多扩展 业务也是对基本业务的组装和扩充。在基本业务系统地开发中,企业对基本业务 系统的需求是从自身行业发展的角度提出的,需要软件研发人员从技术层面上进 行指导和总结,使其更加合理化、科学化、系统化。软件的研发人员应该从不同 的客户需求中科学归纳出基本业务系统的基本特点、功能模块等,在快速开发业 务系统基本功能的基础上,根据客户的特殊需求再进行针对性的开发。一方面大 大提高了业务系统开发的进度,使客户更快的从业务系统受益;另一方面,软件 研发人员交给客户的是通过生成环境生成的代码,可以很好地解决版权和核心技 术的保密问题。 3 1 2 生成平台的实现目标和功能分析 生成平台的基本目标是:开发一个灵活、方便的自动生成平台,以此来规范基 本业务系统分析、设计过程,减轻程序员的工作负担、提高开发人员的工作效率, 保障软件开发的质量。基本业务系统的开发人员利用该生成平台设计和开发满足 企业需求的基本业务系统,为整个业务系统的开发打下基础。从最基本的连接数 据库,到最后各种具体业务对应的源代码文件,都采用通用的生成平台生成,使 得业务系统研发的进度大大加快,并且代码的重用性也有很大的提高。生成平台 的具体实现目标可以归结为以下几点: 为了满足不同客户对数据源的要求,保证生成平台的通用性,生成平台应 该能支持以各种后台数据库为核心的基本业务系统的开发。由于软n e t 平台上提供了a d o n e t ,使得在n e t 平台上进行数据库应用软件地开发 1 0 n e t 环境下基本业务系统生成平台的设计与实现 变得非常容易。生成平台应该支持目前市场上各种主流的数据库系统,如 s q ls e r v e r ,o r a c l e ,a c c e s s ,m y s q l 等。 生成平台主要是应用于w 曲业务系统中基本业务系统的开发,不涉及某 个行业( 或企业) 的具体业务流程,以保证生成平台在功能上的通用性。 生成平台应该不仅仅支持对简单业务地开发,为了提高平台的通用性, 生成平台应该能支持对复杂业务地开发。 生成平台的各功能模块应具有良好的维护性和扩展性,同时针对不断变 化需求的市场,能快速高效地集成新的功能模块,并达到前台操作与后 台处理的整体统一。 生成平台应提具有登录用户的身份验证和权限管理功能,能够严格控制用 户对具体业务的操作权限。 根据生成平台的实现目标,本文将生成平台具体功能划分如下: 1 数据库配置 生成平台能够与a c c e s s 、s q ls e r v e r 、o r a c l e 等数据库正确连接,并获取指 定数据库的信息。生成平台提供给用户数据源的配置界面,并将数据库的基本信 息记录到配置文件。 2 权限分配和角色的添加 采用基于角色的权限管理,用户通过被赋予不同的角色,拥有不同的访问权 限。通过平台提供的接口可以直接操作数据库添加角色,并为具体的业务分配操 作权限。 3 业务系统框架的设计 用户可以根据自己的需求,建立业务系统,设计基本业务系统的框架,建立 各功能模块和具体业务的关系【i l 】。 4 配置信息的读写 平台提供给用户的配置界面,用户可以自己的需要对每个基本业务进行配置, 并且用户对已经生成的配置文件中的配置信息进行修改。 5 代码生成 实现业务数据表数据的录入、编辑、删除、查询四种操作代码的生成,支持 组合条件查询、模糊查询、多表组合数据查询等。 3 1 3 生成平台的适用的研究任务 n e t 环境下基本业务生成平台是一个系统工程,涉及的研究内容比较广泛。 研究工作主要围绕下面几个方面进行: 基于代码生成的基本业务系统开发方法。在对实际的业务系统的开发进行 第三章n e t 环境下基本业务系统生成平台的分析与设计 1 1 总结和归纳,设计了一种简便而通用的业务系统框架,在此基础上完成该 平台基本设计和实现过程。 设计该平台的环境接口。包括技术接口、业务接口和界面接口,其中技术 接口包括数据库、数据库事务、消息服务等方面的基本接口:业务接口包 括查询、编辑、录入、权限设计、组织结构等方面:界面接口主要是界面 内容访问与设置方面,这些接口构成系统的内部接口,供自动生成的应用 系统直接调用【l 。 开发代码生成器。首先设计了基本业务的逻辑定义,并将业务逻辑定义以 x m l 文件的形式来描述,方便了平台和用户的交互。设计相应的x m l 读 写和解析引擎,然后在此基础上实现生成平台的代码生成器。 3 1 4 生成平台的开发环境和目标文件的运行环境 本文所讨论的代码生成器的开发环境、运行环境和代码的目标运行环境都是 m i c r o s o f t 的n e tf r a m e w o r k 。m i c r o s o f t n e tf r a m e w o r k 是一个开发、设计、 运行n e t 应用的环境,它为用户提供了n e t 平台下通用的a p i 2 3 2 6 1 。n e t f r a m e w o r k 将c o m 的精华引入了基于i n t e m e t 的操作系统,生成了强大、高效的 组件系统,从而简化了编程,改善了应用程序的可靠性和可扩展性【9 j 。与其它的 w e b 开发模型相比,a s p n e t 提供了很多的优点: 由于a s p n e t 基于公共语言运行库,因此w e b 应用程序开发人员可以 利用整个平台的功能。n e t 框架类库、消息处理和数据访问解决方案都 可通过w e b 无缝访问。a s p n e t 也与语言无关,所以可以选择最适合应 用程序的语言,本文选择的是n e tf r a m e w o r k 框架下的c 样【2 7 】。 a s p n e t 使执行常见任务变得容易,从简单的窗体提交和客户端身份验 证到站点配置。例如,n e tf r a m e w o r k 的m v c 机制将生成的界面代码 与业务逻辑代码分离1 7 1 。另外,公共语言运行库利用托管代码服务( 如自 动引用计数和垃圾回收) 简化了开发。 借助内置的w i n d o w s 身份验证和基于每个应用程序的配置,可以保证应 用程序的安全性。, a s p n e t 采用基于文本的分层配置系统,简化了将相应的设置应用于服 务器环境和w e b 应用程序。由于配置信息是以纯文本形式存储的,因此 可以在没有本地管理工具帮助的情况下配置服务器环境。 1 2n e t 环境下基本业务系统生成平台的设计与实现 3 2 生成平台的体系结构和操作流程 3 2 1 生成平台的体系结构 软件体系结构的优劣在很大程度上决定了该软件的性能、可维护性、可复用 性t 5 , 6 。n e t 环境下基本业务系统生成平台的体系结构如图3 1 所示: 图3 1 n e t 环境下基本业务生成平台的体系结构 由图3 1 可以看出,生成平台主要由三部分组成:数据库配置引擎、配置文 件的读写引擎和代码生成器。其中,数据库配置引擎用于配置数据源的类型,并 提供给用户后台数据库的基本信息;配置文件的读写引擎用于生成配置文件,保 存用户的配置信息或从配置文件中解析这些配置信息:生成平台的代码生成器由 各个基本业务的代码生成器组成,用于完成具体业务的代码生成。 第三章n e t 环境下基本业务系统生成平台的分析与设计 1 3 3 2 2 生成平台的操作流程 系统的流程如图3 2 所示: y 图3 2 n e t 环境下基本业务生成平台的操作流程 生成平台的操作流程: 1 创建新的基本业务系统,或者选择已经创建的基本业务系统。 1 4n e t 环境下基本业务系统生成平台的设计与实现 2 选择数据源的类型,并进行数据库连接配置。 3 如果需要为基本业务系统添加角色,可以通过平台直接操作数据库中的 相关表来添加新定义的角色。如果不需要添加角色,可以直接跳过该步骤。 4 创建新的业务,用户根据自己的需求配置该业务的业务逻辑,配置完成 后生成配置文件并将配置信息保存到配置文件。用户也可以修改己创建业务的配 置信息,并将修改的配置信息保存到配置文件。 5 代码生成器读取配置文件并生成具体业务的代码单元和界面单元。 6 测试生成的代码单元,测试成功后,在数据库中建立操作代码与具体功 能项的关系。 7 基本业务系统的主体框架同各业务模块进行联合测试,测试通过后,整 理源代码,并与数据库一起交付客户。 3 3 基于代码生成的基本业务系统工程化开发方法 在以数据库为核心的w e b 业务系统中,相当一部分业务属于录入编辑、删除、 查询、统计或基于上述基本功能的组合业务模式。同一业务模式的不同业务,对 应的程序单元结构基本相同,区别仅在于业务逻辑具体内容不同,如录入的字段 不同、查询条件及查询结果列出的字段不同等等。因此,抽取常见的业务模式, 并根据具体业务需求在具有相同结构的程序单元中填入业务逻辑的特定信息,即 可得到实现既定业务模式功能的程序单元,从而实现类似业务逻辑软件模块的自 动化生成,提高此类系统开发的工程化与自动化程度l l 。 采用统一平台实现不同具体业务时,一种常用的实现方式是为每个业务建立 对应的业务逻辑定义,然后采用同一份代码读入不同的业务逻辑定义,利用动态 网页技术呈现相应的操作页面并完成业务逻辑操作,以下简称为通用代码方法。 以查询类业务为例,不同的查询业务具有不同的逻辑定义( 如查询条件、结果显 示方式等) ,通用代码方法采用同一通用查询代码读入不同查询逻辑定义,由该 通用查询代码实现所有查询业务的页面呈现与业务逻辑操作。 这种方法将目标系统核心功能代码集中在一起,直观看来是将目标系统的维 护局限在有限范围内,可以增强系统的可维护性。但是在实际的应用中,平台中 的通用业务模式很难适应所有业务逻辑的个性化需求( 包括页面和处理逻辑的个 性化需求等) ,因此往往需要对生成的目标系统进行二次定制与维护。而通用代 码方式给目标系统的二次定制与维护带来了很大困难,主要表现在如下两个方面: 1 目标系统界面定制与维护困难:通用代码方法通过程序代码动态呈现界 面,使得用户无法使用可视化的方式对生成的界面进行定制与维护;并且采用通 用代码实现所有同类业务的界面呈现时,由于只有一份实现代码,实现特定业务 第三章n e t 环境下基本业务系统生成平台的分析与设计 1 5 的个性化定制时,会导致在通用代码中插入大量定制不同业务的条件分支语句, 使得通用代码变得越来越复杂,给维护带来很大困难。 2 目标系统业务逻辑定制与维护困难:与界面的个性化需求类似,同一类业 务中的不同具体业务也经常存在业务逻辑的个性化需求,在通用代码中实现业务 逻辑定制同样会导致在其中插入大量条件分支语句。 为解决上述问题,本文抽象出各种基本业务的模型,并根据不同的业务模式 为每种基本业务设计了业务逻辑定义,代码生成器直接生成具体业务的实现代码, 由每种业务自己的代码生成器完成该业务的界面呈现与业务逻辑实现。在生成的 代码中利用目标平台m v c 机制将生成的界面代码与业务逻辑代码分离2 。用户界 面利用目标平台上的界面构件以静态的方式实现,业务逻辑则生成目标平台上的 程序构件( 一般为类) 供界面部分代码调用。如生成基于j a v a 平台的目标系统时, 界面部分利用静态的h t m l 与j s p 界面构件实现,业务逻辑生成j a v ab e a n 供界面 部分代码调用;生成基于n e t 平台的目标系统时,界面部分利用静态的h t m l 与a s p 界面构件实现,业务逻辑则生成a s p 页面关联的c 撑类【l 2 。 采用代码生成器生成具体业务代码时,业务逻辑定义中包含当前业务准确的 需求定义,而要生成的程序单元的结构对于同一类业务来说是固定不变的,业务 代码生成器根据需求定义在固定结构的程序单元中填入当前业务特定的基本要一 素,可以得到完整的程序单元,实现业务的自动生成。这样生成的目标系统,用 户界面可以在目标平台的开发环境中以可视化的方式进行定制与维护,实现了业 务逻辑代码与界面呈现代码的分离,提高了目标系统的可定制性与可维护性:并 且每个具体业务代码是独立的代码单元,不会影响其它业务。 3 4 基本业务系统的模式设计 3 4 1 基本业务的业务逻辑定义 要实现基本业务系统生成平台关键是从各种模式的业务中归纳出适合该类业 务的通用逻辑定义方式。在基本业务系统的开发中,同种模式的业务的代码单元 框架和业务逻辑基本上相同。基于上述特点,本文通过对基本大量业务系统的分 析,在此基础上为每种基本业务设计了统一的业务逻辑定义。 基本业务系统的核心是数据库,基本业务的操作对象是数据库中的表,如果 再细分,我们可以说基本业务的操作对象是数据表中的字段,不同模式的业务对 数据表中字段的操作不同,这是业务逻辑定义的关键。在本文中,业务逻辑定义 就是在此基础上设计的。 1 6n e t 环境下基本业务系统生成平台的设计与实现 在实际的业务系统中,大多数基本业务不是对数据库中单一表的操作,往往 存在更复杂的业务模式。本文开发的生成平台不但支持基本的业务模式的代码的 生成,还支持复杂的业务模式。为了使生成平台支持复杂业务模式的开发,生成 平台支持复杂业务模式的录入编辑和基本查询业务,并在基本查询业务的基础上 支持扩展查询业务模式的开发。 有些基本信息是每种业务都必需的,如:业务名称、业务的编号等,这些信 息是每种基本业务的基本信息( 采用e b n f 定义【8 】,后同) : 定义1 业务基本信息 基本信息一业务名称业务标签业务编号操作权限物理地址; 录入方式一下拉列表l 文本框; 业务编号一每个业务的唯一标识; 操作权限一指定哪些角色对该业务具有操作权; 物理地址一生成代码所在目录; 定义1 是每种业务中都具有的业务逻辑定义,下面介绍各种业务的业务逻辑定 义: 1 基本查询业务的逻辑定义 查询业务主要用于对信息的检索,用于从大量数据集中提取客户需要的信息。 查询业务是整个基本业务系统的核心,也是业务系统中使用最频繁的操作。在基 本业务系统中,其它业务都是对数据表中单一数据进行操作,而目前的大多数业 务系统都包含了大量的数据,因此查询业务的效率直接影响到了其它业务,甚至 影响整个业务系统的质量。 基本查询业务逻辑定义中主要包含当前查询业务的查询条件、查询结果的显 示内容。待生成的程序单元包括界面单元和代码单元两部分,界面单元主要包括 查询条件构件、操作按钮与查询结果构件三部分,代码单元主要包括初始化代码 和查询执行代码两部分。按照3 3 图所示的方式可以根据业务需求定义在界面单元 和代码单元中填入当前查询业务的基本要素,得到本查询业务的完整实现。 第三章n e t 环境下基本业务系统生成平台的分析与设计 1 7 业务逻辑定义 查询条件字段 列表 显示结果字段 列表 前台代码( 文件后缀a s p x ) 根据查询条件字段列表创 建用于输入查询条件的界 面控件 根据显示结果字段列表创 建用于输入查询条件的界 面控件 后台代码( 文件后缀c s ) 界面控件的初始化代码 根据查询结果显示字段列 表构造s e l e 口语句的主体 根据查询条件列表构造 s e l e c t 语句的珊- i e r e 子旬 执行查询并将结果集绑定 到界面的表格控件 图3 3 查询业务的自动生成原理 简单的查询业务逻辑,一般是对目标表的查询操作,不涉及其它表。查询条 件界面主要由文本框组成,查询结果一般显示的目标表中的字段。由于数据表中 存在外键,而外键字段往往是唯一标识关联表中一条记录的数字串。 在对查询条件的录入时,直接录入外键的值,这样对于用户而言可读性很差 并且很难保证录入的正确性。为此,在生成的业务代码中通过直接从外键关联的 表中提取外键的关联字段值来实现查询条件的录入。如果外键关联的表中记录较 少,则在录入时采用下拉列表的方式列出所有可以选择的值,并且在下拉列表中 不显示外键字段( 一般为数字串) ,而显示可读性更强的其它字段( 如对应的文 本说明字段) ,利用下拉列表的“文本一值 关联实现通过可读性更强的显示字段 选择外键的值。如果外键关联的表中记录很多,则在外键录入时弹出对应表的查 询页面,通过输入查询条件定位需要选择的外键值,选择的值利用页面中嵌入的 1 8。n e t 环境下基本业务系统生成平台的设计与实现 脚本语言( 如j a v a s c r i p t ) 返回。 包含外键关联的查询业务所采用的业务逻辑定义和生成的关键要素: 定义2 业务逻辑定义中的外键信息 外键信息一外键关联表名关联字段名显示字段名录入方式: 录入方式一下拉列表i 弹出查询页面; 定义3 外键录入生成的关键要素 界面单元要素一下拉列表控件i 弹出项; 弹出项一编辑框触发器脚本代码;嬲* i f 根据定义2 生成弹 出页面的u r l 及接收的返回值 代码单元要素一初始化下拉列表控件;根据定义2 从外键关联表 中提取数据初始化下拉列表 通过直接从外键关联的表中提取外键关联字段的值,既保证了录入的外键值 。的正确性,又通过可读性更强的显示字段或查询页面改善了人机交互效果。 删除业务一般都是基于查询检索的结果来实现的,因此删除业务通常被集成 在基本查询业务中。很多业务系统中不仅支持对数据表记录的物理删除,还支持 逻辑删除。逻辑删除并不是将数据库中的记录删除,而是通过一个标志字段标志 该记录被删除,其实该记录并没有从数据库中删除。 集成了删除业务的查询业务的所采用的逻辑定义和生成的关键要素为: 定义4 业务逻辑定义中的有关删除操作的定义 删除操作一删除类型逻辑删除标志字段名; 录入方式一下拉列表; 定义5 删除操作信息录入生成的关键要素 界面单元要素一按钮;f 集成在查询结果显示构佯中 代码单元要素一物理删除操作l 逻辑删除: 2 录入编辑业务的逻辑定义 录入和编辑操作的界面单元一样,基于上述特点生成器将编辑和录入作为一 个程序单元生成。两个操作公用一个界面单元,而在后台代码单元将两个操作进 行集成。由于编辑操作也是对数据库中的单一记录操作,编辑操作需要通过基本 查询业务来调用。查询业务和录入编辑业务的调用关系如图3 4 所示: 第三章n e t 环境下基本业务系统生成平台的分析与设计 1 9 图3 4 查询操作和编辑操作之间的调用关系图 作 录入编辑业务逻辑定义中也包括对外键信息的定义,参见查询业务中的定 义2 和定义3 录入编辑业务逻辑定义中包含界面构件定义,界面构件定义和生成的关键要 素为: 定义6 业务逻辑定义中的界面构件定义 界面构件定义一显示宽度显示高度是否可编辑初始值控件类型 页面s o l u ; 控件类型一文本框i 用于输入密码的文本框i 下拉列表; 页面s o r t 一构件在界面上的排列顺序; 定义7 界面构件定义生成的关键要素 界面单元要素一构件的外观界面布局; 代码单元要素一构件的初始化; 数据库表中的每个字段都经过了严格的定义,如果录入的内容不匹配字段的 类型定义,录入操作就会出错。因此录入编辑业务需要对录入数据进行验证,录 入编辑业务验证信息定义和生成的关键要素为: 定义8 业务逻辑定义中的验证信息定义 验证信息定义一是否为空类型匹配字段说明; 类型匹配一正则表达式; 定义9 验证信息定义生成的关键要素 界面单元要素一验证控件标签; 代码单元要素一创建验证控件i 创建标签; 2 0n e t 环境下基本业务系统生成平台的设计与实现 3 扩展查询业务的逻辑定义 扩展查询业务是对基本查询业务的扩展,它的业务逻辑要比基本查询业务复 杂,是为了满足用户的特定需求。在查询类业务中,除了外键关联外,如定义2 和 定义3 ,查询条件和查询结果可能来自目标数据库表之外的其他表字段,如某机动 车维修行业管理信息系统中,图3 5 所示维修记录查询业务要求根据车辆颜色、车 主姓名等基本信息(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年曲靖师范学院辅导员考试真题
- 以业绩为导向的工作规划计划
- 2025届浙江省新昌县联考七下数学期末预测试题含解析
- 手术室流程优化与反思计划
- 2024年宁波市附海镇招聘工作人员笔试真题
- 2024年国务院国资委研究中心招聘笔试真题
- 软件更新管理测试题及答案分析
- 避开雷区2025年法学概论考试试题及答案
- 2025届吉林省延边七年级数学第二学期期末统考模拟试题含解析
- 客户端与服务器设计考察试题及答案
- 2024年四川西华师范大学招聘辅导员笔试真题
- 2025年河南省洛阳市中考数学一模试卷
- 2025年武汉铁路局集团招聘(180人)笔试参考题库附带答案详解
- 信息安全管理员-初级工练习题(附答案)
- 深圳学位锁定合同协议
- 2025全国不动产登记代理人《不动产登记代理实务》考试真题(附完整解析)
- 农产品供应链应急保障措施
- 食品原料报废管理制度
- 2025年高级政工师理论考试题库(浓缩500题)
- 乡村振兴学习课件
- 2025年施工现场质量员继续教育考试题库(继续教育)含答案
评论
0/150
提交评论