Model to Text工具Acceleo使用教程——背景知識


  Acceleo是OMG的MOF Model to Text Language (MTL)標准的實現,由法國Obeo公司研發,專用於MDA過程中的代碼生成,能夠有效提高開發效率。接下來的幾天,我將對Acceleo進行全面的介紹,希望對大家有所幫助,並歡迎交流。

一、背景知識

1、元模型

  大家都知道,模型是用具有精確語法和語義的語言對系統的抽象表示。那么,什么是元模型(meta model)呢?元模型,即模型的模型,是模型的定義,定義了模型中的內容,是模型的抽象表示。知道了元模型的定義,相信大家對元元模型(即元模型的定義)的概念也都可以舉一反三了吧?

  可以用地圖舉例,地圖是真實路線的精確表示,因此地圖可以認為是模型。而對地圖的圖例(legend)定義了地圖模型由哪幾部分組成、以及各部分的語義,如果沒有這些圖例,我們就看不懂這個地圖,所以圖例可以認為是地圖模型的元模型(當然,我們平時不需要看圖例也能看懂地圖,因為所有地圖的圖例都是一樣的)。不僅如此,所有圖例元模型還都基於同一個元元模型,即每種顏色代表一種特征,所以有了相同的元元模型,在不同的地圖之間保持一致就方便多了。計算機科學中也用到了類似的思想設計軟件,一般用MOF表示元元模型。

2、MOF

  元建模領域是非常廣闊的,因為對於同一個概念,可以有數不清的方法來抽象表示。例如,同樣的地方的城市、路線、地貌等可以用多種多樣的地圖來表示。因此OMG提出了元建模技術的標准,並在今天得到了廣泛認可,這就是MOF(Meta Object Facility)。MOF可以用非常有限的詞匯,表示所有的元模型類型。MOF是一種元元模型。

3、XMI

  XML Metadata Interchange是OMG定義的一種模型轉換標准。XMI可以將模型或元模型序列化xmi格式,從名字上可以看出,XMI格式XML的擴展。XMI實現了模型轉換過程中的模型互操作性。注意一點,相同的元模型可以被序列化成不同的XMI格式。

4、EMF

  Eclipse Modeling Framework是為簡化Eclipse環境中模型的加載、編輯及存儲等操作而提出的。它並不只適用於元模型,而是可以處理所有的模型。EMF基於一種元模型的描述標准Ecore。Ecore是EMOF((Essential MOF)的子集(EMOF同時也是MOF2的子集)。

5、UML

  相信大家對UML比較熟悉了,這里就不多介紹了。UML有自己的元模型,分別定義了類、類中的屬性、方法、類的關聯等。UML在大多數情況下,尤其是非正式場合能表示非常多的概念,但有時我們仍然需要定義更加形式化的建模語言,來滿足不同需求,例如AADL。

6、其它元模型

  UML並不能表示所有的場合,當然我們可以使用UML profiles或原型的概念擴展UML,但這樣很容易達到極限,即需求與UML元素的原始語義偏離甚遠的時候。因此,我們需要專用的元模型來滿足不同場合的需求,通常把這種元模型稱為DSL(Domain Specific Language)。目前,DSL技術已經得到廣泛使用,下面是建立新DSL的基本步驟:

  • 定義建模概念及相關語義
  • 用MOF或EMF圖的概念表示這些概念

  當然,定義自己的DSL也有非常多的困難,舉幾個例子:

  • 怎樣用最好的方式表示概念。這需要有相當多的領域經驗;
  • 每定義新的元語言,用戶就需要重新學習,如果DSL很多,掌握起來有難度;

二、總結

  此文講解了元模型的相關背景知識,下文將介紹Acceleo在這些概念基礎上的應用——模型到代碼的生成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM