複製鏈接
請複製以下鏈接發送給好友

模型驅動架構

鎖定
模型驅動架構是指一種用於應用系統開發的軟件設計方法(信息系統開發的重點是應用軟件的設計),它提供了一套軟件設計的指導規範,這套指導規範是用模型來表示的。模型驅動架構是由一個名叫OMG(Object Management Group,即對象管理組織)的國際聯盟於2001年頒佈的。
中文名
模型驅動架構
外文名
Model Driven Architecture
頒佈組織
對象管理組織
頒佈時間
2001年
功    能
軟件設計和模型的可視化等功能
學    科
計算機科學

模型驅動架構簡述

為了解決軟件開發中出現的種種問題,全球最大的軟件工業標準化組織國際對象管理組織(OMG,Object Management Group),在2001年7月提出了模型驅動架構(MDA,Model Driven Architecture)。MDA是一種基於諸如統一建模語言(UML)、可擴展標記語言(XML),和公共對象請求代理體系結構(CORBA)等一系列業界開放標準的框架,因此,它具備軟件設計和模型的可視化、存儲和交換的功能。
MDA能夠創建出機器可讀和高度抽象的模型,這些模型獨立於實現技術,以標準化的方式儲存。MDA把建模語言用做一種編程語言而不僅僅是設計語言。MDA是為應對業務和技術的快速變化提出的一種開放、中立的系統開發方法和一組建模語言標準的集合,其最終目的是構建可執行模型,實現軟件的工廠化生產。MDA是軟件開發模式從以代碼為中心向以模型為中心轉變的里程碑,被面向對象技術界預言為未來最重要的方法學。
模型驅動架構是以模型為核心並由模型映射驅動開發的過程。MDA環境下的系統開發方式就是在開發活動中通過創建各種模型精確描述不同的問題域,並利用模型轉換來驅動包括分析、設計和實現等在內的整個軟件開發過程。 [1] 

模型驅動架構建模方法

MDA基於三種建模方法。
第一種建模方法就是著名的統一建模語言(Unified ModelingLanguage,UML),它包括各種軟件建模所需的子語言。UML主要的子語言用於表達類圖、活動圖與狀態圖。
第二種建模方法是元對象工具(Meta Object Facility,MOF),它是作為UML構造的一個子集而建立的,具有足夠的表達能力來表達重要的模型。
第三種建模技術是公共倉庫元模型(Common Warehouse Metamodel,CWM),它標準化了數據倉庫應用程序的生命週期(例如,設計、構建和管理)。 [2] 

模型驅動架構建模層次

在MDA開發過程,可從三個不同的層次建立系統模型。
第一個層次模型是計算無關模型(Computational Independent Model,CIM),該模型關注於業務環境和需求,而不考慮計算環境。該模型通常由業務分析人員創建,展示了系統的業務模型,可以理解為系統需求。
第二個層次為平台無關模型(Platform Independent Model,PIM),該模型考慮在計算系統環境中的業務邏輯表示,但不關注具體的實現平台。該模型通常由系統架構師創建,關注系統功能,可以理解為分析模型。
第三個層次為平台相關模型(Platform Specific Model,PSM),該模型關注於如何在特定平台(如JavaEE)下如何實現業務邏輯;可以理解為設計模型。MDA的價值在於CIM可以通過簡單的映射轉換成PIM。同樣,PIM也可以映射成不同平台的PSM,而PSM則可以最終轉換成具體的實現代碼。
基於MDA的開發過程,業務人員首先通過業務領域的分析和建模構造CIM以描述需求;之後結合相關的標準規範將CIM轉換為PIM;在PIM基礎上,針對不同的實現環境,可以構造出不同的PSM;最後將PSM轉換成目標代碼,完成開發過程。 [3] 

模型驅動架構相關規範

MDA主要包含以下4個規範:
1)元設施(Meta of Facility,MOF)。MOF提供了一個元數據的管理框架以及一組元數據服務,使得模型系統和元數據驅動系統的開發和互操作成為可能。在MOF中提出了4層模型的概念,分別是運行時層(MO層)、模型層(M1層)、元模型層(M2層)和元元模型層(M3層)。
2)UML。UML是一種通用的建模語言,得到了主要的面向對象和組件方法的廣泛支持,並且能夠被應用到所有的應用領域和實現平台。
3)元數據交換(Metadata Interchange,XMI)。XMI定義了XML標記如何表示序列化的MOF模型。其目的是為了便於UMI。建模工具之間的數據和元數據交換,並在多層分佈式環境中提供元數據存儲機制。
4)公共倉庫元模型(Common Warehouse Metamodel,CWM)。CWM的主要目的是允許在分佈式異構環境中對倉庫工具,倉庫平台和倉庫元數據知識庫進行倉庫和業務智能元數據的交換。
除了以上4個規範,MDA還有兩個重要的子規範:
1)對象約束語言(Object Constraint Language,OCL)。OCL是UML的一個子規範。它是一種易於使用的形式化語言,其語義等同於一階邏輯,其目的是為了描述UML模型中的約束。OCL是保證模型精確性的重要手段,被廣泛用於MOF中的4層模型中,除了描述模型約束,還可以用來定義模型轉換規則。
2)模型的查詢、視圖、轉換(Query/View/Transformation,QVT)。QVT是模型轉換的標準。它定義了兩種描述性的模型轉換語言:關係(Relations)和核心(Core),以及兩種命令式的模型轉換機制:操作映射(Operational Mappings)和黑盒(Black Box)。 [4] 
參考資料
  • 1.    權巍,李莉,徐晶編著.基於模型的軟件開發方法:國防工業出版社,2011.09
  • 2.    (美)MUNINDAR P.SINGH MICHAEL N.HUHNS著;張乃嶽,戴超凡譯.面向服務的計算 語義、流程和代理:清華大學出版社,2012.08
  • 3.    譚火彬編著.UML2面向對象分析與設計:清華大學出版社,2013.05
  • 4.    王忠貴,劉姝編著.航天型號軟件工程方法與技術:中國宇航出版社,2015.03