一種基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境的實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其步驟為:(1)設(shè)置仿真對象元模型和仿真交互信息元模型;(2)構(gòu)建交互構(gòu)件管理模塊,所述交互構(gòu)件管理模塊用來提供調(diào)度事件和調(diào)度交互兩種交互操作構(gòu)件圖元,所述圖元用于連接仿真對象、表示仿真對象之間的交互關(guān)系;(3)構(gòu)建仿真對象模型管理模塊;(4)構(gòu)建仿真應(yīng)用組裝模塊;(5)構(gòu)建仿真應(yīng)用代碼生成模塊:仿真應(yīng)用代碼生成模塊根據(jù)對象類交互圖,將所涉及的仿真對象描述文件和仿真交互信息描述文件進(jìn)行數(shù)據(jù)融合,得到仿真應(yīng)用描述文件,進(jìn)而根據(jù)該文件針對具體仿真引擎生成仿真應(yīng)用代碼。本發(fā)明具有原理簡單、操作簡便、易推廣應(yīng)用等優(yōu)點(diǎn)。
【專利說明】一種基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要涉及到建模與仿真【技術(shù)領(lǐng)域】,特指一種基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]目前,大規(guī)模復(fù)雜系統(tǒng)往往包含眾多實(shí)體,實(shí)體間常常又存在著錯綜復(fù)雜的“交互”,因此,大規(guī)模仿真應(yīng)用系統(tǒng)開發(fā)可分為兩個階段:(I)構(gòu)建仿真對象來模擬現(xiàn)實(shí)世界的實(shí)體;(2)集成仿真對象來模擬現(xiàn)實(shí)世界的實(shí)體交互。
[0003]在仿真對象類構(gòu)建完成的情況下,傳統(tǒng)的仿真應(yīng)用集成通常需要使用通用程序設(shè)計語言手工編寫代碼來實(shí)現(xiàn)。這種方式技術(shù)門檻高、直觀性差、集成效率低,應(yīng)用結(jié)構(gòu)不靈活,調(diào)整修改困難,難以滿足仿真應(yīng)用頻繁修改、高效集成的實(shí)際要求。而仿真應(yīng)用可視化集成技術(shù)則站到了比通用程序設(shè)計語言更高的層次,它將仿真應(yīng)用的集成開發(fā)過程完全圖形化,為仿真應(yīng)用集成人員提供直觀高效的集成開發(fā)模塊,并實(shí)現(xiàn)圖形化應(yīng)用模型向特定程序語言的自動轉(zhuǎn)換,使得應(yīng)用開發(fā)人員不需要了解仿真平臺及仿真對象的具體實(shí)現(xiàn)細(xì)節(jié),而將主要精力集中于對象類之間交互關(guān)系的構(gòu)建中,可大大降低應(yīng)用開發(fā)門檻,提高應(yīng)用集成效率。
[0004]當(dāng)前,已有多種圖形化的仿真應(yīng)用集成技術(shù),比如狀態(tài)圖、事件圖、活動圖、進(jìn)程交互圖等,這些技術(shù)具有良好的建模特性,被廣泛的應(yīng)用于仿真建模的各個領(lǐng)域。但是,它們均不是現(xiàn)實(shí)世界的簡單映射,即不能使開發(fā)人員在“一個具有實(shí)際含義的層次上”觀察仿真應(yīng)用。這些技術(shù)應(yīng)用于“基本集成模塊”的建模中具有很好的效果,而應(yīng)用于基本模塊到應(yīng)用的集成時,由于基本模塊不是對象層次的重用,導(dǎo)致應(yīng)用集成困難,影響了應(yīng)用的集成效率。比如,Viskit通過改進(jìn)事件圖,關(guān)注原子模型到耦合模型的集成,沒有涉及仿真應(yīng)用層次的集成;Simulink具有良好的可視化建模特性,可以通過對基本模塊間進(jìn)行連線與配置來完成系統(tǒng)的集成,但其主要運(yùn)用于控制系統(tǒng)仿真,不適合具有多對象交互特征的大規(guī)模復(fù)雜系統(tǒng)仿真應(yīng)用的集成。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種原理簡單、操作簡便、易推廣應(yīng)用的基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法。
[0006]為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
一種基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其步驟為:
(O設(shè)置仿真對象元模型和仿真交互信息元模型;
(2)構(gòu)建交互構(gòu)件管理模塊,所述交互構(gòu)件管理模塊用來提供調(diào)度事件和調(diào)度交互兩種交互操作構(gòu)件圖元,所述圖元用于連接仿真對象、表示仿真對象之間的交互關(guān)系; (3)構(gòu)建仿真對象模型管理模塊:自動遍歷仿真對象模型資源文件夾,將仿真對象模型導(dǎo)入仿真對象模型管理模塊,并在仿真對象模型資源管理面板上加載仿真對象模型圖元;
(4)構(gòu)建仿真應(yīng)用組裝模塊:所述仿真應(yīng)用組裝模塊支持以拖拽方式將仿真對象模型管理模塊上的對象模型圖元部署到應(yīng)用組裝區(qū),并支持使用交互構(gòu)件圖元來表示仿真對象之間的交互關(guān)系,構(gòu)成對象類交互圖,生成仿真交互信息描述文件;
(5)構(gòu)建仿真應(yīng)用代碼生成模塊:仿真應(yīng)用代碼生成模塊根據(jù)對象類交互圖,將所涉及的仿真對象描述文件和仿真交互信息描述文件進(jìn)行數(shù)據(jù)融合,得到仿真應(yīng)用描述文件,進(jìn)而根據(jù)該文件針對具體仿真引擎生成仿真應(yīng)用代碼。
[0007]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟(I)中,仿真對象元模型包括描述仿真對象所必須包含的信息,主要包括屬性集、事件集、交互集和端口集,分別用于組織仿真對象的屬性、仿真事件、交互事件和端口 ;仿真事件、交互事件都包含有輸入?yún)?shù)集和計算模型集,這些集合涉及事件/交互的內(nèi)部處理邏輯;所述仿真事件、交互事件都與端口關(guān)聯(lián),它們通過端口以供其他對象調(diào)用或調(diào)用其他對象的事件/交互。
[0008]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟(I)中,仿真應(yīng)用交互信息元模型包括描述仿真應(yīng)用交互關(guān)系所必須包含的信息,所述信息包括仿真對象集、調(diào)度事件集和調(diào)度交互隹坐隹A
朱寸朱口 O
[0009]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟(2)的具體步驟為:
(2.1)構(gòu)建交互構(gòu)件管理模塊的交互操作構(gòu)件圖元顯示面板;
(2.2)在交互操作構(gòu)件圖元顯示面板上加載調(diào)度事件圖元;
(2.3)判斷調(diào)度事件圖元是否加載成功?若否,則轉(zhuǎn)步驟(2.6);
(2.4)在交互操作構(gòu)件圖元顯示面板上加載調(diào)度交互圖元;
(2.5)判斷調(diào)度交互圖元是否加載成功?若是,轉(zhuǎn)步驟(2.7);若否,則轉(zhuǎn)步驟(2.6); (2.6)提示仿真圖元加載失敗,退出;
(2.7)仿真對象功能封裝圖元面板構(gòu)建完成。
[0010]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟(3)的具體步驟為:
(3.1)構(gòu)建仿真對象模型管理模塊對應(yīng)的仿真對象模型資源面板;
(3.2)創(chuàng)建已加載仿真對象模型列表LoadedList,初始為空;
(3.3)創(chuàng)建待加載仿真對象模型列表TobeLoadList,初始為仿真對象模型資源文件夾中的所有仿真對象模型文件夾;
(3.4)判斷TobeLoadList是否為空?若為空,則轉(zhuǎn)步驟(3.8);
(3.5)從TobeLoadList中選取一個仿真對象模型文件夾,解析該文件夾中的仿真對象模型描述文件,仿真對象模型描述文件的數(shù)據(jù)內(nèi)容由仿真對象信息元模型所確定;
(3.6)在仿真對象模型資源面板中顯示仿真對象模型圖元;
(3.7)將該仿真對象模型從TobeLoadList剔除,加入到LoadedList中,轉(zhuǎn)步驟(3.4);(3.8)仿真計算模型資源管理模塊構(gòu)建完成。仿真計算模型是指被仿真的系統(tǒng)、過程或功能的計算機(jī)程序?qū)崿F(xiàn)。
[0011]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟(4)的具體步驟為:
(4.1)構(gòu)建仿真應(yīng)用可視化組裝面板;
(4.2)構(gòu)建調(diào)度事件可視化配置面板,支持通過雙擊調(diào)度事件圖元彈出調(diào)度事件可視化配置面板,支持對調(diào)度事件信息的可視化配置,包括源/目標(biāo)對象類、源/目標(biāo)端口、仿真時間、調(diào)度條件和輸入?yún)?shù);
(4.3)構(gòu)建調(diào)度交互可視化配置面板,支持通過雙擊調(diào)度交互圖元彈出調(diào)度交互可視化配置面板,支持對調(diào)度交互信息的可視化配置,包括源/目標(biāo)對象類、源/目標(biāo)端口、仿真時間、調(diào)度條件和輸入?yún)?shù)。
[0012]作為本發(fā)明的進(jìn)一步改進(jìn):所述步驟(5)的具體步驟為:
(5.1)解析對象交互圖,生成仿真交互信息描述文件,仿真交互信息描述文件的數(shù)據(jù)內(nèi)容由仿真應(yīng)用交互信息元模型所確定;
(5.2)解析仿真交互信息描述文件及仿真對象描述文件,將對象交互信息嵌入到仿真對象的事件/交互列表中,得到仿真應(yīng)用描述信息SimAppInfo ;
(5.3)掃描仿真應(yīng)用描述文件SimAppInfo,為每個仿真對象類生成源代碼;
(5.4)將所有的仿真對象類掛接到主函數(shù)上,結(jié)束。
[0013]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1、本發(fā)明的方法在應(yīng)用后,一方面能夠最大程度地擺脫具體仿真場景及仿真平臺的束縛,充分考慮仿真系統(tǒng)多實(shí)體交互的特性,使得應(yīng)用開發(fā)工具具有良好的通用性;另一方面,工具的開發(fā)過程緊緊圍繞仿真應(yīng)用的集成過程,不僅使得工具的開發(fā)過程直觀清晰,同時有利于工具“功能”的實(shí)現(xiàn)。
[0014]2、本發(fā)明的方法在應(yīng)用后,根據(jù)本發(fā)明實(shí)現(xiàn)的仿真應(yīng)用集成工具在集成仿真應(yīng)用的過程中具有如下的優(yōu)點(diǎn):一是應(yīng)用開發(fā)人員可以在一個更為直觀自然的層次上,以更易理解的圖形化方式集成仿真應(yīng)用,而不需要了解具體的仿真平臺使用方法和仿真對象的實(shí)現(xiàn)細(xì)節(jié);二是開發(fā)人員不需要手工編寫代碼,降低了應(yīng)用的開發(fā)門檻和出錯的概率;三是構(gòu)建的仿真應(yīng)用結(jié)構(gòu)靈活,便于應(yīng)用開發(fā)人員根據(jù)需求變化對仿真應(yīng)用進(jìn)行調(diào)整、修改和升級。
【專利附圖】
【附圖說明】
[0015]圖1是本發(fā)明方法的流程示意圖。
[0016]圖2是本發(fā)明中用類圖表示仿真對象信息元模型的示意圖。
[0017]圖3是本發(fā)明中用類圖表示仿真應(yīng)用交互信息元模型的示意圖。
[0018]圖4是本發(fā)明中所提供的交互構(gòu)件管理模塊構(gòu)建的流程示意圖。
[0019]圖5是本發(fā)明中所提供的仿真對象模型管理模塊構(gòu)建的流程示意圖。
[0020]圖6是本發(fā)明中所提供的仿真應(yīng)用組裝模塊構(gòu)建的流程示意圖。
[0021]圖7是本發(fā)明中所提供的仿真應(yīng)用代碼生成模塊中代碼構(gòu)建流程的流程示意圖。
[0022]圖8是本發(fā)明中所提供的解析對象交互圖生成仿真交互信息描述文件的流程示意圖。
[0023]圖9是本發(fā)明中所提供的由仿真交互信息描述文件及仿真對象描述文件生成仿真應(yīng)用描述信息文件的流程示意圖。
[0024]圖10為本發(fā)明中所提供的由仿真應(yīng)用描述文件生成源代碼的算法流程。
[0025]圖11是本發(fā)明在具體應(yīng)用實(shí)例中的原理示意圖。
【具體實(shí)施方式】
[0026]以下將結(jié)合說明書附圖和具體實(shí)施例對本發(fā)明做進(jìn)一步詳細(xì)說明。
[0027]如圖1所示,本發(fā)明的一種基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,具體步驟為:
(O設(shè)置仿真對象元模型和仿真交互信息元模型;仿真對象是指被模擬系統(tǒng)對象在中仿真系統(tǒng)中的表示。鑒于本發(fā)明工作時面向類這個層次,為行文方便下面將不區(qū)分對象類和對象。
[0028]如圖2所示,本發(fā)明以類圖表示仿真對象元模型,該仿真對象元模型定義了描述仿真對象所必須包含的信息,主要包括屬性集、事件集、交互集和端口集,分別用于組織仿真對象的屬性、仿真事件、交互事件和端口。仿真事件、交互事件都包含有輸入?yún)?shù)集和計算模型集,這些集合涉及事件/交互的內(nèi)部處理邏輯。仿真事件、交互事件都與端口關(guān)聯(lián),它們通過端口以供其他對象調(diào)用或調(diào)用其他對象的事件/交互。仿真事件是指由一個仿真對象(源仿真對象)產(chǎn)生,傳遞給另一個仿真對象(目標(biāo)仿真對象)的數(shù)據(jù);在經(jīng)過一定的仿真時間延遲后,目標(biāo)仿真對象將對數(shù)據(jù)進(jìn)行相應(yīng)的處理。調(diào)度事件將仿真對象(源仿真對象)產(chǎn)生的事件傳遞給目標(biāo)仿真對象的活動。仿真交互(或簡稱交互)是指由一個仿真對象(源仿真對象)產(chǎn)生,傳遞給其他若干仿真對象的數(shù)據(jù);在經(jīng)過一定的仿真時間延遲后,目標(biāo)仿真對象將對數(shù)據(jù)進(jìn)行相應(yīng)的處理。調(diào)度交互是將仿真對象(源仿真對象)產(chǎn)生的交互傳遞給目標(biāo)仿真對象的活動。
[0029]如圖3所示,本發(fā)明以類圖表示仿真應(yīng)用交互信息元模型,該仿真應(yīng)用交互信息元模型定義了描述仿真應(yīng)用交互關(guān)系所必須包含的信息,主要包括仿真對象集、調(diào)度事件集和調(diào)度交互集等集合。對于該仿真應(yīng)用交互信息元模型的一個具體應(yīng)用實(shí)例,這些集合分別對應(yīng)參與仿真的所有仿真對象,調(diào)度事件和調(diào)度交互。調(diào)度事件和調(diào)度交互的主要區(qū)別在于調(diào)度事件須明確定義該事件的發(fā)送對象和接收對象,而調(diào)度交互則有不確定數(shù)目的接收對象。調(diào)度條件表示觸發(fā)調(diào)度該事件/交互的條件,仿真時間表示該事件/交互被處理的仿真時間,輸入?yún)?shù)表示發(fā)送給該事件/交互目標(biāo)仿真對象的數(shù)據(jù),端口用于記錄調(diào)度或接收該事件/交互的事件/交互。
[0030](2)構(gòu)建交互構(gòu)件管理模塊,所述交互構(gòu)件管理模塊用來提供調(diào)度事件和調(diào)度交互兩種交互操作構(gòu)件圖元,這些圖元用于連接仿真對象、表示仿真對象之間的交互關(guān)系。圖元是指用于可視化表達(dá)某一類型數(shù)據(jù)的圖標(biāo)。
[0031]如圖4所示,在具體應(yīng)用實(shí)例中,其具體步驟為:
(2.1)構(gòu)建交互構(gòu)件管理模塊的交互操作構(gòu)件圖元顯示面板;
(2.2)在交互操作構(gòu)件圖元顯示面板上加載調(diào)度事件圖元;
(2.3)判斷調(diào)度事件圖元是否加載成功?若否,則轉(zhuǎn)步驟(2.6);
(2.4)在交互操作構(gòu)件圖元顯示面板上加載調(diào)度交互圖元;
(2.5)判斷調(diào)度交互圖元是否加載成功?若是,轉(zhuǎn)步驟(2.7);若否,則轉(zhuǎn)步驟(2.6); (2.6)提示仿真圖元加載失敗,退出;
(2.7)仿真對象功能封裝圖元面板構(gòu)建完成。
[0032](3)構(gòu)建仿真對象模型管理模塊:自動遍歷仿真對象模型資源文件夾,將仿真對象模型導(dǎo)入仿真對象模型管理模塊,并在仿真對象模型資源管理面板上加載仿真對象模型圖元。在較佳的實(shí)施例中,還可以進(jìn)一步使其支持使用鼠標(biāo)對仿真對象模型圖元進(jìn)行選擇與拖拽操作,為仿真對象可視化組裝提供必要的仿真對象模型資源。
[0033]如圖5所示,在具體應(yīng)用實(shí)例中,其具體步驟為:
(3.1)構(gòu)建仿真對象模型管理模塊對應(yīng)的仿真對象模型資源面板;
(3.2)創(chuàng)建已加載仿真對象模型列表LoadedList,初始為空;
(3.3)創(chuàng)建待加載仿真對象模型列表TobeLoadList,初始為仿真對象模型資源文件夾中的所有仿真對象模型文件夾;
(3.4)判斷TobeLoadList是否為空?若為空,則轉(zhuǎn)步驟(3.8);
(3.5)從TobeLoadList中選取一個仿真對象模型文件夾,解析該文件夾中的仿真對象模型描述文件,仿真對象模型描述文件的數(shù)據(jù)內(nèi)容由仿真對象信息元模型所確定;
(3.6)在仿真對象模型資源面板中顯示仿真對象模型圖元;
(3.7)將該仿真對象模型從TobeLoadList剔除,加入到LoadedList中,轉(zhuǎn)步驟(3.4); (3.8)仿真計算模型是指被仿真的系統(tǒng)、過程或功能的計算機(jī)程序?qū)崿F(xiàn)。
[0034](4)構(gòu)建仿真應(yīng)用組裝模塊:所述仿真應(yīng)用組裝模塊支持以“拖拽”方式將仿真對象模型管理模塊上的對象模型圖元部署到應(yīng)用組裝區(qū),并支持使用交互構(gòu)件圖元來表示仿真對象之間的交互關(guān)系,構(gòu)成對象類交互圖,生成仿真交互信息描述文件。
[0035]如圖6所示,在具體應(yīng)用實(shí)例中,其具體步驟為:
(4.1)構(gòu)建仿真應(yīng)用可視化組裝面板。該面板支持以“拖拽”方式將仿真對象模型資源面板中仿真對象部署到應(yīng)用組裝區(qū),并從交互操作構(gòu)件圖元顯示面板中拖入交互構(gòu)件來連接各個仿真對象,構(gòu)成對象類交互圖;
(4.2)構(gòu)建調(diào)度事件可視化配置面板,支持通過雙擊調(diào)度事件圖元彈出調(diào)度事件可視化配置面板,支持對調(diào)度事件信息的可視化配置,包括源/目標(biāo)對象類、源/目標(biāo)端口、仿真時間、調(diào)度條件和輸入?yún)?shù);
(4.3)構(gòu)建調(diào)度交互可視化配置面板,支持通過雙擊調(diào)度交互圖元彈出調(diào)度交互可視化配置面板,支持對調(diào)度交互信息的可視化配置,包括源/目標(biāo)對象類、源/目標(biāo)端口、仿真時間、調(diào)度條件和輸入?yún)?shù);
(5)構(gòu)建仿真應(yīng)用代碼生成模塊:仿真應(yīng)用代碼生成模塊根據(jù)對象類交互圖,將所涉及的仿真對象描述文件和仿真交互信息描述文件進(jìn)行數(shù)據(jù)融合,得到仿真應(yīng)用描述文件,進(jìn)而根據(jù)該文件針對具體仿真引擎生成仿真應(yīng)用代碼。
[0036]如圖7所示,在具體應(yīng)用實(shí)例中,其具體步驟為:
(5.1)解析對象交互圖,生成仿真交互信息描述文件,仿真交互信息描述文件的數(shù)據(jù)內(nèi)容由仿真應(yīng)用交互信息元模型所確定,具體流程如圖8所示:
(5.1.1)建立存儲仿真交互信息的數(shù)據(jù)結(jié)構(gòu);
(5.1.2)建立圖元列表glist,該列表包含仿真應(yīng)用可視化組裝面板上的所有圖元;
(5.1.3)判斷glist是否為空?若否,轉(zhuǎn)步驟(5.1.16);
(5.1.4)從glist選取圖元,并將該圖元從glist中刪除;
(5.1.5)判斷所選取圖元是否屬于交互構(gòu)件圖元?若否,轉(zhuǎn)步驟(5.1.3);
(5.1.6)判斷是否是調(diào)度事件圖元?若否,轉(zhuǎn)步驟(5.1.11);
(5.1.7)獲取調(diào)度事件的源對象類與目標(biāo)對象類; (5.1.8)獲取調(diào)度事件的源端口與目標(biāo)端口 ;
(5.1.9)獲取調(diào)度事件的調(diào)度條件、仿真時間和輸入?yún)?shù);
(5.1.10)生成一條調(diào)度事件信息的記錄,轉(zhuǎn)步驟(5.1.15);
(5.1.11)獲取與調(diào)度交互的源對象類與目標(biāo)對象類;
(5.1.12)獲取與調(diào)度交互的源端口與目標(biāo)端口 ;
(5.1.13)獲取調(diào)度交互的調(diào)度條件、仿真時間和輸入?yún)?shù);
(5.1.14)生成一條調(diào)度交互信息的記錄,轉(zhuǎn)步驟(5.1.15);
(5.1.15)將所生成的調(diào)度事件/交互記錄存入仿真交互信息數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)步驟(5.1.13);
(5.1.16)將仿真交互信息數(shù)據(jù)結(jié)構(gòu)中的內(nèi)容寫入仿真交互信息描述文件中,結(jié)束。
[0037](5.2)解析仿真交互信息描述文件及仿真對象描述文件,將對象交互信息嵌入到仿真對象的事件/交互列表中,得到仿真應(yīng)用描述信息SimAppInfo,具體步驟如圖9所示:
(5.2.1)創(chuàng)立一個空的仿真應(yīng)用描述信息數(shù)據(jù)結(jié)構(gòu)SimAppInfo ;
(5.2.2)創(chuàng)建待加載仿真對象列表TobeLoadObjList,初始為仿真交互信息描述文件中的仿真對象集合,創(chuàng)建仿真對象模型列表ObjList,初始為空;
(5.2.3)判斷TobeLoadObjList是否為空?若為空,則轉(zhuǎn)步驟(5.2.6);
(5.2.4)從TobeLoadObjList中選取一個仿真對象,解析該仿真對象所對應(yīng)的仿真對象模型描述文件,建立該仿真對象信息的記錄;
(5.2.5)將該仿真對象從TobeLoadObjList剔除,并將記錄加入到ObjList中,轉(zhuǎn)步驟(5.2.3)判斷TobeLoadObjList是否為空?若為空,則轉(zhuǎn)步驟(5.2.6);
(5.2.6)將 ObjList 加入到 SimAppInfo 中;
(5.2.7)創(chuàng)建待加載調(diào)度事件列表TobeLoadEventsList,初始為仿真交互信息描述文件中的調(diào)度事件集合;
(5.2.8)判斷TobeLoadEventsList是否為空?若為空,則轉(zhuǎn)步驟(5.2.11);
(5.2.9)從TobeLoadEventsList中選取一個調(diào)度事件,獲得調(diào)度該事件的源仿真對象,在SimAppInfo中將該調(diào)度事件加入到其調(diào)度事件列表中;
(5.2.10)將該調(diào)度事件從TobeLoadEventsList剔除,轉(zhuǎn)步驟(5.2.8);
(5.2.11)創(chuàng)建待加載調(diào)度交互列表1'(*61^0&(111^6^(^101181^8七,初始為仿真交互信息描述文件中的調(diào)度交互集合;
(5.2.12)判斷 TobeLoadInteract1nsList 是否為空?若為空,則轉(zhuǎn)步驟(5.2.15);(5.2.13)從TobeLoadInteract1nsList中選取一個調(diào)度交互,獲得調(diào)度該交互的源仿真對象,在SimAppInfo中將該調(diào)度交互加入到其調(diào)度交互列表中;
(5.2.14)將該調(diào)度交互從 TobeLoadInteract1nsList 剔除,轉(zhuǎn)步驟(5.2.12);
(5.2.15)結(jié)束。
[0038](5.3)掃描仿真應(yīng)用描述文件SimAppInfo,為每個仿真對象類生成源代碼,具體步驟如圖10所示:
(5.3.1)創(chuàng)建ObjNameList,記錄SimAppInfo中所有仿真對象的名字;
(5.3.2)判斷ObjNameList是否不為空?若為空,則轉(zhuǎn)步驟(5.4);
(5.3.3)從ObjNameList中選取一個仿真對象名,根據(jù)該名字建立一個類; (5.3.4)解析SimAppInfo中ObjName所對應(yīng)的仿真對象條目;
(5.3.5)將仿真對象的屬性映射為類的屬性;
(5.3.6)將仿真對象的事件/交互映射為類的成員函數(shù),轉(zhuǎn)(5.3.2);
將仿真對象的事件/交互映射為類的成員函數(shù)這一過程需要如下四個步驟:將輸入?yún)?shù)映射為成員函數(shù)的輸入;將計算模型依次加入到成員函數(shù)中;從調(diào)度事件列表中,將輸入端口為當(dāng)前事件/交互的所有調(diào)度事件依次加入到成員函數(shù)中;從調(diào)度交互列表中,查找輸入端口為當(dāng)前事件/交互的所有調(diào)度交互依次加入到成員函數(shù)中。
[0039](5.4)將所有的仿真對象類掛接到主函數(shù)上,結(jié)束。
[0040]本發(fā)明通過實(shí)施步驟(I)?(5 )實(shí)現(xiàn)了基于對象交互圖的仿真應(yīng)用可視化集成環(huán)境。由上可知,本發(fā)明所提出的仿真應(yīng)用集成環(huán)境實(shí)現(xiàn)方法是通過支持以基于對象類交互圖的可視化方式集成仿真應(yīng)用來實(shí)現(xiàn)的;其采用可視化圖形表示和數(shù)字化描述相結(jié)合的方法,同時實(shí)現(xiàn)仿真對象模型與仿真應(yīng)用集成的可視化表示與數(shù)字化處理。一方面,展現(xiàn)給用戶的是完全的圖形化的仿真對象模型與仿真應(yīng)用模型,另一方面,提供給計算機(jī)處理的是數(shù)字化的信息,不僅方便模型的存儲、轉(zhuǎn)移與再編輯,而且利于直接生成可編譯執(zhí)行的仿真應(yīng)用源代碼。
[0041]為了更好地理解本發(fā)明,下面結(jié)合一個本發(fā)明的具體應(yīng)用實(shí)施例來所進(jìn)一步說明,即以交通系統(tǒng)仿真可視化集成過程為例。該交通系統(tǒng)包括車輛、區(qū)域和交通管理局三種仿真對象。仿真過程中,車輛根據(jù)交通擁塞、管制情況和自己的目標(biāo)在不同的區(qū)域中移動,區(qū)域定期地向本區(qū)域內(nèi)所有車輛公示信息,而其管制情況則受交通管理局控制。該系統(tǒng)可用于評估不同交通管制策略對城市交通的影響情況。具體步驟為:
(I)構(gòu)建交互構(gòu)件管理模塊,提供調(diào)度事件、調(diào)度交互兩種交互構(gòu)件圖元,用于連接仿真對象以組裝仿真應(yīng)用,支持對交互構(gòu)件圖元執(zhí)行鼠標(biāo)選擇與拖拽操作,如圖11中上方模塊所示。
[0042]( 2 )構(gòu)建仿真對象模型管理模塊,提供若干可用的仿真對象模型圖元,用于搭建仿真應(yīng)用,支持對仿真對象模型圖元執(zhí)行鼠標(biāo)選擇與拖拽操作。例如圖11中左側(cè)模塊所示,有車輛、區(qū)域和交通管理局三個仿真對象模型圖元。
[0043](3)構(gòu)建仿真應(yīng)用組裝模塊,支持以“拖拽”方式將真對象模型管理模塊中仿真對象部署到應(yīng)用組裝面板,并加入交互構(gòu)件來連接各個仿真對象,構(gòu)成對象類交互圖,并生成交互信息描述文件。例如圖11中右下側(cè)模塊所示,車輛、區(qū)域和交通管理局三種仿真對象都已經(jīng)部署到應(yīng)用組裝面板,同時調(diào)度事件和調(diào)度交互已被加入連接各類仿真對象。車輛可以向其所在的區(qū)域調(diào)度進(jìn)入和離開事件來進(jìn)入和離開一個區(qū)域,區(qū)域可以根據(jù)需要向在本區(qū)域內(nèi)所有車輛發(fā)送擁塞信息或交通管制交互。交通管理局將調(diào)度交通管理事件給特定區(qū)域以維持交通通暢。
[0044](4)構(gòu)建仿真應(yīng)用代碼生成模塊,該模塊將仿真應(yīng)用可視化組裝面板中組裝好的對象交互圖自動轉(zhuǎn)換為仿真應(yīng)用源代碼。
[0045]以上僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其特征在于,步驟為: (1)設(shè)置仿真對象元模型和仿真交互信息元模型; (2)構(gòu)建交互構(gòu)件管理模塊,所述交互構(gòu)件管理模塊用來提供調(diào)度事件和調(diào)度交互兩種交互操作構(gòu)件圖元,所述圖元用于連接仿真對象、表示仿真對象之間的交互關(guān)系;(3)構(gòu)建仿真對象模型管理模塊:自動遍歷仿真對象模型資源文件夾,將仿真對象模型導(dǎo)入仿真對象模型管理模塊,并在仿真對象模型資源管理面板上加載仿真對象模型圖元; (4)構(gòu)建仿真應(yīng)用組裝模塊:所述仿真應(yīng)用組裝模塊支持以拖拽方式將仿真對象模型管理模塊上的對象模型圖元部署到應(yīng)用組裝區(qū),并支持使用交互構(gòu)件圖元來表示仿真對象之間的交互關(guān)系,構(gòu)成對象類交互圖,生成仿真交互信息描述文件; (5)構(gòu)建仿真應(yīng)用代碼生成模塊:仿真應(yīng)用代碼生成模塊根據(jù)對象類交互圖,將所涉及的仿真對象描述文件和仿真交互信息描述文件進(jìn)行數(shù)據(jù)融合,得到仿真應(yīng)用描述文件,進(jìn)而根據(jù)該文件針對具體仿真引擎生成仿真應(yīng)用代碼。
2.根據(jù)權(quán)利要求1所述的基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其特征在于,所述步驟(I)中,仿真對象元模型包括描述仿真對象所必須包含的信息,主要包括屬性集、事件集、交互集和端口集,分別用于組織仿真對象的屬性、仿真事件、交互事件和端口 ;仿真事件、交互事件都包含有輸入?yún)?shù)集和計算模型集,這些集合涉及事件/交互的內(nèi)部處理邏輯;所述仿真事件、交互事件都與端口關(guān)聯(lián),它們通過端口以供其他對象調(diào)用或調(diào)用其他對象的事件/交互。
3.根據(jù)權(quán)利要求2所述的基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其特征在于,所述步驟(I)中,仿真應(yīng)用交互信息元模型包括描述仿真應(yīng)用交互關(guān)系所必須包含的信息,所述信息包括仿真對象集、調(diào)度事件集和調(diào)度交互集等集合。
4.根據(jù)權(quán)利要求1或2或3所述的基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其特征在于,所述步驟(2)的具體步驟為: (2.1)構(gòu)建交互構(gòu)件管理模塊的交互操作構(gòu)件圖元顯示面板; (2.2)在交互操作構(gòu)件圖元顯示面板上加載調(diào)度事件圖元; (2.3)判斷調(diào)度事件圖元是否加載成功?若否,則轉(zhuǎn)步驟(2.6); (2.4)在交互操作構(gòu)件圖元顯示面板上加載調(diào)度交互圖元; (2.5)判斷調(diào)度交互圖元是否加載成功?若是,轉(zhuǎn)步驟(2.7);若否,則轉(zhuǎn)步驟(2.6); (2.6)提示仿真圖元加載失敗,退出; (2.7)仿真對象功能封裝圖元面板構(gòu)建完成。
5.根據(jù)權(quán)利要求1或2或3所述的基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其特征在于,所述步驟(3)的具體步驟為: (3.1)構(gòu)建仿真對象模型管理模塊對應(yīng)的仿真對象模型資源面板; (3.2)創(chuàng)建已加載仿真對象模型列表LoadedList,初始為空; (3.3)創(chuàng)建待加載仿真對象模型列表TobeLoadList,初始為仿真對象模型資源文件夾中的所有仿真對象模型文件夾; (3.4)判斷TobeLoadList是否為空,若為空?則轉(zhuǎn)步驟(3.8); (3.5)從TobeLoadList中選取一個仿真對象模型文件夾,解析該文件夾中的仿真對象模型描述文件,仿真對象模型描述文件的數(shù)據(jù)內(nèi)容由仿真對象信息元模型所確定; (3.6)在仿真對象模型資源面板中顯示仿真對象模型圖元; (3.7)將該仿真對象模型從TobeLoadList剔除,加入到LoadedList中,轉(zhuǎn)步驟(3.4);(3.8)仿真計算模型資源管理模塊構(gòu)建完成;仿真計算模型是指被仿真的系統(tǒng)、過程或功能的計算機(jī)程序?qū)崿F(xiàn)。
6.根據(jù)權(quán)利要求1或2或3所述的基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其特征在于,所述步驟(4)的具體步驟為: (4.1)構(gòu)建仿真應(yīng)用可視化組裝面板; (4.2)構(gòu)建調(diào)度事件可視化配置面板,支持通過雙擊調(diào)度事件圖元彈出調(diào)度事件可視化配置面板,支持對調(diào)度事件信息的可視化配置,包括源/目標(biāo)對象類、源/目標(biāo)端口、仿真時間、調(diào)度條件和輸入?yún)?shù); (4.3)構(gòu)建調(diào)度交互可視化配置面板,支持通過雙擊調(diào)度交互圖元彈出調(diào)度交互可視化配置面板,支持對調(diào)度交互信息的可視化配置,包括源/目標(biāo)對象類、源/目標(biāo)端口、仿真時間、調(diào)度條件和輸入?yún)?shù)。
7.根據(jù)權(quán)利要求1或2或3所述的基于對象類交互圖的仿真應(yīng)用可視化集成環(huán)境實(shí)現(xiàn)方法,其特征在于,所述步驟(5)的具體步驟為: (5.1)解析對象交互圖,生成仿真交互信息描述文件,仿真交互信息描述文件的數(shù)據(jù)內(nèi)容由仿真應(yīng)用交互信息元模型所確定; (5.2)解析仿真交互信息描述文件及仿真對象描述文件,將對象交互信息嵌入到仿真對象的事件/交互列表中,得到仿真應(yīng)用描述信息SimAppInfo ; (5.3)掃描仿真應(yīng)用描述文件SimAppInfo生成源代碼; (5.4)將所有的仿真對象類掛接到主函數(shù)上,結(jié)束。
【文檔編號】G06F17/50GK104268346SQ201410519286
【公開日】2015年1月7日 申請日期:2014年9月30日 優(yōu)先權(quán)日:2014年9月30日
【發(fā)明者】姚益平, 唐文杰, 朱峰, 劉元, 鄢來斌, 蔣志文, 曲慶軍, 陳慧龍, 孟冬, 胡騰飛, 姚鋒 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)