(检测技术与自动化装置专业论文)web应用代码自动生成平台中组件库管理系统的研究与实现.pdf_第1页
(检测技术与自动化装置专业论文)web应用代码自动生成平台中组件库管理系统的研究与实现.pdf_第2页
(检测技术与自动化装置专业论文)web应用代码自动生成平台中组件库管理系统的研究与实现.pdf_第3页
(检测技术与自动化装置专业论文)web应用代码自动生成平台中组件库管理系统的研究与实现.pdf_第4页
(检测技术与自动化装置专业论文)web应用代码自动生成平台中组件库管理系统的研究与实现.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着计算机技术的高速发展与网络信息化建设的普及,w e b 应用系统已经 成为人们日常生活中重要的信息传播途径,然而在搭建各类w e b 应用系统的过 程中,存在着软件开发周期长、效率低、复用性差、耦合度高等众多问题。这 些问题,制约了w e b 应用系统的开发和使用。因而迫切需要改进现有的软件开 发方法,提高软件的开发速度与质量。总体来看,解决上述软件开发问题的方 法,主要包括采用代码自动生成技术以及合理运用组件的相关技术两个部分。 代码自动生成技术以及组件技术是目前解决软件开发效率低、质量差的主 要方法。本文从实际开发w e b 应用系统的感受出发,总结了w e b 应用系统开发 过程中的具体问题,对目前的代码自动生成技术以及组件技术进行阐述与整合, 提出了w e b 应用系统代码自动生成平台的设计方案。并且,对代码自动生成平 台中的代码生成系统和组件库管理系统两个部分分别进行了分析、设计和实现。 在组件库管理系统的建立过程中,本文采用g e n v o c a 层次模型对组件库管理系 统进行详细地表述,使用改进后的刻面分类思想对组件库中的各类组件进行描 述,运用基于关键字与基于语义网的相关技术对组件库进行查询,最后将查到 的组件提供给w e b 应用运行环境,以便快速完成w e b 应用系统的搭建。总而言 之,力求通过运用代码自动生成平台,更好地解决在开发w e b 应用系统过程中 的所遇到的种种问题。 本文结合w e b 应用系统的实例,对代码自动生成平台进行实现与改进。综 合分析北京工业大学校园网主页项目中的部分需求,制订需求分析,进行项目 的概要设计,并且通过运用代码自动生成平台,快速搭建出基本符合需求的w e b 应用系统,在一定程度上解决了目前软件开发面临的问题。 最后,总结了本文的研究内容,针对系统存在的问题和不足,提出了需要 日后进一步研究与实现的工作重点。 关键宇w e b 应用系统;代码自动生成;组件库;刻面分类模式;语义网 a b s t r a c t a b s t r a c t w i t l lt h eh i g h s p e e dd e v e l o p m e n to fc o m p u t e rt e c h n o l o g ya n dw e bi n f o r m a t i o n s c o n s t r u c t i o n ,t h es y s t e mo fw e ba p p l i c a t i o ni st h em o s ti m p o r t a n ta p p r o a c ht os p r e a d t h ei n f o r m a t i o n , b u tt h e r ea r em a n yp r o b l e m sd u r i n gc o n s t r u c t i n gt h es y s t e mo fw e b a p p l i c a t i o n ,f o re x a m p l et h ep e r i o do fc o n s t r u c t i o ni sl o n g e r , t h ee f f i c i e n c yo f c o n s t r u c t i o ni sl o w e r , t h er e p e t i t i o ni sl e s sa n dt h es y s t e mi st i g h t l yc o u p l e d t h e s e p r o b l e m sa r er e s t r i c t e dt h ed e v e l o p m e n ta n du s i n gt h es y s t e mo fw e ba p p l i c a t i o n t h e r e f o r ew en e e di m p r o v et h em e t h o do fd e v e l o p m e n t ,a d v a n c i n gt h es p e e da n d q u a l i t yi nd e v e l o p i n gt h es y s t e m i ng e n e r a l ,t h es o l u t i o n sf o rt h e s ep r o b l e m sa r e a u t o m a t i cc o d eg e n e r a t i o na n dt h et e c h n o l o g yo fc o m p o n e n t t h ea u t o m a t i cc o d eg e n e r a t i o na n dt h et e c h n o l o g yo fc o m p o n e n ta r et h el e a d i n g m e t h o d so fa d v a n c i n gt h ee f f i c i e n c yo f c o n s t r u c t i o n t h i sp a p e rs t a r t sf r o mt h ea c t u a l a p p l i c a t i o n ,s u m m a r i z e st h ei d i o g r a p h i cp r o b l e m sd u r i n g t h ed e v e l o p m e n t ,a n d e x p a t i a t et h ea c t u a lt h i n g so fa u t o m a t i cc o d eg e n e r a t i o nf o rw e ba p p l i c a t i o na n dt h e t e c h n o l o g yo fc o m p o n e n t ,f i n a l l yg a i n e dt h ed e s i g no fa u t o m a t i cc o d eg e n e r a t i o n p l a t f o r m b e s i d e st h i sp a p e ra n a l y s e s ,d e s i g na n da c h i e v et h e a u t o m a t i cc o d e g e n e r a t i o ns y s t e ma n dc o m p o n e n tl i b r a r ym a n a g e m e n ts y s t e m d u r i n gb u i l d i n gt h e c o m p o n e n tl i b r a r ym a n a g e m e n ts y s t e m ,t h i sp a p e rd e s c r i b e st h ec o m p o n e n tl i b r a r y m a n a g e m e n ts y s t e m b yg e n v o c am o d e l ,d e s c r i b e st h ec o m p o n e n t sc l a s s i f i e d i n f a c e t e ds c h e m ei nt h ec o m p o n e n tl i b r a r y , r e t r i e v e sc o m p o n e n t sf r o mc o m p o n e n t l i b r a r yb yk e yw o r d sa n ds e m a n t i cw e b f i n a l l y , w ep r o v i d et h e s ec o m p o n e n t st ot h e a u t o m a t i cc o d eg e n e r a t i o np l a t f o r m ,i no r d e rt ob u i l dt h ew e ba p p l i c a t i o ns y s t e m q u i c k l y i ng e n e r a l ,w ee x p e c tt os e t t l et h ep r o b l e m si nd e v e l o p m e n tb yu s i n g a u t o m a t i cc o d eg e n e r a t i o np l a t f o r m t h i sp a p e ra c h i e v et h ep l a t f o r ml i n k i n gt ot h er e a le x a m p l e so fw e ba p p l i c a t i o n w e a n a l y s e st h ed e m a n d si ni t e mo fb e r i n gu n i v e r s i t yo ft e c h n o l o g y sh o m e p a g e , i i i 北京工业大学工学硕士学位论文 i i i d e v e l o p e sn e e d sa n a l y s i s ,d e s i g nt h es y s t e ma n da c h i e v et h ew h o l ew e ba p p l i c a t i o n s y s t e m b yt h i sp l a t f o r m t h i sm e t h o d c a l ls e t t l et h ep r o b l e m sp a r t i a l l y a tl a s t ,t h i sp a p e rs u m m a r i z e sp r o d u c t i o n so ft h i sp a p e r , a d v a n c e se x p e c t a t i o nt ot h e f u t u r ea n dk e y s t o n eo ff u t u r er e s e a r c he m p l o y m e n t k e yw o r d st h es y s t e mo fw e ba p p l i c a t i o n ;a u t o m a t i cc o d eg e n e r a t i o n ;c o m p o n e n t l i b r a r y ;f a c e t e dc l a s s i f i c a t i o ns c h e m e ;t h es e m a n t i cw e b i v 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:邀 日期:墨丝鱼 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 虢缒导师虢盟嗍盐姐 第1 章绪论 1 1 课题研究背景 第1 章绪论 自2 0 世纪中叶计算机诞生以来,计算机技术就以罕见的速度迅速发展和普 及,渗透到人类生活的各个角落。计算机最初只是被应用于科学计算,随着通讯 技术和计算机技术的结合,分布在不同地域的计算机被相互连接起来,构成了计 算机网络,网络技术使计算机突破了单机应用的局限性,使信息可以快速交换和 共享使用。 近年来i n t e r n e t 的迅猛发展,对人类社会的众多方面形成了巨大的冲击,各 行各业都受到其影响发生了深刻的变化,随着世界范围内i m e r n e t 环境的形成, 人类社会正在进入一个以网络为中心的信息化时代。在信息化建设中,各类w e b 应用系统,作为一个重要的信息传播途径,已经成为人们日常生活中不可缺少的 部分,随着人们对各类信息需求量的不断增长,各类w e b 应用系统便应运而生。 搭建w e b 应用系统的过程中,存在两方面的问题【1 1 : 第一,程序员对预开发系统中特定领域的业务流程不甚了解,只能与业务人 员不断沟通,以便了解用户的最终需求,但是由于业务专业术语的限制,使得程 序员不能1 0 0 地理解用户的最终需求。致使程序员辛苦开发出的w e b 应用系统 不能很好地体现用户的思想。另外,用户的需求会因一些不定因素而不断变化, 程序员就需要做相应的代码改动,用户的需求一变,程序员就需要跟着变,而这 种盲目地变动有可能会使下次的变动更加复杂。 第二,开发w e b 应用系统时,程序设计人员在手工编写代码的过程中,通 常会将页面表现、业务逻辑、数据库操作等多个层次、多种技术的开发任务混在 一起进行,使得软件的开发过程繁琐而僵硬1 2 j 。 通过开发与维护北京工业大学数字工大项目中的几个w e b 应用系统子项目, 笔者深刻体会到这种w e b 开发过程有多方面的不足,并且会带来下面的种种问 题: 开发软件系统整体架构 3 1 的过程中,重复编写框架性代码的工作量大。 框架性的代码有相对固定的编写规则和方法,在软件系统整体架构的开发过 程中,这部分代码的编写重复性强、工作量大,程序员往往需要耗费大量的时间 和精力进行人工编码。 开发具体业务流程的过程中,重复使用已有代码片段的数量少。 已经开发成功的各个w e b 应用系统中,存在着一些功能独立、通用性强的 代码片段,这些业务功能的代码片段在日后其他系统的搭建过程中,没有得到很 好的复用,致使程序开发人员需要不断地重复编写同类的业务代码,增大了开发 北京工业大学工学硕士学位论文 代码的工作量。 测试、修改软件系统某功能模块时,修改工作涉及的代码量多而且关系 复杂。 采用传统开发模式开发的软件系统,各个模块间的耦合度高,不利于单个模 块的测试和修改。当需要对某个功能模块进行修改时,程序开发人员往往需要读 懂与此模块关联的多个功能模块的代码,再进一步针对修改需求,修改所有关联 的代码,导致测试和修改的代码工作量增大。 软件系统迸行后期维护时,由于代码质量不统一。使得系统维护的工作 量增大。 软件系统的整体开发任务,可能由多个程序员共同合作完成。每个程序员手 工编写代码的质量参差不齐,即便是同一个开发人员在编写过程中,也会不断引 入新的方法或手段来更好地解决某个问题,这样产生的代码缺少一致性与统一 性。那么,在对系统进行后期维护的过程中,维护人员就需要针对不同质量的代 码做出相应的调整与修改,这样就无形中增加了维护员的工作量。 以上,是运用手工方式开发软件系统的过程中,程序开发人员经常会遇到的 两方面问题。为了更好地解决目前开发过程中的各种问题,现在迫切需要引入一 种半自动化甚至是全自动化的代码开发方法。本文在对纯手工开发方法进行分析 的基础上,引入了代码自动生成平台的概念。通过运用代码自动生成平台的相关 技术,试图解决目前软件开发周期长、效率低、复用性差、耦合度高等问题。 1 2 课题研究意义 代码自动生成平台的研究是在软件工程、软件方法学、软件体系结构、设计 模式、组件复用技术等相关理论的综合基础之上进行的。它的诞生,是人类代码 开发由手工作坊到半自动化,再到工业化历程发展的必然趋势和必经之路。 本文主要通过代码自动生成技术和软件复用思想相结合的方法,来实现快 速、高效开发w e b 应用系统的目标,其中软件复用思想的实现主要体现在组件 技术的应用,这里提到的组件泛指一些可复用的代码片段。在w e b 应用系统的 开发过程中,运用代码自动生成平台可以充分地利用已有的开发成果,减少包括 分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率, 同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而 提高了软件的质量。 程序员可以根据不同的业务需求,运用代码自动生成平台,自动生成相应的 w e b 应用系统。并且可以随着用户需求的不断变更,而方便地修改系统。这样, 就在一定程度上解决了上面提到的第一个问题,解放了部分的程序员,提高了代 第1 章绪论 码复用率与w e b 应用系统的生成效率,即提高了劳动生产率,降低了软件的开 发成本与软件的维护费用。 而且合理运用代码自动生成平台,在开发过程中,可以很好地解决上面谈到 的第二个问题,给程序人员的开发过程带来下面几点好处: 程序员在开发w e b 应用系统的过程中,可以通过使用代码自动生成平台 中提供的各种框架模板以及各种框架性组件,完成相应的框架代码的编写,从而, 可以使程序员从繁琐、重复的框架编写中解放出来,将精力更好地投入到业务相 关部分的设计与实现上。 程序员在开发业务流程的过程中,通过使用代码自动生成平台,运用已 有的各类组件,可以提高软件的复用率。此处的软件复用,主要是指将已有的软 件及其有效成分用于构造新的软件或系统。 代码开发过程中,通过使用代码自动生成平台,运用成熟的、高质量的 组件,可以有效降低系统中各个功能模块的耦合度。当程序员测试、修改某个单 独的功能模块时,如果发现逻辑错误或者业务流程有问题,并不需要逐个文件进 行阅读与修改,而只需要独立考虑这个模块,并进行有针对性的、合理的修改即 可。这样可以把系统测试人员、系统开发人员从繁重的重复的劳动中解脱出来, 更加有效地测试、修改原有的系统。 程序员通过代码自动生成平台产生的代码,能够保证代码的整齐性和可 读性,使整个系统的代码质量一致,有效地降低程序员维护代码的成本和精力支 出。 显而易见,代码自动生成平台的建立,高质量组件的运用,对于系统开发人 员和系统测试人员都具有重要的意义。它可以使程序开发更加简洁、高效,系统 代码也具有高度的统一性与一致性,为以后的修改和复用提供了坚实可靠的基 础。 代码自动生成平台的重要意义在今年8 6 3 计划中也有明显的体现,代码自动 生成平台的相关研究在8 6 3 的申报课题中榜上有名,将“模型驱动的软件开发技 术”作为申请课题,并确定了主要研究的四大内容:( 1 ) 软件系统建模技术;( 2 ) 模型转换技术;( 3 ) 领域特定的代码自动生成技术;( 4 ) 模型维护与管理技术。 综上所述,代码自动生成平台技术的研究具有重要的意义。 下文将对代码自动生成平台以及组件管理的现状进行简单的介绍。 北京工业人学工学顼i :学位论文 1 3 代码自动生成平台及组件管理技术的现状 1 3 1 代码自动生成平台的现状 正如上文分析指出的,代码自动生成平台在快速开发软件的过程中具有至关 重要的作用和意义,软件设计与开发人员对这种技术的需求与日俱增,市场上各 类代码自动生成平台便如雨后春笋般应运而生。其中有些定位为高端用户产品, 还有些是免费的,共享源代码的开源软件。 目前国外有代表性的代码自动生成平台,包括: i b m 公司的r s a ( r a t i o n a ls o f t w a r e a r c h i t e c t ) ,此平台提供了模型到模型、 模型到代码的自动转换,支持模型驱动开发的全过程,实现了设计方案到代码的 快速转化。 t e l e l o g i c 公司的t a u d e v e l o p e r ,具备从设计模型生成可执行软件的功能。 国内有些企业针对特定框架,开发了自主产权的软件自动生成平台。例如浪 潮的l o u s h a n g 平台,上海普元的e o s 构件平台等。 这些品种繁多的平台具有不同的生成技术和生成机制,各种产品之间缺乏统 一的规范和标准。现阶段比较常见的代码自动生成方式如下简介: 1 3 1 1 将x m l 文件通过x s l 转换为j a v a 源代码。这种方式的缺点是x s l 的可读性较差,其源代码的脚本很难有效地进行维护。 1 3 1 2 解析代码注释生成源代码。j a v a 中有j a v a d o c 标记,可以把一些特殊 的标记放入j a v a d o c 注释中,通过一个d o c l e t 工具处理这些标记,生成相应的源 代码。工具可以为指定的b e a n 生成对应的x m l 描述文件与各个接口文件。 目前,x d o c l e t 是这类生成方式的代表,已经可以用x d o c l e t 生成w e b 服务 和w 曲应用描述器,并且可以按照自己的特殊需要对它进行相应的扩展。 1 3 1 3 运用领域专用语言d s l 。d s l 是d o m a i ns p e c i f i cl a n g u a g e ( 领域专用 语言) 的缩写【4 】。d s l 是一种针对特定领域问题的计算机编程语言,它提供了该 领域内各类特殊的抽象概念和符号。 d s l 的运用更加重视声明,比通用目标语言( g p lg e n e r a lp u r p o s el a n g u a g e ) 的表达能力差。所以领域专用语言也曾被称为应用领域语言、“小语言或宏语言 l s l 。像大家熟悉的s q l 、u n i xs h e l l s 、m a k e f i l e s 等可以视为领域专用语言 6 j 。 由于d s l 在领域级别上的高度抽象性,使得其更易于编程、易于验证,提 高了产品的生产力、可靠性、可维护性和可移植性,并且可以实现系统级的重用。 目前,图形图像处理,金融产品、各种协议、操作系统、设备驱动程序、网络中 的路由器和机器人语言等领域都有相应的领域专用语言。 1 3 1 4 基于模板解析的代码自动生成。模板解析技术是一种实现简单、高效 第1 章绪论 率、高质量的代码自动生成方法,此方法是将数据模型( 元数据) 和处理指令存 放在x m l 文件中,模板引擎将数据模型和模板文件( 代码生成原型) 组合,生 成特定的源代码。 源代码开放的j a v a 模板引擎中的代表是v e l o c i t y ,v e l o c i t y 属于j a k a r t a 项目 的一部分。其优点是模板语法简单易实现,内容和显示方式分离。程序开发者运 用v e l o c i t y 可以更加专注于程序代码的开发,形象设计者可以更加专注于页面布 局和视觉效果的开发,开发任务的分离与明确,使得开发工作的效率明显提高, 开发质量显著上升。 这种代码自动生成技术,在目前软件系统的开发过程中得到了认可与广泛的 应用。 1 3 1 5 基于模型的代码生成技术。m d a 是模型驱动体系架构( m o d e l - d r i v e n a r c h i t e c t u r e ) 的简称,它是由对象管理组织o m g ( o b j e 脏m a n a g e m e n tc - r o u p ) 所定 义的【7 l 。m d a 表示一种模型驱动开发方法的概念框架。 基于m d a 的开发首先关注于分布式系统或者应用程序的功能和行为,而不 是它将采用哪种具体的技术来实现。m d a 使得业务逻辑和实现细节相分离。将 业务用可视化的建模工具如u m l 进行建模,只要给模型提供足够的信息,工具 就能生成大部分和全部系统所需要的代码。 m d a 将软件系统的模型分离为平台无关模型p i m ( p l a t f o r m - i n d e p e n d e n t m o d e l ) 和特定平台模型p s m ( p l a t f o r m - s p e e i f i cm o d e l ) i s l ,同时又能通过转换规则 将它们统一起来,以这样的方式试图去摆脱需求变更所带来的困境。平台无关模 型p i m 是对系统高层次的抽象,其中不包括任何与实现技术相关的信息:特定 平台模型p s m 是跟特定平台相关的模型。在m d a 框架中,首先使用平台无关 的建模语言来搭建平台无关的模型p i m ,然后根据特定平台和实现语言的映射规 则,将p i m 转换以生成平台相关的模型p s m s ,最终生成应用程序代码和测试框 架 但目前m d a 距离完全意义上的可执行模型( e x e c u t a b l em o d e l1 的实现依然遥 远。也就是说,由生成器产生的应用必须要经过软件开发人员的加工修正才能投 入使用。另一方面,因为逆向工程( r e v e r s ee n g i n e e r ) 自动化的局限性,这些对 代码的修改很难正确地反馈到模型中,难以维持模型与代码的一致性。此外,使 用m d a 来构建系统,生成代码的质量在很大程度上取决于系统建模的精确性, 对于一般设计人员来说通过u m l 建立出精确的模型并不简单。 1 3 2 组件管理技术的现状 组件技术的合理应用,对于软件的快速开发同样具有举足轻重的作用。这里 北京工业大学工学硕l 学位论文 的组件是泛指可执行软件的一个可分离部分。作为一个单元来说,它也是有意义 的,可以与其他组件实现互操作,需要某种环境的支持。外部只能通过组件的接 口对其进行访问,组件经过必要的安装和配置之后,可以以接口规定的方式对它 进行相应的操作。为了使组件之间能够更好地协同工作,需要各个接口的详细信 息【9 j 。 9 0 年代以后,组件技术逐步发展成熟,先后出现了一系列组件接口标准, 目前比较有代表性的主流技术包括:c o m 、c o r b a 、e j b m 】和j a v a b e a n 。众多 的组件技术和优秀的组件产品需要协调、统一的管理与使用,这就需要建立强大、 有效的组件库管理系统。 组件库管理系统( c o m p o n e n tb a s em a n a g e m e n ts y s t e m ,简称c b m s ) 主要 包括组件库的建立、使用和组件的维护。组件开发者将已经开发并且测试通过的 组件,按照组件库的规定加入到指定的位置,为以后软件的开发提供可复用的高 效资源。软件开发者在开发软件的过程中,欲使用组件库中已经具有的某个组件, 可以通过组件库管理系统进行相应的查询和挑选,提取符合查询条件的组件以备 后用,这样可以有效地提高软件的开发效率与质量。 由此我们不难看出,组件库的合理建立与高效维护是组件库管理系统的研究 重点与难点。目前国内外对于组件库管理系统的研究,已经有了部分优秀成果, 下面本文将简单介绍和分析几个有代表性的成果。 组件库管理系统主要研究成果有a l o a f 模型,r i g 组织,c o d e b r o k e r 组件 库,n a t o 指定的标准,r e b o o t 项目,北大青鸟组件库管理系统。 1 3 2 1a l o a f ( a s s e tl i b r a r yo p e na t c h i t e c t u r ef r a m e w o r k ) i “j 模型是1 9 9 2 年 提交的组件框架报告中所包含的一个实例模型。这个报告的主要目的是解决 s t a r s ( s o t t w a r et e c h n o l o g yf o ra d a p t a b l e ,r e l i a b l es y s t e m s ) 项目中共享组件资 源的问题,报告中这个模型的提出,表明了软件复用工具的可能性与必要性。 1 3 2 2 融g 组织在a l o a f 的基础上,开发了一个数据模型u d m ( u n i f o r md a t a m o d e l ) t 1 2 lu d m 定义了组件库之间交换组件所需要的各种信息,它的主要目的是 实现组件库之间的无缝互操作。 1 3 2 3c o d e b r o k e r 是美国c o l o r a d e 大学开发的组件库原型这个组件库与源程 序的编辑工具紧密结合,为使用者提供了主动性地查询服务。但这个查询过程, 主要依赖于用户在开发过程中的文本输入,致使查询的准确率较低。 1 3 。2 4n a l d 组织制定了一系列的软件复用规范包括软件复用过程指南、 可复用软件构件开发指南和可复用软件构件管理指南1 等。这些规定对 组件库的建立和管理具有指导性的意义。 1 3 2 5 r e b o o t ( r e u s eb a s e do no b j e c to r i e n t e dt e c h n i q u e s ) 是e s p r i t 中的一 个项目“”它是9 0 年代初国际上比较著名的组件库系统,采用了基于刻面分类的 第1 章绪论 组件检索方法作为主要的检索方法。 3 2 6 北大青乌构件库管理系统( j b c l m s ) 是国家“九五”重点科技攻关项 卧1 5 】。这个组件库可以储存和管理广义的组件,采用数据库管理系统中组件的描 述信息,文本系统存储组件的实体。 1 4 课题来源与主要内容 本课题来源于教育部数字社区工程研究中心。 在开发和维护北京工业大学数字工大项目的几个w e b 应用系统子项目时, 笔者对于纯手工开发代码所带来的种种弊端有深刻的体会,因此,希望借助代码 自动生成技术和复用组件来解决上述问题,从而引入了代码自动生成和组件管理 的相关技术。 。 本文对现有代码自动生成技术和组件库管理系统进行了分析与总结,初步建 立了代码自动生成平台。这个代码自动生成平台,主要包括代码生成系统和组件 库管理系统两个部分。下面,将对代码自动生成平台进行整体设计,并且设计、 实现组件库管理系统。最后结合北京工业大学校园网主页项目中的部分需求,对 此代码自动生成平台的可行性进行有效的验证。 本论文的主要内容与结构安排如下: 第一章“绪论”,分析现阶段软件开发存在的突出问题,介绍本课题的研究 背景,阐述课题的理论意义与现实意义,概述课题相关领域的发展现状与主要的 研究成果,最后指出课题来源和论文的主要内容以及结构安排。 第二章“代码自动生成平台的总体设计方案”,分析、利用现有的代码自动 生成技术,提出了本论文研究的代码自动生成平台的整体设计方案,给出了平台 整体设计结构图和平台的运行流程图。分解平台的主要任务,对主要问腹进行了 统一、合理地划分。 第三章“组件库管理系统的架构与理论基础”,系统地介绍组件库管理系统 的理论基础以及设计模式。为整个系统的设计实现提供了坚实的理论支撑,提出 了组件库管理系统的架构设计方案。 第四章“组件库管理系统的设计”,简述组件的相关概念,对现阶段较流行 的各类组件迸行了比较分析。针对w r c b 应用系统的特点,对组件库进行了整体 设计,并且基于g e n v o c ;a 层次结构模型对组件库进行了全面的描述,最后介绍 了组件库不同层次中几个有代表性的组件。 第五章“组件库的检索”,简述组件库管理系统中现有的各种组件检索技术, 确定组件库检索的整体设计方案。运用改进后的刻面分类方法对组件库中的组件 进行翔实有效地描述,在检索过程中引进语义网的相关技术,提高检索效率。最 北京1 = 业入学工学硕 学位论文 后给出组件库检索的具体实现,验证组件库管理系统中检索技术的可行性。 第六章“组件库管理系统的应用”,以北京工业大学校园网主页项目的部分 需求为应用背景,运用本文设计、开发的组件库管理系统,维护、查找组件,将 组件提供给w e b 应用运行环境,并且给出了使用组件库管理系统的实际效果。 第2 章代码自动生成平台的总体设计方案 第2 章代码自动生成平台的总体设计方案 通过介绍现有的代码自动生成技术与组件管理技术,结合开发w e b 应用系 统的实际需要,确定本论文设计、开发的代码自动生成平台,采用目前广泛认可 和应用的基于模型的代码自动生成技术。提出代码自动生成平台的整体设计方 案,方案主要包括:代码自动生成平台模块结构图与代码自动生成平台的运行流 程图。下面,对其进行详细的说明。 2 1 代码自动生成平台的模块结构 代码自动生成平台,在软件系统的开发、测试过程中具有重要的作用和意义, 它的主要作用是有效地提高代码的生成效率和生成质量。 代码自动生成平台的模块结构图如图2 1 所示: 一里一 图2 1 代码自动生成平台模块结构 f i g u r e 2 - 1 m o d u l es m m t u r eo f a u t o m a t i c :c o d eg e n e r a t i o np l a t f o r m 由上图可以看出,软件开发人员通过使用w e b 应用代码自动生成平台,可 以快速输出w e b 应用,而这个w e b 应用代码自动生成平台的整体又依赖于某个 软件集成开发环境。 整个w e b 应用代码自动生成平台包括组件库管理系统和代码生成系统两个 主要部分。 这两个部分需要底层平台运行环境的支持,同时需要代码自动生成平台前端 控制器进行协调和连接。 北京工业大学工学颐j 。学位论文 代码自动生成平台前端控制器的主要工作包括: 向组件库管理系统发出查找组件的请求 向数据模型发出编辑指令 向代码生成系统发出代码自动生成的指令 控制打包的相关工作 当组件库管理系统接收到查询组件的请求后,将对组件库进行查询,并且将 查询结果加载到w e b 应用运行环境中待用。同时,组件库管理系统会将查询结 果的相关调用信息反馈到前端控制器中。 当数据模型接收到前端控制器发出的编辑指令后,按照需求编辑对应的数据 模型文件,并且将这个文件输入到代码生成系统中。代码生成系统根据前端控制 器发出的生成指令,生成代码片段。 通过代码生成系统产生的代码片段,在w e b 应用运行环境中与前面找到的 组件进行搭建与部署,最后打包输出w e b 应用。 由此可见,整个w e b 代码自动生成平台中的代码生成系统和组件库管理系 统分别承担重要的工作。 其中,组件库管理系统为快速搭建w e b 应用提供可复用的组件,是代码自 动生成平台的基础与运行支柱。代码生成系统,是整个代码自动生成平台的核心 部分,可以在一定程度上自动产生代码片段。 上面,介绍了代码自动生成平台的模块结构图以及模块图中主要模块的功能 与作用,下面将重点介绍代码自动生成平台的整体运行流程。 2 2 代码自动生成平台的运行流程 代码自动生成平台主要面向的使用人群,定位为有一定w e b 应用系统开发 经验和j a v a 语言基础的软件系统开发人员。 结合上一节所设计、定义的代码自动生成平台模块结构图,软件系统的开发 人员,可以依照下图2 - 2 所示的平台工作流程进行软件开发,从两达到快速搭建 w e b 应用系统的目标。 第2 章代码自动生成平台的总体设计方案 图2 - 2 代码自动生成平台运行流程图 f i g u r e 2 0 2o p e r a t i n gf l o w c h a r to f a u t o m a t i cc o d eg e n e r a t i o np l a t f o r m 代码自动生成平台的应用、运行过程如下: 第一步;软件系统架构师宏观分析系统需求,根据系统的整体设计要求,制 定出系统的详细设计方案,合理划分系统的各个功能模块和主要的、可以复用的 独立组件。 第二步:软件系统开发人员针对已经确定的组件,进行详细的分类。确定组 件是否已经存在。 第三步:如果在已往的开发中没有用到类似的组件,需要重新开发组件,那 么就需要进入到本论文所研究开发的代码生成系统中通过编辑组件的数据模 型,使用代码生成器,可以得到一些初步的组件。 第四步;对生成的组件进行分析、测试,判断其是否完全满足需求。如果不 能很好地满足用户需求,就需要重新编辑数据模型,重复第三步的操作,直到得 到满意的组件为止。 第五步:将产生的合格的组件放入w e b 应用运行环境中,以备后用。同时, 将这个组件扩充到组件库中。 第六步:如果在已往的开发中已经使用过类似的组件,那么可以进入组件库 北京工业大学工学硕士学位论文 中进行查询,取出相应的组件。并且,判断这个组件是否完全满足用户需求。 第七步:如果这个组件完全满足用户需求,就可以直接从组件库中提取出来 放入w e b 应用运行环境中;假如这个组件需要部分的修改或者变动,那么就要 判断这个组件是否是通过本平台中的代码生成系统产生的。 第八步:如果类似的组件是通过本平台产生的,就将这个组件的数据模型放 入数据模型编辑器,针对功能需求,合理修改这个组件的数据模型,重复第四、 五步中的主要操作;如果不是通过本平台的代码生成系统产生的,就将这个组件 直接放入w e b 应用运行环境中,以备后用。 第九步:将前几步已经准备好的组件在w e b 应用运行环境中进行分析与部 署,最终得到符合需求的w e b 应用。 以上介绍了代码自动生成平台的模块结构与整体运行流程,下面将对平台的 主要任务进行分析、总结与划分。 2 。3 开发代码自动生成平台的主要工作内容 通过上文介绍代码自动生成平台的模块结构和运行流程可知。研究开发代码 自动生成平台需要进行的主要工作包括:设计、开发代码生成系统,设计、实现 组件库管理系统。具体内容如下图2 - 3 所示: 图2 3 具体任务划分 f i g u r e2 - 3p a r t i t i o nf o ri d i o g r a p h i ct a s k s 第2 章代码自动生成平台的总体设计方案 代码生成系统是代码自动生成平台的核心部分,是产生代码的工厂。 组件库是存储组件的地方,而组件库管理系统是对组件库进行管理和维护的 工具。组件库管理系统,需要提供对组件库的多种操作,包括:对组件库进行灵 活地扩充;对各类组件进行合理的描述;对各类组件进行翔实地分类;对各类组 件进行全面地管理;对组件库中的组件进行高速、有效地查询;并且能够输出选 中组件的详细信息,以供组件的使用者分析、利用。 代码生成系统和组件库管理系统这两部分的合作关系如图2 - 4 所示: 图2 - 4 代码生成系统和组件库管理系统的合作关系 f i g u r e 2 - 4c o o p e r a t i o nb c t w m c o d e g e n e r a t i o ns y s t e ma n dc o m p o n e n tl i b r a r ym a n a g o m c n t s y s t e m 从图中,可以看出: 第一,组件库中的组件数量大,类型多。组件库中的组件和代码生成系统 生成的组件作为w e b 应用运行环境的重要输入,提供了大量可复用的组件资源, 是代码自动生成平台顺利运行的基础。 第二,组件库中的组件需要合理、有效的管理,并且能够与w e b 应用运行 环境进行连接,即需要强大的组件库管理系统。 一方面,组件库管理系统要对组件库中的组件进行管理,使组件能够按照设 计规则合理地存储在组件库中。 另一方面,组件库管理系统也将成为组件库与w e b 应用运行环境的有效连 接部分。用户根据自己的实际需求,运用组件库管理系统提供的查询功能,从组 件库中得到满足用户需求的各类组件,并且把这些组件的描述信息提供给组件使 北京工业大学工学硕士学位论文 用者参考,把相应的组件提供给w e b 应用运行环境。 因此,本文将设计代码自动生成平台和实现组件库管理系统定为重点研究内 容。 2 4 本章小结 本章从w e b 应用系统的实际开发需求出发,分析代码自动生成平台的功能 需求,以此为依据确定了代码自动生成平台的整体设计,包括代码生成系统和组 件库管理系统两个主要部分。在平台的设计方案中包括代码自动生成平台的模块 结构和代码自动生成平台的运行流程。并且,进一步合理地划分了研究和开发平 台所需要进行的主要工作与任务,确定本论文的工作重点为:代码自动生成平台 的合理设计与规划,研究和实现代码自动生成平台中的组件库管理系统。 下一章,将对组件库管理系统进行架构级的分析与设计研究,确定组件库管 理系统的搭建架构以及设计模式,为每个层次的具体实现提供坚实的理论基础与 高效的实现模型。 第3 章组件库管理系统的架构与理论基础 第3 章组件库管理系统的架构与理论基础 上一章对代码自动生成平台进行了整体设计与规划,将开发代码自动生成平 台的具体任务进行了划分。下文将重点介绍组件库管理系统的整体设计与实现方 案,并且系统地介绍搭建组件库管理系统的低层理论基础。 3 1 组件库管理系统的架构需求 根据上一章中对代码自动生成平台具体任务的划分,下面将迸一步分析组件 库管理系统的架构需求,并且介绍组件库管理系统的架构设计方案。 组件库管理系统的核心实体是“组件库”,组件库中有序地存储着大量可复 用的各类型组件。软件开发人员需要在组件库中快速查询到所需要的组件,并且 将组件输入到w e b 应用运行环境中,通过复用已有的高质量的组件,提高系统 开发的效率与质量。 由此可知,组件库中的各类组件是代码生成系统的主要资源,是整个代码自 动生成平台的坚实支撵。程序员需要对组件库进行实时地操作与应用,这就需要 组件库管理系统可以同时被多个程序员共同维护与使用,能够最大程度地共享组 件资源。经过多方面的分析和认真考虑,本文采用w e b 方式建立组件库管理系 统,以满足上文所分析、提出的各种要求。 目前,这类w e b 应用系统多采用j 2 e e 平台,运用成熟的技术进行开发和实 现。本文的组件库管理系统,为了在此领域具有更好的适用性,在底层也采用了 j 2 e e 平台,并且充分利用m v c 架构对系统进行低耦合的设计,提高系统的可 扩展性。 下面,将对j 2 e e 平台的基本概念和m v c 架构进行详细的介绍。 3 2j 2 e e 平台简介 3 2 1j 2 e e 概述 j 2 e e ( j a v a2p l a t f o r m , e w t , e r p r i s ee d i t i o n ) 是s u n 公司在1 9 9 9 年j a v a o n e 大会上推出的一种全新概念的模型【悯。它是一种利用j a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论