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