<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA之路

    MDA,UML,XML,Eclipse及Java相關的Blog
    posts - 53, comments - 494, trackbacks - 0, articles - 2
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    一篇關于模型編織的文章及其他

    Posted on 2005-12-11 21:43 wxb_nudt 閱讀(2167) 評論(2)  編輯  收藏 所屬分類: 技術雜談

    一篇關于模型編織的文章及其他

    標題:

    Model Transformation and Weaving in the AMMA Platform

    地址:

    http://www.sciences.univ-nantes.fr/lina/atl/www/papers/CR_2005_GTTSE_transfo_weaving.pdf

    時間:

    2005

    閱讀時間:

    2005.12.10

     

    摘要:

    Model transformation creates a set of target models from a set of source models. This operation is central in current MDE approaches. However, we highlight in this paper some of its limitations. Model weaving is another operation on models, which specifies typed links between model elements. Model weaving can thus be used to specify abstract model transformations assets of links between source and target metamodel types. Therefore, we propose to combine model transformation and model weaving in order to overcome some of current model transformation limitations. This paper presents how we experimented this with ATLAS Transformation Language (ATL) and AMW (ATLAS Model Weaver) on an example.

    模型轉換從一組源模型創建出一組目標模型。這種操作是目前MDE方法的主流。然而,在本文中我們指出了它的一些局限。模型編織是另外一種模型操作的方法,它定義了模型元素之間的有類型的連接。因此模型編織能夠被用于將抽象的模型轉換定義為一組源和目標元模型類型的連接。因此,我們建議將模型轉換和模型編織組合起來去克服一些當前的模型轉換的局限。本文給出了一個在ATLAS模型轉換語言和AMWATLAS模型編織器)上實踐本方法

    的例子。

     

    大意:

    本文分為六個大的部分:

    1 Introduction

    當前的模型驅動工程學(MDD)中,例如微軟的軟件工廠,OMGMDA等,模型轉換都是一個核心的技術。目前已經發展出很多模型轉換的方法,但是模型轉換的標準QVT一直沒有能夠制訂。模型編織是另外一種操作模型的方法,它通過建立模型元素之間的連接來編織模型。模型編織與模型轉換存在一些不同之處。它克服了模型轉換的三個主要局限。

    2 Transforming Relational Tuples into an XML Document

    本節介紹了一個應用場景,在一個圖書館信息系統中,將RDBMS的數據轉換到XML文檔中。其各自的元模型如下:

    image002.gif
    在這個場景中,使用
    ATL語言定義了一個模型轉換程序,如下:

    module RDBMS2XML;

    create Target : XML from Source : RDBMS;

    rule Books {

    from

    db : RDBMS!BookRcd

    to

    xml : XML!Book (

    Title <- db.Title, Author <- db.Author,

    ISBN <- db.ISBN,

    subjects <- RDBMS!SubjectRcd.

    allInstances()->select (e | e.SID = db.SID)

    )

    }

    rule Subjects {

    from

    db : RDBMS!SubjectRcd (RDBMS!BookRCD.

    allInstances()->exists(e | e.SID = db.SID))

    to

    xml : XML!Subject (

    SubjectID <- db.SID,

    Descr <- db.Name

    )

    }

    這個程序定義了如何將RDBMS的模型轉換為XML模型。

     

    3 Limitations of Direct Transformations

    本節詳細說明了上面模型轉換方法的三個缺點:1)方向性,只能從左到右轉換,如果要反向轉換則必須再寫一個模型轉換程序;2)模式重用,對于稍微復雜的轉換,要寫大量雷同的代碼,很多代碼具有相同的模式,但是不能直接重用。3)變更的傳播性,源和目標模型有小的改變則必須改變程序中的多處代碼,很容易出錯。

     

    4 Introducing Model Weaving

    本節以上面的實例作為例子介紹了模型編織的概念。下圖很能說明模型編織的概念:

    image004.gif
    從上圖可以看出,上面的模型編織使用了三種類型的連接,分別是
    EqualsFKNested。其含義顯而易見。

    另外,文中給出了模型編織的元模型。因為模型編織的實例也是一個模型,因此它需要元模型予以規范。所以,文中給出了這個元模型關系圖:

    image006.gif
    文中還討論了
    WMM所應該具有的擴展性等特點,但是沒有給出具體的元模型描述。

    5 Combining Weaving and Transformation

    本節簡要介紹了如何將模型編織和模型轉換組合起來來解決目前的模型轉換中存在的問題。其主要思想是:首先建立一個模型編織的模型,然后利用這個模型來創建一個模型轉換的程序,然后利用模型轉換程序來具體進行模型轉換的執行。

    通過模型編織的方法,克服了以前模型轉換的三個缺點。

    6 Related Work

    介紹一些相關工作,主要是模型轉換的一些方法。

    7 Conclusion

    結論也是老生常談,再把上面的工作和優點都復述一遍,最后還說明了模型編織還可用于更加復雜的場景:在UML ProfileDSL之間作橋接。

     

    感想:

    模型編織

    Model Weaving這個概念我是第一次見到。本文正好是一篇Model Weaving的入門文章,極大的滿足了我的好奇心。Model Weaving的中文譯名還不知道有沒有正式確定,和MDA群里面的人討論了一下,原來大家都翻譯為模型編織,看來我還是誤打誤中了。

    新生的事物總是缺點與優點同樣突出的,模型轉換方法發展好幾年了,但是其最顯著的缺點還是沒有大的進步。本文指出了三個缺點:雙向的模型轉換方法很少而且難以實現;模型轉換程序的代碼難以重用;變更傳播。

    很多研究者希望通過制訂新的模型轉換語言或者增加其語義來解決這些問題。但是本文的作者境界更高一點,他提出的模型編織是從一個更高的層次來解決問題,即提出一個模型轉換程序生成器,來生成已有的模型轉換程序,來降低模型轉換程序的編寫復雜性。所謂的模型編織即用一個二元連接來連接兩個模型元素,并對這些連接制訂類型和約束,最后根據這些連接類型來生成簡單的模型轉換代碼程序塊。這樣一舉解決了上面的三個問題。其思想含義等同于C編譯器將C程序編譯為匯編代碼。

    作者使用的模型轉換語言是ATL,使用的模型編織器是AMW,他們統一集成在一個AMMA平臺中,這個平臺目前是一個開源的Eclipse插件。由于我還缺乏足夠的資料,目前不能確定作者是否就是這個AMMA平臺的開發者。

    模型轉換語言

    模型轉換是MDA的熱點所在,目前模型轉換方法提出了很多,但是具體的模型轉換語言我也只接觸了三種(精力所限啊):

    MTF,模型轉換框架,IBM定義的模型轉換語言,Eclipse插件,規則型的模型轉換語言,用來轉換基于Eclipse的模型插件定義的模型很方便;

    ATL,本文介紹的模型轉換語言,我還沒有具體使用過,從本文的例子程序來看,也是規則型的模型轉換語言。同MTF相比,ATL詳細定義了什么是源模型,怎樣創建目標模型,這樣可執行的程度更強,但是就只能單向執行,并且也相對復雜一些;

    OCLOCL用來定義模型轉換其實是水到渠成的一件事情,但是目前還不確定是否有可以運行的基于OCL的模型轉換語言。ATL中就使用了部分的OCL

    問題解決了么

    當年在高中我學完經典力學時,認為所有問題都解決了,因為它是如此完美,上帝規定了所有的定律并創造了整個世界,然后用手輕輕一撥,世界便沿著宿命的軌跡運行到毀滅為止。后來才知道,有一種思想就叫宿命論。例如,我今晚選擇寫blog而不是去看網絡小說,是因為我的某些腦細胞收到了某些腦電流刺激,而這些都是一些物理定律決定的,因此當世界開始的時候,就注定了我今晚要寫blogHoho!后來才知道有什么概率問題,測不準原理等等上帝擲骰子的動作。

    事實上,所有問題都沒有解決的一天,直到這個問題不再成為一個問題,沒有人再關注它是否解決為止。

    模型編織是否能夠解決模型轉換中存在的問題呢?當然不能,它只是在某個方向上作了很好的探索而已,事實上,它并沒有觸及到模型轉換問題的本質所在。如我所言,模型編織事實上是一種模型轉換程序產生器,無論多么優秀,但是模型轉換程序本身不能解決的問題,它一樣不能解決。充其量它減少了一部分復雜性,多了一些可用性而已。

    模型轉換是為了解決模型之間的自動轉換問題,或者說是為了自動生成軟件模型;軟件模型是為了解決高級語言代碼的自動生成問題;高級語言是為了自動生成匯編語言。。。現在我們可以在模型轉換上面再加一層了,可否就稱之為模型編織層?記不得在哪篇文章中看見過:當某個問題無法解決時,我們就在軟件中再加一層來折衷。我們到底是在寫軟件還是在做千層餅?

    方法多了一種,路多了一條,但是問題依然存在。

    題外話

    我的blog又是兩個多月沒有更新了,這是有原因的(廢話!不算)。前一個月我在努力寫一篇論文,期間又去南京參加了一個會議。后一個月在家陪老婆生娃娃,努力喂奶換尿布做好爸爸,以至于累出胃病。不過成果是喜人的,特貼出小寶寶9天照,以資鼓勵:

    image008.jpg


    評論

    # re: 一篇關于模型編織的文章及其他  回復  更多評論   

    2005-12-11 22:44 by MicroSparrow
    恭喜學兵學長,您的小寶寶真可愛!!!
    上帝擲骰子,你可沒說寶寶是才子還是千金呀。
    也好,先讓大家伙猜一猜吧,我想,看上去蠻文靜的,是千金嗎?!

    學長給我上過課,感覺挺好的。不過到學長的blog上一看,才知道學長的
    文筆也是一流的,就是更新的太慢了。有機會不知能不能點撥點撥在下?

    # re: 一篇關于模型編織的文章及其他  回復  更多評論   

    2012-08-30 09:28 by shiweijun
    請問英文原文您有嗎?方便的話傳給我一份……shiweijun47@163.com
    主站蜘蛛池模板: 一级毛片在线播放免费| 99久久久国产精品免费无卡顿| 久久久久亚洲AV片无码| 我们的2018在线观看免费高清| 亚洲精品又粗又大又爽A片| 久久亚洲高清综合| 成人免费观看一区二区| 日韩毛片一区视频免费| 亚洲精品福利在线观看| 亚洲国产成人久久综合一区77| 最近2019免费中文字幕6| 日韩在线视频线视频免费网站| 久久亚洲AV成人无码| 免费观看国产小粉嫩喷水| 日韩精品内射视频免费观看| 精品国产日韩亚洲一区在线 | 亚洲成av人片天堂网| 毛片a级毛片免费观看品善网| 中文字幕永久免费| 亚洲男同gay片| 久久久久久亚洲Av无码精品专口 | 色欲A∨无码蜜臀AV免费播| 狠狠综合亚洲综合亚洲色| 亚洲天堂一区二区| 亚洲综合精品网站| 真实乱视频国产免费观看| 13一14周岁毛片免费| 在线视频网址免费播放| 国产综合成人亚洲区| 亚洲三级在线免费观看| 亚洲成AV人片在WWW色猫咪| 亚洲av无码国产精品色在线看不卡 | 国产免费无遮挡精品视频| 亚洲人成在线免费观看| 成人自慰女黄网站免费大全| 国产成人va亚洲电影| 亚洲av无码国产综合专区| 亚洲综合久久综合激情久久| 亚洲人成无码网站| 亚洲欧洲中文日韩av乱码| 日本一道高清不卡免费|