模型驱动构架中基于元模型的设计模式单元的组建和转换.pdf
《模型驱动构架中基于元模型的设计模式单元的组建和转换.pdf》由会员分享,可在线阅读,更多相关《模型驱动构架中基于元模型的设计模式单元的组建和转换.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3 0 卷第9 期2 0 1 0 年9 月计算机应用J o u r n a lo fC o m p u t e rA p p l i c a t i o n sV 0 1 3 0N o 9S e p 2 0 1 0文章编号:1 0 0 1 9 0 8 1(2 0 1 0)0 9 2 3 5 4 0 4模型驱动构架中基于元模型的设计模式单元的组建和转换杨长春,赵子艺,孙婧(常州大学信息科学与工程学院,江苏常州2 1 3 1 6 4)(y j s y w m y c c 1 2 6 t o m)摘要:设计模式种类繁多而且在不断变化,要在模型驱动构架(M D A)下真正做到从思想和实现上均能应用设
2、计模式,需要解决其实例化后的模式消失问题,保证模式的独立性,并且可以将这个过程适用到多种设计模式中去。针对以上两个问题,采取一种基于元模型的设计模式单元的建模方法,从元模型层面划分基本操作为不可分的原子,组合出完整的不包含业务逻辑部分的设计模式单元元模型,使多种模式单元元模型的组合构建和业务、模式逻辑相分离在经过一次转换过程后同时实现。关键词:模型驱动构架;平台无关模型;元模型;设计模式;模型组建中图分类号:T P 3 1 1文献标志码:AM e t a m o d e l b a s e dm o d e lo r g a n i z a t i o na n dt r a n s f o
3、r m a t i o no fd e s i g np a t t e r nu n i ti nM D AY A N GC h a n g c h u n,Z H A OZ i y i,S U NJ i n g(S c h o o lo f I n f o r m a t i o nS c i e n c ea n d 魄:w e 而昭,C h a n g z h o uU n i v e r s i t y,C h a n g z h o uJ i a n g s u2 1 3 1 6 4,C h i n a)A b s t r a c t:D e s i g np a t t e r
4、n sa r ev a r i o u si nk i n da n dc o n s t a n t l yc h a n g e T oa c h i e v et h ep r o p o s eo fa p p l y i n gd e s i g np a t t e r n st oM o d e lD r i v e nA r c h i t e c t u r e(M D A)f r o mi d e aa n da p p l i c a t i o n,o n ew a yi su s e dt os o v et h ep r o b l e mo fp a t t e
5、r nd i s a p p e a r a n c ew h i c hc o m e si n t ob e i n ga tt h ep r o c e s so fp a t t e r ni n s t a n t i a t i o n,a n dg u a r a n t e et h ei n d e p e n d e n c eo fp a t t e r n s,a tt h es a m et i m ea p p l yt h i sp r o c e s st om u l t i p l ed e s i g np a t t e r n s T os o l v
6、 et h e s et w op r o b l e m s,t h ea u t h o r s t o o kt h em o d e l i n gm e t h o do fd e s i g np a t t e r nu n i tb a s e do nm e t a m o d e l,d i v i d e db a s i co p e r a t i o n si n t oa t o m si nt h em e t a m o d e lt i e ra n dt h e nc o m b i n e dt h ea t o m st oc o m p l e t
7、ed e s i g np a t t e r nu n i t sm e t a m o d e l sw i t h o u tb u s i n e s sl o g i c T h e na f t e ro n ep r o c e s so fc o n v e r s i o n,i tr e a l i z e dt h ep r o p o s eo fm a k i n gu pv a r i o u sp a t t e r nu n i t sm e t a m o d e la sw e l la sd i v i d i n gb u s i n e s sl o
8、g i ca n dp a t t e r nl o g i ca tt h es a m et i m e K e yw o r d s:M o d e lD r i v e nA r c h i t e c t u r e(M D A);P l a t f o r mI n d e p e n d e n tM o d e l(P I M);m e t a m o d e l;d e s i g np a t t e r n;m o d e lo r g a n i z a t i o n0引言异构系统的集成问题一直困扰着大型软件的开发,模型驱动构架(M o d e lD r i v e
9、nA r c h i t e c t u r e,M D A)是对象管理组织(O b j e c tM a n a g e m e n tG r o u p,O M G)提出的软件开发过程中的模型组织管理框架,是一种解决异构系统集成问题的新途径,允许将不同中问件平台上的不同系统集成起来。它的主要思想是:分离业务功能分析设计和实现平台之间的紧耦合关系,从而将技术与平台变化对系统的影响降到最低。1o。而对于系统的异构性,可以采用设计模式的思想,提升系统的抽象层次,使子系统以一种统一的方式设计。设计模式利用面向对象语言的类和方法来实现某个编程目标,是面向对象技术的“刀刃”部分。2 _ 5 1,可以为
10、面向对象的软件开发提供可重用的设计方案,有利于提高软件的可复用性以及系统的可维护性。3 _ 2“。将其应用到M D A 中结合两者优点能够提高开发效率,节省开发时间,加快M D A 的发展。但是在M D A 中应用设计模式,往往面临以下两个问题。1)模式消失。当设计模式实例化时,其实现会根据环境而更改,最终导致模式消失。4o。2)模式爆炸。一个完整的开发往往会用到多种设计模式,涉及到多次以模式为单元的自动转换。3 _ 2 2”。而模式在不断更新发展,数量也会越来越多,最终导致在软件开发中应用设计模式成为一项艰巨的任务。针对以上两个问题,文献 4 中采用了一种基于角色的建模方法,将设计模式中的角
11、色定义成独立的类,与应用程序类分离开,然后使用一种R o l e O f 关系连接两个类,从而实现业务逻辑和模式逻辑的分离。文献 4 在元模型层面给出了R o l e O f 关系的元模型,但是其绑定的业务逻辑和模式逻辑却是模型层次上的,模式逻辑并未给出元模型层面的定义。文献 3 将设计模式单元整体引入M D A 的开发过程中,实现了模式逻辑在元模型层面定义,也可以实现业务逻辑和模式逻辑的组合绑定,但是没有模式单元元模型(P a t t e r nU n i tM e t a M o d e l,P U M M)的组合实现。文献 5 中介绍了一种细分模型元素的操作为原子映射的方法,可以实现多种
12、设计模式的组合,借鉴这种思想,设计一个代码生成器,书写原子映射和组合步骤为v e l o c i t y 模板,在用户界面将不同设计模式的参数和相对应的组合步骤的参数通过连接传人各个模板,这样可以将不包含设计模式的源模型自动转换为包含设计模式的目标模型,实现对模式单元元模型进行组合,从而同时解决这两个问题。收稿日期:2 0 1 0 0 3 2 3;修回日期:2 0 1 0 0 5 2 0。作者简介:杨长春(1 9 6 3 一),男,江苏泰兴人,教授,博士,主要研究方向:数据库、数据挖掘;赵子艺(1 9 8 5 一),女,河南商丘人,硕士研究生,主要研究方向:数据库;孙婧(1 9 8 5 一),
13、女,江苏盐城人,硕士研究生,主要研究方向:数据挖掘。万方数据第9 期杨长春等:模型驱动构架中基于元模型的设计模式单元的组建和转换2 3 5 51元模型在M D A 的开发过程中,建模是一个重要的环节,构建的平台无关模型(P l a t f o r mI n d e p e n d e n tM o d e l,P I M)的质量直接影响向平台相关模型(P l a t f o r mS p e c i f i cM o d e l,P S M)的转换效率和转换质量。大量的工程实践表明,基于元建模的建模要比基于统一建模语言(U n i f i e dM o d e l i n gL a n g u
14、 a g e,U M L)的效率高出1 0 倍,所以基于元建模的M D A 比基于单一建模语言U M L 的M D A 更有潜力。6。1”8。元建模是一种用来在M D A 环境中定义语言的机制,其核心要素是:元元模型、元模型和建模工具集成。6 _ 1 3 1 9。元模型作为元建模的核心制品,其构建是非常重要的,原因如下:一是需要使用元模型来定义语言,二是变换规则使用源语言和目标语言的元模型来定义变换。以下的重点是P I M 的构建,包括其在元模型层次上的构建基础。元模型显式定义建模语言的元素及之问的关系,它的建模对象是语言。O M G 采用四层元模型体系结构,M 0 层对应客观世界,M 1 层
15、是模型层,M 2 层是元模型层,M 3 层是元元模型层,下层是上层的实例。1)元对象设施(M e t aO b j e c tF a c i l i t y,M O F)是一个O M G标准,也是让M D A 成为实现的核心技术,它定义了建模语言的语言,是描述元模型的标准语言,位于M 3 层。2)U M L 是M 2 层的标准建模语言,用M O F 定义,可用来构建P I M 和P S M。U M L 元模型是M O F 模型的实例。核心U M L 是平台无关的,构建P S M 时必须扩展U M L 语言,即扩展U M L 的元模型,通常有两种方法:U M LP r o f i l e 方法和
16、元建模方法孙。3)U M LP r o f i l e 机制使用图表表示法和对象约束语言(O b j e c tC o n s t r a i n tL a n g u a g e,O C L)文本查询,被定义为一组S t e r e o t y p e、一组T a g g e dV a l u e、一组C o n s t r a i n t,其作用是为特定的目标定义一个特化的U M L 变体。8。1”。S t e r e o t y p e 定义的元模型不与原来的元模型融合,它对元模型的扩展是表面上的,用其定义的模型抽象词法扩展概念与原先概念之间的关系只能继承不能关联,即只能直接扩展不能定义
17、新的关联7”。4)O C L 是一个U M L 查询和表达语言,是U M L 标准的一个组成部分,目前已经成为一个完整的查询语言。8 _ 3 3。在U M L 中使用O C L 会让系统的U M L 模型变得更加精确完整。9J。2 设计模式的建模支撑环境采用从元模型层面重用设计模式的思想,将设计模式单元作为模式模型,与业务模型分离开来。P U M M 基于扩充后的M O F 元元模型,在M O F 的基础上扩充两个元元模型E p a t t e m 和E r o l e,用于定义P U M M H。2”。2 1E p a t t e m 和E r o l e 模式元元模型E p a t t e
18、 m 和E r o l e 为M O F 元元模型中C l a s s i f i e r 的子类,C l a s s i f i e r 继承自T y p e,包含在P a c k a g e 中,利用P a c k a g e 来组织元模型口 2 2”2”。E p a t t e m 实例就是一个P U M M。E r o l e 定义模式中的角色,一个角色就是一个E r o l e 实例,通过扩充,E o l e 在语法上可以有多个操作和属性。2 2R o l e O f 关系的元模型R o l e O f 关系是一种从R o l e 到C l a s s 的一对多的依赖关系,R o l
19、 e 表示设计模式中的角色类,C l a s s 表示应用程序类。一个设计模式中R o l e 和业务模型是函数关系,一个业务模型可以被多次绑定使用并且包含所有绑定的R o l e 中的方法和属性。通过R o l e O f 关系可以实现业务模型和模式模型分离后的绑定,避免模式消失问题的产生2 2 0 9 6 6 1。该绑定关系的符号是用虚箭头表示的依赖关系加上一个b i n d 进行标识2 2 0 9,4 1 6 2 2。图1E p a t t e m、E r o l e 模式元元模型图2R o l e O f 关系的元模型3 模式单元元模型的构建和转换表1 中扩充M O F 元元模型,是用
20、以增加E p a t t e m、E r o l e两个元元模型,来定义模式单元元模型。表1 模型组建及转换M 2 害徽犁凳鬈耋)K J T Q V T 转换删s 元触扩充的M O F 元元模型前面已经给出,下一步是进行P U M M 的细分组合。这里组合转换的目的是:将不包含设计模式的源模型组合为包含设计模式的目标模型口 4 4,1 0 1。转换规则定义在元模型级别,如表1 所示,该组合的过程位于M 2 层。采用U M L 作为模型表示语言,O C L 语言描述元素间所有的规则和约束增强U M L 在动态建模方面的表达,U M LP r o f i l e 扩展其对特定平台下模型的描述口 4
21、”4 5 “3 9。重点是表中所示的纵向的模型组建。3 1O b s e r v e r 模式单元元模型的U M L 扩展以O b s e r v e r 模式为例。根据O b s e v e r 模式标准简化视图心 2 0 2,进行改写,抽出业务逻辑部分而只保留模式逻辑,然后实例化E p a t t e r n、E r o l e 模式元元模型,得到O b s e r v e rP U M M,如图3。包含的元模型元素有:P a c k a g e、C l a s s、A s s o c i a t i o n、P r o p e r t y、O p e r a t i o n。核心关系包括
22、:C l a s s 一 C l a s s、O p e r a t i o n 一 O p e r a t i o n、C l a s s 一 A s s o c i a t i o n、C l a s s 一G e n e r a l i z a t i o n、C l a s s 一 O p e r a t i o n、C l a s s 一 P r o p e r t y、C l a s s 一A g g r e g a t i o n。O p e r a t i o n 包括O p e r a t i o n l 和O p e r a t i o n 2,P r o p e r t
23、y包括P r o p e r t y l 和P r o p e r t y 2,这样约束是为了避免命名冲突。万方数据2 3 5 6计算机应用第3 0 卷包含四个角色:S u b j e c t、O b s e r v e r、C o n c r e t e S u b j e c t、C o n c r e t e O b s e r v e r,为O b s e r v e r 模式中的角色,分别扩展为U M L中的四个标记值(O b s e r v e r C l a s s S u b j e c t、O b s e r v e r C l a s s O b s e r v e r、O
24、 b s e r v e r C l a s s C o n c r e t e S u b j e c t、O b s e r v e r C l a s s C o n c r e t e O b s e r v e r),这样O b s e r v e r 模式元素就可以在U M L 中表达。命名含义为:模式名元类一角色名“。图3O b s e r v e r 模式单元元模型3 2P U M M 的组合源模型和目标元模型均为扩展后的U M L 元模型,构造型的角色名为S u b j e c t 的C l a s s 就将转换为O b s e r v e r 模式。将模型元素问的增加、删除
25、、修改等操作作为原子映射,每一个原子映射是一个V e l o c i t y 模板,由原子映射组合成模型转换规则并且用户输入参数,可得到所需的模型转换代码。简单设计原子映射表。5。5 2 如表2。表2 中第一行表示源模型元素是C l a s s,目标模型元素是同一个C l a s s,参数C l a s s N a m e 表示目标类名,S t e r e o t y p e N a m e 表示构造型名称,这个原子映射表示加入或删除另外一个类。第二行表示在两个类之间加入或删除继承关系,第三行表示在类中加入或删除属性,P r o p e r t y N a m e 表示属性名,t y p e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模型 驱动 构架 基于 设计 模式 单元 组建 转换
限制150内