




已阅读5页,还剩59页未读, 继续免费阅读
(机械制造及其自动化专业论文)基于net的管理信息系统代码生成器的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学硕士学位论文 摘要 为了解决管理信息系统的快速开发问题,通过对不同用户的实际情况进行调研和分 析,本文科学的抽象出合理实用的管理信息系统模型,作为自动生成管理信息系统的模 板来源。并根据这些研究成果,开发出了管理信息系统代码自动生成器。 本文首先对管理信息系统的模型进行了总结和抽象,从代码生成器的长处和不足、 代码生成器的分类等方面加以分析,选择了适于本系统特征的代码生成技术。接着讨论 了代码生成器所需要的关键技术和架构,包括a c c e s s 数据库存储与提取信息以及代冯 文档对象模型等。然后重点阐述了目标管理信息系统的设计以及代码生成器的系统建 模,从概要设计和详细设计方面进行了深入的分析。 在代码生成器系统体系模型的基础上,采用面向对象的方法对代码生成器的层次结 构进行分析与设计,根据模块化的思想把代码生成器划分为显示层、数据层、业务层及 存储层,各层之间采用统一接口的形式进行数据交换,从而保证了系统的稳定性与扩展 性。 本文在数据组织与存储方面,应用数据库m i c r o s o f ta c c e s s2 0 0 0 作为数据平台构建 系统数据库,采用面向对象的编程语言对系统进行了开发,采用a d o o l ed b 技术进 行数据访问。 通过测试和实际使用证明,本系统能够使管理信息系统的开发和维护更方便、更快 捷、更科学,有效地提高开发人员的:【作效率,把开发人员和维护人员从单调的代码编 写中解放出来,使其能够开发出更符合客户需求的管理信息系统。 关键词:代码自动生成;管理信息系统;代码文档对象模型;数据库 杨东明:基于n e t 的管理信息系统代码生成器的研究 s t u d yo nm a n a g e m e n ti n f o r m a t i o ns y s t e mc o d eg e n e r a t o r b a s e do n n e t a b s t r a c t i no r d e rt or e a l i z et h er a p i dd e v e l o p m e n to fm a n a g e m e n ti n f o r m a t i o ns y s t e m ( m i s ) ,t h e p r a c t i c a ld e m a n d so fd i f f e r e n tu s e r sa r ea n a l y z e d ,t h ea t s t r a c tm o d e lo fm i si ss u m m e du d f i r s t a n dt h em o d e li su s e da sas t e n c i ls o u r c eo fm i sc o d eg e n e r a t o r o nt h eb a s i so f r e s e a r c ho u t c o m e as e to f m i sc o d eg e n e r a t o ri sd e v e l o p e d f i r s t l y 十h et h e s i si n v e s t i g a t e sa n ds u m m a r i z e st h em o d e lo fm i s t h r o u g ha n a l y z i n g s o m ea s p e c t sl i k eb e n e f i t so fc o d eg e n e r a t o r ,t h ec o d eg e n e r a t i o nt e c h n o l o g yt h a ts u i t sf o rt h i s s y s t e mi sc h o s e n t h e nt h et h e s i sd e s c r i b e sk e yt e c h n o l o g ya n da r c h i t e c ts u c ha sg e t t i n gt h e i n f o r m a t i o nf r o ma c c e s sd a t a b a s e c o d ed o c u m e n to b 1iectm o d ef o rt h ec o d eg e n e r a t o ri nt h e e n d ,t h et h e s i se m p h a s i z e st h ed e s i g no f t a r g e tm i sa n dm o d e l i n go f c o d eg e n e r a t o r a n dt h e p a r t i c u l a rd e s i g no f c o d eg e n e r a t o ri sd i s c u s s e di n t e n s i v e l y 1 1 1 e s y s t e mh i e r a r c h ym o d e li sa n a l y z e db yt h eo b j e c t o r i e n t e dm e t h o d i no r d e rt o e n h a n c es t a b i l i t ya n de x p a n s i b i l i t y ,t h e s y s t e mi s d i v i d e dt od i s p l a yl a y e r ,d a t al a y e r , o p e r a t i o nl a y e ra n ds t o r a g el a y e r a n di tu s e st h ei n t e r f a c et oe x c h a n g ed a t ab e t w e e nt h e s e l a y e r s t h es y s t e md a t am o d e li sb u i l tb a s e do nm i c r o s o f ta c c e s s2 0 0 0d a t a b a s es y s t e m t h e a p p l i e ds o f t w a r ei sp r o g r a m m e db yo b j e c t o r i e n t e dp r o g r a ml a n g u a g ea n da d o o l ed b d a t aa c c e s s i n gi n t e r f a c e t h i ss y s t e mc a nm a k ed e v e l o p m e n ta n dm a i n t e n a n c eo fm i sm o r ec o n v e n i e n t m o r e s c i e n t i f i c t h ee f f e c t i v ei m p r o v e m e n tf o rd e v e l o p e r si st ol i b e r a t et h e mo u tf r o mt h e u n e x c i t i n gh a n dc o d i n g ,t ol e tt h e mc r e a t em o r es u i t a b l em i s , k e yw o r d s :c o d eg e n e r a t i o n ;m a n a g e m e n ti n f o r m a t i o ns y s t e m ;c o d ed o c u m e n t o b i e e tm o d e l ;d a t a b a s e 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名: 嘞雄弓 | 大连理工大学硕士研究生学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用 规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子 版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论 文。 作者签名 导师签名 勃直、闲 参 火连理工人学硕士学位论文 1 绪论 1 1 课题来源和背景 管理信息化是一个由来已久的软件课题了,国内外很多软件公司或者对计算机信息 系统感兴趣的学校和企业都对管理信息系统( m a n a g e m e n ti n f o r m a t i o ns y s t e m ,m i s ) 有 了很多的专题研究。上个世纪末,管理信息系统在我国也得到了充分发展。而且,从未 来的软件发展和客户需求来看,管理信息系统的市场需求还是会不断扩大的。 代码自动生成技术相对计算机的历史来讲还是一门比较新的学科,一直以来,依靠 程序员的辛勤劳动获得高质量的代码是软件企业的生存基础。近年来,特别是在面向对 象思想和u m l ( u n i f i e d m o d e l i n gl a n g u a g e ,统一建模语言) 的理论得到广泛应用后, 开发人员的工作得到细分,软件行业越来越认识到需求调研和系统设计对整个系统质量 的巨大影响。所以,如何提高开发效率就成为软件企业关心的课题。特别是在n e t 平 台的广泛应用后,其优秀的代码重用性备受瞩目。 近年来,高校、企业对管理信息系统的需求与日剧增,同时不同高校对管理信息系 统的具体需求虽然有所不同,但仍然存在大量的相同之处。如果在为不同客户提供管理 信息系统开发工作中,能尽可能重用已有代码和设计,将对快速开发和提高软件产品质 量有很大帮助。如果能够按照一定的方式和流程,自动的生成全部或者大部分的管理信 息系统代码,一方面能够缩短软件项目开发周期,降低成本;另一方面,能够解放开发 人员的生产力,提高软件产品的设计质量【2 j 。因此,代码自动生成技术越来越引起业界 的重视。 一直以来,课题组致力于为高校用户提供软件服务,先后为大连地区高校开发了各 自的管理信息系统,主要包括大连海事大学研究生管理信息系统、东北财经大学学生管 理信息系统以及辽宁师范大学研究生管理信息系统。在同行业用户中,客户对管理信息 系统需求的相同程度越大,就意味着代码重用的价值也越大。因此,本文决定在为高校 开发的管理信息系统中,更加突出代码重用的重点,并且为达到这个目标设计和开发 套自动化的管理信息系统代码生成器。因为现在n e t 技术己经得到了长足的发展,而 且在课题组开发的软件产品中己经成为主要的开发框架,为了最大化这个项目的研究价 值,本次研究定位为n e t 平台中高校管理信息系统源代码的自动生成。 本课题的研究意义在于: ( 1 ) 实际客户需求千变万化,但仍然具有一定规则和相同之处; ( 2 ) 开发人员在开发不同系统时,有大量重复工作,浪费大量人力; 杨东明:基于n e t 的管理信息系统代码生成器的研究 ( 3 ) 因为机械的重复编码工作对人力资源的大量消耗,设计和开发人员没有足够时 间和精力研究客户需求,从而造成更大浪费: ( 4 ) n e t 的技术已日趋成熟,其优异的性能帮助软件工作者解决很多棘手问题1 3 】。 本课题研究的目的就在于创建一种快速生成管理信息系统的代码生成器,其主要工 作流程如图1 1 所示: 图1 1 代码生成器工作流程图 f i g 1 1w o r kf l o wo f c o d eg e n e r a t o r 在实际的应用中,客户根据自身的业务需求,向系统分析员提出信息管理系统需求; 系统分析员根据需求分析建立数据结构,并根据自动代码生成系统的要求填写配置信 息。作为本课题的研究对象和成果,代码自动生成器能根据设计平台中的界面信息生成 管理信息系统所需要的源代码,然后根据项目配置信息生成整个系统所需的全部文件。 本课题的研究是将多年的编程和系统建设经验进行沉淀和应用,抽象出管理信息系 统的相对相似的实现方式,形成一系列规范的框架格式和目标代码,极大的提高了系统 的重用性。由于自动化的生成工作能节省大量的重复编码时间,可以把程序员和系统分 析员从繁杂和重复的编码工作中解放出来,有精力去更进一步理解客户需求,这样就可 以在更短的时间内完成系统的建设工作。 本课题来源于大连外国语学院研究生管理信息系统和课题组的具体需求:如何快速 开发出科学的管理信息系统,并且使其能够便捷实施和简单维护。 大连理工大学硕士学位论文 1 2 与课题相关的国内外研究综述 1 2 1 管理信息系统的发展 管理信息系统是一个历史范畴,它的内涵随着时间的变化而不断地变化。从最早的 业务处理系统到流行的管理信息系统,从简单的部门信息管理到企业战略信息管理,都 能感受到管理信息系统的变化和发展。表1 1 概要描述了管理信息系统发展的四个阶段, 反映了信息技术与管理活动相互融合的进程。 表1 1 管理信息系统发展的四个阶段 t a b 1 1f o u rp h a s e so f m i sd e v e l o p m e n t 随着计算机和数据库技术的迅猛发展,管理信息系统也出现了长足的进步,从主机 终端模式到客户机服务器模式,再到w e b 三层体系,管理信息系统向着高度信息共享 的方向不断发展。主机终端模式是实现信息共享的最初模式,其特点是系统稳定、易于 维护,缺点是对主机资源要求过高,对大规模应用支持不够,难于实现跨硬件和跨平台 的信息共享,终端应用任务简单,造成了不必要的浪费。客户机朋臣务器模式是2 0 世纪 9 0 年代兴起的一种全新的计算模式,它一方面充分共享服务器的资源,另一方面充分利 用了客户机的本地资源,可支持大规模的应用,但其维护费用与推广费用比较大【4 1 。w e b 三层体系结构正越来越受到企业信息管理应用的青睐,这种模式的特点是所有应用服务 杨东明:基于n e t 的管理信息系统代码生成器的研究 都有专门的应用服务器处理,减轻了数据服务器的处理负担,可利用服务器群集技术, 支持大规模用户的应用,客户端也只要一个浏览器,使用很方便。 从计算机应用的发展历程可以看出,管理信息系统的概念是一个动态的,其内容不 断地发生变化。2 0 世纪7 0 年代的管理信息系统的概念是一种狭义的管理信息系统,而 当前的管理信息系统的概念则是一个广义的概念。无论是决策支持系统、高层支持系统, 还是战略信息系统,都可以称为广义的管理信息系统,或者简称为信息系统。 1 2 2 代码自动生成技术的发展 代码生成即c o d eg e n e r a t i o n ,在使用v i s u a ls t u d i o 等开发工具的时候,很多代 码框架都是自动生成。初步的印象就是,代码生成可以减少重复工作。但是,如果更加 深入的去看,就会看到,其实不仅代码框架可以自动生成,连编译器都可以认为是代码 生成器从高级语言到机器语言【5 l 。所以,代码生成有不同的层次,最低级的是i d e 那样的函数框架,其次是m f c 那样的工程向导,再高级的一点应该是i d l 这样的接口 定义语言,再然后是象微软提出的d s l ( d o m a i ns p e c i f i cl a n g u a g e ) 。 国内外很多大型的软件公司为了解决代码的重用问题,都有着自己的解决方案,其 中不乏使用代码自动生成器的类似例子。比如e j b g e n 是一个e j b2 0 的代码生成器, 它使用i a v a d o c 标签标记b e a n 的类文件,然后使用e j b g e n 来生成远程接口和主接口, 以及e j b 应用程序的部署描述符。表1 2 是几种常见的代码生成器介绍。 名称 表1 2 常用代码生成器的介绍 t a b 1 2i n t r o d u c t i o no f c o m m o nc o d eg e n e r a t o r 说明 e j b g e n j e t c o d e g e n e r a t o r c a s t o r x d o c l e t a c g e j b g e n 是一个e j b2 0 的代码生成器。使用j a v a d o c 标签标记b e a n 的类文 件,然后使用e j b g e n 来生成远程接口和主接口,以及e j b 应用程序的部 署描述符。它将诸多需要编辑维护的e j b 相关文件减少到只需要维护该 b e a n 的j a v a 文件。 j e t 是一个基于x s l t 标准的数据库代码自动生成系统。 c a s t o r 是一个开源的j a v a 数据绑定框架。它在j a v a 对象、x m l 文档以及 s q l 数据表之间提供了最快捷的途径。它提供j a v a 到x m l 的绑定、j a v a 到s q l 的持久性等。 x d o c l e t 是一个基于i a v a d o c 扩展的d o c l e t 引擎,它可以生成源代码或者其 他文件。 a c g 是一个从x m l 文档生成j a v a 源代码的自动生成器。 大连理工大学硕士学位论文 当前,实现软件自动化的方法可以归结为如下4 种: ( 1 ) 演绎综合法。该方法的理论基础是数学定理的构造式证明可等价于软件开发。 这种方法在理论上很完美,但受目前定理证明发展的限制,尚难以实用。目前仅限于生 产那种规格说明易于按某种逻辑语言形式化的小型程序。 ( 2 ) 实例推广法。从实例特征出发,将它推广为待编程序的特征,进而生成程序。 目前各种定制系统属于此列,这种定制系统一般是针对某一应用领域展开,适用范围过 于狭小。 ( 3 ) 过程化法。研究高级语言的编译和知识的过程化,这种方法一般开发效率较高, 但自动化程度不易提高。 ( 4 ) 程序变换法。程序变换是指由一程序转至另一功能等价的程序,亦即保持其正 确性不变。这种方法易扩充,易修改,适用于通用系统。但直以来,这种方法的自动 化程度始终不高。因为通常在形式化规格说明语言和实现编程语言之间存在概念间隙。 很难寻找到一种语法简单、描述功能强大的规格说明语言,而这种描述语言又可以很好 地映射高级程序语言,不能有明显的概念间隙| 6 j 。 1 3 本论文的主要工作内容 围绕代码生成器的开发展开论述,全文共分为五章,每一章内容如下。 第一章:绪论。本章概述了本文的研究背景、题目的来源和意义,总结了管理信息 系统的研究状况,并且对代码生成技术的发展进行了综述。 第二章:高校管理信息系统抽象和代码自动生成技术的研究。本章前一部分提出了 高校管理信息系统的抽象模型。后一部分首先对代码生成器的概念进行了解释,接着从 代码生成技术的选择、代码生成器带来的好处等方面深入讨论了代码自动生成技术。 第三章:实现管理信息系统代码生成器的关键技术。本章介绍了在实现代码生成器 时所采用的关键技术,包括代码文档对象模型、对象关系映射机制,以及采用a c c e s s 数据库进行存储和提取信息的方式。 第四章:管理信息系统代码生成器的分析与设计。本章首先阐述了代码生成器的设 计目标,然后介绍了目标管理信息系统的需求分析和设计,最后描述了代码生成器的系 统建模,包括概要设计和详细设计两个步骤。 第五章:管理信息系统代码生成器的实现与应用。本章首先对代码生成器的设计框 架和数据模型构建进行了阐述,然后详细介绍了系统具体的程序实现过程,最后描述了 系统的应用效果。 杨东明:基于n e t 的管理信息系统代码生成器的研究 2 高校管理信息系统抽象和代码自动生成的研究 2 1 高校管理信息系统组成及抽象模型 2 1 1 管理信息系统的概念及组成 管理信息系统是由人和计算机等组成的能进行信息收集、传递、存储、加工、维护 和使用的系统。它能实测组织的各种运行情况、利用过去预测未来,从全局出发辅助组 织决策,利用信息控制组织行为,帮助组织实现规划目标。 管理信息系统为实现组织的目标,对整个组织的信息资源进行综合管理、合理配置 与有效利用。其组成包括以下六大部分i 7 j : ( 1 ) 计算机硬件系统 包括主机( 中央处理器和内存储器) 、外存储器( 如磁盘系统、数据磁带系统、光 盘系统) 、输入设备、输出设备等。 ( 2 ) 计算机软件系统 包括系统软件和应用软件两部分。系统软件有计算机操作系统、各种计算机语言 编译或解释软件、数据管理系统等;应用软件可分为通用应用软件和管理专用软件两类。 ( 3 ) 数据及其存储介质 有组织的数据是系统的重要资源,数据及其存储介质是系统的主要组成部分。有的 存储介质已包含在计算机硬件系统的外存储设备中。另外还有录音、录像磁带、缩微胶 片以及各种纸质文件。这些存储介质不仅用来存储直接反映组织的外部环境和内部活 动,以及运行状况的数据,而且可存储支持管理决策的各种知识、经验以及模型与方法, 以供管理者使用。 ( 4 ) 通信系统 用于通信的信息发送、接收、转换和传输的设施,如无线、有线、光纤、卫星数据 通信设施,以及电话、电报、传真、电视等设备;有关的计算机网络与数据通信的软件。 ( 5 ) 非计算机系统的信息收集、处理设备 如各种电子和机械的管理信息采集装置、摄影、录音等记录装置。 ( 6 ) 工作人员 计算机和非计算机设备的操作、维护人员,程序设计员、数据库管理员、系统分析 员、管理信息系统的管理人员及人工收集、加工、传输信息的有关人员。 大连理工大学硕士学位论文 21 2 管理信息系统的应用和相关学科 管理信息系统的应用现在已无孔不入,无论工、农、商、学、兵,还是中外,到处 均可见管理信息系统的身影。应用系统五花) l f g ,在概念上对它们进行正确的分类,有 利于深化对管理信息系统的理解。 管理信息系统的概念空间有五维: ( 1 ) 技术维 技术维说明技术上的深化程度,最低的应用技术是电子数据处理( e d p ) 。技术的 提高可以达到办公室自动化( o a ) ,更进一步达到支持协同工作的计算机系统( c o m p u t e r s y s t e mf o rc o l l a b o r a t i o nw o r k ,c s c w ) 。技术上的最高水平在向智能系统前进。 ( 2 ) 信息支持维 信息支持维是关心信息使用的深度,信息使用分为几个阶段,一是提高效率阶段, 二是及时转化价值阶段,三是寻找机会阶段。相应的应用系统就是数据处理系统、管理 控制系统和决策支持系统。 ( 3 ) 层次维 层次维支持不同层次的管理,使用的是不同的应用系统。企业或组织的层次分为基 层、中层和高层( 或项层) 。支持基层的是业务处理系统;支持中层的是终端用户自动 系统:支持高层的是主管信息系统或主管支持系统。 ( 4 ) 职能维 例如,高校内划分有不同职能,一般高校管理信息系统均有学籍管理、培养管理、 学位管理、后勤管理等职能。不同的职能有不同的应用系统。在职能维中就有学籍、培 养、学位、后勤等不同的职能系统。 ( 5 ) 组织维 不同的企业或组织用了不同的应用系统,组织维也就由不同的组织信息系统所组 成。例如,教育业、银行业或者是制造业的应用系统等。 管理信息系统是一个具有高度复杂性、多元性和综合性的人机系统,它全面使用现 代计算机技术、网络通信技术、数据库技术及管理科学、运筹学、统计学、模型论和各 种最优化技术,为经营管理和决策服务瞵j 。可见,管理信息系统涉及到的相关学科是很 多的,并且需要将这些学科的知识有机的结合,才能达到预想的效果。 21 3 高校管理信息系统的抽象模型 高校管理信息系统的一般组成如图2 1 : 杨东明:基于n e t 的管理信息系统代码生成器的研究 图2 1m i s 结构图 f 塘,21s t r u c t u r eo fm i s 这种组成模型基本上涵盖了一般高校对管理信息系统的大部分需求,但对于应用系 统的自动生成,还是过于复杂。所以需要对高校管理信息系统进行进一步抽象,对同类 型的对象管理抽象为综合对象管理,并把系统维护进行分拆,抽象为具体对象管理f 9 1 。 综合大连海事大学、东北财经大学以及辽宁师范大学的需求特点,经过再次抽象的 高校管理信息系统如图2 2 : 图2 2m i s 抽象图 f i g2 2a b s t r a c to fm i s 大连理工大学硕士学位论文 该模型主要包括综合对象管理、权限管理、菜单管理、基础数据、日志管理五个子 模型。 ( 1 ) 综合对象管理模型 综合对象管理包括了所有基于数据库表的管理操作模型。 f 2 ) 用户及权限管理 用户及权限管理包括用户管理,如用户名和密码、用户基本信息、用户和组的关系, 权限管理可以包括用户登录管理、用户所属组、组权限构成、菜单和权限对应关系。 ( 3 ) 菜单管理 菜单管理包括菜单项组成、菜单项对应链接等。 ( 4 ) 基础数据 基础数据主要是指标准代码表的维护,比如高等学校代码、省份代码、学位代码等 等。这些代码都是国家统一发布的,各个学校都需要采用同一套代码。因此,基础数据 维护模块有很大的通用性。 f 5 ) 日志管理 日志管理包括登陆日志和操作日志。登陆日志主要记录的是系统各用户的登陆退出 时间,而操作日志则是更详细的记录用户的操作细节,比如对某一数据表的插入、删除、 修改等操作【3 j 。 2 2 代码自动生成技术 代码生成技术涵盖面很广泛,高级语言到中间代码的过程也是一种代码生成。本论 文论及的其实是特指高级代码的生成过程,例如源代码的生成技术。本部分介绍了代码 自动生成技术的基本概念,代码自动生成技术的衡量标准,以及本课题的代码自动生成 技术的选择。 2 21 什么是代码生成器 代码生成器,顾名思义是指可以自动生成代码的程序。代码生成器的范围非常广, 从简单的解析器到功能齐全的生成器如m a t l a b 。 代码生成器的基本功能是读取元数据( m e t a d a t a ) ,例如数据库模型,然后根据一定 的模式和规则生成相应的源代码。 代码自动生成的基本模型图如图2 3 所示: 杨东明:基于n e t 的管理信息系统代玛生成器的研究 图2 3 代码生成器基本模型 f i g 2 3b a s i cm o d e lo fc o d eg e n e r a t o r 模式模板:代码生成中的不变关系或模式。代表了代码生成域工程中的共性。 域元数据:是指将在生成代码中模型化的元数据。通常被开发人员所提供的外部数 据所参数化。 域规则:用以约束域数据结构和行为的规则,通常被代码生成器所封装【1 0 1 。 在实际的项目开发中决定使用代码生成器或者选择己有的代码生成器需要从以下 的几方面来进行衡量。 质量( q u a l i t y ) :是指生成代码的质量。在一个项目的开发周期中,由于软件工程师 的编码能力的不同,手工编码会形成代码质量上的参差不齐。而使用代码生成器则可以 在整个开发周期中提高代码质量,这是因为程序的许多b u g 可以通过修订代码模板来完 善整个代码库。生成代码的质量直接影响到生成器的可用性【l ”。 一致性( 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 ) :是生成代码所具有的层次性,是否清晰,是否容易划分业务 逻辑等能力,而不是将代码混作一团。代码生成器在软件的设计和代码基( c o d eb a s e ) 之 大连理工大学硕士学位论文 间提供了一个抽象层。在实际的软件开发应用中,常常发现会比较容易陷入到代码的各 种细节中,从而忽视了业务逻辑规则【1 “。生成器所产生的确定代码可以以一种明确的形 式来保持这些业务模式和业务规则。同时,这些文件可以独立出来并且文档化。此外, 这些代码和文件也可以被域专家检察和分析。抽象性使得生成代码可以运用其它的 c a s e 技术来进行分析,例如可以导入到r a l i c nr o s e 中进行0 0 分析等。 有人认为代码生成是一种不好的设计观念,认为它其实是一种反模式 ( a n t i - p a u e m ) 【n 】。他们认为代码生成仅仅是另外一种形式上的拷贝一粘贴式的编程方式。 虽然从某种角度上来看的确如此,但相比拷贝一粘贴而言它依然有着许多的可取之处。 我们在编程实践中发现一些类似的功能模块或方法函数时,总会想着去某个地方把 它拷贝一粘贴过来,并做一些必要的更动。至此,这两处的代码其实己经失去了相关性 的联系,虽然它们是很相似。通常拷贝一粘贴的代码中如果发现有b u g ,就需要对所有 拷贝一粘贴的代码进行修订,这很容易遗漏和疏忽。而由一个设计良好的代码生成器所 产生的代码则可以保持这些代码间的有机联系,从而比较容易的修正这些错误。 此外,在现代软件开发中,开发框架的应用越来越普遍,同时也越来越复杂,人们 不得不加入更多的手工代码。这也导致了代码的复杂性,选择代码生成器可以降低复杂 性。 再则,代码生成器用抽象的设计模型来产生代码,这种方式具有即使是最好的纯手 工编制系统也很难具有的便利性和可维护性。如果需要业务规则写到代码中的话,最好 就是将它们重构( r e f a c t o r i n g ) 【_ 1 4 j 到独立的一层中。 事实上,如果使用代码生成器的理由并不充分和必要的话,就不应该使用它来生成 大量的代码。一卜良好设计和实现的生成器并不应该只用来替换眼前烦琐的代码编制, 更应该从整个应用域的角度来考虑和设计。 22 ,2 代码生成器的长处和不足 使用代码生成器有着以下的优点: ( 1 ) 可保证的一致性。由于代码的自动生成,所以如果选择或设计合适的代码生成 器,就能够保证生成代码的一致性,而不会有手工代码所导致的相关代码间的不同步。 ( 2 ) 改变了软件设计人员的工作方式。由于代码只需要完成它所必须完成的功能, 所以变得更加清晰而且更加简单。如果以后需求发生了变化,只需要简单更改代码生成 器并且重新生成新的源代码文件就可以了。 杨东明:基于n e t 的管理信息系统代码生成器的研究 ( 3 ) 稳定而尽可能免除b u g 。由于代码生成器往往是在最终项目代码生成之前所编 写,所以从这个意义上来说,这时候整个项目的调试过程已经开始。生成器的正确选择 和设计可以对最终项目的正确可靠性提供最重要的保障。 ( 4 ) 生产效率高。由于生成器的设计和选择源自于问题域的分析,所以可以形成可 保证的最新的生成器a p i 。 ( 5 ) 可定制。通常各种生成器都会提供定制的功能,用户可以根据模板定制特定的 输入,从而生成相应的代码。 ( 6 ) 使得代码可以快速的更新。例如,如果数据库需要变动的话,可以修改后重新 运行生成器从而可以生成新的源代码,这只需要很少的时间。 ( 7 ) 软件开发人员可以更加集中精力于开发领域,更容易发挥他们的聪明才智。开 发人员的积极性也会得到很大的提高。 ( 8 ) 形成良好的代码开发习惯。由于生成器生成的代码有着更好的规范,从而软件 开发人员可以学习这种开发的代码风格,这有助于形成整个项目的代码规范的统一性。 虽然生成器有着以上的种种优点,但它也不是万能的。它亦有着以下的一些不足。 ( 1 ) 根据生成器的使用,它必须最先开发。而由域工程的分析来形成良好的代码生 成器的选择或设计是一件很困难的事情。 ( 2 ) 需要有特定的可应用的条件。作为域分析的产物,如果设计生成器的代价过高 的话,实际上它并不可行,这在项目开始时是必须要考虑的。 ( 3 ) 不是所有的程序代码都可以用代码生成器来生成,总是需要手工编写一定的代 码。实际上,代码生成器的真正作用是作为手工代码的支撑作用,例如提供特定的业务 逻辑处理类,在此类的开发过程中,容器提供了支撑代码的自动生成,但是具体的业务 规则的类模块总是需要软件开发人员来设计和实施的。 ( 4 ) 对于数据库代码而言,数据库必须是规范化的,有着正确的设计和形式化。通 常代码生成器不会处理专有的设计特性。从另一方面,这实际上也是代码生成器的一个 优点,即可以跨越多种数据库平台,而不必绑定在某一特定的平台上( 10 1 。 2 23 代码生成器的技术选择 代码生成器的技术选择也是本课题需面对的难题之一。现在常用的代码生成技术有 以下几种。 ( 1 ) 利用x m l 语言、x s l t 技术实现 该方法构造一种系统自己的模板语言,使用x m l 描述其文法。x m ls c h e m a 语言是 利用可应用到一类x m l 文档上的规则或结构模块来进行形式化约束的语言。其优点是文 大连理工大学硕士学位论文 法描述的直观性,利用现有的诸多x m l 编辑工具,如x m ls p y 等可以很清晰的展现其文 法结构,避免了编写繁琐而易错的文法文件。同时,通过x m l 的有效性检验,可以及时 的检验文档的语法,避免意外的操作。 模板语言的解析器可以采用通常模板语言解析器的生成方法,即直接构造a s t 抽象 语法树,或使用y a c c l e x ,a n t l r ,j a v a c c 等来生成,也可以使用x s l t 技术来生成。使 用x s l t 技术的优点在于模板解析器的生成方法简单,其生成的代价不高,而且由于使 用x m l 的缘故对于u n i c o d e 的支持是自然的i l “。 但这种方法的缺点是依托于某门编程语言,受编程语言的限制。因为在x m l 语言的 模板中,要存放编程语言的语法等信息,而各种编程语言的语法都不相同。所以,这种 方法无法摆脱编程语言的限制,其生成的代码也只能是一种。 ( 2 ) 基于模型的生成技术 该方法能创建出可视的,并且支持直接操纵的用户界面自动生成的图形用户界面开 发工具。利用它能够建立支持软件工程的对象图、类图、逻辑关系图和组件图,并且能 够实现从非形式化语言描述的用户需求到计算机可识别的形式化语言的转换。最终通过 它们来实现整个应用工程的全部目标代码的自动生成。 该方法主要是用户界面的自动生成,基于自身建立的知识库和语法语义转换规则。 实现界面及界面上各种元素的生成。但对于涉及到业务逻辑处理代码的生成却无能为 力,比如界面与界面之间复杂的逻辑关系,界面上控件操作功能的处理等。 经过对各种技术的对比分析,以及考虑到目标系统的需求,本课题决定采用n e t 开 发框架中的代码文档对象模型( c o d ed o c u m e n to b j e c tm o d e l ,c o d e d o m ) 技术,而同 时代码生成器的语言也采用n e t 开发框架中的c # 语言。上文中已经提到,本代码生成器 支持多种语占的生成,包括v i s u a lb a s i c 项目、v i s u a lc 撑项目和v i s u a lj 牟项目,这样就可 以实现了开发语言和生成语言都是在一个n e t 开发框架中。这样做极大的减少了各种编 程语言之闻转换的麻烦,因为这些语言都是建立在一个公共的n e tf r a m e w o r k 之上的。 公共语言运行库和统一编程类是n e tf r a m e w o r k 的两个最主要的组成部分,正是由于这 两者的存在,各种编程语言才在n e t f r a m e w o r k 中达到了开发环境的继承。 n e t 推崇这样一种思想:相对于框架而言,语言处于从属、次要的地位。c o d e d o m 名称空间中包含的类是这一思想的集中体现。在本课题中,生成代码时多处用到了这种 思想。s y s t e m c o d e d o m 名称空间包含了许多以语言中立的形式描述常见程序结构的对 象,每一种语言的细节则由与该种语言对应的c o d e p r o v i d e r y c 寸象负责处理。有了这一层 抽象,在编程时就可以描述待生成的代码结构,然后将它以任意语言的形式输出,却不 必斤斤计较于各种与特定语言有关的细节问题。同时,这种抽象也为通过程序改变代码 杨东明:基于n e t 的管理信息系统代码生成器的研究 的结构带来了方便1 1 “。例如,当我们发现某个方法需要增加一个参数时,就可以将参数 加入到该方法的p a r a m e t e r s 集合,根本无须改动已生成的代码逻辑。 以生成个程序代码段中最基本的b u t t o nc l i c k 函数为例。首先用c o d e d o m 构造一 个树或图,用s y s t e m c o d e d o m 名称空问的类填充它。完成后,用对应各种n e t 语言的 c o d e p r o v i d e r 对象将树结构转换成该种语言的代码。要更换一种语言,简单到只需更换 一下最后用到的c o d e p r o v i d e r 对象即可。 要实现一个完整系统代码自动生成器,首先必须提供有关于生成什么代码的基本信 息,也即元数据,然后程序提取这些元数据并自动生成实际的代码。不难想象,提供元 数据的最好方法就是使用一种统一的、容易验证的而且便于提取的数据格式。而a c c e s s 2 0 0 0 数据库正好提供了这切,并且使用规模与代码生成器的表需求量相当,使用起来 简单方便,在第三章中有详细介绍。具体实现如图2 4 所示: 码生成器朋工 图2 4a c c e s s 存储与提取信息 f i g 2 4s t o r a g ea n dt a k i n go f i n f o r m a t i o nb ya c c e s s 因此,代码自动生成器的配置信息使用a c c e s s2 0 0 0 数据库保存。a c c e s s 2 0 0 0 数据 库通用的文件格式保证了信息的易于读取和修改,而且在a c c e s s2 0 0 0 数据库中能够实 现信息的层次结构,比其他如i n i ,c s v 等文本方式更能够准确地表现信息的真实意义 和结构。在代码生成的过程中,也引入了c o n f i g u r a t i o n 对象,将a c c e s s2 0 0 0 数据库的 配_ 置连接信息放置在a p p c o n f i g 文件中。通过这种方式,可以实现数据库的连接不依赖 于程序代码,灵活的改变a c c e s s2 0 0 0 数据库放置的物理位置。 2 2 4 代码生成器带来的好处 代码生成器的产生是对原始编程方式方法的一种革新,这种草新势必会产生旧方法 的抛弃和继承,以及对新方法的疑问及探索。新方法能否保留旧有模式的宝贵经验,能 大连理工大学硕士学位论文 否摒弃陈旧方式的弊端,这一切都需要在实践中去检验。从软件工程学的角度去分析, 用科学的研究方法从质和量上去进行分析对比和判断。 自从1 9 6 8 年首次提出软件工程一词以来,软件工程已成为计算机软件的一个重要 分支和方向。软件工程是指应用计算科学、数学及管理科学等原理,以工程化的原则和 方法来解决软件问题的工程。其目的是提高软件生产率,提高软件质量,降低软件成本。 软件工程学中,一个科学的软件开发组织应包括项目管理者、软件开发工程师、软 件测试工程师等角色。并且除了软件开发中人的作用之外,还包括项目开发过程中文档 以及开发人员经验的总结等抽象的概念。那么,代码生成器给软件开发队伍带来的影响, 就应该分别从上述各角色考虑和着手。 f 1 ) 对于软件组织的好处帕j 对于一个软件组织而言,采用代码生成技术有如下好处: 有利于推行组织的编码规则。伴随基础代码框架的生成,组织的编码规则,如 注释的写法、类名、方法名、变量名的命名方法、代码行缩进等,也被包含在基础代码 之中。程序员在这些生成的基础代码之上进行编码,这就向程序员示例了组织的编码规 则并在一定程度上强制程序员遵循这些编码规则。 有助于组织中项目经验的积累。代码生成器的模板文件是项目经验的载体。一 个富于经验的人来写出模板文件,此模板文件,或者说此模板工程( 模板文件的组合) 将 会作为经验的延续。新的项目中可以通过修改以前项目的模板文件来生成新项目的所有 支持文件,开发人员可以将精力更多的集中到业务中。 ( 2 1 对项目管理者的好处 代码生成技术对于工程管理者的好处主要体现在业务层次上的优点。其在业务层次 上的优点有: 架构一致性:在个项目中运用的代码生成器是对在开发周期前期作出的架构 决策的实现。这包括三点: 代码生成器鼓励编程者在预定的架构下进行编程工作。 代码生成器避免了编程者可以为所欲为地往架构里加入新的特性。当编程者 感到“代码生成器无法做他们想做的事情”时,这也给出一个很好的提示:可 能新的特性不能在现有的架构上运作。 - 一个好的代码生成器为项目提供了一套一致性的方法和结构,这有利于减少 团队成员半途离开项目组所带来的影响。 抽象性:代码生成器用独立于程序语言的定义文件来表达应用程序逻辑。这一 抽象有以下三个好处: 杨东明:基于n e t 的管理信息系统代码生成器的研究 软件工程师能够通过建立模板文件把应用程序逻辑转换成其他程序语言或者 是支持其他平台的程序,这远比对手写代码的转换要容易得多。 业务领域分析员能够审查这一抽象里的设计。 - 在抽象层次获取应用程序语义有助于除实现代码外的工作产品的生产,如文 档、测试用例、产品支持材料等等。 高涨的士气:时间跨度长且需要大量单调乏味的编码工作的项目常常会让团队 面临巨大的考验。代码生成技术可以缩短项目的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 牛津深圳版初中英语单词表九年级下册
- 目标突破课件:3.4.1 同类项
- 河南省泌阳县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年度健身中心场地租赁合同
- 2025版商铺租赁合同租赁期间合同解除条件承诺
- 2025版文化公司创意人员追诉期劳动合同示范
- 2025版租赁合同涵盖租赁物保险与风险承担
- 2025版养老院社会捐助服务合同
- 2025版银行信用卡分期付款合同规范模板下载
- 2025版三方大数据分析销售合作协议范本
- 蒋诗萌小品《谁杀死了周日》台词完整版
- 6G网络中的垂直通信和切片技术
- 入学安全第一课幼儿园
- 社区健康服务与管理教案
- 《社区康复》课件-第一章 总论
- 机械设备维护保养手册
- 人教版初中英语七至九年级单词汇总表(七年级至九年级全5册)
- 微积分的产生与发展
- 消防安全隐患排查投标方案(技术标)
- 22S803 圆形钢筋混凝土蓄水池
- 钢管顶管施工方案
评论
0/150
提交评论