張永亮, 曹 雷, 潘明聰
(解放軍理工大學指揮信息系統(tǒng)學院, 江蘇 南京 210007)
構(gòu)建科學合理的作戰(zhàn)仿真模型資源,是當前我軍開展作戰(zhàn)模擬系統(tǒng)建設(shè)和作戰(zhàn)仿真實驗的迫切需求。作戰(zhàn)模擬系統(tǒng)開發(fā)實踐表明:在一體化建模思想指導(dǎo)下,通過規(guī)范建模過程和結(jié)果,構(gòu)建可重用、易維護的模型資源庫,以滿足不同層次作戰(zhàn)模擬系統(tǒng)的開發(fā)需要,已成為當前我軍作戰(zhàn)模擬與仿真實驗領(lǐng)域亟待完成的一項前瞻性基礎(chǔ)工程,這一過程將有力促進我軍軍事仿真模型標準化進程,具有廣闊的應(yīng)用前景。運用一體化建模方法構(gòu)建作戰(zhàn)仿真實體模型,既是從方法論的角度對一體化建模理論的進一步發(fā)展和深化,同時也是對我軍仿真模型工程建設(shè)的積極探索與實踐。
一體化建模方法強調(diào)各建模階段遵循一定的建模規(guī)范,實現(xiàn)不同形態(tài)模型的平滑過渡,從而使軍事概念模型與程序仿真模型之間可以互相轉(zhuǎn)換。模型轉(zhuǎn)換方式有3種:1) 技術(shù)開發(fā)人員利用自身專業(yè)知識完成對模型設(shè)計說明的人工轉(zhuǎn)換,然后進行編碼實現(xiàn);2) 把模型框架與共有功能提取出來,形成模型開發(fā)向?qū)В夹g(shù)人員利用模型開發(fā)向?qū)崿F(xiàn)模型半自動轉(zhuǎn)換;3) 充分利用前2種方法,定義模型間協(xié)議接口規(guī)范,把技術(shù)人員對模型的推理、轉(zhuǎn)換與實現(xiàn)過程進一步抽象,描述成可以自動處理的“推理機”,實現(xiàn)軍事概念模型到程序模型的自動轉(zhuǎn)換?;谝惑w化建模技術(shù)開發(fā)作戰(zhàn)仿真實體模型采用后2種模型轉(zhuǎn)換方式實現(xiàn),其總體思路分3步展開。
1) 以作戰(zhàn)實體模型需求分析為牽引,運用面向?qū)嶓w的模板化概念建模方法完成對作戰(zhàn)實體概念模型的格式化描述,進而運用基于統(tǒng)一建模語言(Unified Modeling Language,UML)的軍事概念建模方法和規(guī)范化的建模工具,獲取完備的、可讀性強的“半形式化”軍事概念模型資源,為概念模型向數(shù)學邏輯模型和程序組件模型轉(zhuǎn)換創(chuàng)造條件。
2) 在面向?qū)嶓w的一體化建模方法規(guī)范下,分別從作戰(zhàn)實體屬性、行為和關(guān)系3要素出發(fā),實現(xiàn)對作戰(zhàn)實體概念模型的定量分析與描述,完成概念模型向數(shù)學邏輯模型的一致性轉(zhuǎn)換。
3) 以面向?qū)ο蟮某绦蛟O(shè)計思想為指導(dǎo),基于組件對象模型(Component Obiect Model,COM)的軟件工程方法完成作戰(zhàn)實體仿真模型組件開發(fā)。首先,依據(jù)實體需求模型,確定需要開發(fā)的若干功能模型組件;然后,完成功能組件的規(guī)劃,實現(xiàn)組件接口的設(shè)計;最后,完成對仿真模型組件的測試和管理。作戰(zhàn)仿真實體模型開發(fā)的總體思路如圖1所示。
圖1 基于一體化建模的作戰(zhàn)仿真實體模型開發(fā)總體思路
目前,在需求分析階段,可采用結(jié)構(gòu)化的分析方法或用況驅(qū)動的分析方法[1]對開發(fā)系統(tǒng)的功能和目標需求進行分析。結(jié)構(gòu)化的分析方法通過系統(tǒng)中的數(shù)據(jù)流動和系統(tǒng)的內(nèi)部活動來對系統(tǒng)的功能進行分析,其缺點是:在需求分析的初期就必須深入過多內(nèi)部的細節(jié),這樣反而對系統(tǒng)功能的分析不利,而且其整個建模策略與面向?qū)ο蟮慕K枷胂嗥H。而運用基于用況的需求分析方法來構(gòu)建作戰(zhàn)實體仿真模型的需求模型,其優(yōu)勢在于:1) 基于用況的實體模型需求描述為模型的用戶需求(主要是功能需求)提供規(guī)范而準確的表達,有利于建模人員準確地理解模型需求,并進行互動式的模型開發(fā);2) 該方法可以全面、詳盡地描述出模型系統(tǒng)的功能需求,為建模人員提供準確的依據(jù);3) 該方法與面向?qū)嶓w的建模方法都源于面向?qū)ο笏枷耄先藗兊淖匀凰季S方式,軍事人員與技術(shù)人員更易溝通與交流;4) 基于用況的需求描述支持工具環(huán)境,如Rational Rose、PlayCASE、StarUML等,都提供了用況圖表示法,可以與基于UML的實體概念模型圖(類圖、順序圖等)有機銜接,便于實現(xiàn)對實體軍事概念模型的形式化或半形式化描述。
為此,本文采用基于UML的用況圖對模型功能需求進行描述,采用表格將模型需求的文字式描述與用況圖描述進行整合,以完整表達實體的需求模型;然后,以表格的形式將模型的用況圖與用況規(guī)約進行綜合,形成規(guī)范化的需求模型文檔。依據(jù)基于用況的需求建模表示法,只要對模型的參與者名稱、用況(即模型應(yīng)實現(xiàn)的功能)名稱、用況圖規(guī)約及用況圖進行描述,就可以完整表達實體模型全部主要功能的需求內(nèi)容。基于用況的作戰(zhàn)仿真實體需求建模過程如圖2所示。
圖2 基于用況的作戰(zhàn)仿真實體需求建模過程
作戰(zhàn)實體一體化建模對概念建模的要求是:1) 采用面向?qū)嶓w的建模思想指導(dǎo)軍事概念建模,以便達成建模人員之間理解問題的一致性;2) 運用系統(tǒng)工程的理論和方法規(guī)范化地描述和管理概念模型,確保提高概念模型質(zhì)量的同時,促進概念模型的共享和重用;3) 基于通用的語義和語法(Common Semantics and Syntax, CSS)環(huán)境構(gòu)建形式化或半形式化的概念模型,為實現(xiàn)一體化建模中的仿真模型正逆工程創(chuàng)造條件[2-4]。
借鑒“概念建模工程”思想和國內(nèi)關(guān)于軍事概念建模的研究成果[5-8],本文提出基于概念模型模板進行格式化描述和基于統(tǒng)一建模語言UML進行半形式化描述的2階段概念建模思路。首先,技術(shù)人員依據(jù)作戰(zhàn)實體概念模型屬性、行為和關(guān)系3要素描述信息,以表格式模板引導(dǎo)軍事人員完成對作戰(zhàn)實體靜態(tài)特征、動態(tài)行為和交互關(guān)系的格式化描述;然后,在此基礎(chǔ)上以技術(shù)人員為主,以軍事人員為輔,運用UML實現(xiàn)對實體概念模型半形式化表達。前一階段主要完成對作戰(zhàn)實體軍事領(lǐng)域知識進行準確、完整和詳盡的描述,以解決軍事人員與技術(shù)人員之間溝通難的問題;后一階段主要實現(xiàn)由格式化描述信息向UML模型圖的轉(zhuǎn)換,為作戰(zhàn)實體概念模型的校驗和仿真實現(xiàn)奠定基礎(chǔ)。面向軍事人員的作戰(zhàn)仿真實體概念模型模板體系如圖3所示。
圖3 面向軍事人員的作戰(zhàn)仿真實體概念模型模板體系
在概念模型格式化描述過程中,作戰(zhàn)使命空間在“使命—任務(wù)—行動”分解的基礎(chǔ)上,可進一步對作戰(zhàn)實體行為進行“動作—規(guī)則—數(shù)據(jù)”層層分解,即通過自頂而下的使命任務(wù)空間分解,從而得到需要的實體行為概念模型;按照“元動作—控制規(guī)則—支持數(shù)據(jù)”的描述方法描述作戰(zhàn)實體行為,然后自底向上地對作戰(zhàn)行為的元動作概念模型進行“封裝”,可實現(xiàn)對實體行為的完整表達。作戰(zhàn)實體的使命任務(wù)空間分解過程如圖4所示。
圖4 作戰(zhàn)實體的使命任務(wù)空間分解過程
基于UML的作戰(zhàn)實體概念模型半形式化描述,是利用UML把其格式化的實體概念模型信息從屬性、行為和關(guān)系3個層面,以明確語義和規(guī)范化模型圖予以表達。這一階段不僅要實現(xiàn)基于UML來描述實體靜態(tài)結(jié)構(gòu)和動態(tài)行為信息,還需確保實體、任務(wù)、行為、交互等概念建模元素的格式化描述信息與UML模型圖描述內(nèi)容的一致性映射。目前,諸如IBM Rational Rose、StarUML等建模工具支持從基于UML的概念模型到軟件代碼的自動生成,極大地方便了工程技術(shù)人員的理解與使用。
為了彌補UML對概念模型動態(tài)行為內(nèi)容描述的缺陷,實現(xiàn)模型間的要素信息轉(zhuǎn)換不失真,目前主要有2種解決辦法:1) 利用可執(zhí)行UML(Executable UML);2) 將UML與對象約束語言(Object Constraint Language,OCL)相結(jié)合使用。從實踐來看,比較可行的辦法是利用形式化的OCL來彌補作戰(zhàn)實體各階段模型信息的缺失[9],使得基于UML的概念模型更精確和完備。采用OCL規(guī)約來描述模型額外的附加信息,可以通過程序生成工具把模型及規(guī)約提供的模型信息自動轉(zhuǎn)換為源程序。作戰(zhàn)仿真實體概念建模的基本過程如圖5所示。
圖5 作戰(zhàn)仿真實體概念建模的基本過程
數(shù)學邏輯建模在面向?qū)嶓w的一體化建模中處于承上啟下的位置,是實現(xiàn)概念模型向程序模型轉(zhuǎn)換的關(guān)鍵環(huán)節(jié),因而,無論是實現(xiàn)對概念模型的定量化描述,還是從數(shù)學模型到仿真模型的程序轉(zhuǎn)換,都對其提出了規(guī)范的建模要求:1) 適應(yīng)一體化建模中模型聯(lián)動開發(fā)的需要,遵循面向?qū)嶓w的建模思想,實現(xiàn)數(shù)學模型與其他形態(tài)模型的有機銜接;2) 選擇合理的算法和建模過程指導(dǎo),以構(gòu)建規(guī)范化的數(shù)學邏輯模型;3) 實現(xiàn)數(shù)學邏輯模型規(guī)范化的形式化表達,以縮短其與軟件編程的距離。
為滿足一體化建模中作戰(zhàn)實體數(shù)學建模的要求,本文將從作戰(zhàn)實體概念模型的構(gòu)成要素出發(fā),運用數(shù)學或邏輯表達方法描述作戰(zhàn)實體的靜態(tài)屬性、動態(tài)行為及其關(guān)系。具體來看,實體概念模型的實體層包括實體分類、屬性、行為分類和關(guān)系分類等描述信息,可以直接通過數(shù)據(jù)采集,定性變量與定量變量轉(zhuǎn)化的方法,完成對實體靜態(tài)屬性描述信息的量化,而不需要相應(yīng)算法的支持,其結(jié)果表現(xiàn)為一組便于程序設(shè)計人員對照編程的數(shù)據(jù)結(jié)構(gòu)(輸入數(shù)據(jù));實體概念模型的行為層主要描述作戰(zhàn)勤務(wù)活動、指揮決策活動和作戰(zhàn)行動等,可以通過建立行動規(guī)則的邏輯流程圖和相關(guān)算法來反映各元動作內(nèi)容及元動作間的邏輯和時序關(guān)系;實體概念模型的關(guān)系層主要描述實體與其他實體間的靜態(tài)和動態(tài)關(guān)系,供程序設(shè)計人員明確作戰(zhàn)實體模型間的調(diào)用關(guān)系。
總體來看,作戰(zhàn)實體數(shù)學邏輯模型可以有2種描述形式:1) 通過邏輯流程圖的方式,對作戰(zhàn)指揮決策和作戰(zhàn)行動規(guī)則進行邏輯判斷和推理,以反映整個作戰(zhàn)活動的執(zhí)行過程;2) 對實體行為元動作核心算法以數(shù)學解析式的形式予以描述,以反映元動作的內(nèi)在變化規(guī)律。最終,將數(shù)學算法嵌入到描述相應(yīng)實體行為的邏輯流程圖中,完成對數(shù)學邏輯模型的一體化描述。遵循一體化建模中數(shù)學邏輯建模規(guī)范,所構(gòu)建的作戰(zhàn)實體數(shù)學邏輯模型如圖6所示。
1) 實現(xiàn)基于用況的需求模型向基于UML的概念模型映射。這一過程可以分2步:一是遵循基于用況的需求分析思想,對作戰(zhàn)實體模型需求進行分析與描述;二是從作戰(zhàn)實體需求模型的用況圖中找出該模型所涉及的模型參與者(即與之相關(guān)聯(lián)的實體模型)和用況。
圖6 基于一體化建模的作戰(zhàn)實體數(shù)學邏輯模型
2) 在面向?qū)嶓w建模思想的指導(dǎo)下,從用況圖和用況規(guī)約中找出相應(yīng)實體類及行為,按照面向?qū)ο蟮慕K枷?,分別從實體的靜態(tài)屬性、動態(tài)行為及關(guān)系3個層次完成對實體的概念化描述。這一過程可以用基于UML的類圖來描述需求模型中的若干實體類,用順序圖、活動圖、交互圖等行為圖進一步完善和細化實體用況圖,以反映其動態(tài)行為特征。利用軍事概念建模軟件平臺,基于UML、IDEF(Intergrated computer aided manufacturing DEFinition)等知識描述形式[10],最終可以實現(xiàn)對實體模型的概念化表達,生成便于計算機存儲和理解的數(shù)據(jù)格式,這是實現(xiàn)模型自動、半自動化轉(zhuǎn)換的前提條件。從基于用況的需求模型到基于UML的概念模型的迭代開發(fā)過程如圖7所示。
圖7 從基于用況的需求模型到基于UML的概念模型的迭代開發(fā)過程
3) 實現(xiàn)從基于UML/OCL的實體概念模型圖和模型規(guī)約向其邏輯數(shù)學模型轉(zhuǎn)換??蓡渭冇蓴?shù)據(jù)結(jié)構(gòu)描述的實體屬性表就不必進行數(shù)學建模,可直接用于程序?qū)崿F(xiàn);實體行為概念模型可繼續(xù)分解為更詳細的邏輯流程,并通過確定各框圖間的邏輯關(guān)系、各框圖內(nèi)部的局部算法以及模型的總體算法來定量表達。最終構(gòu)建的作戰(zhàn)實體數(shù)學邏輯模型可在數(shù)學邏輯建模軟件平臺和軍事概念—數(shù)學邏輯模型轉(zhuǎn)換工具的支持下,實現(xiàn)從概念模型數(shù)據(jù)向數(shù)學邏輯模型數(shù)據(jù)的映射和整合,從而方便其向程序代碼的轉(zhuǎn)換。
4) 按照模型一體化設(shè)計要求,將生成的程序源碼按照COM組件技術(shù)規(guī)范和框架進行封裝、集成,就形成了易于調(diào)用和管理的作戰(zhàn)實體仿真模型組件資源。從概念模型和數(shù)學邏輯模型向程序組件模型轉(zhuǎn)換,只有遵循規(guī)范的格式標準,才能確保其與程序模型的無縫連接,其關(guān)鍵原因在于不同形態(tài)模型的語法和語義存在著差異。在軟件工程領(lǐng)域,UML已經(jīng)成為事實的標準建模語言,諸如Rational Rose、PlayCase、Power Designer等開發(fā)工具都支持從基于UML的靜態(tài)概念模型轉(zhuǎn)換為多種程序語言(VC++、Java等)的源代碼。為了確保異構(gòu)模型數(shù)據(jù)之間進行互操作和集成,必須要將多種多樣的知識表述形式和異構(gòu)數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)標準。目前,利用可擴展標記語言(eXtensible Markup Language,XML)作為數(shù)據(jù)交換與集成的數(shù)據(jù)標準,已成為大多數(shù)模型開發(fā)者實現(xiàn)模型之間數(shù)據(jù)交換的選擇[11]。
一體化建模的逆向工程主要任務(wù)是實現(xiàn)模型從仿真模型向可視化概念模型轉(zhuǎn)換,旨在幫助開發(fā)人員在迭代式的模型開發(fā)中不斷提高模型可信度,同時為模型校驗提供方法手段。為了滿足一體化建模過程中模型信息逆向轉(zhuǎn)換的需要,本文從以下2個方面進行技術(shù)準備。
1) 在面向?qū)ο笏枷氲闹笇?dǎo)下,運用面向?qū)嶓w的一體化建模方法實現(xiàn)對作戰(zhàn)仿真實體模型的開發(fā),實現(xiàn)問題空間與模型空間的一致性映射。面向?qū)嶓w的建模方法遵循面向?qū)ο蟮慕K枷?,使用了與問題域一致的概念、詞匯與原則,分別從實體屬性、行為和關(guān)系3個層次實現(xiàn)從需求模型到程序模型的映射,這種一致性將保持到模型設(shè)計、編程、測試及維護等各個階段。在Rational Rose建模工具及Soda等附屬工具的支持下,可以實現(xiàn)基于UML的概念模型與程序模型間的自動、半自動化的轉(zhuǎn)換。在模型測試和校驗過程中,以類的概念為中心,利用繼承、關(guān)聯(lián)等關(guān)系所提供的信息,可以發(fā)現(xiàn)程序仿真模型與概念模型不一致的錯誤,而且當程序中發(fā)現(xiàn)錯誤時,可以逆向追蹤到概念模型和問題域。
2) 在作戰(zhàn)實體模板化概念建模過程中,分別對作戰(zhàn)實體概念模型模板體系中的3層10類模型模板描述信息設(shè)置相應(yīng)的編碼。作戰(zhàn)仿真實體概念模型描述信息編碼體系如圖8所示,可以看出:其概念模型通過模型編碼信息間的繼承和聚合關(guān)系,分別從屬性、行為和關(guān)系3個層面對概念模型要素每一項模型描述信息進行唯一標志。在面向?qū)ο蟮某绦蛟O(shè)計過程中,只要將概念模型的編碼信息作為其在聯(lián)合作戰(zhàn)仿真模型資源庫的定位標簽,就可以實現(xiàn)模型程序源碼與概念模型描述信息的相互映射,為模型逆向轉(zhuǎn)換提供技術(shù)支持。這種模型描述思想與面向?qū)ο蟮某绦蛟O(shè)計理念是一致的。
圖8 作戰(zhàn)仿真實體概念模型描述信息編碼體系
目前,面向?qū)嶓w的一體化建模技術(shù)在軍事仿真領(lǐng)域的應(yīng)用還處于從理論到實踐的過渡階段,距離指導(dǎo)工程應(yīng)用還有一定的差距,主要體現(xiàn)在:1) 一體化建模基礎(chǔ)理論中的建模規(guī)范、建模過程還未達成共識;2) 主要建模環(huán)節(jié)的轉(zhuǎn)換技術(shù)還有待攻克,即如何建立模型與代碼之間的映射機制,實現(xiàn)軍事概念模型與仿真模型的有機銜接和相互轉(zhuǎn)換。因而,本文通過研究作戰(zhàn)仿真實體模型的一體化建模過程,旨在探索指導(dǎo)作戰(zhàn)仿真模型一體化建模的工程方法,進一步完善一體化建模理論體系。
參考文獻:
[1] Jacobson I. Object-oriented Software Engineering: A Use Case Driven Approach [M]. New York: Addison-Wesley Professional, 1992.
[2] 黃俊領(lǐng), 譚東風, 張向波. 軍事仿真概念模型開發(fā)研究[J]. 計算機仿真, 2005, 22(2): 15-18.
[3] 吳永波,沙基昌,譚東風. 基于本體的兩階段任務(wù)空間概念模型開發(fā)方法[J]. 國防科技大學學報, 2005, 27(6): 120-125.
[4] OMG. Unified Modeling Language Specification, Version 1.5 [EB/OL]. (2003-03-01)[2013-10-21]. http://wwwoma.ore/
[5] 謝衛(wèi)平, 鄧蘇, 譚東風, 等. 概念模型工程研究[J]. 計算機仿真, 2003, 20(2): 120-122, 125.
[6] 汪文元, 沙基昌, 譚東風. 基于概念模型工程的工作流建模研究[J]. 計算機工程與科學, 2006, 28(1):139-142.
[7] 鄭娟, 馮書興, 曹裕華. 軍事概念模型分階段分層次開發(fā)過程研究[J]. 計算機仿真, 2007, 24(7): 9-12, 129.
[8] 胡斌, 常青. 軍事概念模型建模實踐分析與研究[J]. 系統(tǒng)仿真學報, 2008, 22(12): 3085-3088.
[9] 邵維忠, 楊芙清. 面向?qū)ο蟮南到y(tǒng)分析[M].2版. 北京: 清華大學出版社, 2007.
[10] 王杏林, 曹曉東. 概念建模[M]. 北京: 國防工業(yè)出版社, 2007.
[11] Laurent S S. XML基礎(chǔ)教程[M].2版. 康曉林, 伊希榮, 陳維義, 等譯.北京: 電子工業(yè)出版社, 2000.