• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MDA的PIM到PSM轉(zhuǎn)換方法的研究?

      2017-09-12 08:49:45董衛(wèi)劉曉燕
      計算機與數(shù)字工程 2017年8期
      關(guān)鍵詞:倉庫建模信息

      董衛(wèi)劉曉燕

      基于MDA的PIM到PSM轉(zhuǎn)換方法的研究?

      董衛(wèi)1劉曉燕2

      (昆明理工大學(xué)信息工程與自動化學(xué)院昆明650500)

      MDA(Model Driven Architecture)的一個重要思想是將模型作為軟件開發(fā)的基本單元,解決了軟件開發(fā)的效率低、可移植性差等問題,進(jìn)一步提高軟件開發(fā)的抽象層次。為此,MDA劃分了三種抽象級的模型,建立高抽象級的模型,向低抽象級模型和代碼的轉(zhuǎn)換來構(gòu)造可運行的應(yīng)用程序。因此,提出基于MDA的PIM模型到PSM模型轉(zhuǎn)換方法的研究。并根據(jù)轉(zhuǎn)換方法定義了向EJB平臺的轉(zhuǎn)換規(guī)則,其使用OCL標(biāo)準(zhǔn)描述,具有良好的復(fù)用性。最后通過一個實例驗證該方法的可行性,實現(xiàn)從平臺無關(guān)模型到平臺相關(guān)層EJB模型的轉(zhuǎn)換。

      MDA;模型轉(zhuǎn)換;建模;平臺無關(guān)模型;平臺相關(guān)模型

      Class NumberTP311.5

      1引言

      模型驅(qū)動體系結(jié)構(gòu)(ModelDriven Architecture,MDA)[1]是國際標(biāo)準(zhǔn)化組織OMG于2001年提出的一種基于模型的軟件開發(fā)框架性標(biāo)準(zhǔn)。與傳統(tǒng)的軟件開發(fā)方法相比,MDA致力于將軟件開發(fā)的過程從以代碼為中心的地位提高到以模型為中心的地位,使模型不僅僅被作為設(shè)計文檔和規(guī)格說明來使用,更能成為一種能夠自動轉(zhuǎn)換為最終可運行系統(tǒng)的重要的軟件制品。

      模型轉(zhuǎn)換是模型驅(qū)動架構(gòu)的核心技術(shù),用來解決模型到模型以及模型到代碼間的映射問題[2],并將模型映射為不同技術(shù)平臺上的實現(xiàn)。本文以倉庫管理系統(tǒng)的軟件開發(fā)為應(yīng)用背景,圍繞模型轉(zhuǎn)換應(yīng)用于軟件開發(fā)尚待進(jìn)一步完善的問題展開研究,并實現(xiàn)了PIM模型到EJB PSM模型的轉(zhuǎn)換。

      2 MDA相關(guān)理論

      2.1模型驅(qū)動體系架構(gòu)

      MDA是由對象管理組織(Object Management Group,OMG)于2001年提出來。MDA將軟件系統(tǒng)的模型分為:平臺無關(guān)模型(Platform IndependentModel,PIM)和平臺相關(guān)模型(Platform Specific Model,PSM),并且它們之間通過相應(yīng)的轉(zhuǎn)換規(guī)則聯(lián)系起來。其中,PIM是MDA框架開發(fā)的基礎(chǔ),對系統(tǒng)結(jié)構(gòu)和功能進(jìn)行抽象的規(guī)約[3],其具有高抽象層次且不包括任何與實現(xiàn)技術(shù)相關(guān)的信息,PSM主要是為某種特定的相關(guān)平臺量身定做的[4],它基于某個特性的實現(xiàn)技術(shù),如J2EE平臺和。NET平臺等。MDA的開發(fā)過程可簡單概括為:先使用建模語言(如UML)構(gòu)建PIM,然后按照轉(zhuǎn)換規(guī)則將PIM轉(zhuǎn)換成特定平臺相關(guān)的PSM;最后通過建立一些針對于具體實現(xiàn)語言的映射,將PSM自動生成代碼,從而實現(xiàn)最終系統(tǒng)。MDA的一般開發(fā)過程如圖1所示。

      圖1 MDA的開發(fā)過程

      2.2模型轉(zhuǎn)換

      模型轉(zhuǎn)換的本質(zhì)是讀取源模型(Source Mod?el),按照轉(zhuǎn)換規(guī)則將其轉(zhuǎn)換為目標(biāo)模型(Target Model)的過程[5]。模型轉(zhuǎn)換方法的共同特征是:模型轉(zhuǎn)換過程可由源模型、轉(zhuǎn)換規(guī)則庫、目標(biāo)模型和轉(zhuǎn)換流程控制器四個部分組成,如圖2所示。源模型即模型轉(zhuǎn)換過程的輸入其作為將要被轉(zhuǎn)換的模型;目標(biāo)模型即模型轉(zhuǎn)換過程的輸出其作為轉(zhuǎn)換后生成的模型;轉(zhuǎn)換規(guī)則庫存則放著一組轉(zhuǎn)換規(guī)則的有序集合;轉(zhuǎn)換流程控制器主要用于控制整個轉(zhuǎn)換過程運行的調(diào)度器。

      圖2 模型轉(zhuǎn)換方法

      2.3轉(zhuǎn)換規(guī)則的類別

      轉(zhuǎn)換規(guī)則包括兩部分,一部分是用于訪問源模型中的模型元素,另一部分用于生成目標(biāo)模型中的模型元素。當(dāng)前主要有以下四種模型轉(zhuǎn)換規(guī)則[6]:

      1)變量型轉(zhuǎn)換規(guī)則:要轉(zhuǎn)換的模型元素,用那些能夠直接訪問模型元素的語言的變量來保存,然后通過變換規(guī)則將目標(biāo)模型元素存入相對應(yīng)的變量。

      2)模式型轉(zhuǎn)換規(guī)則:使用某些已有的模式來匹配源模型中的部分模型元素,然后生成相應(yīng)的目標(biāo)模式,然后在目標(biāo)模型中存入部分表達(dá)目標(biāo)模式的模型。

      3)關(guān)系型轉(zhuǎn)換規(guī)則:是利用關(guān)系代數(shù)描述模型轉(zhuǎn)換規(guī)則的一種方法。

      4)邏輯型轉(zhuǎn)換規(guī)則:利用邏輯運算來表述模型轉(zhuǎn)換規(guī)則的一種方法。例如,OCL語言就是一種典型的邏輯語言。

      2.4 EJB元模型

      EJB是SUN的服務(wù)器端組件模型,最大的用處是部署分布式應(yīng)用程序,類似微軟的.net技術(shù)。憑借JAVA跨平臺的優(yōu)勢,用EJB技術(shù)部署的分布式系統(tǒng)可以不限于特定的平臺。基于SUN的EJB2.1規(guī)范[7]以及OMG的規(guī)范[8]給出了使用UML形式定義的EJB元模型,如圖3所示[9]。

      圖3 EJB元模型

      3 實例研究

      本文以倉庫管理系統(tǒng)為例,利用UML建模工具建立倉庫管理系統(tǒng)中的物流管理模塊的PIM,并將PIM轉(zhuǎn)換為相對的EJB PSM。

      3.1 PIM建模

      在MDA的開發(fā)思想下,PIM層建模是設(shè)計過程中最為重要的環(huán)節(jié)之一。該環(huán)節(jié)交付的軟件制品是系統(tǒng)的業(yè)務(wù)邏輯在平臺無關(guān)抽象層上的模型[5]。

      在倉庫管理系統(tǒng)中,倉庫物品操作信息的子類有進(jìn)貨信息和退貨信息兩部分,倉庫物品操作信息由物品信息聚合而成,供應(yīng)商與物品信息、進(jìn)貨信息和退貨信息相關(guān)聯(lián)。為了簡化問題,本文抽取了該部分信息進(jìn)行建模。圖4給出了該場景的PIM表示方法。

      圖4 系統(tǒng)功能片段的PIM

      3.2 OCL轉(zhuǎn)換規(guī)則

      要實現(xiàn)模型的轉(zhuǎn)換,首先要源語言和目標(biāo)語言的元模型以便給出形式化的定義,在變換規(guī)則中需要引用這些元模型中的元素[10]?;谠凑Z言和目標(biāo)語言的元模型,轉(zhuǎn)換規(guī)則采用基于OCL的規(guī)則約束,采用基于MDA的模型轉(zhuǎn)換方法來完成,從而實現(xiàn)PIM到EJB模型的變換。因為PIM和PSM都是采用UML語言描述的,UML可以來描述MDA中近乎全部的模型[11]。所以源語言和目標(biāo)語言的元類屬性都是一樣的。如圖5所示。

      對于PIM中的每一個類都會有一個EJB模型中的主鍵類與之對應(yīng),而PIM模型中的每個類都會生成一個單獨的主鍵類。PIM中的每個關(guān)聯(lián)都會被轉(zhuǎn)換成一個EJB關(guān)聯(lián),并歸入到一個EJB數(shù)據(jù)模式。則它們轉(zhuǎn)換的形式化表達(dá)式如下:

      Transformation PIMClassToKeyClass(PIM,EJB){

      source(class:PIM::class);

      target(keyClass:EJB::EJBKeyClass);

      if(target.id.class==keyClass&&unidirectional)

      mapping(class.name+’Key’,keyClass.name);

      mapping(class.name+’ID’,id.name);}

      Transformation AssociationToDataAssociation(PIM,EJB){

      target(dataAs:EJB::EJBDataAs);

      if(source.as.end->exists(composition)&&unidirection?al));

      mapping(as.name,DataAs.name);

      mapping(as.end,DataAs.end);

      mapping(assoc.getOuterMostContainer(),dataAssoc. package);}

      圖5 一個類的變換規(guī)則

      3.3 PIM-PSM映射

      在完成了PIM層的建模工作之后,就可以應(yīng)用轉(zhuǎn)換部分中定義的PIM-EJB PSM轉(zhuǎn)換規(guī)則將PIM映射為相應(yīng)的EJB平臺上的PSM。在轉(zhuǎn)換的每個步驟中,對于PIM中的每一個實體類Entity Class,都有一個EJB Entity Bean與之相對應(yīng)。每個EJB Entity Bean都要包括一個遠(yuǎn)程接口Remote Inter?face,一個本地接口Home Interface,一個主鍵Pri?mary Kerry和一個實現(xiàn)類Implementation class。對于實現(xiàn)類,其類的構(gòu)造型為<<EJBImplementation>>,類中的屬性就是PIM類圖中對應(yīng)的類的屬性,其構(gòu)造型為<<EJgCmpField>>,類的方法除了包括遠(yuǎn)程接口中的方法外,還包括PIM類圖中對應(yīng)的類中的方法,Home接口中的方法Create()實現(xiàn)方法ejbCreat(),ejbStore(),ejbLoad(),ejbActivate(),ejbPassivate(),ejbRemove(),setEntityContext(),以及getEntityContext()等方法。遠(yuǎn)程接口Remote In?terface,其構(gòu)造型為<<EJBRemoteInerface>>,Re?mote中列出該Entity Bean為客戶提供的所有操作。對于實現(xiàn)類中的每個屬性,都會有一個get()操作和一個set()操作,其構(gòu)造型為<<EJBRemote?Method>>。本地接口home Interface,接口繼承了EJBHome,Home接口的構(gòu)造型為<<EJBEntityHo?meInterface>>,home接口中包creat()方法,方法的構(gòu)造型為<<EJBCreatMethod>>,還有findByPrima?ryKey()方法,其構(gòu)造型為<<EJBFinderMethod>>,用于對數(shù)據(jù)庫的查找。

      由于篇幅有限,只選取系統(tǒng)的一部分為例說明轉(zhuǎn)換的方法。按照上述的轉(zhuǎn)換規(guī)則,經(jīng)過這些轉(zhuǎn)換后,可以得到WarehouseGoodsOperationInfo和GoodsInfo的EJB PSM,如圖6所示。

      圖6 系統(tǒng)功能片段的PSM

      4結(jié)語

      在模型轉(zhuǎn)換方面,通過向特定平臺的直動映射,降低了傳統(tǒng)手工編寫代碼的工作量。同時,設(shè)計人員可以利用自動轉(zhuǎn)換方便地看到設(shè)計方案在具體平臺上的實現(xiàn)效果,有利于檢查設(shè)計方案的正確性和合理性,從而提高了設(shè)計效率。本文研究了基于模型驅(qū)動體系架構(gòu)的模型轉(zhuǎn)換問題。結(jié)合倉庫管理系統(tǒng)的例子,采用建模工具開發(fā)出獨立于平臺分析模型,通過執(zhí)行轉(zhuǎn)換規(guī)則得到系統(tǒng)的PSM,通過實驗驗證了基于MDA的PIM到PSM模型轉(zhuǎn)換的可行性和正確性。

      [1]Miller J,Mukerji J.MDA Guide Version 1.0.1[EB/OL]. OMG,2003,http://www.omg.org/docslomg/03.06.01.

      [2]王永濤,劉勇.基于MDA的模型轉(zhuǎn)換研究與應(yīng)用[J].計算機工程,2011,37(16):84-85.

      WANG Yongtao,LIU Yong.Research and Application of Model Transformation Based on MDA[J].Computer Engi?neering,2011,37(16):84-85.

      [3]侯金奎,萬建成,張玉艷.一種支持MDA的PIM建模方法[J].計算機工程,2007,33(8):71-73.

      HOU Jinkui,WAN Jiancheng,WANG Yuyan.MDA-sup? ported Modeling Approach for PIM[J].Computer Engi?neering,2007,33(8):71-73.

      [4]張錦.基于EJB組件的代碼自動生成平臺的研究——代碼生成器及模板庫的設(shè)計[D].杭州:浙江工業(yè)大學(xué),2004.

      ZHANG Jin.Research of Code Auto-Generation Platform Based On EJB--Design of Code Generator and Template Library[D].Hangzhou:Zhejiang University of Technolo?gy,2004.

      [5]張?zhí)?,張巖,于笑豐,等.基于MDA的設(shè)計模式建模與模型轉(zhuǎn)換[J].軟件學(xué)報,2008,19(9):2203-2217.

      ZHANG Tian,ZHANG Yan,YU Xiaofeng.MDA Based Design Patterns Modeling and Model Transformation[J]. Journalof Software,2008,19(9):2203-2217.

      [6]王永濤.基于MDA的模型轉(zhuǎn)換研究[D].洛陽:河南科技大學(xué),2011.

      WANG Yongtao.Research On Model Transformation Based On MDA[D].Luoyang:Henan University of Sci?ence and Technology,2011.

      [7]Sun Microsystems.Enterprise JavaBeans Specification[EB/OL].v2.1 http://java.sun.com/productslejb/docs.html

      [8]OMG Meta modeland UML profile for Java and EJB speci?fication v1.0,2004[EB/OL].http://www.omg.org/docsdfor?maV04-02-02.

      [9]Anneke Kleppe,Jos Warmer,Wim Bast著,鮑志云譯.解析MDA[M].北京:人民郵電出版社,2004.

      Anneke Kleppe,Jos Warmer,Wim Best writings,BAOZhiyun translation.Explained MDA[M].Beijing:POSTS &TELECOM PRESS,2004.

      [10]吳春水,唐勝群.MDA中從PIM到PSM的模型轉(zhuǎn)換[J].計算機工程,2004,30(3):1-3.

      WU Chunshui,TANG Shengqun.Model Transformation from PIM to PSM in MDA[J].Computer Engineering, 2004,30(3):1-3.

      [11]劉輝,麻志毅,邵維忠.模型轉(zhuǎn)換中特性保持的描述與驗證[J].軟件學(xué)報,2007,18(10):2369-2379.

      LIU Hui,MA Zhiyi,SHAO Weizhong.Description and Proof of Property Preservation of Model Transformations[J].Journalof Software,2007,18(10):2369-2379.

      Research on ModelTransformation of PIMto PSMBased on MDA

      DONG Wei1LIU Xiaoyan2
      (Schoolof Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650500)

      An importantidea of MDA(modeldriven architecture)is using models as the basic unitofsoftware developmentto solve the problem oflow efficiency and poor portability ofsoftware development,and to further improve the abstraction levelofsoft?ware development.To this end,MDA divides the three abstraction levels ofthe model,high-levelabstractmodelis established and low-level model and code conversion are established to construct a runnable application.Therefore,a MDA-based PIM model to PSM model transformation method is proposed.And then through this model the EJB platform conversion rules are defined.The transformation rules are described by the OCL(Object Constraint Language)standard and have good reusability.At last,an exam?ple is given to verify the feasibility of the method,and the transformation from platform independent model to platform specific EJB modelis realized.

      MDA(modeldriven architecture),modeltransformation,modeling,platform independentmodel,platform spe?cific model

      TP311.5

      10.3969/j.issn.1672-9722.2017.08.045

      2017年2月6日,

      2017年3月27日

      董衛(wèi),男,碩士研究生,研究方向:模型驅(qū)動。劉曉燕,女,副教授,碩士生導(dǎo)師,研究方向:模型驅(qū)動。

      猜你喜歡
      倉庫建模信息
      倉庫里的小偷
      填滿倉庫的方法
      聯(lián)想等效,拓展建?!浴皫щ娦∏蛟诘刃鲋凶鰣A周運動”為例
      四行倉庫的悲壯往事
      基于PSS/E的風(fēng)電場建模與動態(tài)分析
      電子制作(2018年17期)2018-09-28 01:56:44
      不對稱半橋變換器的建模與仿真
      訂閱信息
      中華手工(2017年2期)2017-06-06 23:00:31
      消防設(shè)備
      展會信息
      中外會展(2014年4期)2014-11-27 07:46:46
      三元組輻射場的建模與仿真
      浠水县| 武冈市| 青州市| 涿州市| 黄冈市| 铁岭县| 成安县| 台江县| 库车县| 佛山市| 黑龙江省| 静宁县| 增城市| 德兴市| 白山市| 阿拉善左旗| 霍州市| 眉山市| 灵台县| 班玛县| 闸北区| 清涧县| 麻城市| 鲁甸县| 周至县| 凌海市| 永年县| 县级市| 将乐县| 焦作市| 阿合奇县| 健康| 杂多县| 武乡县| 凌源市| 新和县| 上饶市| 特克斯县| 惠水县| 民权县| 广饶县|