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

MDA模型轉(zhuǎn)換的同步技術(shù)*

2011-05-12 02:46:38余金山
關(guān)鍵詞:信息方法模型

楊 磊,余金山

(華僑大學(xué) 計(jì)算機(jī)學(xué)院,福建 泉州 362011)

模型驅(qū)動(dòng)架構(gòu)(MDA)是繼CORBA、UML之后由OMG推出的重要的軟件開發(fā)方法學(xué)[1-3]。MDA對軟件開發(fā)、異構(gòu)平臺(tái)的集成、互操作以及對不斷涌現(xiàn)出的軟件新技術(shù)和新平臺(tái)的自洽性等方面都有著巨大的影響[1-2]。

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

本文提出一種創(chuàng)建中間轉(zhuǎn)換對象的方法,將模型轉(zhuǎn)換信息保存在中間對象中,使模型轉(zhuǎn)換具有正、反向可追溯性,以較好實(shí)現(xiàn)源模型和目標(biāo)模型轉(zhuǎn)換的同步。并從通用性和模型轉(zhuǎn)換的同步性的角度對MOF元模型和OCL進(jìn)行了改進(jìn)。

1 模型轉(zhuǎn)換同步性的中間轉(zhuǎn)換對象技術(shù)

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

方法(1)是在源模型中創(chuàng)建一系列標(biāo)記(tag),這些標(biāo)記記錄了轉(zhuǎn)換的信息。圖1所示的轉(zhuǎn)換必須建立表1所示的兩個(gè)標(biāo)記。

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

表1 模型轉(zhuǎn)換的信息標(biāo)記

這些標(biāo)記是轉(zhuǎn)換信息,并不屬于源模型。把它們加入到源模型中不但破壞了源模型的純潔性,而且當(dāng)一個(gè)PIM要轉(zhuǎn)換成幾個(gè)PSM時(shí),大量的標(biāo)記將給PIM帶來很多額外的負(fù)擔(dān)。

方法(2)把標(biāo)記信息保存在目標(biāo)模型中。NetBeans開發(fā)平臺(tái)就使用這種方法。但該方法的缺點(diǎn)與方法(1)類似,而且在執(zhí)行第一次轉(zhuǎn)換之前,因?yàn)槟繕?biāo)模型還沒有生成,所以只有在執(zhí)行過一次系統(tǒng)的默認(rèn)轉(zhuǎn)換之后,才能在生成的目標(biāo)模型中保存標(biāo)記信息。

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

為了實(shí)現(xiàn)以上方法,需要對MOF進(jìn)行擴(kuò)展,建立一個(gè)雙向圖結(jié)構(gòu)的元模型。如圖2所示,ModelElement是一個(gè)最通用的模型元素;一個(gè) Link引用兩個(gè)ModelElement,分別為源對象和目標(biāo)對象;一個(gè)Step包含一個(gè)或多個(gè)Link,則一個(gè)Step就可以保存一次模型轉(zhuǎn)換的追溯信息。如果考慮到支持一個(gè)鏈?zhǔn)降霓D(zhuǎn)換,那么整個(gè)的轉(zhuǎn)換過程相當(dāng)于有多個(gè)Step,因此,為了支持鏈?zhǔn)睫D(zhuǎn)換,用一個(gè)包含了Step的有序集合的Trace來實(shí)現(xiàn)。

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

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

圖2 轉(zhuǎn)換信息元模型圖

圖3 TransformationTraceClass示意圖

2 支持模型轉(zhuǎn)換同步的OCL擴(kuò)展

在MDA中,用UML結(jié)合OCL已被認(rèn)為是開發(fā)符合MDA規(guī)范的 PIM的最佳方案[1,3]。研究指出:OCL對于模型轉(zhuǎn)換可以發(fā)揮重要的作用[3-4]。但是,如何把OCL應(yīng)用于模型轉(zhuǎn)換的實(shí)際工作卻做得較少。由于模型轉(zhuǎn)換的關(guān)系信息的復(fù)雜性,所以難以用現(xiàn)有OCL來表示。對于用中間轉(zhuǎn)換對象技術(shù)保留模型轉(zhuǎn)換的關(guān)系信息的OCL實(shí)現(xiàn),對OCL進(jìn)行如下的擴(kuò)展:

將圖3看成是TransformationTraceClass的圖語法。TransformationTraceClass是以由Tuple組成的并以Relation作為其組成元素的。作為一個(gè)類,其創(chuàng)建操作必須由創(chuàng)建原語實(shí)現(xiàn),具體格式為:

createElement (TransformationTraceClassName:TransformationTraceClass)

創(chuàng)建原語實(shí)際生成的是對TransformationTraceClass的引用,每個(gè)模型轉(zhuǎn)換中的源模型對應(yīng)生成一個(gè)TransformationTraceClass,它在第一次進(jìn)行模型元素轉(zhuǎn)換時(shí)被創(chuàng)建,且調(diào)用setRelation()操作保存轉(zhuǎn)換信息,調(diào)用getRelation()操作查詢轉(zhuǎn)換信息。下面是 setRelation()和getRe1ation()的語法。

setRelation(newValue,Relation.Tuple.sourceName)

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

getRelation(Relation.Tuple.sourceName)

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

此外,在模型轉(zhuǎn)換中,對任何模型元素的操作都定義其必須查詢相應(yīng)的TransformationTraceClass來確定與被修改元素的相關(guān)轉(zhuǎn)換信息,從而實(shí)現(xiàn)源模型和目標(biāo)模型的同步。

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

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

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

[3]陳婧,趙建華,張康康.處理動(dòng)態(tài)行為描述的MDA模型轉(zhuǎn)換技術(shù)[J].計(jì)算機(jī)應(yīng)用與軟件,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.

猜你喜歡
信息方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
訂閱信息
中華手工(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
捕魚
展會(huì)信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国模沟沟一区二区三区| 欧美日韩国产在线播放| 亚洲欧洲日韩综合色天使| 无码电影在线观看| 无码AV动漫| 日韩无码视频专区| 国产一二视频| 成人一区专区在线观看| 国模粉嫩小泬视频在线观看| 欧美激情视频一区| 高清欧美性猛交XXXX黑人猛交| 91黄视频在线观看| 四虎永久免费地址| 四虎综合网| 国产SUV精品一区二区| 午夜啪啪福利| 色哟哟国产精品一区二区| 日本在线欧美在线| 六月婷婷综合| 91热爆在线| 国产日韩丝袜一二三区| 国产高清国内精品福利| 色视频久久| 欧美色综合久久| 成人午夜精品一级毛片| 国产一区二区人大臿蕉香蕉| 久草视频一区| 97在线公开视频| 亚洲成人在线免费观看| 四虎精品国产AV二区| 激情亚洲天堂| 日韩 欧美 小说 综合网 另类| 四虎影视国产精品| 欧美色图第一页| 国产又粗又猛又爽视频| 国产精品一老牛影视频| 成年人福利视频| 国产亚洲美日韩AV中文字幕无码成人 | 国产日韩欧美成人| 日韩av无码DVD| 黄色在线不卡| 国产第八页| 国产全黄a一级毛片| 曰韩人妻一区二区三区| 国产男人天堂| 国产99视频在线| 欧美一区精品| 国产在线一区视频| 国产女人爽到高潮的免费视频| 亚洲无码在线午夜电影| 国产精品乱偷免费视频| 国产大片黄在线观看| 无码综合天天久久综合网| 一级毛片在线播放| 4虎影视国产在线观看精品| 国产午夜无码片在线观看网站| 极品国产一区二区三区| 亚洲一区二区在线无码| 美女亚洲一区| 女同国产精品一区二区| 色老头综合网| 亚洲无线国产观看| 97se亚洲综合在线| 日韩在线欧美在线| 久久美女精品| 99久久国产自偷自偷免费一区| 成年片色大黄全免费网站久久| 亚洲欧美不卡中文字幕| 国产成人精品优优av| 中文字幕不卡免费高清视频| 中文字幕乱妇无码AV在线| 中文毛片无遮挡播放免费| 国内熟女少妇一线天| 亚洲日韩Av中文字幕无码| 久久午夜夜伦鲁鲁片不卡| 久久精品国产999大香线焦| 国产精品爽爽va在线无码观看| 五月天福利视频| 亚洲精品无码高潮喷水A| 91国内在线观看| 无码福利日韩神码福利片| 亚洲精品动漫在线观看|