元對象機制

元對象機制(MOF,Meta-Object Facility)起源於統一建模語言(UML)。對象管理機構(Object Management Group|OMG)需要一種元模型結構來定義UML。

基本介紹

  • 中文名:元對象機制
  • 外文名:Meta-Object Facility
  • 性質:計算機
  • 類別:建模
概觀,結構,元模型架構,國際標準,

概觀

開發MOF是為了提供一個用於CORBA體系結構的類型系統,一組模式,通過它們可以定義對象的結構,含義和行為,以及一組CORBA接口,通過這些接口可以創建,存儲和操作這些模式。
MOF設計為四層架構。它在頂層提供了一個元元模型,稱為M3層。這個M3模型是MOF用來構建元模型的語言,稱為M2模型。第2層MOF模型最突出的例子是UML元模型,即描述UML本身的模型。這些M2模型描述了M1層的元素,因此描述了M1模型。例如,這些是用UML編寫的模型。最後一層是M0層或數據層。它用於描述現實世界的對象。
除了M3模型之外,MOF還描述了通過定義描述這些操作的CORBA接口來創建和操作模型和元模型的方法。由於MOF M3模型和UML結構模型之間的相似性,MOF元模型通常被建模為UML類圖。 MOF的支持標準是XMI,它為M3-,M2-或M1-層上的模型定義了基於XML的交換格式。

結構

MOF被設計為4層次的結構。位於頂部的是元元模型層,即M3層。M3模型是MOF建立元模型(被稱為M2模型)的語言。M2模型最明顯的例子是UML元模型,該模型描述UML。M2模型描述M1層以及M1層的要素,例如,UML模型。最後一層是M0層或數據層。它描述真實世界的物體。
除了M3模型,MOF還提供創建、操作模型、元模型的方法,通過定義CORBA接口描述這些操作。由於MOF M3模型和UML結構模型相似,MOF M3元模型通常建模為UML類圖。MOF的支持標準是XMI,它定義一種基於XML的M3、M2、M1層模型交換格式。
MOF是一個封閉元模型結構,它定義描述自身的M3模型。MOF是嚴格的元模型架構,每一層的每個模型元素都嚴格對應的上層模型元素。MOF只提供定義結構或語言、數據的抽象語法的方法。定義元模型時,MOF如同EBNF層定義程式語言語法。MOF是用於定義元模型的域特定語言(DSL),就像EBNF定義語法的DSL。同樣,MOF也可以在自身定義。
MOF使用MOF::Classes (不要與UML::Classes混淆)在元層上定義概念(模型元素),如同眾所周知的面向對象。MOF可用於定義面向對象元模型(如UML)以及非面向對象元模型(如Petri網或Web服務元模型) 。
截至2006年5月,OMG定義了兩種類型的MOF:
EMOF(基本MOF)
CMOF(完全MOF)
2006年6月,徵求建議書定義了第三種:SMOF(語義MOF) 。
Eclipse Modeling Framework中定義的ECore或多或少向OMG的EMOF靠攏。
另一個相關的標準是OCL,一種用謂詞邏輯定義模型的限制條件的正式語言。
一個非常重要的新標準是QVT,描述查詢,視圖和基於MOF的模型變換的方法。
MOF是一個國際標準:ISO/IEC 19502:2005 Information technology—Meta Object Facility (MOF)
MOF可視為寫元模型的標準,例如,建模領域專用語言的抽象語法。Kermeta擴展MOF,可以執行附在EMOF元模型的動作,從而可以建模DSL操作語義並很容易得到對它的解釋。
JMI定義Java API,控制MOF模型.
OMG的MOF不能與託管對象格式(Managed Object Format)混為一談,託管對象格式由分散式管理任務組(DMTF)在公共信息模型(CIM)基礎規範的第3節中定義。

元模型架構

MOF是一個封閉的元模型架構;它定義了一個符合自身的M3模型。 MOF允許嚴格的元建模架構;每層上的每個模型元素嚴格對應於上面層的模型元素。 MOF僅提供定義語言或數據的結構或抽象語法的方法。為了定義元模型,MOF完全扮演EBNF用於定義程式語言語法的角色。 MOF是用於定義元模型的域特定語言(DSL),就像EBNF是用於定義語法的DSL一樣。與EBNF類似,MOF可以在MOF中定義。
簡而言之,MOF使用MOF :: Classes的概念(不要與UML :: Classes混淆),如從面向對象中所知,來定義元層上的概念(模型元素)。 MOF可用於定義面向對象的元模型(例如,作為UML)以及非面向對象的元模型(作為Petri網或Web服務元模型)。
截至2006年5月,OMG已為MOF定義了兩個合規點:
1、基本MOF的EMOF。
2、完整MOF的CMOF。
2006年6月,OMG發布了第三個變體SMOF(語義MOF)的提案請求。在Eclipse Modeling Framework中定義的變體ECore或多或少地與OMG的EMOF對齊。
另一個相關標準是OCL,它描述了一種可用於根據謂詞邏輯定義模型約束的形式語言。
QVT引入了查詢,查看和轉換基於MOF的模型的方法,是一個非常重要的標準,於2005年獲得批准。有關詳細信息,請參閱模型轉換語言。

國際標準

MOF是一個國際標準:
MOF 2.4.2:ISO / IEC 19508:2014信息技術 - 對象管理組元對象設施(MOF)核心。
MOF 1.4.1:ISO / IEC 19502:2005信息技術 - 元對象設施(MOF)。
MOF可以被視為編寫元模型的標準,例如為了模擬領域特定語言的抽象語法。 Kermeta是MOF的擴展,允許將可執行動作附加到EMOF元模型,因此可以對DSL操作語義進行建模並為其輕鬆獲取解釋器。
JMI定義了一個用於操作MOF模型的Java API。
不要將OMG的MOF與分散式管理任務組(DMTF)在公共信息模型(CIM)基礎結構規範2.5.0版的第6節中定義的託管對象格式(MOF)相混淆。

相關詞條

熱門詞條

聯絡我們