特定域建模

維基百科,自由的百科全書

特定域建模Domain-specific modelingDSM),是一種設計和開發系統(如電腦軟件)的軟件工程方法學。它系統使用圖形化特定域語言(DSL),表現系統的各個方面。DSM的語言傾向於支持比通用建模語言英語General-purpose modeling更高級別的抽象,因此需要較少的effort和更少的底層細節來描述特定系統。

概況[編輯]

特定域建模(DSM)往往還包括代碼生成的想法:直接從DSM模型自動創建可執行源代碼。擺脫手工創建和維護源代碼,意味着DSM可以顯著提高開發人員的工作效率。與手工編碼相比,自動生成的代碼比較可靠、生成的程序可減少缺陷從而提高質量。

DSM不同於1980年代的CASE工具生成代碼嘗試或90年代的UML工具。兩者的代碼生成器和建模語言都是由工具供應商建立。工具供應商建立DSM語言和生成器是有可能的,並且在一個組織內出現DSM是比較正常的情況。一個或幾個專家開發者創造了建模語言和生成器,其他開發者使用它們。

由某一組織來建立建模語言和生成器,可以使它們嚴格符合其確切的域和需要。由於可以使用熟悉的術語和概念,也減少了開發者學習建模語言所需的時間。最後,由於只有一個組織的需求需要考慮,因此建模語言響應領域的變化是比較容易的。

DSM語言通常可以涵蓋特定領域的一系列抽象。例如,手機DSM語言可以讓用戶指定用戶界面的高級抽象,以及存儲數據的低級抽象,如電話號碼或設置。同樣,金融服務DSM語言可以允許用戶指定客戶的高級抽象,以及實現股票和債券交易算法的低級抽象。

特定域建模專題[編輯]

定義DSM語言[編輯]

要定義一種語言,就需要一種描述定義的語言。模型語言通常被稱為元模型,因此定義建模語言的語言就是一個元元模型。元模型可以分為兩類:一類是衍生或自定義現有語言的,另一類是明確做為元元模型發展的。

衍生元模型包括實體關係圖表,正式語言,EBNF,本體語言,XML概要和MOF。這些語言的優點是對原語言的熟悉和標準化。

特定域建模主張為特定任務建立一個新的語言,所以毫不奇怪出現新的語言-—元元模型。最廣泛使用的這種語言就是OPRR,GOPRR,以及GOPPRR,致力於以最小的努力支持建模語言。

支持DSM語言的工具[編輯]

許多通用建模語言已經有CASE工具形式的工具支持。DSM語言由於市場規模太小而往往缺少一個從零開始構建CASE工具的支持。相反,大多數支持DSM語言的工具是基於現有的DSM框架或通過DSM環境建立。

DSM環境可以看作一種元建模工具,即用於定義建模工具或個案工具的建模工具。由此產生的工具,或在DSM環境工作,或作為一個單獨的獨立程序。通常情況下,與傳統的CASE工具相比,DSM環境支持一個額外的抽象層。

採用DSM環境可以大大降低獲取支持DSM語言工具的成本,因為設計良好的DSM環境將自動生成從零開始費用高昂的部分程序,如特定域的編輯器,瀏覽器和構件。域專家只需要指定特定域的構造和規則,DSM環境將提供一個專為目標域的建模工具,。

大多數現有的DSM都出現在DSM環境中,無論是商業的,如MetaEdit+,開源的,如GEMS,或學術的,如GME。隨着DSM日益普及,DSM框架可能被加入現有的集成開發環境,如包含EMF和GMF的Eclipse建模項目(EMP),或者微軟的軟件工廠DSL工具。

DSM和UML[編輯]

統一建模語言(UML)是一種軟件密集型系統的通用建模語言,目的是支持大多數面向對象編程。因此,與DSM相比,UML可以以各種目的用於廣泛的領域。UML提供的原始(primitives)是面向對象編程的這些,而特定域語言提供的原始,其語義被這一領域的所有從業人員所熟悉。例如,在汽車工程領域,軟件模型表現防鎖制動系統,或方向盤等屬性。

UML包括profile機制,可以約束,和在特定領域、平台被定製。UML profiles使用構造型,標記值和約束,以限制或擴大UML在特定領域的範圍。一個特定領域定製UML的最著名例子是SysML—系統工程的域特定語言。