999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MDA模型轉換的同步技術*

2011-05-12 02:46:38余金山
網絡安全與數據管理 2011年9期
關鍵詞:信息方法模型

楊 磊,余金山

(華僑大學 計算機學院,福建 泉州 362011)

模型驅動架構(MDA)是繼CORBA、UML之后由OMG推出的重要的軟件開發方法學[1-3]。MDA對軟件開發、異構平臺的集成、互操作以及對不斷涌現出的軟件新技術和新平臺的自洽性等方面都有著巨大的影響[1-2]。

MDA的核心問題是模型轉換。其基本方法是:先抽象出與實現技術無關,完整描述業務的平臺無關模型(PIM),并針對不同的實現制定多個映射規則,再將平臺無關模型轉換成與具體實現技術相關的應用模型(PSM)。由于建模過程和用戶業務邏輯固有的變動性,在模型轉換過程中必須保持源模型和目標模型的同步,這對MDA的模型轉換的同步性研究具有重要意義。

本文提出一種創建中間轉換對象的方法,將模型轉換信息保存在中間對象中,使模型轉換具有正、反向可追溯性,以較好實現源模型和目標模型轉換的同步。并從通用性和模型轉換的同步性的角度對MOF元模型和OCL進行了改進。

1 模型轉換同步性的中間轉換對象技術

模型轉換過程中,由于建模過程和用戶業務邏輯固有的變動性,一項重要的實際工作是必須實現源模型和目標模型之間的正向和反向的完全同步。通常的做法是為源模型和目標模型中相應元素之間的所有關系建立元素鏈接,并把鏈接信息添加到源模型或目標模型中。這樣做不但破壞了模型的純潔性,而且當源模型和目標模型之間不是一對一時容易引起混亂。

方法(1)是在源模型中創建一系列標記(tag),這些標記記錄了轉換的信息。圖1所示的轉換必須建立表1所示的兩個標記。

圖1 用中間對象保存模型轉換信息(①、②為轉換實例,③、④為轉換對象信息)

表1 模型轉換的信息標記

這些標記是轉換信息,并不屬于源模型。把它們加入到源模型中不但破壞了源模型的純潔性,而且當一個PIM要轉換成幾個PSM時,大量的標記將給PIM帶來很多額外的負擔。

方法(2)把標記信息保存在目標模型中。NetBeans開發平臺就使用這種方法。但該方法的缺點與方法(1)類似,而且在執行第一次轉換之前,因為目標模型還沒有生成,所以只有在執行過一次系統的默認轉換之后,才能在生成的目標模型中保存標記信息。

而較好的解決方法是:(1)讓每條被執行的轉換規則創建一個轉換實例,每個轉換實例包含一個或多個轉換對象;(2)在每個轉換對象中存儲一條轉換信息,即源模型元素和目標模型元素的鏈接信息;(3)建立一個中間對象模型,把轉換實例及轉換對象保存在這個模型中。如圖1所示,設要把源模型Customer轉換到SQL模型 C_CUSTOMER,attribute_to_attribute是負責把源模型中的String類型屬性轉換到SQL模型的VARCHAR類型屬性的轉換規則。則當對Customer的description屬性應用規則attribute_to_attribute時,生成轉換實例①,實例①包含一個轉換對象信息③,在信息③中保存轉換信息“Customer的 String類 型 的 description轉 換 成C_CUSTOMER的 VARCHAR(255)類型的 description”。 同理,對Customer的name屬性應用這條轉換規則時,生成轉換實例②,②包含一個轉換對象信息④,而轉換對象信息④中保存了轉換信息 “Customer的String類型的name轉換成C_CUSTOMER的VARCHAR(255)類型的name”。并把轉換實例及轉換對象保存在另外的既不屬于源,也不屬于目標的模型中。這樣不僅能保留完整清晰的轉換信息又不破壞源模型和目標模型的純潔性。

為了實現以上方法,需要對MOF進行擴展,建立一個雙向圖結構的元模型。如圖2所示,ModelElement是一個最通用的模型元素;一個 Link引用兩個ModelElement,分別為源對象和目標對象;一個Step包含一個或多個Link,則一個Step就可以保存一次模型轉換的追溯信息。如果考慮到支持一個鏈式的轉換,那么整個的轉換過程相當于有多個Step,因此,為了支持鏈式轉換,用一個包含了Step的有序集合的Trace來實現。

在MOF元模型層次中增加兩個新的元素TransformationTraceClass和Relation,并定義兩個操作setRelation()和 getRelation(),用于讀寫 Relation的值,如圖3所示。

在源模型第一次發生模型轉換并需要保存相關信息時,調用TransformationTraceClass,并把本次轉換的相關信息用 setRelation()操作寫入到 Relation的一個元組,此后每進行一個模型元素的轉換,就首先到Relation中查找有沒有相同模型轉換的元組。若有,則把目標元素追加到該元組中;若沒有,則在Relation中再創建一個新的元組。即可實現對轉換的完全同步支持,同時可將轉換關系的信息和模型本身分隔開,實現了關注點的分離,保證了PIM和PSM的清晰性和單純性。

圖2 轉換信息元模型圖

圖3 TransformationTraceClass示意圖

2 支持模型轉換同步的OCL擴展

在MDA中,用UML結合OCL已被認為是開發符合MDA規范的 PIM的最佳方案[1,3]。研究指出:OCL對于模型轉換可以發揮重要的作用[3-4]。但是,如何把OCL應用于模型轉換的實際工作卻做得較少。由于模型轉換的關系信息的復雜性,所以難以用現有OCL來表示。對于用中間轉換對象技術保留模型轉換的關系信息的OCL實現,對OCL進行如下的擴展:

將圖3看成是TransformationTraceClass的圖語法。TransformationTraceClass是以由Tuple組成的并以Relation作為其組成元素的。作為一個類,其創建操作必須由創建原語實現,具體格式為:

createElement (TransformationTraceClassName:TransformationTraceClass)

創建原語實際生成的是對TransformationTraceClass的引用,每個模型轉換中的源模型對應生成一個TransformationTraceClass,它在第一次進行模型元素轉換時被創建,且調用setRelation()操作保存轉換信息,調用getRelation()操作查詢轉換信息。下面是 setRelation()和getRe1ation()的語法。

setRelation(newValue,Relation.Tuple.sourceName)

setRelation操作類似普通類中對于屬性的set操作,但該原語的操作對象是Relation中的元組。其含義是:把轉換關系信息newValue寫入到以sourceName為source的元組中。

getRelation(Relation.Tuple.sourceName)

getRelation操作類似普通類中對于屬性的get操作,但其操作對象和返回值均是Relation中的元組。由于元組只是將一組值集合在一起的一種途徑,所以具體使用時元組必須被賦給一個變量。

此外,在模型轉換中,對任何模型元素的操作都定義其必須查詢相應的TransformationTraceClass來確定與被修改元素的相關轉換信息,從而實現源模型和目標模型的同步。

MDA堪稱是一種革命性的新方法。MDA的核心問題是模型轉換。本文給出一種能對模型轉換的向前和向后可追溯性的方法,較好地實現了源模型和目標模型轉換的同步。由于OCL具有形式化且簡潔易懂等眾多顯著特征,因而用它來描述MDA中的模型具有突出的優點。但OCL作為模型轉換語言必須進行一定的擴展[3-4]。本文所做的保存模型同步信息的擴展僅是其中之一。

[1]SENDALL S, KOZACZYNSKI W.Model transformation:The heart and soul of model-driven software development[J].IEEE Software, 2003(9):42-45.

[2]王學斌,王懷民,等.一種模型轉換的編織框架[J].軟件學報,2006,17(6):1423-1435.

[3]陳婧,趙建華,張康康.處理動態行為描述的MDA模型轉換技術[J].計算機應用與軟件,2010,27(4):162-166.

[4]CARIOU E, MARVIE R, SEINTURIER L, et al.OCL for the specification ofmodeltransformation contracts In:Octavian Patrascoiu[R].OCL and model driven engineering UML 2004 workshop.Lisbon, Portuga1, 2004.

猜你喜歡
信息方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产va免费精品观看| 一区二区三区四区在线| 婷婷六月激情综合一区| 美女啪啪无遮挡| 国产精品久久久久久久久久久久| 精品午夜国产福利观看| 国产人成网线在线播放va| 午夜久久影院| 伊人无码视屏| 台湾AV国片精品女同性| 十八禁美女裸体网站| 午夜福利在线观看入口| 午夜无码一区二区三区在线app| 欧美成人影院亚洲综合图| 国产精品免费电影| 97久久免费视频| 亚洲性日韩精品一区二区| 日韩精品一区二区三区swag| 香蕉久久国产精品免| 免费毛片视频| 国产微拍一区二区三区四区| 免费va国产在线观看| 国产第三区| 国产成本人片免费a∨短片| 99久久国产综合精品女同| 福利视频一区| 在线va视频| 亚洲综合精品香蕉久久网| 综合社区亚洲熟妇p| 国产91无码福利在线| 国产偷国产偷在线高清| 色哟哟国产成人精品| 日韩高清中文字幕| 自拍偷拍一区| 中文字幕在线日韩91| 91青青视频| 97se亚洲综合| 国产性生大片免费观看性欧美| 最新国产精品第1页| 亚洲天堂日韩在线| 国产精品自在在线午夜| 精品91视频| 99视频在线免费观看| 69精品在线观看| 日韩高清一区 | 欧美日一级片| 真人高潮娇喘嗯啊在线观看| 日韩一区二区三免费高清| 日本黄色不卡视频| 第九色区aⅴ天堂久久香| 99热最新在线| 亚洲人妖在线| 日韩欧美国产三级| 一级毛片免费不卡在线视频| 中文字幕乱码二三区免费| 久久久久88色偷偷| 婷婷色中文| 欧美丝袜高跟鞋一区二区| 国产毛片不卡| 在线看AV天堂| 国产99精品久久| 四虎永久在线视频| 亚洲中字无码AV电影在线观看| 制服无码网站| 久久一级电影| 国产午夜小视频| 亚洲欧美成人在线视频| 97视频免费在线观看| 亚洲欧美另类日本| 91小视频在线| 国产极品粉嫩小泬免费看| 亚洲天堂成人| 欧美日韩国产在线观看一区二区三区| 国产精品制服| 一级毛片a女人刺激视频免费| 毛片免费高清免费| 亚洲中文字幕日产无码2021| 国产精品视频观看裸模| 成人在线欧美| 欧美国产日韩在线观看| 成人午夜免费观看| 国产自在线拍|