亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ATLAS轉(zhuǎn)換語(yǔ)言的模型轉(zhuǎn)換初探

        2010-10-16 03:55:40李慧陳月娟張京軍
        關(guān)鍵詞:調(diào)用定義規(guī)則

        魏 菲,李慧,陳月娟,張京軍

        (1.河北工程大學(xué) 信息與電氣工程學(xué)院,河北 邯鄲056038;2.邯鄲學(xué)院 計(jì)算機(jī)系,河北 邯鄲 056005)

        1 模型驅(qū)動(dòng)架構(gòu)簡(jiǎn)介

        MDA是近年來(lái)軟件工程中研究和實(shí)踐的熱點(diǎn),模型在軟件開(kāi)發(fā)過(guò)程中占有重要的地位。MDA開(kāi)發(fā)過(guò)程的核心思想是:對(duì)系統(tǒng)進(jìn)行需求分析和設(shè)計(jì),建立反映系統(tǒng)核心業(yè)務(wù)思想的平臺(tái)無(wú)關(guān)模型PIM(Platform Independent Model),然后PIM經(jīng)過(guò)MDA工具的轉(zhuǎn)換生成基于特定平臺(tái)的平臺(tái)相關(guān)模型PSM(Platform Specialize Model),PSM再經(jīng)過(guò)MDA工具的轉(zhuǎn)換生成源代碼,最后進(jìn)入代碼測(cè)試和維護(hù),如圖1所示。

        1.1 模型驅(qū)動(dòng)架構(gòu)的主要模型

        1)平臺(tái)無(wú)關(guān)模型PIM:平臺(tái)無(wú)關(guān)模型PIM是反映系統(tǒng)的主要業(yè)務(wù)的模型,是對(duì)業(yè)務(wù)需求的一種純理論的反映,根據(jù)準(zhǔn)確的需求分析得到的結(jié)果來(lái)進(jìn)行建模的,這個(gè)模型設(shè)計(jì)好后,可以供其它系統(tǒng)重復(fù)使用。

        2)平臺(tái)相關(guān)模型PSM:平臺(tái)相關(guān)模型PSM是將PIM通過(guò)模型規(guī)則轉(zhuǎn)換成與特定技術(shù)和平臺(tái)相關(guān)的模型,比如基于.NET平臺(tái)、Spring平臺(tái)等。PIM可以轉(zhuǎn)換成一個(gè)或多個(gè)PSM。

        1.2 模型驅(qū)動(dòng)架構(gòu)的核心技術(shù)[2]

        建模和模型映射技術(shù)是MDA的核心技術(shù),UML(Unified Modeling Language),MOF(Meta Object Facility)及 CWM(Common Warehouse Metamodel)是MDA主要使用的三項(xiàng)建模標(biāo)準(zhǔn),作為PIM及PSM的建?;A(chǔ)。

        UML—統(tǒng)一建模語(yǔ)言:UML是一種元模型,UML模型的表達(dá)能力很強(qiáng),會(huì)避免建模過(guò)程中不必要的信息丟失。

        MOF—元對(duì)象設(shè)施:MOF用來(lái)定義面向?qū)ο笤P偷幕驹?、語(yǔ)法和結(jié)構(gòu)[4]。它是一種面向?qū)ο蟮脑P?為規(guī)約面向?qū)ο笤P投x了一種公共的抽象語(yǔ)言。

        班主任教育失誤后,要根據(jù)實(shí)際情況,有針對(duì)性地找學(xué)生談心,向?qū)W生解釋清楚嚴(yán)厲批評(píng)其是因?yàn)槔蠋熋鎸?duì)的不是一位學(xué)生,而是全班幾十位學(xué)生,老師想通過(guò)這件事使全班學(xué)生都受到教育,也許批評(píng)重了一些,希望其能諒解。通過(guò)講道理,循循善誘,動(dòng)之以情、曉之以理,幫助學(xué)生消除心理障礙,提高思想認(rèn)識(shí),理解班主任的工作,愉快地接受教育,盡可能減少或消除內(nèi)心的不滿。

        CW M—公共倉(cāng)庫(kù)元模型:CWM是一組元模型,目的是為了在數(shù)據(jù)倉(cāng)庫(kù)工具、數(shù)據(jù)倉(cāng)庫(kù)平臺(tái)和數(shù)據(jù)倉(cāng)庫(kù)存儲(chǔ)之間建立一個(gè)商務(wù)智能元數(shù)據(jù)的交換機(jī)制[5]。它覆蓋了數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用的整個(gè)生命周期。

        2 ATLAS轉(zhuǎn)換語(yǔ)言

        ATL著重于模型與模型之間的轉(zhuǎn)換,其語(yǔ)法結(jié)構(gòu)是基于OCL 2.0定義的,適用于表達(dá)MDA框架中的模型轉(zhuǎn)換。ATL主要分為三種類(lèi)型:ATL模塊,ATL查詢,ATL庫(kù)。

        2.1 ATL模塊

        ATL模塊符合模型到模型的轉(zhuǎn)換,通過(guò)這種ATL單元能夠制定從源模型元素產(chǎn)生目標(biāo)模型元素的方法。ATL模塊的源模型和目標(biāo)模型必須被各自的元模型“typed”。下面介紹下ATL模型的結(jié)構(gòu)。

        1)Header section:頭部分定義了符合源模型和目標(biāo)模型轉(zhuǎn)換的模塊名字和變量名字,它也定義了模塊的執(zhí)行模型。有關(guān)頭部分的語(yǔ)法定義如下:

        module module_name;

        create output_models[from|refines] input_models。

        2)Import section:輸入部分可以做選擇性的輸入,它可以聲明必須輸入到哪個(gè)ATL庫(kù)中。ATL庫(kù)聲明式的實(shí)現(xiàn)如下:

        uses extensionless_library_file_name。

        3)Helpers:ATL的helpers可以視為java里的方法。helpers盡可能定義分解的ATL代碼。一個(gè)ATL helpers用下面的元素定義:一個(gè)名字,一個(gè)文本類(lèi)型,一個(gè)返回值類(lèi)型,一個(gè)ATL helpers代碼的表達(dá)式和一個(gè)可選的參數(shù)設(shè)置。例如,下面是一個(gè)返回兩個(gè)整數(shù)最大值的helper定義:

        helper context Integer def:max(x:Integer):Integer=...;

        helpers也可以定義一個(gè)不接受任何參數(shù)的helper。下面是對(duì)一個(gè)乘以2的整數(shù)值的helper定義:

        helper context Integer def:double():Integer=self*2;

        將以上二種定義混合的語(yǔ)法結(jié)構(gòu)是:

        helper def:max(x1:Integer,x2:Integer):Integer=...。

        4)Rules:在ATL中存在二種不同類(lèi)型的規(guī)則:匹配規(guī)則和調(diào)用規(guī)則,這二種規(guī)則符合通過(guò)ATL提供的二種不同的編程模型:宣稱(chēng)性編程、命令式編程。

        在ATL匹配規(guī)則中,ATL轉(zhuǎn)換的源模型元素不能被匹配,詳細(xì)設(shè)計(jì)源模型的匹配規(guī)則就是為了符合這種限制。另外,ATL匹配規(guī)則不能生成ATL原始類(lèi)型的值。調(diào)用規(guī)則可以被看作helpers的一個(gè)特定類(lèi)型:它們必須被明確地調(diào)用執(zhí)行,而且它們可以接受參數(shù)。然而,相對(duì)于helpers,隨著匹配規(guī)則,調(diào)用規(guī)則可以生成目標(biāo)模型元素。無(wú)論是從匹配規(guī)則或是其它的調(diào)用規(guī)則,一個(gè)調(diào)用規(guī)則必須在一個(gè)命令代碼部分中被調(diào)用。

        2.2 ATL查詢

        ATL查詢用于一個(gè)模型到原始類(lèi)型值的轉(zhuǎn)換,它可以看作從一系列源模型計(jì)算原始值的操作。普遍使用的ATL查詢是從一系列源模型中產(chǎn)生一個(gè)文本輸出。不過(guò),ATL查詢不限于字符串值的計(jì)算,而且也可以返回?cái)?shù)字值或是布爾值。下面分別介紹下ATL查詢的結(jié)構(gòu)和執(zhí)行語(yǔ)義。

        ATL查詢結(jié)構(gòu):完成一個(gè)可選的輸入部分后,ATL查詢必須定義一個(gè)查詢實(shí)例。關(guān)鍵字查詢介紹了一個(gè)查詢實(shí)例,查詢實(shí)例指定了必須是由一個(gè)ATL表達(dá)式計(jì)算得到的結(jié)果。表達(dá)式如下:

        query query_name=exp。

        查詢執(zhí)行語(yǔ)義:作為ATL模塊,ATL查詢的執(zhí)行是在幾個(gè)連續(xù)的階段中實(shí)施的。第一階段是初始化階段,它對(duì)應(yīng)著ATL模塊的初始階段,并認(rèn)為是在ATL模塊文本中定義的初始化屬性。第二個(gè)階段是計(jì)算階段,通過(guò)執(zhí)行ATL查詢中查詢?cè)氐男Q(chēng)代碼去計(jì)算查詢返回值。需注意的是,在查詢文件中定義的helpers可以在初始化和計(jì)算階段中被調(diào)用。

        2.3 ATL庫(kù)

        最后的ATL單元類(lèi)型是ATL庫(kù),開(kāi)發(fā)一個(gè)ATL庫(kù)可以定義一系列的ATL helpers,這些helpers可以被不同的ATL單元(包括模塊、查詢、庫(kù))調(diào)用。一個(gè)ATL庫(kù)可以包括一個(gè)可選的輸入部分,除此之外,ATL庫(kù)定義了一些ATL helpers,這些helpers在導(dǎo)入庫(kù)的ATL單元中可使用。相比模塊和查詢,一個(gè)ATL庫(kù)不能被單獨(dú)執(zhí)行。這說(shuō)明,庫(kù)在執(zhí)行時(shí)與其它初始化步聚不相關(guān)。由于缺少初始化的步聚,屬性helpers不能在ATL庫(kù)中定義。

        3 模型轉(zhuǎn)換

        目前主流的Atlas轉(zhuǎn)換框架[5]由ATLAS研究組、LINA&INRIA和法國(guó)Nantes大學(xué)共同研究得出,如圖2所示??蚣苤械脑茨P头显P蚢,它只能讀不能修改;目標(biāo)模型符合元模型b,它只能寫(xiě)。一個(gè)完整的Atlas模型轉(zhuǎn)換程序需要四個(gè)文件:元模型a、元模型b、源模型、模型轉(zhuǎn)換實(shí)例。源模型通過(guò)轉(zhuǎn)換生成的目標(biāo)是目標(biāo)模型。

        轉(zhuǎn)換框架并沒(méi)有詳細(xì)的說(shuō)明模型轉(zhuǎn)換方法,文獻(xiàn)[6] 中的例子也只是把簡(jiǎn)單的類(lèi)模型轉(zhuǎn)換為關(guān)系模型,并未給出轉(zhuǎn)換的詳細(xì)過(guò)程,類(lèi)的元模型及關(guān)系元模型如圖3、圖4所示。目前在MDA的模型轉(zhuǎn)換這一階段,只是處于模型轉(zhuǎn)換的理論性研究,模型轉(zhuǎn)換技術(shù)尚未成熟。

        本文針對(duì)文獻(xiàn)[6] 及目前國(guó)內(nèi)外的研究現(xiàn)狀對(duì)模型轉(zhuǎn)換進(jìn)行了改進(jìn),提出一個(gè)利用ATLAS轉(zhuǎn)換語(yǔ)言接收模型轉(zhuǎn)換信號(hào)進(jìn)行轉(zhuǎn)換的思想框架。

        當(dāng)PIM模型向PSM模型轉(zhuǎn)換時(shí),PIM模型發(fā)出一個(gè)要求模型轉(zhuǎn)換的信號(hào),ATL接收到新信號(hào)時(shí),就會(huì)判斷此信號(hào)是否為模型轉(zhuǎn)換的信號(hào),如果是模型轉(zhuǎn)換信號(hào),則接受信號(hào),并利用ATL執(zhí)行此信號(hào)的任務(wù),進(jìn)行PIM模型到PSM模型轉(zhuǎn)換,當(dāng)完成任務(wù)后回到接收新信號(hào)的初始位置繼續(xù)等待新的信號(hào)。如果PIM模型發(fā)出的信號(hào)不是PIM要求模型轉(zhuǎn)換的信號(hào),則進(jìn)行判斷該信號(hào)是否為可行的信號(hào),如果是可行信號(hào),則直接返回入口端等待新的模型轉(zhuǎn)換信號(hào);如果不是可行信號(hào),則向數(shù)據(jù)庫(kù)報(bào)告此信號(hào)為不可行信號(hào),數(shù)據(jù)庫(kù)內(nèi)有不可行信號(hào)日志記錄,將不可行信號(hào)寫(xiě)入日志是為方便再次接收到類(lèi)似信號(hào)時(shí)可在入口端直接屏蔽以免浪費(fèi)循環(huán)時(shí)間,然后返回入口處等待接收新的信號(hào)任務(wù),按此順序循環(huán)下去,如圖5所示。此循環(huán)過(guò)程的思想也可以應(yīng)用在PIM到PIM的轉(zhuǎn)換、PSM到PSM的轉(zhuǎn)換及PSM到PIM的轉(zhuǎn)換中。

        4 結(jié)語(yǔ)

        理想的MDA模型轉(zhuǎn)換是利用模型轉(zhuǎn)換工具自動(dòng)將 PIM轉(zhuǎn)換成相應(yīng)的 PSM,但是目前支持MDA模型轉(zhuǎn)換的工具無(wú)法做到自動(dòng)轉(zhuǎn)換。本文利用ATLAS轉(zhuǎn)換語(yǔ)言,在PIM向PSM轉(zhuǎn)換時(shí)判斷接收的信號(hào)是否為轉(zhuǎn)換信號(hào),以便做出能否進(jìn)行模型轉(zhuǎn)換的決定。研究提出了一個(gè)模型轉(zhuǎn)換的思想框架,為今后的模型開(kāi)發(fā)提供借鑒與參考。

        [1] OMG/OR MSC.Model driven architecture.[EB/OL] .[2001-07-0] .http://www.omg.org.

        [2] 董建武.MDA:新一代軟件包互操作體系結(jié)構(gòu)[J] .計(jì)算機(jī)工程,2003,29(2):3-4..

        [3] 趙珂,韓業(yè)紅.MDA模型轉(zhuǎn)換的研究[J] .中國(guó)科技信息,2009(4):138-139.

        [4] JOUAULT F,KURTEV I.Transforming models with ATL[C] .Berlin:Proc.of the Salellite Events on the 8th Int'l conf.on Model Driven Engineering Languages and Systems,2006(3):128-138.

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

        [6] JOUAU F,ALLILAIRE F,BEZIVIN J,et al.ATL:Amodeltransformationtool[J] .Science of Computer Programming,2008(4):31-39.

        猜你喜歡
        調(diào)用定義規(guī)則
        撐竿跳規(guī)則的制定
        數(shù)獨(dú)的規(guī)則和演變
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        讓規(guī)則不規(guī)則
        Coco薇(2017年11期)2018-01-03 20:59:57
        TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        修辭學(xué)的重大定義
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        亚州少妇无套内射激情视频 | 永久免费a∨片在线观看| 无码骚夜夜精品| 中文字幕无码日韩欧毛| 久久精品国产福利亚洲av| 精品人妻av一区二区三区 | 国产精品国产三级国av在线观看| 国产av在线观看一区二区三区 | 久草视频福利| 国产青青草自拍视频在线播放| 国产一区亚洲二区三区极品 | 亚洲在战AV极品无码| 二区三区日本高清视频| 内射欧美老妇wbb| 麻豆国产成人精品午夜视频| 视频一区中文字幕亚洲| 手机在线免费av资源网| 国产a在亚洲线播放| 人妻丰满熟妇av无码处处不卡| 无码熟妇人妻AV不卡| 中国男女黄色完整视频| 欧美激情一区二区三区| 国语淫秽一区二区三区四区| 亚洲av无码偷拍在线观看| 精品亚洲成a人在线观看青青| 久久99精品久久久久九色 | 疯狂撞击丝袜人妻| 色www亚洲| 日本午夜理论一区二区在线观看| 国内揄拍国内精品少妇| 91精品福利观看| 手机在线看片在线日韩av| 免费观看a级毛片| 精品性高朝久久久久久久| 日日骚一区二区三区中文字幕| av在线观看免费天堂| 品色永久免费| 国产免费无码9191精品| 亚洲国产av一区二区三区天堂| 亚洲h在线播放在线观看h| 精品无吗国产一区二区三区av|