南方電網調峰調頻發電公司 趙增濤 李定林 佘 俊 王小軍
中國能源建設集團廣東省電力設計研究院有限公司 趙 磊 唐 凱
一般將業務分析過程中的實體和約束條件稱為問題域,業務復雜程度與問題域呈正相關;對問題域的建模需要建模語言具備良好的支持能力,能滿足對各種情形的概念約束。UML作為通用建模語言,其所包含的大部分概念都來自面向對象編程語言,而不是應用系統的問題域,這導致UML中的概念與問題域這種的概念存在一定差距。因此很難借助UML滿足某些領域業務方面建模的需求,更傾向于針對特定業務領域專項分析,強調從問題域出發,設計適用于業務域的領域特定語言(DSL)。
設計DSL是一項系統性的工作,從最開始的模型抽象層級劃分、抽象語法設計,到形成建模驅動框架,開發專用建模工具完成對DSL理論的支撐;整個過程對模型設計人員是很大的挑戰,既要具備對問題域的抽象能力,完成對建模的元素設計和語義法則定義形成建模理論;還要具備IT產品設計能力,完成專用建模工具的功能設計。不過,領域特定語言(DSL)方法論提供了理論指導,模型設計人員只需聚焦于問題域的復雜度,抽象出建模需求,然后對主流建模語言UML、MOF理論按需裁剪,便可完成基本的DSL理論雛形。然后基于DSL理論開展專用建模工具的功能設計,實現理論到應用的落地支撐。通常開發DSL的工具稱為元建模工具,設計DSL所建的模型稱為元模型,而建立DSL元模型并提供或生成支持DSL的建模工具的過程稱為元建模。
為規范元建模過程,更好的使用元模型和元數據技術,OMG組織制定了元對象設施MOF(Meta Object Facility)。按照抽象層級將模型劃分為四個層級,自上而下依次呈金字塔型分布M3、M2、M1、M0。元-元模型層(M3):是對元-元數據的結構和語義的描述,通俗說就是定義建模的抽象語法,完成語言模型的刻畫[1];元模型層(M2):基于定義的抽象語法,完成對元-元數據的描述,由元-元數據非正式地聚合成為元模型;模型層(M1):定義一個具體的系統模型,實質上這個系統模型就是元模型的實例化;信息層(M0):是系統模型在現實中的應用實例,反映真實世界的事物邏輯。
四層元數據體系結構的優勢在于通過自下而上的抽象、自上而下的驗證原則,能夠合理的設計框架。自下而上的抽象是指根據信息層的業務邏輯和數據抽象出共性特征,并對這些特征概念化、規則化形成模型元素;然后根據現有的類和關聯向上抽象,概念提煉形成元模型,表征業務間的根本法則。自上而下的推演是指先設計元模型層的類和關聯,再衍生定義模型層的類和關聯,分析驗證元模型的設計合理性。
基于四層元數據體系結構的抽象原則,提出了對應的建模驅動框架,實現從理論到落地的全程支持。整個框架由領域特定語言DSL(設計開發)-元建模工具(資產信息元模型、風險信息元模型、**業務元模型)-建模工具(資產信息模型、風險信息模型、**業務模型)-數字化應用組成。
領域特定語言DSL:元-元模型層(M3)的理論依據,主體采用MOF標準,根據領域自身的建模需求進行適應性裁剪和擴充形成一套完整的建模理論;元建模工具:DSL的開發工具,核心就是將DSL理論可視化、IT化,業務人員借助元建模工具設計產出相關業務元模型(M2);建模工具:實現對業務元模型的解析與實例化。受限于業務元模型的約束,產出對應業務模型(M1),這一步也被稱為元模型的實例化;數字化應用:實例化產出的業務模型就是領域建模的終極產物,是數字化應用(M0)運轉的依據,反映著現實世界的事物邏輯。
抽象語法定義語言的結構以及它們間的關系也稱為語言模型[2]。抽象語法設計要滿足對領域內模型概念、模型元素、以及關聯法則的制定,形成一套適應于當前領域范疇的DSL理論,支撐領域建模。針對實際業務建模需求,在主流的MOF理論基礎上進行了個性化擴充,最終完成抽象語法的設計。主要建模概念包括:
域:界定業務的領域邊界。將支撐某類業務領域范疇所需的模型元素劃分到一個域下,域內對象間的關聯不受限制,不同域間的相互引用則借助跨域關聯實現。采用此方式界定領域邊界,實現業務的解耦、降低關聯復雜度。域的基本特征:名稱。領域名稱是唯一的;描述。是對業務域的輔助性說明。
包:實現模塊化分類,按照業務模塊化的需要對模型元素分類整理。包的基本特征:名稱。包名是唯一的;子包。支持建立子包,實現結構化分類整理。
類:用來模型化建模的對象。針對建模所處的抽象層級,將類概念進行了細分,M2層定義的類稱為“元類”,M1層定義的類稱為“類實例”,M1層的類實例是M2層元類的實例化。類的基本特征:名稱。類范圍內是唯一的;子類。支持生成子類,子類繼承父類的屬性和關聯(為降低M2層模型復雜度,應用中限定M2層類對象無子類特征);是否抽象。用作分類,抽象類不作為關聯的目標對象。
關聯:用來模型化對象之間的二元聯系,描述對象間的必然聯系。針對建模所處的抽象層級,將關聯概念進行了細分,M2層定義的關聯稱為“元關聯”,M1層定義的關聯稱為“類關聯”,M1層的類關聯是M2層元關聯的實例化。關聯的基本特征:名稱。關聯范圍內是唯一的;基數。描述關聯的目標對象數量邏輯,可以是一對一或者一對多;源端。關聯的發起方,是一個類對象;目標端。關聯目標對象,是一個類對象。關聯的基本操作:繼承。子類繼承父類的關聯同時,默認繼承父類關聯的目標對象集;細化。子類進一步收斂目標對象集;終止。子類終止關聯的目標對象。
屬性:是對類的固有特征定義。針對建模所處的抽象層級將屬性概念進行了細分,M2層定義的屬性稱為“元屬性”,M1層定義的屬性稱為“類屬性”,M2層的元屬性是對M1層類屬性的抽象定義,M1層類屬性完成M1層類實例自身特征的可視化收集。屬性的基本特征:名稱。屬性范圍內是唯一的;值域。可以是一個類對象或數據類型。
結構:是以業務注焦點及組織規則為原則,按需的組織類對象搭建形成的業務框架,本質上是基于類和關聯的衍生產物。針對建模所處的抽象層級,將結構概念進行了細分,M2層定義的結構稱為“元結構”,M1層定義的結構稱為“類結構”,M2層的元結構是M1層類結構的框架。結構的基本特征:根節點。一個結構只有一個根節點;節點對象。當前節點允許掛接多個目標節點。
數據類型:用來定義模塊化數據,約束屬性的值域。包含基本類型和枚舉類型,基本類型主要包含常見的整型、串類型、布爾型、浮點型、日期型。枚舉類型則是根據業務需求,自定義枚舉類型、枚舉值。
本案例基于上文的領域信息建模技術研究成果,先開發了一套建模工具,包括元建模及建模;在此基礎上,針對電力企業設備設施臺賬,完成M2層設備設施臺賬元模型設計,并由設備設施臺賬元模型實例出M1層設備設施臺賬模型,自上而下的完成該領域模型設計。
業務上,設備設施臺賬從功能角度描述資產對象,對資產對象劃分為設施類型、功能分組類型、設備類型、成套設備類型、組件類型、部件類型[3-4]。設施類型、功能分組類型、設備類型、成套設備類型間的聚合關聯描述功能位置結構模型;組件類型、部件類型則用于描述產品的部件結構模型。其中設備類型、部件類型表示可安裝物理設備的節點,其余類型節點主要發揮臺賬結構的組織作用。通過對業務概念的抽象、提煉,得出M2層的元類概念主要有設施類型、功能分組類型、設備類型、成套設備類型、組件類型、部件類型,并建立元類對象間的關聯。
設備設施臺賬元關聯中的元關聯名稱、源端、目標端分別為:構成設施臺賬的適用功能分組類型/設施類型/功能分組類型,構成功能分組的功能分組類型/功能分組類型/功能分組類型,構成功能分組的設備類型/功能分組類型/設備類型,構成功能分組的適用成套設備類型/功能分組類型/成套設備類型,構成成套設備的組件類型/成套設備類型/組件類型,構成成套設備的部件類型/成套設備類型/部件類型,構成組件的組件類型/組件類型/組件類型,構成組件的部件類型/組件類型/部件類型,其基數都為一對多。
基于產出的元類和元關聯,進一步衍生出設備設施臺賬元結構(圖1)。從而實現對設備設施臺賬業務的抽象概念定義、以及設備設施臺賬樹的框架定義;最終確定設備設施臺賬建模的頂層設計,完成設備設施臺賬元模型設計。

圖1 設備設施臺賬元結構
M2層設備設施臺賬元模型實現了對元類概念、關聯關系、以及元結構框架的定義,M1層則是對這些概念實例化。以元類概念的劃分原則,對電力行業設備設施的概念抽象和類型歸類,產出M1層的類實例;并受限于元關系的關聯法則,合理配置類實例間的聯系,最終基于設備設施臺賬元結構定義的業務框架,產出對應的設備設施臺賬樹,完成M1層設備設施臺賬模型設計(表1)。
本文基于電力行業領域建模特定需求,擴展了MOF元-元模型理論,完成建模驅動框架設計、元建模及建模的軟件開發,并以設備設施臺賬業務建模為例,展示了領域模型的構建過程。結果表明,基于本文理論搭建的軟件具備易用性、直觀性、滿足電力行業領域建模的支撐應用,并且在多場景下表現出良好的建模支持優勢。未來將對元模型與模型同步演化以及版本管理開展進一步研究。

表1 類實例對象

圖2 發電廠-設備設施臺賬樹