(计算机软件与理论专业论文)基于语义一致性的模型转换方法及应用.pdf_第1页
(计算机软件与理论专业论文)基于语义一致性的模型转换方法及应用.pdf_第2页
(计算机软件与理论专业论文)基于语义一致性的模型转换方法及应用.pdf_第3页
(计算机软件与理论专业论文)基于语义一致性的模型转换方法及应用.pdf_第4页
(计算机软件与理论专业论文)基于语义一致性的模型转换方法及应用.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机软件与理论专业论文)基于语义一致性的模型转换方法及应用.pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 摘要 近年来,随着i i l t e m e t 和i i l t r 锄e 佃x t r 柚e t 的快速发展,w 曲应用被广泛应 用到各个领域,w 曲应用的开发效率及质量要求不断提高,开发工作的难度不 断增加。如何快速有效的开发出w 曲应用成为业界研究的焦点之一。 o m g 提出并倡导的m d a ( m o d e l d r i v 朗a f c h i t e c t i l r e ) ,通过可视化建模将业 务逻辑从具体的平台中分离出来,建立起平台无关模型( p l a t f o r mh l d 印胁d e n t m o d e l ,p i m ) ,在模型映射规则支持下,建立起包含特定平台信息的平台相关 模型( p l a t f o r mh i d 印d e m m o d d ,p s m ) ,最终由代码生成器生成可执行代码。 基于m d a 的软件开发在应用开发层次、开发效率、模型复用程度、可移植性、 代码一致性和可维护性上都有很大提高。当前基于m d a 的模型转换方法大都 依赖源模型和目标模型的语法结构,这要求源模型和目标模型在结构上具有较 高的相似度。但在实际的模型转换中,源模型和目标模型在建模语言、建模侧 重点以及建模者主观因素等方面的差异,使得源模型和目标模型之间在语法结 构上具有较低的相似度,因而难以直接建立二者之间的转换关系。 针对以上问题,本文在对模型转换中的语义要求进行深入研究的基础上, 提出了一种基于语义一致性的模型转换方法,并将此模型转换方法应用于实际 模型转换的研究开发中。具体如下: 首先,本文深入分析课题的研究背景和研究现状,对模型相似度、模型语 义和模型转换的语义要求进行归纳和总结,提出语义一致性和语义一致性的模 型转换等概念。在此基础上,创新性的提出基于语义一致性的模型转换方法。 其次,从宏观语义一致性和元语义一致性两个层面说明基于语义一致性的 模型转换方法。通过语义约束概括抽象目标语义模型,建立源模型与目标语义 模型的转换关系以及目标语义模型与目标模型的转换关系,从而以目标语义模 型为桥梁,建立源模型与目标模型之间的宏观转换关系;分析m d a 模型转换 框架结构,提出应用形式化语言扩展机制重构语言概念集的方法,建立元语义 级的转换关系。 山东大学硕士学位论文 第三,借助具体源模型( f m p 模型) 与目标模型( 基于j a v a s e e r f a c e s 平台) 的转换,从理论上对该方法进行说明。在此基础上,将该方法应用于基于f m p 模型的代码自动生成工具a u i 的开发实践中,建立起a u ij a v a s e r v e ff a c e s 代 码生成器,从实际应用角度说明该方法并验证可用性和实用性。除此之外,本 文还对当前研究状况进行了总结,并指出了未来需要完成的工作。 基于语义一致性的模型转换方法,将模型转换从单纯依靠语法指导下的转 换提高到语法和语义相结合下的转换,在语义的约束下建立模型之间的转换, 从而为模型转换提供语义层面的指导。这些研究将有力地推动模型转换方法和 代码自动生成的研究与发展,有着重要的理论意义和实用价值。 关键词:模型转换:语义一致性;模型驱动架构;模型驱动开发 n 山东大学硕士学位论文 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n t so f i i l t e m e t 姐di i i t r 粕e t e ) 【t 啪鸭w 曲a p p l i c a t i s h a v eb e 锄a p p l i e di nm a n yf i e l d s b e c a u s eo ft h a t ,i r e 锄dm o r ed i f f i c l l l t i e so ft h e w 曲d e v e l o p m 即t s 盯ei n d u c e db y1 l l ec o n s 伽np m d u c t i v i t yi m p r o v e m 锄t s 粕dh i 曲 q u a l i l y 佗q u i r e m e n t so fw 曲印p l i c a t i o n s d e v e l o p m e n t s h o wt od e v e l o pw 曲 印p l i c a t i o n sr a p i d l y 锄de 虢c d v e l yh a v eb e c o m em ek e yf i e l di nr ri n d u s 吼 皿eo r g 锄i z a t i o no m gh a db e p r o “d i n ga n da d v o c a t i n gm em d a ( m o d e l d r i v a r c h i t e c t i i r e ) p r o j e c t t h ep r o j e c th 鹊t l l eb u s i n 郫sl o 百ci s o l a t e df r o m s p e c m cp l a t f o r m sb yv i s u a lm o d e l i n g 锄dc o n s t r i i c 协t l l ep l a 响mi n d 印朗d e n t m o d e l s 唧岣a c c o r d i n gt l l ep i m s 肌d 啪d e lm a p p i n gm l e s ,也ep l a 怕ms p e c i f i c m o d e l s ( p s m ) ,w h i c hc o n t a i ni n f o r m 撕o no fs p e c m cp l a t f b 加s ,a 聆g e r a t e d t h 锄血e d eg 饥e r 卸【o r b a s eo np s m sp m d u c e st h ee x e c 砸v ec o d e sa b o u ts p e c i f i c p l 础b 啪s t h es o f t 咄d “e l o p m 锄t sb 鹅e do nm d ap r o v i d em a n ya d v 锄t a g e so n m a n yf i e l d s ,鲫c h 勰a b s 仃a c tl e v e lo fd e v e l o p m e n t ,e m c i 髓c y ,删) d e l sr e l l s i n g , s o f t w a r ep o r t a b i l i 饥c o d ec o n s i s t e n c y 锄ds o f t w a r em a i n t a i n s o t h e r 谢s e ,c u r r e n t m o d e l 仃a n s f o r m 觚o nm e t h o d sb 嬲e do nm d ad e p e l l do nt 1 1 es y n t a ) 【c o n s 仃l l c t i o n s o fs o u r c e 锄dt 盯g e tm o d e l s 1 1 1a 1 1 0 t h e rw o r d ,t i l em e t i l o d s i m p l e m e n t sr e q u i r eh i g h m o d e lc o n s t r u c t i o ns i m i l a f i l yb e t 、v e e ns o u r c e 锄dt 盯g e tm o d e l s a tp r a c t i c a lm o d e l 仃a n s f o r m a t i o n s ,i ti sd i 伍c u l tt ob u i l dt h et r a n s f o m a t i o nr e i 撕o n s h i p s 行o ms o u r c e m o d e l st ot 鹕e tf i 帕d e l sb e c a u s eo fl o ws i m i l a r i t i e sb e t w e e nt h 锄i n d u c e db yt l l e d i 腑r e n tf h c t o r so fs o u r c e 肌dt a r g e tm o d e l s ,s u c h 器m o d e l i n gl a n g u a g e s ,m o d e l i n g v i e 、 1 ) o i n t sa n dm o d e lb u i i d e f i nt h i sm e s i s an e wm e t l l o dc a l l e d “m o d e l 仃舭s f b r m a t i o nb a s e d s e m 强t i c c o n s i s t e n c y i sp r o p o s e dt 0s o l v e1 l l ea b o v ep r o b l e m sa f t e r 锄a l y 五n g1 l l es e m 姐t i c r e q u i r e m 锄t si nm o d e l t r a l l s f o m a t i o nd e e p l y 锄da p p l i e di n1 l l ed e v e l o p m 明t s 锄d r e s e a r c h e so fr e a l i s 石ca u 协m t i ct o o lo fc o d eg 饥e r a t i o n t h ed e t a i l s 髂f o l l o w s : i i i 山东大学硕士学位论文 f i r s t ,b y 趾a l y z i n gt l l eb a c k g r o u n d s 锄dr e l a t e dr e s e a r c h e so ft h i ss t u d y ,t l l e m e s i ss u m m a r i z e s 觚dg e n e r a l i z e st h em o d e ls e m 粕t i c s ,m o d e ls i m i l a f i 矗e s 肌d s e m 锄t i cc o n s i s t e n c yr e q l l i r e m 锄t s ,也e np r o p o s et h ei m p o r t 锄tc o n c 印t s 鲫c h 雒 s e m 锄t i cc o n s i s t c y 锄dm o d e l t r 强s f o r m a t i o nb 嬲e do ns e m 卸t i cc o n s i s t e n c y a t t h eb 私i so fm a t ,t l l et h e s i sp r o p o s e st l l en e wm e t l l o dc a l l e d “m o d e lt r 柚s f o m a t i o n b 私e do ns e m 觚石cc o n s i s t 髓c y ” s e c o n d ,t 1 1 em e t h o do fm o d e l 仃锄s f b m a t i o nb 嚣e d s e m 锄t i cc o n s i s t e r i c yi s b r i e n yi n 仃o d u c e db y l e v e l s :m a c r o s c o p i cs e m 锄t i cc o n s i s t c y 锄dm e 协l e v e l s e m 锄t i cc o n s i s t e n c y t h em a c s p i c 仃a n s f 0 咖a t i o nr e l a t i o n s h i p sc 锄b eb l l i h c o r d i n gt ot a 唱e ts e m a n t i cm o d e l sb e c a u s eo ft a 玛e ts e m 锄矗cm o d e l sc o n s i d e r e d t h eb f i d g e sf 如ms o u r c em o d e l st 0t a r g e tm o d e l s a tm es 锄et i m e ,r e s 们j c t u r i n g c o n c e p t so ff o 劬a l i s m sb 豁e do n 锄a l y z i n gt h e 疳锄e w o f ko f d d am o d e l 仃肌s f o r m 撕o nt oi m p l e m e n tt h e 仃a n s f o 肌a t i o nf 如mp l a t f b r mh l d e p d 锄tm o d e l s t op l a t f o ms p e c m cm o d e l ss u p p o r t i n gb ym em e c h 孤i s mo ff o m a l i s m se ,【t e n s i o n s 锄db l i i l d i n gt h em e t a - l e v e lm o d e l 仃锄s f o r m 撕o n t h i r d ,b 私e do nt h e s e sd e s c r i p t i o n ,t h em e t i l o do fm o d e l 伽s f o 舢a t i o nb a s e d o ns e m a l l t i cc o n s i s t e n c ) ,i si l l u s 仃a t e db yt 1 1 et r 缸s f 0 姗a t i o nf b ms p e c i f i c u r c e m o d e l s ( f m pm o d e l s ) t os p e c i f i ct a 玛e tm o d e l s ( j a v a s e r v e rf a c e sm o d e l s ) i n t i i e o r y a r e rt h a t ,t l l ea u ij a v a s e e rf e sc o d eg e n e r a t o r b 船e do nt h i sm e m o d i s d e s i g n e da j l di m p l e m e n t e d t h ef e a s i b i l i t i e so ft h em e t h o da v e r i f i e di np r t i c e h ia d d i t i o n ,t h i st l l e s i ss u m m a r i z e st l l eo n - g o i n gr e s e a r c hi nt h i sa r e aa n dp o i n t so l i t t 量l ew o r kn e e d e dt ob ed o n ei nt h ef h t u r e t h em e t l l o do fm o d e l 仃柚s f o r m a 缸o nb 船e do ns e m 粕t i c n s i s t e n c yi m p r o v e s l e v e lo ft h e 删) d e lt r 锄s f b 姗a t i o n ,舶mp u s y n t a xg u i d a i i c et oc o m b i n a t i o no f s y n t 疆孤ds e m 锄石cg u i d a m c e t h e 仃;m s f o r i i l a t i o nr e l a t i o n s h i p s 盯eb u i l tb 嬲e do n s e m a n t i cc o n s 仃a i n t s 也a tp r o v i d et l i eg u i d a n c eo fs e m 肌t i cl e v e i ,t h e s e s r e s e a r c h e s w i l lp r o i n o t et h ed e v e i o p m 饥t so fm o d e l 打a n s f b 珊a t i o nm e t h o d sa n da u t o m a 矗c 山东大学硕士学位论文 c o d eg e n e r a t i o n 锄d h a v et l l ei i n p o n 缸tt h r e t i c a l 柚dp r a 商c “m e 觚i n g s k e yw o r d s :m o d e it r a n s f o r m a t i 蚰;m o d e ls e m 粕t i cc o n s i s t e n c y ;m o d e id r i v e n a r c h i t e c t i i 他( m d a ) ;m o d e ld r i v e nd e v e i o p m e n t ( m d d ) v 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本 文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名: i 烂霾日期:班 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意 学校保留或向国家有关部门或机构送交论文的复印件和电子版,允 许论文被查阅和借阅;本人授权山东大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他 复制手段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) :燃新签名型日 期: 山东大学硕士学位论文 1 1 课题的研究背景及意义 1 引言 近年来,网络技术的迅速发展使得人们对w e b 应用的开发效率和质量的要 求不断提高,导致开发工作的难度不断增加。同时基于组件的开发、设计模式、 中间件、企业应用集成等一系列趋势性技术的发展以及支撑平台的快速更新, 使得当今w e b 应用开发面临如何最大限度地降低开发风险、提高效率、快速地 维护升级以及实现处于不同平台应用系统的互操作等问题【1 l 。0 m c 提出并倡导 m d a ( m o d e l d r i v 衄a r c h i t e c t l l r e ) 【2 】,它通过体系结构和软件设计模型的可视 化,将业务逻辑设计从不同的中间件平台( j a 、,a ,n e t ,c o r b 凡w 曲s e r v i c e 等) 分里出来,开发人员只需要考虑业务逻辑的建模,建立与具体中间件技术无关 的平台无关模型( p l a 哟r mi i l d e p 饥d e n tm o d e l ,p “) ,并通过模型的转换得到 加入了技术细节的平台相关模型( p l a t f o ms p e c i f i cm o d e l ,p s m ) ,由代码生成 器根据p s m 生成可执行的代码。这样使得领域应用问题的模型在整个软件生命 周期中得到复用,并在软件开发过程中扮演了核心的角色。m d a 能带来快速开 发、可移植性、提高代码的一致性和可维护性以及体系结构等方面的好处。 0 m g 的有关标准如m o f ( m e t ao b j e c tf a c i l i t y ) 【4 l 和u m 【,( u n i f i e dm o d e l o n g l a i i g u a g e ) 【5 】已经为p i m 和p s m 的定义和描述提供了良好的基础,大多数面向 对象的软件开发过程都采用l 乃进行需求分析建模、设计,并且已有很多这样 的工具软件支持。从p s m 到代码的实现也已经有了一些转换工具( 如r a t i o n a l r o s e ) ,可以用扩展的i n 进行建模,然后直接从特定平台的模型转换到代码。 软件开发者最关注的,也是当前开发中最难实现的部分是从p i m 到p s m 的模型 转换,国内外还没有出现有效的解决方案。 模型转换是一个较新的研究领域,国内的研究还刚刚起步。文献【3 】介绍了 使用模板匹配的转换,也是基于图转换的方法。文献【7 ,8 】介绍了p i m 与e j bp s m 的映射,没有考虑动态模型的转换,而且也没有形式化的描述转换规则。上述 方法中大多数是更加依赖语法转换而不是建模元素语义的转换,而且要求模型 之间具有较高的相似度。 山东大学硕士学位论文 本文的研究意义在于将模型转换从单纯依靠语法指导下的转换提高到语法 和语义相结合下的转换,特别是源端模型和目标端模型结构之间具有较低相似 度的情况下,在语义的约束下建立模型之间的转换,从而为模型转换提供语义层 面的指导。 1 2 课题的创新点 自然语言机器翻译研究的理论表明,实现不同语言之间正确转换的前提是 源语言和目标语言具有相同或相似的语义表达特性,m d a 中不同抽象层次模型 间的转换也应如此。当前的模型转换方法大都依赖于平台无关模型( p i m ) 与 平台有关模型( p s m ) 的语法结构,而在模型转换过程中的语义转换以及转换 正确性的验证都十分不足。 本文的创新之处通过对源模型和目标模型的结构和语义表达特点进行分 析,提出基于语义一致性的模型转换方法,为模型转换提供语义层面的指导, 并通过f m p 模型到j a v as e r v e rf a c e s 平台的转换实例说明了该方法的指导思想 及实用性。 1 3 本文的组织结构 本文从总体上看,分为七个部分;第一部分引言,介绍课题研究背景、创 新点以及课题的研究意义;第二部分对课题研究背景以及国内外研究现状进行 说明;第三部分介绍了模型转换中语义一致性的基本概念,包括模型相似度、 模型语义、语义一致性以及模型转换中语义一致性的两个层面;第四部分提出 基于语义一致性的模型转换方法,通过分析f m p 源模型和j a v a s e n r 盯f e s 目 标平台模型的结构,从宏观和元两个层面说明基于语义一致性的模型转换方法; 第五部分介绍了基于f 模型的代码自动生成工具a u i ;第六部分阐述了基于 语义一致性模型转换方法实际应用,介绍了a u ij s f 代码生成器的设计和实现, 用实际的模型转换说明该方法的可行性和实用性;第七部分总结,对已经完成 的工作做了总结,并提出了下一步工作的方向。 2 山东大学硕士学位论文 2 国内外研究现状 2 1 模型驱动体系结构( m d a ) 今天开发企业级的应用要求一种软件架构的方法,这种方法应该能够以一 种灵活的方式帮助架构师来发展他们的架构。这种方法应该允许在及时的实现 业务功能的新的能力的情况下重用已有的劳动成果,甚至是当目标基础架构本 身在一直的演进【1 1 。随着应用系统的不断发展,其规模不断扩大,并且构建软 件系统使用的平台多样,同时在开发应用系统过程中,用户的需求也在不断改 变。如何在这种情况下,开发出具有较高可靠性及可维护性的系统,成为软件 开发急待解决的问题。 因此,o m g 提出并倡导m d a ( m o d e ld r i v 钮a r c h i t e c t i i r e ) 【2 】,它通过体系 结构和软件设计模型的可视化,将业务逻辑设计从不同的中间件平台 ( i a v a ,n e t c o r b a ,w e b s e i c e 等) 分离出来。m d a 是一种应用系统设计和 实现的方法。a 鼓励在软件的开发过程中有效的使用系统的模型,并且它 支持创建类似系统的最佳实践的重用。根据对象管理组织( 0 m g ) 定义的标 准,m d a 是一种组织和管理被自动化工具支持的企业体系架构、用于定义模 型和推动不同模型类型之间的转换的服务、标准和方法。 m d a 技术的相关概念均是o m g 的一系列标准:统一建模语言1 ( u n i f i e d m o d e l i n gl 趾g u a g e ) 【1 0 1 、元对象设施m o f 1 1 1 ( m e t ao b j e c tf a c i l i 锣) 、x m l 元数 据交换x m i ( 皿。m e t a d a t ai i l t e r c h 姐g e ) 、公共数据仓库元模型c w m ( c o m m o nw 缸e h o u s em e t a l l l o d e i ) 。m d a 的核心标准组成了创建模式驱动的一 致性系统纲要的基础,这个系统纲要完成授权、发布和管理模型的功能。 其中m o f 为枷d a 的核心,它包含四个模型层次,如表2 1 所示。 m o f 可以被用来描述关系数据模型的建模结构,也被用来描述u m l 类模型 的建模结构;它还被用来描述其他种类的建模所用到的结构。m o f 是通用的、 抽象的,用于定义元模型的语言,它可以被称为m e t a m e t a m o d e l 或者定义元模型 的模型。 山东大学硕士学位论文 表2 1m o f 元层次 元层次描述元素 m 3 m o f ,即定义元模型的m o f 类、m o f 属性、m o f 关联等 构造集合 m 2元模型,由m o f 构造的u m l 类、i m 属性、u m l 状态、i t m l 实例组成活动等:c w m 表、c w m 列等 m 1 模型,由m 2 元模型构造c u s t o m 盯类、a c c o 岫f 类; 的实例组成 “e m p l o y e e ”表、“n d o r 表等 m 0 对象和数据,也即m l 模客户j 觚es m 油、客户j o ej o n e s 、账户 型构造的实例2 9 8 9 、账户2 3 4 4 、员工a 3 9 4 9 、商家 7 8 9 8 8 等 2 1 1 不同抽象层次上的建模 图2 1 描述了不同种类的模型的基本 分类法。一个系统可能会有很多不同的模 型,但一个系统的不同模型之间显然有某 种关系。m d a 关注模型间的一种特殊关 系:自动生成关系,也即一个模型可以由 另外一个模型生成。 业务模型和系统模型。业务模型即领 域模型,描述一项业务或者一个企业,用 于业务建模的语言包含了建模者用来规 定业务过程、参与者、相关部门、过程间 图2 1 m d a 中的各种模型 依赖等方面的术语,也被称为计算独立模型。系统模型则描述了业务模型中需 要使用应用系统实现的部分,因此系统模型的作用域要比相应的业务模型作用 域小。 逻辑模型和物理模型。逻辑模型通过类和行为模型描述了系统的逻辑。物 4 山东大学硕士学位论文 理模型描述了在开发时和运行时用到的物理工件和资源,包含模型文件、源代 码文件、可执行文件、档案文件、处理器等等。 需求模型和计算模型。需求模型描述了逻辑系统,而不是业务,但是它是 用独立于计算的方式来描述的,这意味着,需求模型尽可能不考虑技术因素。 计算模型也摇述了逻辑系统,但是它考虑了技术因素。计算模型为生成器提供 了更完整的信息。 平台独立模型( p e m ) 和平台相关模型( p s m ) 。p 口m 是使用与系统实现平 台无关的概念描述系统,而p s m 则是使用与实现平台相关的概念描述应用系统。 p m 【和p s m 之间的差异取决于对平台技术参考集合的规定,p 蹦独立于这些平 台。p 蹦和p s m 是计算模型。p i m 考虑了一些技术因素,从p i m 派生的p s m 则考 虑了更多的同特定平台相关的技术因素。 2 1 2m d a 的基本框架 ( 1 ) 模型驱动开发的基本框架 传统上,从模型到模型的转换,或者从模型到代码的变换,主要是手工完 成的。许多工具可以直接从模型生成一部分代码,但是往往只是生成一些模板 代码,大部分工作还是需要手工完成。模型驱动开发的主要步骤如图2 2 所示, 包含了三个模型,两个变 换工具之间的协作关系。 变换工具以p i m 为输入, 并把它变换成p s m 。另一 个变换工具再把p s m 变 换成代码。 图2 2 模型驱动开发主要步骤 从图2 ,2 中看出,模型驱动开发实现的两个关键转换是由工具支持自动完成 的。目前有不少工具,可以将p s m 转化成代码,因为p s m 与代码已经相当接 近。模型驱动开发的难点是实现p i m 到p s m 转化的自动化。现有的工具还没 有完全将p i m 成功转换为p s m ,在许多情况下仍需要用户干预或强化p s m 描 山东大学硕士学位论文 述。但是总可以从p i m 生成一个基本可运行的应用程序。如图2 3 所示。 模型总是以某种语言表述的。可以是眦,也可以是自然语言,或者某种 编程语言。为了支持模型的自动转换,需要对模型或模型描述施加一定的限制 或约束。 ( 2 ) 模型驱动开发的优点“1 需要被定义一次,然后就可以在开 发中多次应用这个变换。不必关注 目标平台的细节,技术细节会通过 从p i m 的变换自动加入p s m 。因此 提高了生产效率。 日世蛔 图2 3p i m 到p s m 的转换 增强可移植性t 可移植性是通过把开发焦点转移到p i m 而获得的。因 为p i m 是跨平台的、与平台无关的。同一个p i m 可以被自动变换成多个不同 平台上的p s m 。因此在这个意义上,p 旺层次 上定义的所有东西都是完全可移植的。 ,p 圳 支持互操作性:如图2 4 所示,从一个 p s h l 一p s h - | ,s 抛 p 讧生成的多个p s m 之间可能会有联系。这种 挢按器 l i 联系被称为桥接器。不同平台间的p s m 不能直+ 接联系。需要把一个平台的概念转换到另一个 代码一毒+ 代码 平台,这称为互操作性。因此还需要生成p s m 图2 4 瓦操作傩支持 之间的桥接器。 便于维护,在模型驱动开发工程中,开发者可以把注意力放在p i m 上。 p 订抽象层次比代码高,而模型是代码的精确表现,因此p i m 起到了软件系统 所需要的高层次文档的作用,便于系统的维护。 6 吐捶 删龇抓 一一一 姗臌抑舳 山东大学硕士学位论文 2 1 3m d a 工具对模型变换的支持 工具对m d a 的支持是多种多样的,很多年前就有工具能支持从模型生成 简单的代码,这也包含在m d a 的范畴中。但是,在理想的情况下,m d a 对模 型和模型变换提出了很高的要求。工具对模型变换所提供的支持主要表现在以 下几方面: p i m 到p s m 的变换:这类工具把高层次p i m 变换成一个或多个p s m 。目 前这类工具还很少见,虽然有一些,但是只提供了这方面的最基本功能。 p s m 到代码的变换:这些工具有内置的变换定义,把符合某种预定义类型 的模型作为输入,并输出符合另一种预定义类型的模型。源模型是p s m ,目标 模型则是代码模型。事实上,传统c a s e 工具就是按照这个模式生成代码的。 p i m 到代码变换:同时支持从p i m 到p s m 和从p s m 到代码的变换。有时 候,用户看到的只是从p i m 到代码的直接变换,p s m 则是隐含的。这种类型的 工具把源语言、目标语言以及变换定义都内置其中了,它们的行为就像黑盒一 样。本文所实现的代码生成就是这一类型。 2 2 转换方法特征 o m g 的c w m ( c o m m o nw 盯e h o u s em e t a m o d e l ) 【1 列只提供了关于模型转换 的抽象框架,没有规定目标元素的派生必须使用的具体实现机制。2 0 0 2 年,o m g 发布了关于q u e r y v i e w s t r 缸s f o m a t i o n s ( q ) 的征求提议( r f p ) 【1 们,开始 了模型转换的标准化进程,这过程最终将产生定义模型转换的标准。作为对提 议的响应,最近大量的关于模型转换的方法被提出,但在实际应用中还很难看 出它们的效率。市场上的建模工具刚刚开始提供一些有限且很特殊的模型间转 换的能力,但缺乏严格的理论基础,也没有形式化的描述转换规则。大多数工 具的目标是生成e j b 应用,他们提供的转换也是支持这个特定目标的1 7 l 。 文献【1 7 】使用特征表( f e a t u r ed i a g r 锄s ) 对目前的模型转换方法进行应用领 域分析。领域分析是关于对系统的可变性和公共性或者领域的概念进行分析和 建模的。特征表是领域分析的通用符号,图2 5 显示了顶层的特征表,每个节 7 山东大学硕士学位论文 点代表方法的一个方面。 2 2 1 转换规则 一个转换规则包括两部分1 7 1 8 19 】;左边( l e m h 翘ds i d e ,l h s ) 和右边 ( r r i g h t - h a n ds i d e ,r h s ) 。l h s 访问源模型,r h s 用于目标模型的扩展,l h s 和r h s 都用以下几个方面的组合来表示: 图2 5 模型转换方法的特征 砌,缸6 拓s :包括源模型和目标模型( 或者中间模型) 的元素。有时被称作 是脚口衄,曲6 尼s 用以区分转换后模型中的变量。 ,臼地埘j :模式是包含多个( 或零个) v a r i a b l e s 的模型片断,如s 仃i n g 、t e 瑚、 g r a p h 模式。 l o g i c :l o g i c 表达关于模型元素的计算和约束。l o 百c 可以是可执行的, 也可以是不可执行的。不可执行的l 0 百c 用于说明模型间的关系,可执行逻辑使 用d e c l a r a t i v e 或i m p e r a t i v e 形式。d e c l 盯确v e 形式的实例包括从源代码中检索元 素的0 c l 查询( 如x d e ”1 ) 和通过约束隐含的建立目标元素。i m p e r a t i v el o 百c 通常是以编程语言代码的形式调用a p i 库直接操控代码。 跏f w 加s 印口m “m :r h s 和l h s 可能语法上分离,也可能不分离。就是说,规则 在语法上可能标明是r h s 或l h s 的,或者是没有语法区分。 肼击r 打 砌f j 规则可以双向执行。 8 山东大学硕士学位论文 胄拓p 口,p 纳恤f 砌i :转换规则可能有一些允许配置和调节的附加控制参数。 肋e 删p 击口招s 脚c m ,船j 一些方法( 如v l a t r a 【2 2 】和g r c a t f 2 1 】) 需要构造中间模 型。 2 2 2 规则应用范围 规则应用范围限制参与转换的模型组成部分。一些方法支持灵活的源模型 范围( 如x d e 啪1 和g f e a t ) ,可以设置比整个的源模型要小一些的范围。因执行 的原因后者更重要。目标范围是目标模型的范围,在其中要扩展r h s ( 如) 【d e ) 。 2 2 3 源和目标模型的关系 一些方法要求生成的新的目标模型必须与源模型相分离2 3 1 。其他的有些方 法中,源模型和目标模型都是同一个模型,仅支持就地更新( i n - p l 私eu p d a t e ) ( 如a t r a g r e a t ) 。还有些方法( 如) e ) 允许目标模型是一个新模型也可 以是已经存在的模型( 可能是最初的源模型) 。后者指的是就地更新。一个允许 对现存模型破坏性或扩展性更新的方法指能够删除现存的模型元素。使用非确 定性选择的方法和定点迭代的方案要限制就地更新i n - p l a c eu p d a t e ) 的扩展,以 保证最终结束( 如v i a t r a ) 。 2 2 4 规则应用策略 一条规则需要在其源模型的某个具体位置上使用,在给定的源模型范围中, 一条规则可能有不止一个匹配,需要有一个应用策略。这个策略可能是确定性 的、非确定性的或者是交互式的。一条规则的目标位置通常是确定的,在就地 更新( i n p l eu p d a t e ) 的情况下,源模型中的位置变成了目标模型的位置( 如 删和g r e a t ) 。在源模型和目标模型分离的方法中,可用跟踪性的连接决 定目标位置【2 3 l :一条规则可以沿着追踪性连接到一些由其它的规则生成的目标 元素并把这些元素当作自己的目标来使用。 9 山东大学硕士学位论文 2 2 5 规则安排方案 规则进度安排( s c h e d u l i n g ) 机制决定使用单个规则的次序。因以下四个 主要原因使得进度安排机制不同: 而删,可以显式或者隐式的表达规则的进度安排。隐式的进度安排指的 是用户没有对进度安排算法用工具明确的来定义控制( 如o p t i m l j ) 。用户能 影响系统定义的进度算法的唯一方式是通过设计模式和规则逻辑来保证一定的 执行次序。显式的进度安排有专门的结构部分明确的控制执行次序。显式的进 度安排可以是内部的也可以是外部的,外部安排方案中规则和安排逻辑之间有 一个清晰的分离。 r 跆s p 缸c 疗d 押,规则可以由外部条件选择。一些方法允许非确定性的选 择0 4 1 ,同时还提供基于优先权的冲突解决机制( 尽管还没有实现解决冲突的方 法) 。还可以选择交互式的规则选择( 如x d e ) 。 r 卵跆f 据m 疗鲫:规则迭代机制包括递归、循环、定点迭代( 即重复应用直 到不再发生变化) 。 p h 髂i n g :转换过程可以分为几个阶段,每个阶段都有其具体的目标,在 特定的阶段只能调用特定的规则。例如,基于结构的方法如o p t i m a l j 有一个单 独的阶段建立目标模型的层次,还有一个单独的阶段在目标模型中建立属性和 引用。 2 2 6 规则组织 规则组织考虑构造多样化的转换规则,在这里考虑三种情况: m o d u l a r i t ym e c h 锄i s m s :一些方法允许把规则封装成模块,一个模块可以 导入另一个模块并访问其内容【1 7 1 。 r e u s em e c h 锄i s m s :这种方法提供了一种在一个或多个规则基础上定义新 规则的机制。一般的,进度安排机制可以用来定义复合转换规则,其他的一些 方法提供了一些复用机制( 如规则间的继承、派生、扩展、具体化、模块间的 l o 山东大学硕士学位论文 继承和逻辑复合。 0 喀锄i 盈d o n a ls t m c t i l r e ;可以根据源语言( 在属性语法中,t i o n s 与 e l e m t s 联系在一起) 或目标语言的结构组织规则,或者是各自独立的组织规 则。文献【2 6 】介绍了一个根据目标结构组织规则的一个例子,在这种方法中, 每个目标元素类型有一个转换规则,并根据目标元模型的层次放置规则。如果 目标语言有一个存放类的包结构,那么生成包的规则就要包含生成类的规则, 生成类的规则又包括生成属性和方法的规则。 2 2 7 追踪性连接 转换要记录源模型元素到目标模型元素的连接,这些连接对执行的分析( 如 一个模型的更改如何影响其他相关的模型) 、模型间的同步、模型基础上的调试 ( 实现到高层次模型的逆向映射) 等很有用,并决定转换的目标。 2 2 8 方向性 转换可能是单向的,也可能是双向的。单向转换只能在一个方向上执行, 在源模型的基础上生成( 或是通过更新) 目标模型。双向转换在两个方向上都 能执行,这对模型间的同步非常有用。双向转换可以通过双向的规则获得,也 可以为每个方向的转换定义两个分离但互补的单向规则实现。 2 3 模型转换方法 模型转换是模型驱动开发过程中的一个关键步骤,首先通过抽象分别建立 源模型和目标模型的元模型,对比得到的两个形式化元模型的抽象组成元素及 其语义,定义它们之间映射规则”,2 引。根据第2 节列出的关于模型转换的8 个特 征,现有的模型转换方法大致可以分为以下几类: 山东大学硕士学位论文 2 3 1 直接操控方法 这种方法提供一个内部模型表示加上一些操控模型的a p i ,一般实现为一个 面向对象的框架。用户必须用编程语言从头实现转换规则和进度安排。这种方 法在实现转换方面很少为用户提供甚至没有提供指导,所有的基础工作都要靠 用户完成。这种方法实际上是由设计人员手工将p i m 转换成p s m ,是一种低层 次的转换方法。长远看,该方法不实用1 7 ,”l 。 2 3 2 关系方法 这一类方法的主要概念是关系代数、声明式的方法和带o c l 约束的映射规 则。其基本思想是在一个关系中陈述源模型和目标模型元素的类型,并用约束 来描述1 2 9 ,3 “。该方法的优点是对许多简单的转换来说是很方便的,但对复杂的 转换则不能表达抽象信息的丢失口”。这类方法还破坏了柔性和声明表达式之间 的平衡【埘。 2 3 3 基于图转换的方法 这类模型转换方法采用图转换的理论,在有类型和属性并带有标号的类似 u m l 模型的图【3 2 】上操作,类、对象、用例和角色等建模元素映射为一个图顶点, 它们之间的关系映射为边。这些方法有很强的理论基础,但由于转换进度安排 和规则应用策略的不确定性,要仔细考虑转换过程是否可终止以及规则的应用 次序,因而是最复杂的。已经有一些关于该方法的原型研究的经验( 如 g r e a t 【2 ”,眦x 【l9 】,a 认【2 2 1 ) ,但其概念与工业标准相距太远,妨碍了 其被u m l 业界接受【3 ”。此外,如何在实际中解决其复杂性有待于进一步的观察。 作为对图转换方法的扩展,文献

温馨提示

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

评论

0/150

提交评论