《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > MDA模型轉換的同步技術
MDA模型轉換的同步技術
來源:微型機與應用2011年第9期
楊 磊,余金山
(華僑大學 計算機學院,福建 泉州 362011)
摘要: 給出一種源模型和目標模型間的鏈接技術及其實現方法,該方法能很好地實現源模型和目標模型間的雙向可追蹤。既可以對源模型的更新執行正向轉換,還可以實現目標模型向源模型的逆向轉換。
Abstract:
Key words :

摘  要: 給出一種源模型和目標模型間的鏈接技術及其實現方法,該方法能很好地實現源模型和目標模型間的雙向可追蹤。既可以對源模型的更新執行正向轉換,還可以實現目標模型向源模型的逆向轉換。
關鍵詞: 模型驅動;模型轉換;同步;可追蹤性

 模型驅動架構(MDA)是繼CORBA、UML之后由OMG推出的重要的軟件開發方法學[1-3]。MDA對軟件開發、異構平臺的集成、互操作以及對不斷涌現出的軟件新技術和新平臺的自洽性等方面都有著巨大的影響[1-2]。
 MDA的核心問題是模型轉換。其基本方法是:先抽象出與實現技術無關,完整描述業務的平臺無關模型(PIM),并針對不同的實現制定多個映射規則,再將平臺無關模型轉換成與具體實現技術相關的應用模型(PSM)。由于建模過程和用戶業務邏輯固有的變動性,在模型轉換過程中必須保持源模型和目標模型的同步,這對MDA的模型轉換的同步性研究具有重要意義。
 本文提出一種創建中間轉換對象的方法,將模型轉換信息保存在中間對象中,使模型轉換具有正、反向可追溯性,以較好實現源模型和目標模型轉換的同步。并從通用性和模型轉換的同步性的角度對MOF元模型和OCL進行了改進。
1 模型轉換同步性的中間轉換對象技術
 模型轉換過程中,由于建模過程和用戶業務邏輯固有的變動性,一項重要的實際工作是必須實現源模型和目標模型之間的正向和反向的完全同步。通常的做法是為源模型和目標模型中相應元素之間的所有關系建立元素鏈接,并把鏈接信息添加到源模型或目標模型中。這樣做不但破壞了模型的純潔性,而且當源模型和目標模型之間不是一對一時容易引起混亂。
 方法(1)是在源模型中創建一系列標記(tag),這些標記記錄了轉換的信息。圖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 支持模型轉換同步的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 of model transformation contracts In: Octavian Patrascoiu[R]. OCL and model driven engineering UML 2004 workshop. Lisbon, Portuga1, 2004.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲女ⅴideoshd黑人| 亚洲女女做受ⅹxx高潮| 亚洲摸下面视频| 国产精品美女久久久久av超清| 亚洲一级黄色| 久久精品视频va| 亚洲一级特黄| 国产精品地址| 久久久久久香蕉网| 国产午夜亚洲精品羞羞网站| 欧美日本中文| 欧美日韩国产小视频| 欧美日韩精品一区二区天天拍小说| 亚洲经典自拍| 亚洲国产欧美一区二区三区丁香婷| 欧美激情无毛| 99视频一区| 99精品国产在热久久| 欧美视频导航| 欧美日韩在线播| 国产农村妇女毛片精品久久莱园子| 亚洲图中文字幕| 国产精品v欧美精品v日本精品动漫| 欧美淫片网站| 亚洲专区欧美专区| 国产一区白浆| 国产精品高清在线| 国产日韩欧美夫妻视频在线观看| 亚洲日本一区二区| 99精品国产一区二区青青牛奶| 欧美91精品| 欧美国产精品专区| 国产精品久久久久久福利一牛影视| 裸体歌舞表演一区二区| 欧美日韩国产精品一区二区亚洲| 欧美一区二区三区在线| 亚洲片在线观看| 亚洲一卡二卡三卡四卡五卡| 日韩小视频在线观看| 国产日韩久久| 一个人看的www久久| 亚洲视频免费在线| 一本色道久久综合亚洲精品高清| 国产真实久久| 亚洲综合日韩| 亚洲日本久久| 欧美一区二区在线视频| 国产精品乱看| 蜜桃久久精品一区二区| 在线不卡免费欧美| 国产在线观看精品一区二区三区| 亚洲欧美成人一区二区三区| 国产欧美日韩| 亚洲午夜在线| 日韩亚洲欧美综合| 免费在线观看一区二区| 欧美一区久久| 激情成人综合| 麻豆视频一区二区| 久久久国产亚洲精品| 国产精品乱码人人做人人爱| 国产精品国产三级国产普通话蜜臀| 先锋亚洲精品| 国产视频一区在线观看| 国产欧美日韩三级| 韩国女主播一区| 久久亚洲精品一区二区| 亚洲精品在线免费| 亚洲娇小video精品| 久久狠狠一本精品综合网| 尤物yw午夜国产精品视频| 99精品欧美一区二区三区| 久久精品人人| 亚洲国产欧美精品| 亚洲国产一区二区三区a毛片| 欧美高清视频免费观看| 亚洲三级电影全部在线观看高清| 美女精品国产| 在线免费观看成人网| 亚洲丶国产丶欧美一区二区三区| 亚洲精品综合久久中文字幕| 午夜激情综合网| 亚洲国产婷婷香蕉久久久久久| 久久国产成人| 日韩视频永久免费观看| 极品裸体白嫩激情啪啪国产精品| 亚洲高清网站| 欧美精品亚洲一区二区在线播放| 国产日韩精品综合网站| 欧美精品成人91久久久久久久| 在线播放日韩专区| 欧美一区二区国产| 亚洲精品123区| 欧美日韩亚洲网| 国产精品九色蝌蚪自拍| 亚洲一区二区三区高清| 欧美精品一区二区蜜臀亚洲| 亚洲免费一级电影| 午夜精品久久久久久久白皮肤| 国产自产女人91一区在线观看| 欧美猛交免费看| 国产麻豆成人精品| 国产精品视频一二三| 影音先锋中文字幕一区二区| 欧美日韩在线视频观看| 国内成+人亚洲| 免费成人在线视频网站| 亚洲私人影吧| 亚洲视频电影图片偷拍一区| 欧美日韩在线观看一区二区三区| 国内揄拍国内精品少妇国语| 欧美天天影院| 久久人体大胆视频| 狠狠88综合久久久久综合网| 欧美激情a∨在线视频播放| 先锋a资源在线看亚洲| 亚洲精品一线二线三线无人区| 欧美日韩一区不卡| 国产日韩欧美电影在线观看| 欧美日韩亚洲一区| 久久久久久久999| 亚洲精品久久嫩草网站秘色| 美国十次了思思久久精品导航| 在线播放视频一区| 欧美日韩视频免费播放| 国产伦理精品不卡| 久久―日本道色综合久久| 蜜桃精品久久久久久久免费影院| 欧美伊人久久久久久久久影院| 欧美视频不卡中文| 精品91视频| 在线观看日韩一区| 欧美午夜片欧美片在线观看| 欧美成人国产va精品日本一级| 国产精品国产自产拍高清av| 欧美成人免费va影院高清| 久久九九国产精品怡红院| 国产欧美一区二区三区久久人妖| 亚洲国产高清在线观看视频| 亚洲字幕在线观看| 精品99一区二区三区| 欧美日韩三区四区| 激情久久久久久久久久久久久久久久| 国产一区二区三区直播精品电影| 亚洲看片一区| 亚洲欧美国产另类| 亚洲国产专区| 亚洲在线观看免费视频| 亚洲天堂av在线免费| 欧美福利电影网| 国产精品99一区| 国产婷婷97碰碰久久人人蜜臀| 欧美日韩在线一区二区| 99国产精品私拍| 国产精品一区二区男女羞羞无遮挡| 国产精品v欧美精品∨日韩| 曰本成人黄色| 国产精品一区二区三区乱码| 国产精品av久久久久久麻豆网| 久久久av网站| 欧美日韩视频在线观看一区二区三区| 亚洲一区二区三区欧美| 亚洲一区二区黄| 国产伦精品一区二区三| 久久av一区| 欧美日韩蜜桃| 国产在线欧美| 亚洲字幕一区二区| 欧美成人视屏| 亚洲国产日韩欧美在线动漫| 欧美精品亚洲精品| 久久午夜视频| 国内外成人免费激情在线视频| 狠狠色伊人亚洲综合网站色| 国产农村妇女毛片精品久久莱园子| 欧美亚洲在线| 欧美激情中文字幕乱码免费| 欧美日韩国产成人精品| 国产精品美女视频网站| 亚洲国产精品成人va在线观看| 欧美日韩国产在线看| 久久综合一区二区| 国产在线高清精品| 国外成人在线视频| 欧美刺激午夜性久久久久久久| 国产情人综合久久777777| 亚洲欧美激情视频| 国产日韩欧美在线播放| 欧美日韩国产小视频| 亚洲影院色在线观看免费| 亚洲一区二区3| 亚洲欧洲精品一区二区三区| 亚洲一区二区三区激情| 国产精品欧美激情| 欧美日韩黄色大片| 玖玖在线精品| 一区二区三区成人| 久久手机精品视频| 久久久欧美一区二区| 欧美福利小视频| 久久不见久久见免费视频1| 亚洲精品一区中文| 亚洲精品乱码久久久久久久久| 国产欧美日韩在线观看| 欧美日本韩国一区二区三区| 久久先锋资源| 欧美日韩精品在线观看| 亚洲欧美日韩国产| 国内精品伊人久久久久av一坑| 欧美午夜片在线观看| 欧美日产国产成人免费图片| 亚洲人成在线观看| 欧美特黄一区| 99国产精品视频免费观看一公开| 国产精品入口夜色视频大尺度| 欧美麻豆久久久久久中文| 激情国产一区| 亚洲五月六月| 在线一区二区视频| 久久国产精品一区二区三区四区| 亚洲精品人人| 99国产精品久久久久久久成人热| 亚洲风情在线资源站| 亚洲欧美日韩国产成人精品影院| 中文日韩欧美| 久久激情视频免费观看| 国内精品久久久久影院 日本资源| 欧美顶级艳妇交换群宴| 欧美色图五月天| 欧美一区二区三区在线| 亚洲经典在线| 国产精品一卡二| 欧美日韩国产在线一区| 欧美国产日韩精品免费观看| 亚洲乱码精品一二三四区日韩在线| 国产日韩精品视频一区| 亚洲乱码一区二区| 国产综合欧美在线看| 亚洲国产精品视频一区| 蜜桃av噜噜一区二区三区| 亚洲免费观看高清完整版在线观看| 国产亚洲欧美日韩精品| 久久在线视频在线| 国产欧美精品va在线观看| 国产日本欧洲亚洲| 亚洲精品国产精品乱码不99| 免费一区二区三区| 在线日韩中文字幕| 欧美四级在线观看| 欧美精品观看| 欧美日韩免费区域视频在线观看| 欧美女同在线视频| 美女视频黄a大片欧美| 亚洲欧美成aⅴ人在线观看| 亚洲一区图片| 99re热这里只有精品视频| 在线天堂一区av电影| 欧美成年视频| 久久综合影音| 国产精品久久久久久久久久直播| 在线日本高清免费不卡| 亚洲视频在线观看| 免费一区二区三区| 亚洲国产精品成人精品| 亚洲免费婷婷| 亚洲视频一区在线观看| 欧美精品一区二区在线观看| 激情久久中文字幕| 欧美一区在线视频| 亚洲自拍16p| 国产亚洲一区在线| 欧美精品在线视频观看| 99视频精品在线| 国产日韩一区二区三区| 国产亚洲精品成人av久久ww| 欧美成人精品在线播放| 影音先锋中文字幕一区| 欧美日韩亚洲成人| 国产精品一级久久久| 狠色狠色综合久久| 亚洲欧美日韩天堂一区二区| 欧美日韩另类综合| 国产精品第一页第二页第三页| 欧美在线日韩精品| 欧美福利电影网| 国产一区二区三区高清| 国产精品美女久久久久久2018| 一区二区视频在线观看| 一本色道久久综合| 欧美精品一区二区三区四区| 老色批av在线精品| 91久久精品视频| 尤物九九久久国产精品的分类| 欧美成人精品一区二区| 国产精品青草综合久久久久99| 欧美午夜一区二区三区免费大片| 国产日本欧美一区二区三区| 国产精品乱码妇女bbbb| 在线视频日韩| 久久精品99久久香蕉国产色戒| 亚洲午夜未删减在线观看| 国产一区二区日韩精品| 亚洲欧美成人一区二区在线电影| 久久综合网络一区二区| 亚洲欧美影音先锋| 黄色成人在线观看| 亚洲乱码日产精品bd| 亚洲福利国产精品| 99热精品在线| 亚洲日本在线视频观看| 国产精品福利在线观看网址| 在线观看成人av电影| 韩国精品一区二区三区| 欧美性视频网站| 国产精品自拍视频| 亚洲欧美一区二区原创| 欧美日韩国产区一| 国产精品美女主播| 国产精品免费区二区三区观看| 亚洲黄页视频免费观看| 亚洲欧美中文日韩在线| 在线观看欧美激情| 欧美日在线观看| 久久福利资源站| 欧美成人一区二区三区片免费| 夜夜嗨av色一区二区不卡| 欧美日韩国产经典色站一区二区三区| 91久久视频|