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

基于Atlas語言實現(xiàn)模型轉(zhuǎn)換技術(shù)的研究

2010-05-13 09:17:24川,王普,李亞芬
現(xiàn)代電子技術(shù) 2009年20期

冉 川,王 普,李亞芬

摘 要:OMG提出一種軟件開發(fā)新方法:模型驅(qū)動架構(gòu)MDA。這里在MDA基本思想的基礎(chǔ)上,側(cè)重模型轉(zhuǎn)換技術(shù),分析Atlas轉(zhuǎn)換方法的特征和優(yōu)缺點,并進行改進設(shè)計,增加模型驗證環(huán)節(jié)。最后,通過一個例子說明如何應(yīng)用提出的改進方法,在一定程度上證明它的可行性。

關(guān)鍵詞:MDA;Atlas;模型轉(zhuǎn)換;Web應(yīng)用開發(fā)

中圖分類號:TP311文獻標識碼:A

文章編號:1004-373X(2009)20-126-05

Research of Model Transformation Method Based on Atlas

RAN Chuan,WANG Pu,LI Yafen

(College of Electronic Information & Control Engineering,Beijing University of Technology,Beijing,100124,China)

Abstract:OMG has proposed a kind of new method of software development named Model Driven Architecture (MDA).Based on concepts about model transformation technology,merits and drawbacks of features of the Atlas are analysed,and improving design by adding models validation step.How to use the proposed method through an example,its feasibility and utility in a certain extent are proved.

Keywords:MDA;Atlas;model transformation;Web application development

0 引 言

MDA(Model Driven Architecture)是OMG(Object Management Group)于2001年發(fā)布的軟件開發(fā)過程中的模型組織管理框架。在MDA中,定義了PIM(平臺無關(guān)模型)和PSM(平臺相關(guān)模型)及其轉(zhuǎn)換規(guī)范[1]。其中,模型轉(zhuǎn)換定義了不同模型元素的對應(yīng)關(guān)系,是實現(xiàn)MDA的關(guān)鍵環(huán)節(jié)。

模型是系統(tǒng)的抽象,它比實現(xiàn)系統(tǒng)更容易獲取、理解和計算[2]。人們試圖準確地建立模型之間、模型與系統(tǒng)之間的關(guān)系,使模型在系統(tǒng)開發(fā)過程中起到實質(zhì)性的作用。

1 模型轉(zhuǎn)換流程

在MDA中主要包含三種模型轉(zhuǎn)換,即PIM到PIM的轉(zhuǎn)換,PIM到PSM的轉(zhuǎn)換,PSM到代碼的轉(zhuǎn)換。

如以開發(fā)Web信息發(fā)布系統(tǒng)為例,在MDA框架下模型轉(zhuǎn)換系統(tǒng)首先將按照用戶輸入的需求建立一個系統(tǒng)級的PIM模型,系統(tǒng)級模型包括Web系統(tǒng)的相關(guān)信息(如包含信息發(fā)布、用戶管理等模塊),之后是一系列細化PIM模型的工作,將系統(tǒng)級的PIM模型分化成若干個模塊級的PIM模型,再轉(zhuǎn)化為操作級的PIM模型。最終可以將細化后的模型分為兩類:一類是表示系統(tǒng)靜態(tài)結(jié)構(gòu)的模型,這類模型可以表示為UML的類圖,反應(yīng)Web系統(tǒng)的靜態(tài)特征;一類是描述系統(tǒng)業(yè)務(wù)操作等動態(tài)結(jié)構(gòu)的模型,這一類模型可以表示為UML的用例圖,反映Web系統(tǒng)的動態(tài)特征。

下一步要進行PIM到PSM模型的轉(zhuǎn)換工作,模型轉(zhuǎn)換系統(tǒng)按照對應(yīng)的轉(zhuǎn)換規(guī)則,分別將PIM靜態(tài)結(jié)構(gòu)模型轉(zhuǎn)換為PSM靜態(tài)結(jié)構(gòu)模型,將PIM動態(tài)結(jié)構(gòu)模型轉(zhuǎn)換為PSM動態(tài)結(jié)構(gòu)模型。PSM靜態(tài)結(jié)構(gòu)模型為生成Web系統(tǒng)中數(shù)據(jù)訪問層和持久層以及數(shù)據(jù)庫提供關(guān)鍵字段和屬性值,PSM動態(tài)結(jié)構(gòu)模型為生成Web系統(tǒng)中業(yè)務(wù)邏輯層提供關(guān)鍵字段和屬性值,Web系統(tǒng)中的視圖層的關(guān)鍵字段和屬性值將由這兩類模型共同提供。

在模型轉(zhuǎn)換中,最后將對應(yīng)特定平臺的PSM模型輸入代碼生成器,通過部署和發(fā)布,用戶將得到所需要的Web系統(tǒng)。在這三種模型轉(zhuǎn)換中,PIM到PIM轉(zhuǎn)換目的是是細化用戶需求,將一個大模型分解成若干的小模型;PSM到代碼的轉(zhuǎn)換,主要由代碼生成器完成。這兩種模型間變換比較具體,因此比較容易實現(xiàn),在此將重點集中在PIM到PSM的轉(zhuǎn)換。

2 基于Atlas模型轉(zhuǎn)換設(shè)計

當(dāng)前MDA還屬于一種早期的有待發(fā)展技術(shù),其模型轉(zhuǎn)換方法也有很多,例如:手動轉(zhuǎn)換方法(程序員使用可以訪問和操作模型的API對源模型進行轉(zhuǎn)換,從而得到目標模型的方法)、基于規(guī)則的模型轉(zhuǎn)換[3]、基于模板的代碼生成技術(shù)(如AndroMDA等方法)、基于關(guān)系代數(shù)的模型轉(zhuǎn)換[4](將“模型轉(zhuǎn)換”表達為一個二元關(guān)系或者一組二元關(guān)系)、基于元模型間映射的模型轉(zhuǎn)換[2]、基于模式的模型轉(zhuǎn)換[5,6](使用設(shè)計模式定義轉(zhuǎn)換規(guī)則,從而得到更加符合設(shè)計的目標模型)等。這里所使用的是基于Atlas模型轉(zhuǎn)換框架的一種改進方法,對其進行分析并展開實現(xiàn)研究。

2.1 Atlas模型轉(zhuǎn)換框架與語言

Atlas是屬于開源的項目,單向的混合型(描述性和命令行并存)模型轉(zhuǎn)換語言,使用OCL來描述約束,描述規(guī)則的能力較好,易于應(yīng)用。

Atlas轉(zhuǎn)換框架較為主流[7],如圖1所示。其中源模型符合元模型a,目標模型符合元模型b。元模型a和元模型b都符合惟一的元元模型。模型轉(zhuǎn)換實例,它也是一種模型,它符合模型轉(zhuǎn)換的元模型。模型轉(zhuǎn)換的元模型也符合惟一的元元模型。

圖1 Atlas轉(zhuǎn)換框架

一個完整的Atlas模型轉(zhuǎn)換程序,需要四個文件:元模型a、元模型b、源模型、模型轉(zhuǎn)換實例。通過轉(zhuǎn)換生成的目標是目標模型。

2.2 Atlas模型轉(zhuǎn)換的優(yōu)劣與補充

除了功能相對較強和用戶較廣之外,Atlas語言的語法相對簡單容易理解,使用較方便,對于編程人員來說容易應(yīng)用。此外,Atlas使用者不需要很強的數(shù)學(xué)功底,編程人員上手應(yīng)用相對較容易。

Atlas也存在一些不足。MDA技術(shù)初衷就是盡量使開發(fā)過程自動化,減少開發(fā)人員工作量。目前Atlas在這方面還存在一些問題。由于功能單一,當(dāng)模型復(fù)雜時需編寫繁多轉(zhuǎn)換規(guī)則,模型轉(zhuǎn)換精確性還不高。由于轉(zhuǎn)換過程是單向的,所以沒有數(shù)據(jù)類型驗證功能,模型轉(zhuǎn)后前后數(shù)據(jù)一致性不能保證。

為了增強處理復(fù)雜模型系統(tǒng)的能力,通過下面兩個辦法改進現(xiàn)有轉(zhuǎn)換模塊。

首先,分析系統(tǒng)內(nèi)各種模型,提高系統(tǒng)中模型的轉(zhuǎn)換精度和完整性。針對系統(tǒng)靜態(tài)結(jié)構(gòu)模型,把有共同結(jié)構(gòu)屬性的模型進行提煉,設(shè)計具有普遍性的“抽象父類模型”;針對系統(tǒng)動態(tài)結(jié)構(gòu)模型,對這些操作進行歸納和分類,總結(jié)出“抽象操作模型”,針對這些模型進行更進一步細化或者編寫轉(zhuǎn)換規(guī)則,最后把各種類的抽象模型整理集中在模型轉(zhuǎn)換庫,供轉(zhuǎn)換框架調(diào)用。

其次,為了提高模型建立和轉(zhuǎn)換的一致性,可以在模型轉(zhuǎn)換的前后建立模型轉(zhuǎn)換前置和后置檢驗環(huán)節(jié)。在操作中,在確定轉(zhuǎn)換平臺后,可以針對源模型和目標模型這兩個文件進行操作。前置檢驗主要檢查作為輸入的源模型中指定字段是否符合轉(zhuǎn)換規(guī)則的要求,在轉(zhuǎn)換前進行檢查,避免造成轉(zhuǎn)換失敗或者轉(zhuǎn)換不完全;后置檢驗主要檢查作為輸出的目標模型中指定字段是否符合要求,與其他字段間是否滿足設(shè)計需要,并且對于異常情況予以更正并告知用戶。模型轉(zhuǎn)化模塊如圖2所示。

圖2 模型轉(zhuǎn)換模塊示意圖

3 模型驅(qū)動開發(fā)Web應(yīng)用系統(tǒng)

下面將通過Web應(yīng)用實例具體的分析,說明在Atlas框架下進行模型轉(zhuǎn)換所需的各種模型和轉(zhuǎn)換規(guī)則的分析和設(shè)計思路。

3.1 源模型設(shè)計

源模型來自于用戶需求,用戶可以通過具備可視化開放功能的交互頁面將需求提供給模型轉(zhuǎn)換框架。

在作者研究的模型轉(zhuǎn)換實例中,用戶的需求將以形式化的文檔,存儲為XML文件格式。如圖3所示,在文檔中包含若干業(yè)務(wù)對象的屬性特征和業(yè)務(wù)邏輯描述,在轉(zhuǎn)換框架中,源模型經(jīng)過轉(zhuǎn)換規(guī)則處理最終會生成目標模型。

3.1.1 設(shè)計思路

通過人機交互頁面獲取用戶需求,可以看作是系統(tǒng)按源模型結(jié)構(gòu)對用戶需求逐步細化的過程。通過逐步的模型定義和建立,分層次地將需求的粒度從大變小,同時將它們作為輸入進行模型轉(zhuǎn)換。

圖3 源模型生成流程圖

(1) 包含模塊定義。這里指系統(tǒng)中明確的對象以及對其進行的操作集合。捕獲用戶Web應(yīng)用需求,首先要明確在Web應(yīng)用中都包含哪些對象,因為此后的操作都將和這些對象有關(guān)。如果是信息發(fā)布系統(tǒng),它所包含的對象可能有欄目、文章、用戶、部門等;如果是票務(wù)系統(tǒng)則可能包含劇場座位、演出場次等。一些基本常用的對象可以儲存在Atlas庫文件中,供用戶選擇,用戶也可以在滿足模型規(guī)范的范圍內(nèi)自定義模型。

(2) 模塊功能定義。明確系統(tǒng)包含的對象之后,下一步就是明確與之相關(guān)的操作,使其構(gòu)成一個完整的功能模塊。在這一層,用戶需要對操作進行定義,例如增加,刪除,修改,查詢,或者自定義操作名稱。這一層的信息包含了系統(tǒng)內(nèi)所有用戶可以點擊執(zhí)行的操作集合。

(3) 操作功能定義。在這一層中,將對之前定義操作進行更詳細的描述。經(jīng)過分析,系統(tǒng)中的操作都是由數(shù)據(jù)庫操作添加(Create)、查詢(Query)、更新(Update)、刪除(Delete)這些命令組成的,不同順序的CRUD命令組合形成了不同的操作,因此這一層的工作是用形式化的格式將操作描述出來。當(dāng)然由于參數(shù)和處理對象不同,本層中會允許執(zhí)行內(nèi)容不同CRUD命令存在。

(4) 詳細操作定義。在這一層中將具體定義系統(tǒng)數(shù)據(jù)庫操作的參數(shù)和返回值。例如,若之前定義過兩個增加命令(add_one和add_all),在這一層里需要為這兩個具體的數(shù)據(jù)庫添加(Create)命令進行定義,明確這兩個命令傳遞的參數(shù)和返回值,保證系統(tǒng)對數(shù)據(jù)庫操作準確有效。

(5) 頁面內(nèi)容定義。為系統(tǒng)視圖層的頁面定義具體屬性,包括頁面處理的業(yè)務(wù)類型,包含的對象屬性,提供的操作接口,顯示的風(fēng)格樣式等信息。

3.1.2 源模型結(jié)構(gòu)

依照上述設(shè)計思路,首先設(shè)計源模型對應(yīng)的元模型a。在元模型a中,定義了源模型的組成結(jié)構(gòu),屬性和相互聯(lián)系。如以信息發(fā)布系統(tǒng)的欄目模塊為例,如圖4所示,可以看出源模型中定義了Column對象包含了一個type屬性和Static對象和Action對象,同時明確了它屬于Webpim對象。Static對象和Action對象分別對應(yīng)用戶需求的結(jié)構(gòu)組成和功能操作兩部分,具體需求在其中定義即可。

圖4 元模型a片段

圖5所示,是按元模型a定義規(guī)范得到的源模型。源模型儲存為XML文件。文件中包含了系統(tǒng)內(nèi)全部模塊信息,每個模塊信息又由表示對象的靜態(tài)結(jié)構(gòu)和表示操作的動態(tài)結(jié)構(gòu)組成。這些信息由概括到具體,分層次將用戶需求表示出來。在模型轉(zhuǎn)換中編寫的轉(zhuǎn)換規(guī)則是以元模型a和元模型b的結(jié)構(gòu)進行映射的,所以源模型必須依照元模型a的格式規(guī)范。否則在轉(zhuǎn)換中就會出現(xiàn)所定義的轉(zhuǎn)換條件和輸入值不符合,發(fā)生異常錯誤的情況。

圖5 源模型文檔片段

3.2 目標模型設(shè)計

模型轉(zhuǎn)換框架中,目標模型由源模型經(jīng)轉(zhuǎn)換規(guī)則處理后得到,將以形式化文檔作為代碼生成器的輸入,儲存為XML文件格式。

3.2.1 設(shè)計思路

不同于源模型,目標模型在轉(zhuǎn)換規(guī)則處理后,其內(nèi)容將按用戶的需求或適合目標系統(tǒng)描述的層次結(jié)構(gòu),描述出其中的關(guān)鍵元素信息。目標模型具有如下特點:

(1) 目標模型與目標系統(tǒng)對應(yīng)。目標模型設(shè)計根據(jù)的是目標系統(tǒng),將目標系統(tǒng)中的關(guān)鍵信息元素整理集合成能表示目標系統(tǒng)內(nèi)各層次結(jié)構(gòu)關(guān)系、業(yè)務(wù)邏輯關(guān)系,形成目標系統(tǒng)的元模型b。經(jīng)過轉(zhuǎn)換規(guī)則定義元模型a與元模型b的映射關(guān)系[8],最后將由源模型生成目標模型。

(2) 保證系統(tǒng)順利生成。為了保證不同技術(shù)背景用戶的輸入都能夠生成出Web應(yīng)用,并且保證生成的Web應(yīng)用能夠順利運行。在目標模型中添加默認信息,這些默認信息將通過轉(zhuǎn)換規(guī)則自動添加到目標模型中。

(3) 信息完整性。源模型中缺省的屬性和值將被默認值取代或由系統(tǒng)自動生成,以確保模型完整性。另外,重復(fù)的部分也將被合并,避免出現(xiàn)模型缺失和冗余。

(4) 根據(jù)需要,計算得到模型數(shù)據(jù)。目標模型的一些屬性值在源模型建立時還未產(chǎn)生,需要對源模型進行分析,通過計算和邏輯處理才能得到,這些屬性值將保存在模型結(jié)構(gòu)中指定對應(yīng)的位置。

(5) 平臺相關(guān)性。目標模型是平臺相關(guān)的模型,將作為代碼生成器的輸入生成整個目標系統(tǒng),因此在目標模型中,各種類型的對象除了相應(yīng)的值以外還必須要有相應(yīng)的平臺類型與之對應(yīng)。

3.2.2 目標模型結(jié)構(gòu)

從設(shè)計思路出發(fā),首先設(shè)計目標模型對應(yīng)的元模型b。元模型b的設(shè)計要與目標系統(tǒng)的關(guān)鍵元素相符合。例如,目標系統(tǒng)采用MVC的架構(gòu)設(shè)計,目標模型可以分為視圖(View)、模型(Model)、控制(Control)三部分結(jié)構(gòu)來表示目標系統(tǒng),這樣設(shè)計使目標模型與目標系統(tǒng)層次一致,可以更好地表示對應(yīng)關(guān)鍵信息,如圖6所示。

圖6 元模型b片段

以此類推,如果目標系統(tǒng)采用SSH框架(Struts+Sping+Hibernate),目標模型也可分別對應(yīng)這三個框架進行描述,最后組合成目標模型。

在確定元模型b之后,經(jīng)過轉(zhuǎn)換規(guī)則中定義的與元模型a的映射關(guān)系,就能從源模型得到目標模型。如圖7所示,因為由轉(zhuǎn)換規(guī)則映射得來,生成的目標模型的結(jié)構(gòu)組成嚴格符合元模型b的規(guī)范定義,包含目標系統(tǒng)的結(jié)構(gòu)層次和關(guān)鍵信息。之后,目標模型將作為代碼生成器的輸入,產(chǎn)生最后的目標系統(tǒng)。

圖7 目標模型文檔片段

3.3 轉(zhuǎn)換規(guī)則設(shè)計

模型轉(zhuǎn)換就是讀取源模型,通過一組轉(zhuǎn)換規(guī)則,將源模型轉(zhuǎn)換為目標模型并輸出的過程[9]。其中元模型a代表源模型,元模型b代表目標模型,在設(shè)計轉(zhuǎn)換規(guī)則時首先需要保證能夠?qū)崿F(xiàn)目標系統(tǒng);其次,要盡可能擴展轉(zhuǎn)換規(guī)則內(nèi)容,能夠提高模型轉(zhuǎn)換的粒度要求,以滿足能夠?qū)Ρ硎鞠到y(tǒng)細節(jié)特性的功能進行處理;最后,要保證源模型到目標模型的信息不會丟失或在用戶不知情的情況下被覆蓋。

如圖8所示,源模型到目標模型的轉(zhuǎn)換中,模型結(jié)構(gòu)和模型數(shù)據(jù)都會發(fā)生變化。模型轉(zhuǎn)換規(guī)則就是要為這些變化建立對應(yīng)的映射關(guān)系。

圖8 模型轉(zhuǎn)換規(guī)則說明

模型結(jié)構(gòu)方面,源模型側(cè)重表現(xiàn)用戶需求,目標模型側(cè)重表現(xiàn)所生成系統(tǒng)結(jié)構(gòu)。建立模型的出發(fā)角度的不同,必然將造成模型結(jié)構(gòu)的差異。目標模型中可以從源模型中繼承一部分結(jié)構(gòu),但必然會產(chǎn)生新的結(jié)構(gòu),這些結(jié)構(gòu)中的鍵值信息不能從源模型中直接獲取,但對于目標模型作為代碼生成器輸入又是不能缺少的,因為不能被省略掉。

模型數(shù)據(jù)信息方面,源模型的數(shù)據(jù)直接來自于用戶的需求,數(shù)據(jù)較繁雜,會出現(xiàn)信息冗余的情況,目標模型的數(shù)據(jù)因為要作為代碼生成器的輸入,因此數(shù)據(jù)更精簡,且包含的信息量相對較多。所以在模型轉(zhuǎn)換規(guī)則中,就必須加入對模型數(shù)據(jù)進行計算和邏輯處理的映射關(guān)系,配合存入對應(yīng)的目標模型結(jié)構(gòu)中。

在實驗中,模型轉(zhuǎn)換規(guī)則及語法主要運用Atlas語言和OCL語言,完成復(fù)雜條件下模型轉(zhuǎn)換的規(guī)則設(shè)計。如圖9所示是部分轉(zhuǎn)換規(guī)則映射關(guān)系,定義了元模型a中表示靜態(tài)和動態(tài)結(jié)構(gòu)的屬性、操作與元模型b中表示目標系統(tǒng)特點的各層關(guān)鍵信息的聯(lián)系。

圖9 模型轉(zhuǎn)換規(guī)則映射關(guān)系(部分)

3.4 模型轉(zhuǎn)換補充設(shè)計

用戶需求數(shù)量的增長和細節(jié)功能的增多,模型轉(zhuǎn)換中對應(yīng)的模型數(shù)量也將隨之變大,層次關(guān)聯(lián)也將變得更復(fù)雜。為了完成復(fù)雜業(yè)務(wù)邏輯,一方面要允許包含層次更多、組合更靈活的源模型反映用戶需求;另一方面,要建立結(jié)構(gòu)更復(fù)雜、粒度更小、更精確的目標模型來表示系統(tǒng)的復(fù)雜行和完整性。因此,模型轉(zhuǎn)換環(huán)節(jié)中,必須對模型自身進行更高的限制和控制。

模型轉(zhuǎn)換可以分為規(guī)范、轉(zhuǎn)換、約束、調(diào)整這四個步驟[10],為了減輕轉(zhuǎn)換規(guī)則設(shè)計的負擔(dān),在轉(zhuǎn)換前后靈活增加先驗后驗程序來對模型中重要的部分或轉(zhuǎn)換規(guī)則中處理易于造成冗余的部分進行檢驗。如果在轉(zhuǎn)換前需要對各模型的名稱和包名進行檢驗,確保轉(zhuǎn)換不會造成混淆,在轉(zhuǎn)換后需要對重要字段的類型進行檢驗不會出現(xiàn)數(shù)據(jù)類型不匹配等問題。

需要說明的是,這些模型檢驗環(huán)節(jié)也可以在模型轉(zhuǎn)換規(guī)則中定義。為了使轉(zhuǎn)換層次更加明確、規(guī)則設(shè)計更清晰、便于維護,所以采用獨立于轉(zhuǎn)換規(guī)則的先驗和后驗環(huán)節(jié)的設(shè)計。此外,為了保證模型轉(zhuǎn)換的平臺無關(guān)性,檢驗環(huán)節(jié)可以通過Atlas語言和OCL語言定義實現(xiàn)。

4 結(jié) 語

在此首先對MDA技術(shù)的發(fā)展進行介紹。隨后,介紹了MDA技術(shù)中一種模型轉(zhuǎn)換框架即Atlas框架,簡要分析Atlas模型轉(zhuǎn)換語言的優(yōu)勢和不足。最后,以模型驅(qū)動角度對一個Web應(yīng)用進行分析,闡釋了模型轉(zhuǎn)換中源模型、目標模型、轉(zhuǎn)換規(guī)則的設(shè)計思路,并完成了設(shè)計。下一步工作,將重點集中在模型精度和準確度提升方面,使模型轉(zhuǎn)換滿足更細致具體的用戶需求。

參考文獻

[1]Miller J,Mukerji J.MDA Guide Version 1.0.1[ EB/ OL ].htt p://www.omg.org/docs/omg/03 - 06 - 01.pdf,2003 - 06 -12.

[2]David S Frankel.應(yīng)用MDA[M].鮑志云,譯.北京:人民郵電出版社,2003.

[3]張征,何克清,劉進.一種基于規(guī)則的模型轉(zhuǎn)換方法[J].計算機應(yīng)用研究,2005(10):16-19.

[4]Akehurst D H,Kent S.A Relational Approach to Defining Transformations in a Metamodel[A].The Unified Modeling Language 5th Int′l Conf.[C].2002.

[5]Sheena R Judson,Robert B France,Doris L Carver.Speci-fying Model Transformations at the Metamodel Level[J].Proc of the Workshop in Software Model Engineering,2003.

[6]方海棠,何克清,卓識,等.一個基于模式和動作語義的MDA實現(xiàn)方法[J].計算機工程,2004,30(4):67-69.

[7]Frankel S.Model Driven Architecture:Applying MDA to Enterprise Computing[M].Indianapol:John Witey and Sons,2003.

[8]Jean Bezivin,Hammoudi S,Lopes D,et al.Applying MDA Approach for Web Service Platform[A].IEEE International Enterprise Distributed Object Computing Conference[C].2004:58-70.

[9]Sendall S,Kozaczynski W.Model Transformation:The Heart and Soul of Model-Driven Software Development[J].IEEE Sofeware,2003,20(5):2-8.

[10]Stuard Kent.Model Driven Engineering[J].IFM,2002:286-298.

主站蜘蛛池模板: 伊大人香蕉久久网欧美| 九色在线观看视频| 18禁高潮出水呻吟娇喘蜜芽| 国产成人av大片在线播放| 久久免费看片| 国产欧美精品午夜在线播放| 国产va免费精品| 亚洲欧洲日韩久久狠狠爱| 亚洲码一区二区三区| 人妻一本久道久久综合久久鬼色| 人妻中文字幕无码久久一区| 亚洲综合色吧| 色久综合在线| 色综合久久88色综合天天提莫| 日本人妻丰满熟妇区| 久久国产精品波多野结衣| 欧美亚洲日韩中文| 97成人在线视频| 996免费视频国产在线播放| 亚洲AV永久无码精品古装片| 亚洲最新地址| 国产草草影院18成年视频| 日韩欧美91| a级毛片免费看| 九九香蕉视频| 亚洲视频在线观看免费视频| 欧美午夜久久| 久久精品无码国产一区二区三区| 国产午夜福利亚洲第一| 97超爽成人免费视频在线播放| 国产成人91精品免费网址在线| 啊嗯不日本网站| 亚洲精品国偷自产在线91正片| 亚洲 日韩 激情 无码 中出| 最新日韩AV网址在线观看| 国产精品内射视频| 视频一区亚洲| 婷婷伊人五月| 亚洲综合在线最大成人| 国产91色| 亚洲性影院| 亚洲日韩精品欧美中文字幕| 一本色道久久88亚洲综合| 国产精品手机在线观看你懂的| 国产精品香蕉在线观看不卡| 久久夜色精品| 国产欧美视频在线| 99久久亚洲综合精品TS| 1769国产精品视频免费观看| 久久综合成人| 欧美另类精品一区二区三区| 99视频只有精品| 99精品这里只有精品高清视频| 国产玖玖视频| 2020国产免费久久精品99| 玖玖精品在线| 无码视频国产精品一区二区| 亚洲熟女偷拍| 亚洲制服丝袜第一页| www中文字幕在线观看| 欧美三级日韩三级| 免费无码AV片在线观看国产| 高清久久精品亚洲日韩Av| 欧美精品高清| 国产精品深爱在线| 久久青草精品一区二区三区| 亚洲最大看欧美片网站地址| 午夜丁香婷婷| 一本大道AV人久久综合| 曰韩免费无码AV一区二区| 国产毛片高清一级国语 | 91成人精品视频| 思思99思思久久最新精品| 亚洲中文字幕在线精品一区| 天堂在线亚洲| 99热这里都是国产精品| 国产chinese男男gay视频网| 亚洲美女一区二区三区| 久久久久亚洲精品无码网站| 四虎国产在线观看| 中文字幕第4页| 欧美不卡在线视频|