專利名稱:一種反射式建模工具及其重構(gòu)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理技術(shù)領(lǐng)域,更具體地,本發(fā)明涉及一種建模工具及其重構(gòu)方 法。
背景技術(shù):
統(tǒng)一建模語(yǔ)言是對(duì)象管理組織發(fā)起的一個(gè)面向?qū)ο蠼UZ(yǔ)言標(biāo)準(zhǔn),目前已經(jīng)成為 面向?qū)ο蠼5氖聦?shí)標(biāo)準(zhǔn)。統(tǒng)一建模語(yǔ)言通過(guò)類、對(duì)象、關(guān)系等描述系統(tǒng)的靜態(tài)結(jié)構(gòu)信息, 通過(guò)序列圖、狀態(tài)轉(zhuǎn)換圖等來(lái)描述系統(tǒng)的動(dòng)態(tài)行為。與基于統(tǒng)一建模語(yǔ)言的統(tǒng)一建模工具 (如Rational Rose)不同,領(lǐng)域建模工具具有很強(qiáng)的業(yè)務(wù)針對(duì)性,難以使用統(tǒng)一建模語(yǔ)言 的語(yǔ)義、語(yǔ)言規(guī)范來(lái)約束。領(lǐng)域建模語(yǔ)言的針對(duì)性主要表現(xiàn)為由于不同的領(lǐng)域建模所涉及 的領(lǐng)域模型存在差異,工具需要在領(lǐng)域模型的描述、表示以及操作等方面進(jìn)行定制。一般而言,可視化建模工具的設(shè)計(jì)以可視化建模語(yǔ)言和建模規(guī)范為指導(dǎo);語(yǔ)言的 語(yǔ)義部分,即概念模型,對(duì)應(yīng)工具的語(yǔ)義對(duì)象系統(tǒng);語(yǔ)言的表示法部分,對(duì)應(yīng)工具的圖元系 統(tǒng);建模規(guī)范,對(duì)應(yīng)模型相關(guān)的操作約束與邏輯。根據(jù)領(lǐng)域建模語(yǔ)言及建模規(guī)范的特點(diǎn)、對(duì) 建模工具進(jìn)行定制,進(jìn)行相應(yīng)軟件模塊的設(shè)計(jì)、編碼,并與工具的其它相對(duì)穩(wěn)定的模塊(如 界面、文檔系統(tǒng)、模型庫(kù)系統(tǒng)等)進(jìn)行集成,但該方式成本高、周期長(zhǎng)。基于元建模技術(shù)的工具重構(gòu)是當(dāng)前較流行的方案,通過(guò)元建模、生成元模型相關(guān) 的代碼框架、集成插件等技術(shù)支持工具的重構(gòu),提高了建模工具開(kāi)發(fā)的效率和質(zhì)量。但是, 該方案對(duì)建模平臺(tái)要求較高,代碼編寫、集成、維護(hù)工作較多,實(shí)現(xiàn)步驟復(fù)雜;并且當(dāng)應(yīng)用 領(lǐng)域具有很多相似特性時(shí),運(yùn)用該方案性價(jià)比不高。
發(fā)明內(nèi)容
為克服現(xiàn)有技術(shù)的上述缺陷,本發(fā)明提出一種建模工具及其重構(gòu)方法。根據(jù)本發(fā)明的一個(gè)方面,提出了一種基于反射技術(shù)的建模工具,包括元類包、模型 元素包、元行為包和圖形包,其特征在于,所述元類包用于實(shí)現(xiàn)軟件對(duì)象的自描述,通過(guò)類 型描述、屬性描述、對(duì)象實(shí)例注冊(cè)提供包括類型識(shí)別、動(dòng)態(tài)創(chuàng)建、對(duì)象管理的基礎(chǔ)服務(wù),并且 用于在高抽象層次實(shí)現(xiàn)對(duì)象初始化、復(fù)制、序列化、數(shù)據(jù)可視化的涉及對(duì)象類型識(shí)別、屬性 線形映射的行為;所述模型元素包用于基于黑箱實(shí)現(xiàn)原理在基界面上對(duì)模型元素的特性和 行為進(jìn)行抽象;所述元行為包用于基于開(kāi)放實(shí)現(xiàn)原理在元界面上對(duì)模型元素的特性和行為 進(jìn)行抽象;所述圖形包包括矢量圖元實(shí)現(xiàn)模塊,用于支持模型信息的可視化表示。根據(jù)本發(fā)明的另一個(gè)方面,提出了一種建模工具的重構(gòu)方法,包括步驟10)、在基界面上,對(duì)具有不同功能職責(zé)的模型元素進(jìn)行抽象,形成穩(wěn)定的核 心概念系統(tǒng);模型元素構(gòu)成建模工具的基對(duì)象集;步驟20)、在元界面上,通過(guò)模型域描述模型元素在應(yīng)用域中的具體類型、信息結(jié) 構(gòu)以及語(yǔ)義約束,使得模型元素種類的擴(kuò)展不受限制,且使得在高的抽象層次上實(shí)現(xiàn)模型 信息的錄入與驗(yàn)證;
步驟30)、一個(gè)模型元素對(duì)應(yīng)綁定一個(gè)模型域,一個(gè)模型域掛接多個(gè)元行為執(zhí)行 體,實(shí)現(xiàn)基對(duì)象與元對(duì)象的關(guān)聯(lián);引入元類機(jī)制對(duì)對(duì)象類型、結(jié)構(gòu)進(jìn)行自述,并提供包括類 型識(shí)別、動(dòng)態(tài)創(chuàng)建、復(fù)制、序列化的基礎(chǔ)服務(wù);步驟40)、通過(guò)工具重配置文件對(duì)元界面進(jìn)行定制。本發(fā)明基于反射技術(shù)構(gòu)建具有自適應(yīng)特性的工具架構(gòu),使得架構(gòu)僅通過(guò)重配置就 能適應(yīng)領(lǐng)域建模的需求變化,為實(shí)現(xiàn)工具重構(gòu)提供了一種新的可行方案,以所見(jiàn)即所得、 支持圖形交互式開(kāi)發(fā)建模工具重配置描述文檔的工具。基于元建模技術(shù)的工具重構(gòu),雖然有元建模平臺(tái)的支持,本質(zhì)上是代碼級(jí)的重構(gòu), 且重構(gòu)過(guò)程復(fù)雜,對(duì)技術(shù)實(shí)現(xiàn)及配套的工具設(shè)施要求較高,當(dāng)應(yīng)用領(lǐng)域具有很多相似特性 時(shí)性價(jià)比不高。與之相比較,本發(fā)明基于反射技術(shù)構(gòu)建具有自適應(yīng)特性的工具架構(gòu),使得 架構(gòu)僅通過(guò)重配置就能適應(yīng)領(lǐng)域建模的需求變化,為實(shí)現(xiàn)工具重構(gòu)提供了一種新的可行方案。運(yùn)用開(kāi)放實(shí)現(xiàn)原理設(shè)計(jì)的軟件系統(tǒng)具有良好的適應(yīng)性,通過(guò)將基界面(功能界 面)與元界面(實(shí)現(xiàn)策略選擇界面)相分離,開(kāi)放實(shí)現(xiàn)使得系統(tǒng)可以有針對(duì)地暴露接口改 變內(nèi)部的部分實(shí)現(xiàn)策略以及行為,以滿足不同應(yīng)用環(huán)境下的功能需求。
圖1示出元建模平臺(tái)中的工具和語(yǔ)言;圖2示出基于元建模技術(shù)定制建模工具的流程;圖3示出基于反射技術(shù)定制建模工具的頂層結(jié)構(gòu);圖4示出元類包;圖5示出模型元素包;圖6示出元行為包;圖7示出工具重配置文檔對(duì)概念模型及其相關(guān)特性的描述示例。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提供的一種建模工具及其反射式重構(gòu)方法 進(jìn)行詳細(xì)描述?,F(xiàn)有技術(shù)中,提出基于元建模技術(shù)的工具重構(gòu)方法,其基本思路既然建模工具可 以用于描述軟件應(yīng)用系統(tǒng)、并通過(guò)自動(dòng)化手段生成軟件產(chǎn)品,以支持軟件應(yīng)用系統(tǒng)的快速 開(kāi)發(fā);那么,將建模工具本身作為應(yīng)用,也可以設(shè)計(jì)對(duì)建模工具進(jìn)行建模的工具,即元建模 工具。從語(yǔ)言的角度而言,建模工具以建模語(yǔ)言為規(guī)范并描述模型,元建模工具以元建模語(yǔ) 言為規(guī)范并描述元模型。元建模平臺(tái)中的工具、語(yǔ)言以及它們之間的關(guān)系如1所示。建模語(yǔ)言以及元建模 語(yǔ)言均由語(yǔ)義、表示法兩個(gè)部分構(gòu)成,用于對(duì)工具的語(yǔ)義對(duì)象系統(tǒng)、圖元對(duì)象系統(tǒng)進(jìn)行規(guī) 范。元建模語(yǔ)言的語(yǔ)義采用了 M0F2.0,建模語(yǔ)言的語(yǔ)義(即元模型)由元建模工具描述。 元建模語(yǔ)言、建模語(yǔ)言的表示法都可通過(guò)表示法定義工具進(jìn)行描述,該工具基于表示法定 義語(yǔ)言描述圖元、并將圖元與語(yǔ)義進(jìn)行綁定,也可視為一個(gè)可視化建模工具。在該框架下,對(duì)領(lǐng)域建模工具進(jìn)行定制的方法如圖2所示,其中,代碼模版管理部 分用于編輯和管理代碼模版。代碼模版庫(kù)中的代碼模版用于把特定的模型轉(zhuǎn)換為指定的代碼。把元模型作為輸入,代碼生成部件基于代碼模版為工具生成元模型相關(guān)的程序代碼。代 碼維護(hù)與集成部件負(fù)責(zé)維護(hù)代碼并把代碼與預(yù)制的插件相集成,直至產(chǎn)生可執(zhí)行的建模工 具。以下描述基于反射技術(shù)的工具重構(gòu)方法。反射是系統(tǒng)的一種對(duì)自身進(jìn)行推理和作 用的能力,是開(kāi)放實(shí)現(xiàn)的一種行之有效的技術(shù)手段。引入反射技術(shù)設(shè)計(jì)一個(gè)具有自適應(yīng)特 性的工具架構(gòu),使得工具的模型描述、表示和操作部分可通過(guò)重配置進(jìn)行調(diào)整,是支持工具 重構(gòu)的一個(gè)可行思路。本發(fā)明的實(shí)施例將描述體系對(duì)抗、虛擬樣機(jī)、編隊(duì)作戰(zhàn)指揮三個(gè)建模領(lǐng)域。但本發(fā) 明的建模工具的重構(gòu)方法不僅適用于上述三個(gè)建模領(lǐng)域。其中,建模工具均支持復(fù)雜系統(tǒng) 多視圖、多粒度建模方法;多視圖表現(xiàn)為提供多個(gè)角度、對(duì)系統(tǒng)進(jìn)行刻畫和展示,并能建立 各個(gè)視圖之間的相互關(guān)聯(lián)和映射;多粒度表現(xiàn)為能有效表達(dá)系統(tǒng)的層次性,支持模型的組 合性、復(fù)合性,實(shí)現(xiàn)不同層次、不同粒度模型的互操作和重用。針對(duì)設(shè)計(jì)階段以及面向用戶的特點(diǎn),工具均提供了業(yè)務(wù)視圖、開(kāi)發(fā)視圖、部署視 圖三個(gè)正交的設(shè)計(jì)空間;業(yè)務(wù)視圖面向領(lǐng)域?qū)<?,用于描述業(yè)務(wù)知識(shí);開(kāi)發(fā)視圖面向軟件 開(kāi)發(fā)人員,基于面向?qū)ο蟮乃枷雽?shí)現(xiàn)領(lǐng)域模型至軟件元素的映射、抽象和封裝;部署視圖面 向系統(tǒng)實(shí)現(xiàn)人員,用于將系統(tǒng)分解為進(jìn)程、組件兩個(gè)層次,并基于應(yīng)用需求、軟件資源重用 的考慮,進(jìn)行領(lǐng)域模型的部署。以該建模方法為指導(dǎo),僅業(yè)務(wù)視圖中的內(nèi)涵會(huì)因領(lǐng)域而異 體系對(duì)抗建模關(guān)注武器裝備以及裝備之間的裝配、編組、通信關(guān)系等;虛擬樣機(jī)建模關(guān)注系 統(tǒng)的組成、內(nèi)部接口關(guān)系等;編隊(duì)作戰(zhàn)指揮系統(tǒng)建模關(guān)注戰(zhàn)位、戰(zhàn)位之間的指揮信息流程及 邏輯等。針對(duì)不同的應(yīng)用領(lǐng)域,工具的界面風(fēng)格、操作模式、建模流程以及一些框架性的功 能(如文檔存儲(chǔ)與管理、操作回溯、基于模型庫(kù)的模型重用、模型查詢與導(dǎo)航)相對(duì)穩(wěn)定,相 關(guān)軟件實(shí)現(xiàn)可以固化;而業(yè)務(wù)視圖中概念模型的差異,使得工具的設(shè)計(jì)需要在以下方面進(jìn) 行定制1)模型的描述為各種類型的模型提供對(duì)知識(shí)進(jìn)行抽象的數(shù)據(jù)結(jié)構(gòu)表示。2)模型信息的錄入與驗(yàn)證提供人機(jī)界面支持模型信息的錄入,并根據(jù)語(yǔ)義上的 約束進(jìn)行驗(yàn)證。3)模型的組織均采用模型資源樹(shù)的形式對(duì)模型進(jìn)行組織,需要提供具有領(lǐng)域特 色的模型分類機(jī)制、排序規(guī)則。4)模型的表示提供的模型可視化圖符應(yīng)具有專業(yè)特色。5)模型的操作模型元素與用戶的交互模式,即操作入口、方式、過(guò)程、目的需要 進(jìn)行定制?;诜瓷浼夹g(shù)的工具重構(gòu)方法反射(Reflection)技術(shù)是提高軟件適應(yīng)性的有效方案之一,一般地,反射是一種 計(jì)算系統(tǒng)能監(jiān)控自己狀態(tài)并能改變自身運(yùn)行方式的一種能力。也就是說(shuō),基于反射的軟件 通過(guò)某種方式來(lái)實(shí)現(xiàn)對(duì)自己行為的描述和觀察,并能根據(jù)自身行為的狀態(tài)和結(jié)果,調(diào)整或 修改所描述行為的狀態(tài)和相關(guān)的語(yǔ)義。通常,基于反射的系統(tǒng)實(shí)現(xiàn)時(shí)在體系結(jié)構(gòu)表現(xiàn)為分 層系統(tǒng),其中最低層稱為基本層,它通常由與應(yīng)用有關(guān)的軟件對(duì)象構(gòu)成;除此之外的層稱為 元層,多個(gè)元層構(gòu)成了反射塔。元層由元對(duì)象(Meta-Object)構(gòu)成,其提供的訪問(wèn)接口協(xié)議稱為元對(duì)象協(xié)議(Meta Object Protocol, MOP) 因果關(guān)聯(lián)(causally connected)禾口系統(tǒng)自描述(self-representation)是反射 的兩個(gè)基本特征之一。所謂因果關(guān)聯(lián)是指對(duì)反射系統(tǒng)自描述的改變能夠立即反映到系統(tǒng)底 層的實(shí)際狀態(tài)和行為,反之亦然。換句話說(shuō),即底層的狀態(tài)或行為與上層的描述具有一致 性和相互關(guān)聯(lián)性。根據(jù)這種一致性,一個(gè)反射系統(tǒng)的工作過(guò)程可以描述為基本層對(duì)象為 實(shí)現(xiàn)應(yīng)用功能而開(kāi)始運(yùn)行活動(dòng),其運(yùn)行活動(dòng)被元層對(duì)象捕獲(trap),導(dǎo)致計(jì)算上下文切換 到元層(這個(gè)過(guò)程稱為上行活動(dòng)shift-up action),元對(duì)象根據(jù)其運(yùn)行邏輯將元計(jì)算結(jié) 果反過(guò)來(lái)作用和影響基本層的對(duì)象,上下文再次切換到基本層(這個(gè)過(guò)程稱為下行活動(dòng) shift-down action)0運(yùn)用反射技術(shù)設(shè)計(jì)面向?qū)ο蟮能浖到y(tǒng),包括1)基于軟件系統(tǒng)的功能和潛在的變化需求,抽象分離出基界面和元界面?;缑?用于實(shí)現(xiàn)系統(tǒng)功能,對(duì)軟件系統(tǒng)的共性部分進(jìn)行抽象;元界面用于對(duì)基界面上的某些結(jié)構(gòu)、 行為進(jìn)行自述,并可通過(guò)某種機(jī)制進(jìn)行自適應(yīng)調(diào)整。2)基于面向?qū)ο蟮姆椒ǚ謩e對(duì)基界面和元界面進(jìn)行封裝。3)確定元界面的自適應(yīng)策略,即通過(guò)何種方式實(shí)現(xiàn)對(duì)元界面對(duì)象及對(duì)象數(shù)據(jù)的修 改。4)確定基界面對(duì)象與元界面對(duì)象之間的關(guān)聯(lián)模式,定義實(shí)現(xiàn)計(jì)算活動(dòng)在兩個(gè)界面 上進(jìn)行上行、下移的接口以及策略。因?yàn)榉瓷湎到y(tǒng)所具有的開(kāi)放特性,本發(fā)明引入反射技術(shù)來(lái)設(shè)計(jì)工具的架構(gòu);通過(guò) 對(duì)模型的描述、表示、數(shù)據(jù)錄入與驗(yàn)證、組織、操作幾個(gè)方面進(jìn)行自述,并基于因果關(guān)聯(lián)機(jī)制 實(shí)現(xiàn)相關(guān)結(jié)構(gòu)和行為的自適應(yīng)。工具架構(gòu)的設(shè)計(jì)思路為1)在基界面上,對(duì)具有不同功能職責(zé)的模型元素進(jìn)行抽象,形成一個(gè)穩(wěn)定的核心 概念系統(tǒng);模型元素構(gòu)成了工具的基對(duì)象集。2)在元界面上,通過(guò)模型域描述模型元素在應(yīng)用域中的具體類型、信息結(jié)構(gòu)以及 語(yǔ)義約束,使得模型元素種類的擴(kuò)展可以不受限制,且使得在高的抽象層次上實(shí)現(xiàn)模型信 息的錄入與驗(yàn)證成為可能;通過(guò)具有不同功能職責(zé)的元行為執(zhí)行體來(lái)執(zhí)行各種類型的元計(jì) 算,元計(jì)算的結(jié)果將作用到模型元素的標(biāo)識(shí)特性、組織特性、可視化特性以及操作模式。模 型域、元行為執(zhí)行體構(gòu)成了工具的元對(duì)象集。3) 一個(gè)模型元素綁定一個(gè)模型域,一個(gè)模型域掛接多個(gè)元行為執(zhí)行體,實(shí)現(xiàn)基對(duì) 象與元對(duì)象的關(guān)聯(lián)。模型元素的某些軟件計(jì)算,如獲得默認(rèn)標(biāo)識(shí)、創(chuàng)建可視化圖元、判斷操 作是否合理、判斷操作目的等,需要通過(guò)模型域、交由相應(yīng)的元行為執(zhí)行體捕獲并執(zhí)行;為 了便于擴(kuò)展,基對(duì)象與元對(duì)象之間的通信采用統(tǒng)一的接口形式。4)引入元類機(jī)制對(duì)對(duì)象類型、結(jié)構(gòu)進(jìn)行自述,并提供類型識(shí)別、動(dòng)態(tài)創(chuàng)建、復(fù)制、序 列化等基礎(chǔ)服務(wù)。5)通過(guò)工具重配置文件對(duì)元界面進(jìn)行定制。重配置文件描述了工具所支持的模型 域以及其掛接的元行為執(zhí)行體,工具啟動(dòng)時(shí)被加載,元界面的對(duì)象被實(shí)例化;文件中,每個(gè) 模型域?qū)ο筮€需映射一個(gè)模型元素類標(biāo)識(shí),當(dāng)屬于該域的模型創(chuàng)建時(shí),通過(guò)該標(biāo)識(shí)查找得 到模型元素的元類對(duì)象,通過(guò)該元類對(duì)象動(dòng)態(tài)創(chuàng)建一個(gè)模型元素,并將其與模型域?qū)ο筮M(jìn) 行綁定。
在上述技術(shù)方案中,針對(duì)工具在概念模型上的潛在變化需求,合理地抽象出由模 型域、元行為執(zhí)行體構(gòu)成的元界面對(duì)其進(jìn)行描述;元界面中的對(duì)象及對(duì)象數(shù)據(jù)可通過(guò)配置 進(jìn)行定制,從而使得在不需要改動(dòng)代碼的情況下、實(shí)現(xiàn)工具在概念模型上的重構(gòu);因而,基 于反射的工具架構(gòu)具有良好的適應(yīng)性。方案的實(shí)現(xiàn)采用了兩種反射模型元類機(jī)制中,元 類與對(duì)象之間的關(guān)系屬于元類反射模型;模型元素與模型域之間的關(guān)系屬于元對(duì)象反射模 型?;诜瓷浼夹g(shù)的工具架構(gòu)圖3給出了工具架構(gòu)的頂層結(jié)構(gòu),由四個(gè)包組成,分別是元類包(MetaClass)、模 型元素包(ModelingItem)、元行為包(MetaBehavior)和圖形包(Shape),其中1)元類包 (MetaClass)用于實(shí)現(xiàn)軟件對(duì)象的自描述,通過(guò)類型描述、屬性描述、對(duì)象實(shí)例注冊(cè)等經(jīng)典 手段,其一,提供類型識(shí)別、動(dòng)態(tài)創(chuàng)建、對(duì)象管理等基礎(chǔ)服務(wù);其二,為在高的抽象層次實(shí)現(xiàn) 對(duì)象初始化、復(fù)制、序列化、數(shù)據(jù)可視化等涉及對(duì)象類型識(shí)別、屬性線形映射的行為提供可 能。2)模型元素包(ModelingItem)基于黑箱實(shí)現(xiàn)原理,在基界面上對(duì)模型元素的特性和 行為進(jìn)行抽象;其組成為核心概念模型。3)元行為包(MetaBehavior)基于開(kāi)放實(shí)現(xiàn)原理, 在元界面上對(duì)模型元素的特性和行為進(jìn)行抽象;其組成為模型域及元行為執(zhí)行體。4)圖形 包(Shape)矢量圖元實(shí)現(xiàn)模塊,用于支持模型信息的可視化表示。元類包如圖4所示,包括1)元類信息(MetaClassInfo)封裝了類型標(biāo)識(shí)、屬性 信息、對(duì)象實(shí)例信息以及動(dòng)態(tài)創(chuàng)建對(duì)象的入口,內(nèi)部通過(guò)元類實(shí)例的樹(shù)狀關(guān)聯(lián)建立類型識(shí) 別網(wǎng)。2)屬性信息(AttributeInfo)封裝了屬性的名稱、相對(duì)地址、數(shù)據(jù)類型、屬性類型 (基本、擴(kuò)展、家族成員)、大小、聚合信息;對(duì)象屬性信息的自述使得可以在高的抽象層次 上實(shí)現(xiàn)對(duì)對(duì)象屬性的操作(如拷貝、序列化、可視化)。3)聚合信息(AggregateInfo)用 于描述屬性聚合的類型(靜態(tài)實(shí)例、動(dòng)態(tài)實(shí)例),以及靜態(tài)實(shí)例模式下聚合的數(shù)量。4)對(duì)象 基類(BaseObject)提供類型識(shí)別、對(duì)象復(fù)制、元類信息獲取、序列化等基礎(chǔ)服務(wù),并提供 事件處理的多態(tài)入口 ;將其納入元類包,是為了使元類包成為一個(gè)完整的、可重用于多應(yīng)用 領(lǐng)域的、支持對(duì)象自描述機(jī)制的通用基礎(chǔ)開(kāi)發(fā)包;它是應(yīng)用層、具有自描述特性的所有對(duì)象 的基類。5)對(duì)象序列化(ObjArchive)—個(gè)抽象類,提供讀取類型信息、讀取對(duì)象、寫入類 型信息、寫入對(duì)象的虛接口 ;應(yīng)用層的序列化操作體現(xiàn)為內(nèi)存中對(duì)象數(shù)據(jù)與終端數(shù)據(jù)之間 的線性映射,典型終端數(shù)據(jù)如文件中的二進(jìn)制或格式化數(shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù)包、中間件數(shù)據(jù)包、 顯示數(shù)據(jù)等;根據(jù)具體應(yīng)用及交換協(xié)議,序列化模塊需要從其派生,接口實(shí)現(xiàn)需要具體化。模型元素包根據(jù)模型元素的功能職責(zé)進(jìn)行進(jìn)一步抽象,可得到如圖5所示的模型元素包。模 型元素包與其外界的關(guān)系體現(xiàn)為模型元素派生于對(duì)象基類,以獲得元類支持;模型元素 與模型域綁定,并通過(guò)元行為包提供的元行為執(zhí)行接口觸發(fā)元計(jì)算;語(yǔ)義元素可關(guān)聯(lián)多個(gè) 圖元元素,而圖元元素與視圖之間為一種組成關(guān)系。1)模型元素(ModelingElement)泛指與建模任務(wù)相關(guān)的軟件對(duì)象;分為可視化 元素、分類元素、視圖三大類。模型元素具有可標(biāo)識(shí)特性,內(nèi)部提供樹(shù)狀數(shù)據(jù)結(jié)構(gòu)支持模型 元素的自組織,并通過(guò)一個(gè)動(dòng)態(tài)指針(ModelParas)存儲(chǔ)模型信息的字段值。其一個(gè)主要的 抽象任務(wù)是,在基界面上實(shí)現(xiàn)模型元素的顯示(至模型資源樹(shù))、標(biāo)識(shí)修改、刪除(基于引用 技術(shù)實(shí)現(xiàn))、創(chuàng)建操作菜單、查看詳細(xì)信息、創(chuàng)建子節(jié)點(diǎn)元素、聚焦、執(zhí)行拖放操作等功能,這種實(shí)現(xiàn)表現(xiàn)為提供功能執(zhí)行的入口、將功能執(zhí)行的邏輯流程以固定的策略實(shí)現(xiàn),而功能執(zhí) 行過(guò)程中部分參數(shù)、邏輯條件、輸出行為的確定則是基于反射機(jī)制實(shí)現(xiàn),即需要提交給元界 面執(zhí)行元計(jì)算獲得。此外,重載于對(duì)象基類的事件響應(yīng)函數(shù)(DoEvent),用于接收以下三類 消息來(lái)自窗口模塊的用戶操作、來(lái)自元界面的消息、服務(wù)于模型元素通信目的的消息。模 型元素存在兩種角色識(shí)別問(wèn)題,即軟件對(duì)象領(lǐng)域中的對(duì)象類型識(shí)別、應(yīng)用領(lǐng)域中的模型類 型識(shí)別,前者從元類包獲得支持、后者從元界面中的模型域中獲得支持。2)標(biāo)識(shí)(ObjIdentify)包含主標(biāo)識(shí)、輔助標(biāo)識(shí)。主標(biāo)識(shí)用于保證模型元素的唯一 性,且由于主標(biāo)識(shí)可能需要映射至可執(zhí)行軟件資源中的有效標(biāo)識(shí),因而有嚴(yán)格的詞法規(guī)范、 不能為空;而輔助標(biāo)識(shí)可根據(jù)用戶喜好定義,目的是使用戶能夠更好的理解模型元素。3)目錄(Folder)用于實(shí)現(xiàn)分類目的的輔助元素。4)視圖(Diagram)進(jìn)行模型信息可視化表示的圖紙,是圖元元素的載體。5)語(yǔ)義元素(SemiElement)模型語(yǔ)義的載體,可進(jìn)一步分解為模型實(shí)體、關(guān)聯(lián)兩 種類型;語(yǔ)義元素通過(guò)可視化的手段可在多個(gè)視圖中借助圖元元素表達(dá)模型信息,因而可 關(guān)聯(lián)多個(gè)圖元。6)模型實(shí)體(ModelingEntity)泛指設(shè)計(jì)與建模各個(gè)階段,用戶所關(guān)注的對(duì)象; 如作戰(zhàn)指揮流程建模領(lǐng)域中的戰(zhàn)位、體系對(duì)抗建模領(lǐng)域中的裝備和平臺(tái)、軟件開(kāi)發(fā)視圖中 的類和包、部署視圖中的組件和進(jìn)程等;設(shè)計(jì)與建模的過(guò)程體現(xiàn)為定義模型實(shí)體、描述其語(yǔ) 義、刻畫它們之間的關(guān)聯(lián)關(guān)系。7)關(guān)聯(lián)關(guān)系(Association)用于表達(dá)模型實(shí)體之間的某種二元關(guān)聯(lián)關(guān)系,如作 戰(zhàn)指揮流程建模領(lǐng)域中戰(zhàn)位之間的信息交聯(lián)關(guān)系、體系對(duì)抗建模領(lǐng)域中裝備間的裝配關(guān) 系、軟件開(kāi)發(fā)視圖中類型之間的派生關(guān)系等。元行為包元行為包提供了對(duì)概念模型進(jìn)行自表示的數(shù)據(jù)結(jié)構(gòu),并通過(guò)這些數(shù)據(jù)結(jié)構(gòu)支持元 計(jì)算,其組成如圖6所示。工具選擇實(shí)現(xiàn)策略的過(guò)程,即為元行為包中對(duì)象實(shí)例化的過(guò)程, 實(shí)例化信息來(lái)源于工具重配置文件。1)模型域(ElementDomain)模型域的域名屬性用于在應(yīng)用域中對(duì)模型進(jìn)行角色 分類,采用這種方式,而非通過(guò)軟件對(duì)象模版進(jìn)行分類,使得工具在理論上可支持對(duì)任意類 型的模型元素進(jìn)行建模;模型域關(guān)聯(lián)了一個(gè)模型元素的軟件類模版標(biāo)識(shí),使得由該對(duì)象模 版創(chuàng)建的模型元素能與該模型域建立映射,進(jìn)而使得在基界面上觸發(fā)元行為成為可能;模 型域通過(guò)聚合ModelPara (模型參數(shù)),來(lái)描述模型的信息結(jié)構(gòu)及語(yǔ)義約束;模型域掛接了 多個(gè)元行為執(zhí)行體,即各種MetaBehavior類型的實(shí)例,去分別承擔(dān)不同類別的元計(jì)算任 務(wù);當(dāng)模型域通過(guò)ExcuteMetaBehavior接口捕獲到一個(gè)元計(jì)算請(qǐng)求時(shí),遍歷元計(jì)算執(zhí)行 體,將請(qǐng)求及其參數(shù)傳遞給執(zhí)行體執(zhí)行,執(zhí)行體根據(jù)參數(shù)flag (行為標(biāo)志類型枚舉量)判斷 職責(zé)歸屬,執(zhí)行元計(jì)算并將結(jié)果返回;一個(gè)元計(jì)算只可能被一個(gè)執(zhí)行體捕獲,實(shí)現(xiàn)策略為 當(dāng)元計(jì)算被某個(gè)執(zhí)行體捕獲執(zhí)行后,將通過(guò)返回值截?cái)嗍S鄨?zhí)行體的元計(jì)算執(zhí)行請(qǐng)求。2)模型參數(shù)(ModelPara)描述模型的某個(gè)屬性字段,包括名稱、數(shù)據(jù)類型、偏移 地址、大小、聚合信息、語(yǔ)義約束。3)語(yǔ)義約束(SemaConstriant)對(duì)模型某個(gè)屬性字段的值進(jìn)行約束,目前支持值 約束(ValueConstraint)、對(duì)象引用約束(RefConstraint)兩種類型;前者給出值區(qū)間,后者給出可作為引用關(guān)系的模型元素的域類型。4)元行為類型(BahaviorType)枚舉元界面支持的元計(jì)算類型,每一種元計(jì)算類 型映射了一種開(kāi)發(fā)實(shí)現(xiàn)的策略。5)元行為(MetaBehavior)所有元計(jì)算執(zhí)行體的基類,提供執(zhí)行元計(jì)算的虛接 口 ;目前,工具支持三種元計(jì)算執(zhí)行體,分別用于調(diào)整模型元素的標(biāo)識(shí)特性、模型資源樹(shù)節(jié) 點(diǎn)特性、可視化特性。6)標(biāo)識(shí)特性(IdentifyProp)描述模型元素的默認(rèn)標(biāo)識(shí)前綴以及標(biāo)識(shí)的 唯一性策略。該執(zhí)行體負(fù)責(zé)執(zhí)行獲得默認(rèn)標(biāo)識(shí)(GetDefaultIdf)、標(biāo)識(shí)有效性檢測(cè) (IsIdentifyValid)兩個(gè)元計(jì)算。7)模型資源樹(shù)節(jié)點(diǎn)特性(TreeltemProp)該執(zhí)行體對(duì)模型資源樹(shù)上 模型元素節(jié)點(diǎn)的表現(xiàn)形式、支持的操作類型進(jìn)行定制,負(fù)責(zé)的元計(jì)算包括是否上 顯(GetIsDisplayTreeItem)、獲得圖標(biāo)資源(GetTreeItemIcon)、獲得顯示排序優(yōu) 先級(jí)(GetTreeItemSortIdx)、是否允許刪除(GetCanDelete)、是否允許修改標(biāo)識(shí) (GetCanEditLable)、是否允許查看細(xì)節(jié)(GetCanViewDetail)、可創(chuàng)建的子節(jié)點(diǎn)元素 (GetPossibleChildltems)、拖放操作類型判斷(TestDraggingType)。8)拖放操作特性(DraggingProp)描述模型元素可能的拖放目的端域類型以及 拖放操作的行為類型(部署、歸類等)。9)可視化特性(VisualProp)掛接多個(gè)可視化條目信息,用于描述模型元素在不 同視圖下的圖元特征。負(fù)責(zé)的元計(jì)算為創(chuàng)建圖元(CreateDrawShape),當(dāng)執(zhí)行該元計(jì)算時(shí), 通過(guò)其中的視圖域類型參數(shù)找到匹配的可視化條目,創(chuàng)建與視圖匹配的圖元。10)可視化條目信息(Visualltemlnfo)關(guān)聯(lián)一個(gè)視圖類型、一個(gè)圖元工廠,以描 述一種模型元素在某個(gè)視圖下的唯一圖元表現(xiàn)形式。11)圖元工廠(DrawShapeFactory)圖元工廠基類,封裝了標(biāo)識(shí)、位置信息,提供 創(chuàng)建圖元的虛接口 ;目前,工具系統(tǒng)支持四種圖元工廠矩形(RectShapeFactory)、文本 (TextShapeFactory)、連接線(LinkShapeFactory)、復(fù)合(CompositeShapeFactory) 0應(yīng)用實(shí)例分析基于上述的技術(shù)思路和軟件實(shí)現(xiàn)方案,設(shè)計(jì)得到了面向多領(lǐng)域的反射式建模工具 SIMDEM0。SIMDEM0是支持MDA的建模仿真平臺(tái)SIMFaster的一個(gè)子工具,用于支持分布式 仿真領(lǐng)域的系統(tǒng)建模,并輔助生成運(yùn)行于HRFW中間件環(huán)境下的仿真應(yīng)用的軟件制品。目 前,通過(guò)重配置體系,SIMDEM0已在體系對(duì)抗、虛擬樣機(jī)、編隊(duì)作戰(zhàn)指揮三個(gè)領(lǐng)域的可視化建 模中得到應(yīng)用。SIMDEM0所支持的概念模型,公共部分包括信息、事件、總線、交互關(guān)系、 類、包、繼承關(guān)系、組件、成員、部署關(guān)系等;體系對(duì)抗專屬的包括裝備性能、實(shí)體、代理、裝 配關(guān)系、搭載關(guān)系、指控關(guān)系等;虛擬樣機(jī)、編隊(duì)作戰(zhàn)指揮專屬的包括子系統(tǒng)、臺(tái)位、功能、 信息流程邏輯等。限于篇幅,僅以編隊(duì)作戰(zhàn)指揮系統(tǒng)中的臺(tái)位為例,給出工具重配置文檔中 對(duì)概念模型及其相關(guān)特性的描述示例,圖7的工具重配置文檔對(duì)概念模型及其相關(guān)特性的 描述示例最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以描述本發(fā)明的技術(shù)方案而不是對(duì)本技術(shù)方 法進(jìn)行限制,本發(fā)明在應(yīng)用上可以延伸為其他的修改、變化、應(yīng)用和實(shí)施例,并且因此認(rèn)為 所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和教導(dǎo)范圍內(nèi)。
權(quán)利要求
1.一種基于反射技術(shù)的建模工具,包括元類包、模型元素包、元行為包和圖形包,其特 征在于,所述元類包用于實(shí)現(xiàn)軟件對(duì)象的自描述,通過(guò)類型描述、屬性描述、對(duì)象實(shí)例注冊(cè) 來(lái)提供包括類型識(shí)別、動(dòng)態(tài)創(chuàng)建、對(duì)象管理的基礎(chǔ)服務(wù),并且用于在高抽象層次實(shí)現(xiàn)對(duì)象初 始化、復(fù)制、序列化、數(shù)據(jù)可視化的涉及對(duì)象類型識(shí)別、屬性線形映射的行為;所述模型元素 包用于基于黑箱實(shí)現(xiàn)原理在基界面上對(duì)模型元素的特性和行為進(jìn)行抽象;所述元行為包用 于基于開(kāi)放實(shí)現(xiàn)原理在元界面上對(duì)模型元素的特性和行為進(jìn)行抽象;所述圖形包包括矢量 圖元實(shí)現(xiàn)模塊,用于支持模型信息的可視化表示。
2.根據(jù)權(quán)利要求1所述的建模工具,其特征在于,所述元類包包括元類信息,封裝類 型標(biāo)識(shí)、屬性信息、對(duì)象實(shí)例信息以及動(dòng)態(tài)創(chuàng)建對(duì)象的入口,其中通過(guò)元類實(shí)例的樹(shù)狀關(guān)聯(lián) 建立類型識(shí)別網(wǎng);屬性信息,封裝屬性的名稱、相對(duì)地址、數(shù)據(jù)類型、屬性類型、大小、聚合信 息;聚合信息,用于描述屬性聚合的類型,以及靜態(tài)實(shí)例模式下聚合的數(shù)量;對(duì)象基類,用 于提供包括類型識(shí)別、對(duì)象復(fù)制、元類信息獲取、序列化的基礎(chǔ)服務(wù),并提供事件處理的多 態(tài)入口 ;對(duì)象序列化,用于提供讀取類型信息、讀取對(duì)象、寫入類型信息、寫入對(duì)象的虛接
3.根據(jù)權(quán)利要求1所述的建模工具,其特征在于,所述模型元素派生于對(duì)象基類,以獲 得元類支持;模型元素與模型域綁定,并通過(guò)元行為包提供的元行為執(zhí)行接口觸發(fā)元計(jì)算; 語(yǔ)義元素可關(guān)聯(lián)多個(gè)圖元元素,圖元元素與視圖之間為一種組成關(guān)系。
4.根據(jù)權(quán)利要求1所述的建模工具,其特征在于,所述模型元素包包括模型元素,指 與建模任務(wù)相關(guān)的軟件對(duì)象;包括可視化元素、分類元素、視圖;標(biāo)識(shí),包含主標(biāo)識(shí)、輔助標(biāo) 識(shí),主標(biāo)識(shí)用于保證模型元素的唯一性,輔助標(biāo)識(shí)根據(jù)用戶喜好定義,用于用戶理解模型元 素;目錄,用于實(shí)現(xiàn)分類目的的輔助元素;視圖,進(jìn)行模型信息可視化表示的圖紙,是圖元 元素的載體;語(yǔ)義元素,是模型語(yǔ)義的載體,包括模型實(shí)體、關(guān)聯(lián),語(yǔ)義元素通過(guò)可視化手段 在多個(gè)視圖中借助圖元元素表達(dá)模型信息,關(guān)聯(lián)多個(gè)圖元;模型實(shí)體,指設(shè)計(jì)與建模各個(gè)階 段,用戶所關(guān)注的對(duì)象,設(shè)計(jì)與建模的過(guò)程體現(xiàn)為定義模型實(shí)體、描述其語(yǔ)義、刻畫它們之 間的關(guān)聯(lián)關(guān)系;關(guān)聯(lián)關(guān)系,用于表達(dá)模型實(shí)體之間的二元關(guān)聯(lián)關(guān)系。
5.根據(jù)權(quán)利要求4所述的建模工具,其特征在于,所述模型元素具有可標(biāo)識(shí)特性,內(nèi)部 提供樹(shù)狀數(shù)據(jù)結(jié)構(gòu)支持模型元素的自組織,并通過(guò)一個(gè)動(dòng)態(tài)指針存儲(chǔ)模型信息的字段值; 模型元素包括軟件對(duì)象領(lǐng)域中的對(duì)象類型識(shí)別、應(yīng)用領(lǐng)域中的模型類型識(shí)別。
6.根據(jù)權(quán)利要求1所述的建模工具,其特征在于,所述元行為包提供對(duì)概念模型進(jìn)行 自表示的數(shù)據(jù)結(jié)構(gòu),并通過(guò)這些數(shù)據(jù)結(jié)構(gòu)支持元計(jì)算,包括模型域,用于在應(yīng)用域中對(duì)模型進(jìn)行角色分類,支持對(duì)任意類型的模型元素進(jìn)行建模; 模型參數(shù),描述模型的某個(gè)屬性字段;語(yǔ)義約束,對(duì)模型某個(gè)屬性字段的值進(jìn)行約束;元行 為類型,枚舉元界面支持的元計(jì)算類型,每一種元計(jì)算類型映射了一種開(kāi)發(fā)實(shí)現(xiàn)策略;元行 為,所有元計(jì)算執(zhí)行體的基類,提供執(zhí)行元計(jì)算的虛接口 ;標(biāo)識(shí)特性,描述模型元素的默認(rèn) 標(biāo)識(shí)前綴以及標(biāo)識(shí)的唯一性策略;模型資源樹(shù)節(jié)點(diǎn)特性,該執(zhí)行體對(duì)模型資源樹(shù)上模型元 素節(jié)點(diǎn)的表現(xiàn)形式、支持的操作類型進(jìn)行定制;拖放操作特性,描述模型元素可能的拖放目 的端域類型以及拖放操作的行為類型;可視化特性,掛接多個(gè)可視化條目信息,用于描述模 型元素在不同視圖下的圖元特征;可視化條目信息,關(guān)聯(lián)一個(gè)視圖類型、一個(gè)圖元工廠,以 描述一種模型元素在某個(gè)視圖下的唯一圖元表現(xiàn)形式;圖元工廠,用于封裝標(biāo)識(shí)、位置信息,提供創(chuàng)建圖元的虛接口。
7.根據(jù)權(quán)利要求6所述的建模工具,其特征在于,所述模型域通過(guò)聚合模型參數(shù),描述 模型的信息結(jié)構(gòu)及語(yǔ)義約束;模型域掛接了多個(gè)元行為執(zhí)行體,分別承擔(dān)不同類別的元計(jì) 算任務(wù)。
8.根據(jù)權(quán)利要求6所述的建模工具,其特征在于,所述模型資源樹(shù)節(jié)點(diǎn)對(duì)模型資源樹(shù) 上模型元素節(jié)點(diǎn)的表現(xiàn)形式、支持的操作類型進(jìn)行定制,負(fù)責(zé)的元計(jì)算包括是否上顯、獲得 圖標(biāo)資源、獲得顯示排序優(yōu)先級(jí)、是否允許刪除、是否允許修改標(biāo)識(shí)、是否允許查看細(xì)節(jié)、可 創(chuàng)建的子節(jié)點(diǎn)元素、拖放操作類型判斷。
9.根據(jù)權(quán)利要求6所述的建模工具,其特征在于,所述可視化特性負(fù)責(zé)創(chuàng)建圖元,當(dāng)執(zhí) 行該元計(jì)算時(shí),通過(guò)其中的視圖域類型參數(shù)找到匹配的可視化條目,創(chuàng)建與視圖匹配的圖元。
10.一種建模工具的重構(gòu)方法,包括步驟10)、在基界面上,對(duì)具有不同功能職責(zé)的模型元素進(jìn)行抽象,形成穩(wěn)定的核心概 念系統(tǒng);模型元素構(gòu)成建模工具的基對(duì)象集;步驟20)、在元界面上,通過(guò)模型域描述模型元素在應(yīng)用域中的具體類型、信息結(jié)構(gòu)以 及語(yǔ)義約束,使得模型元素種類的擴(kuò)展不受限制,且使得在高的抽象層次上實(shí)現(xiàn)模型信息 的錄入與驗(yàn)證;步驟30)、一個(gè)模型元素對(duì)應(yīng)綁定一個(gè)模型域,一個(gè)模型域掛接多個(gè)元行為執(zhí)行體,實(shí) 現(xiàn)基對(duì)象與元對(duì)象的關(guān)聯(lián);引入元類機(jī)制對(duì)對(duì)象類型、結(jié)構(gòu)進(jìn)行自述,并提供包括類型識(shí) 另O、動(dòng)態(tài)創(chuàng)建、復(fù)制、序列化的基礎(chǔ)服務(wù);步驟40)、通過(guò)工具重配置文件對(duì)元界面進(jìn)行定制。
11.根據(jù)權(quán)利要求10的方法,其中,步驟20)還包括通過(guò)具有不同功能職責(zé)的元行為 執(zhí)行體來(lái)執(zhí)行各種類型的元計(jì)算,元計(jì)算的結(jié)果將作用到模型元素的標(biāo)識(shí)特性、組織特性、 可視化特性以及操作模式。
12.根據(jù)權(quán)利要求10的方法,其中,步驟30)還包括模型元素的軟件計(jì)算通過(guò)模型域 并交由相應(yīng)的元行為執(zhí)行體捕獲并執(zhí)行;其中,基對(duì)象與元對(duì)象之間的通信采用統(tǒng)一的接 口形式。
13.根據(jù)權(quán)利要求10的方法,其中,步驟40)還包括重配置文件描述工具所支持的模 型域以及其掛接的元行為執(zhí)行體,工具啟動(dòng)時(shí)被加載,元界面的對(duì)象被實(shí)例化;文件中,每 個(gè)模型域?qū)ο笥成湟粋€(gè)模型元素類標(biāo)識(shí),通過(guò)該標(biāo)識(shí)查找模型元素的元類對(duì)象,通過(guò)該元 類對(duì)象動(dòng)態(tài)創(chuàng)建模型元素,并將其與模型域?qū)ο筮M(jìn)行綁定。
14.根據(jù)權(quán)利要求13的方法,其中,步驟40)中,根據(jù)工具在概念模型的變化需求,抽象 出由模型域、元行為執(zhí)行體構(gòu)成的元界面對(duì)其進(jìn)行描述;元界面中的對(duì)象及對(duì)象數(shù)據(jù)通過(guò) 配置進(jìn)行定制,使得在不需要改動(dòng)代碼的情況下實(shí)現(xiàn)工具在概念模型上的重構(gòu)。
全文摘要
本發(fā)明提供一種建模工具的重構(gòu)方法,包括在基界面上,對(duì)具有不同功能職責(zé)的模型元素進(jìn)行抽象,形成穩(wěn)定的核心概念系統(tǒng);模型元素構(gòu)成建模工具的基對(duì)象集;在元界面上,通過(guò)模型域描述模型元素在應(yīng)用域中的具體類型、信息結(jié)構(gòu)以及語(yǔ)義約束,使得模型元素種類的擴(kuò)展不受限制,且使得在高的抽象層次上實(shí)現(xiàn)模型信息的錄入與驗(yàn)證;一個(gè)模型元素對(duì)應(yīng)綁定一個(gè)模型域,一個(gè)模型域掛接多個(gè)元行為執(zhí)行體,實(shí)現(xiàn)基對(duì)象與元對(duì)象的關(guān)聯(lián);引入元類機(jī)制對(duì)對(duì)象類型、結(jié)構(gòu)進(jìn)行自述,并提供包括類型識(shí)別、動(dòng)態(tài)創(chuàng)建、復(fù)制、序列化的基礎(chǔ)服務(wù);通過(guò)工具重配置文件對(duì)元界面進(jìn)行定制。
文檔編號(hào)G06F9/44GK102103504SQ20111004152
公開(kāi)日2011年6月22日 申請(qǐng)日期2011年2月21日 優(yōu)先權(quán)日2011年2月21日
發(fā)明者方偉, 溫瑋, 黃曉東 申請(qǐng)人:方偉, 溫瑋, 黃曉東