【正文】
的數(shù)據(jù)模型對象;TreeParent類作為樹視圖的數(shù)據(jù)模型對象中的父節(jié)點;ProjectExplorer類是整個TDL一體化建模工具應(yīng)用程序工程資源管理器,這個類控制了TDL工程項目所有資源的集合與分類;ViewContentProvider類是工程資源管理器視圖中TreeViewer的內(nèi)容提供器,為樹的顯示提供了內(nèi)容;ViewLabelProvider類是工程資源管理器視圖中TreeViewer的標簽提供器,用于顯示節(jié)點的相關(guān)信息,包括顯示內(nèi)容和圖標。toString返回對象的字符串表示。編輯頁的刷新機制與工程資源管理器類似,同樣采用MVC模式設(shè)計。在工程資源管理器中雙擊TDL文件資源(調(diào)用ProjectExplorer類中的doubleClick方法)或者在單擊菜單欄(包括上下文菜單和系統(tǒng)主菜單)中的“打開”選項(OpenAction類),將啟動TDL多頁編輯器,并在編輯器中呈現(xiàn)TDL文本內(nèi)容、UML類圖、圖形化格式。樹視圖TreeObject類繼承Observable類,實現(xiàn)IAdaptable接口,生成樹視圖的數(shù)據(jù)模型對象。工程項目的打開、關(guān)閉、添加、刪除以及視圖的刷新等操作都是由視圖的內(nèi)部數(shù)據(jù)模型決定的。本文采用Eclipse RCP框架開發(fā)該平臺,因為RCP客戶端應(yīng)用程序可以提供豐富的圖形用戶界面,并且具有可擴展、跨平臺等特點。TDL編譯器接受最多四個輸入?yún)?shù),:可執(zhí)行文件名;:需要處理的vdl文件名;.\output\:VOM組件代碼的輸出目錄;all或om:編譯選項,all表示生成包括VOM組件和VOM組件基本實現(xiàn)層的全部中間件協(xié)同代碼,om表示僅生成VOM組件代碼。 TDL編譯的輸入輸出TDL可視化編譯模塊的輸入輸出信息:模塊的輸入文件是TDL代碼文件和用于生成CDT工程文件的模版文件(cpp文件和h文件),編譯完成后輸出的是框架代碼、錯誤信息、日志文件。 本章小結(jié)本章首先研究了文本編輯器功能的實現(xiàn)原理,確定了使用XText開源框架生成TDL文本編輯器的方法,然后根據(jù)EBNF范式和XText書寫規(guī)則完成了TDL語言的語法規(guī)范,最后給出了生成TDL編輯器的具體方法。(4) 消息對象描述Message_decl:Message_headMember_qualifier:PRIVATE|READONLY|PRIVATE READONLY|ONEWAY。class39。ID)*。enum39。39。Package_decl_list:Package_decl | 39。939。139。XText在許多領(lǐng)域有著廣泛應(yīng)用。 格式美化格式美化就是按照特定規(guī)則對TDL文本重新排版,形成統(tǒng)一格式,使代碼更具有可讀性,顯示更為美觀。 文本編輯模塊子功能劃分 文本編輯模塊的工作原理文本編輯模塊由Eclipse RCP開發(fā)平臺中的編輯器來實現(xiàn),Eclipse文本框架是由幾個小插件來實現(xiàn)的,它們實現(xiàn)了模塊化和封裝功能,這樣可以允許文本模型重用而不依賴于文本的顯示。 總體設(shè)計基于TDL的一體化模型構(gòu)建工具(VIMT)以Eclipse核心框架為基礎(chǔ),采用Eclipse RCP技術(shù)框架,結(jié)合開源軟件作為底層支持平臺,滿足客戶文本編輯、可視化建模、多格式模型文件轉(zhuǎn)換、TDL編譯、TDL到C++框架源碼的映射、框架代碼編譯、組件的單元與集成測試、測試框架代碼自動生成、一體化集成等需求,實現(xiàn)可視化、一體化操作,性能穩(wěn)定、操作簡單、界面友好。 Eclipse RCP體系結(jié)構(gòu)RCP應(yīng)用程序?qū)嶋H上是插件和運行時內(nèi)核的組合。 long start()。 string plainString()。 包(package)不同VOM中的元素可能有相同的名稱,這容易引起混淆,為了區(qū)分需要采用名稱空間,同一個VOM中的所有元素必須包含在一個名稱空間。第6章一體化集成平臺設(shè)計。2. 通過封裝調(diào)用TDL編譯器和VC編譯器,實現(xiàn)框架代碼可視化生成(編譯TDL文件生成C++文件)與框架代碼可視化編譯(編譯C++文件生成對象模型組件或可執(zhí)行程序)功能。TENA對象模型(LROM)采用統(tǒng)一建模語言(UML)和TENA定義的標準語言——TDL語言,封裝邏輯靶場的各種接口和協(xié)議,對邏輯靶場事件中邏輯靶場各種資源之間交換的所有信息進行編碼,實現(xiàn)靶場資源之間的語義交互。由于我國的軍工試驗和訓(xùn)練在信息化過程中面臨著越來越大的挑戰(zhàn),研發(fā)我們自己的虛擬試驗驗證使能體系結(jié)構(gòu)(VITA)是非常必要的。TENA可以克服客觀環(huán)境限制,根據(jù)武器產(chǎn)品測試標準和軍方訓(xùn)練要求,將分布在各訓(xùn)練場和靶場的作戰(zhàn)訓(xùn)練資源和武器測試資源結(jié)合在一起,形成一個邏輯靶場,為真實作戰(zhàn)單元和虛擬作戰(zhàn)單元提供交互,實現(xiàn)在現(xiàn)實環(huán)境中難以完成的測試和訓(xùn)練任務(wù)[4]。為了開發(fā)基于TDL的一體化模型構(gòu)建工具軟件,需要對TDL編譯、中間件協(xié)調(diào)代碼自動生成等關(guān)鍵技術(shù)進行研究,然后在此基礎(chǔ)上進行開發(fā),包括可視化TDL編輯與生成、可視化建模、可視化對象模型代碼自動生成、對象模型框架測試驗證和一體化集成平臺。分析TDL文本編輯模塊的工作原理,研究TDL語言的文法結(jié)構(gòu),在開源框架XText的輔助下,生成TDL文本編輯器,包括輸入輸出、語法高亮、錯誤提示、格式美化、內(nèi)容輔助等功能。導(dǎo)入(import)位于VDL文件的開始,類似C++中的include。消息具有以下特點:1. 作為一種數(shù)據(jù)結(jié)構(gòu),消息中可以包含SDO指針2. 消息的狀態(tài)成員可以是向量3. 消息中可以包含本地類4. 消息可以繼承其它的消息,但最多只能繼承一個其它的消息5. 消息的成員可以是基本類型、枚舉類型6. 消息中可以有方法(operations),它僅是本地方法7. 消息可以嵌套包含其它信息一個消息定義的實例如下所示:local class Point { double x。一個接口中至少包含一個方法。但是隨之新問題出現(xiàn)了:一是無法為用戶提供豐富的圖形使用體驗,可操作性差;二是應(yīng)用程序過于依賴Web服務(wù)器的性能,在數(shù)據(jù)爆炸的今天,無法滿足用戶大量高效率的交互性需求;三是基于“請求/響應(yīng)”模式的瘦客戶端應(yīng)用程序需要很高的網(wǎng)絡(luò)能力來保證交互性能,難以快速響應(yīng)大量業(yè)務(wù)邏輯的處理需求[18]。Eclipse RCP在國內(nèi)得到了廣泛應(yīng)用,比如NASA的火星探測計劃、IBM Workplace開發(fā)平臺等,國內(nèi)電信、金融、醫(yī)療領(lǐng)域也越來越多的使用Eclipse RCP來開發(fā)系統(tǒng)[20][21]。 本章小結(jié)本章介紹了系統(tǒng)的總體設(shè)計,根據(jù)客戶需求完成的系統(tǒng)總體設(shè)計,將系統(tǒng)劃分為五個模塊:文本編輯、可視化建模、框架代碼生成與編譯、對象模型測試和一體化平臺。這些顯示顏色可以在程序中進行設(shè)置。很幸運我找到了這樣一個開源工具——XText,它能幫助實現(xiàn)TDL語言的文本編輯器,我需要做的就是研究TDL語言的語法定義。 CC ::= D | D CD ::= 39。 | 39。139。939。39。39。(39。local39。Operation_member)39。Vector_member_type:Data_member_type。 模塊概要設(shè)計 TDL編譯TDL編譯實現(xiàn)TDL代碼可見性編譯,即在TDL一體化建模工具中,用戶能夠編譯TDL代碼,生成框架源碼文件。++文件的編譯。方法parse解析VC編譯器的原始字符串信息,toString方法定義了編譯信息的輸出形式。如VDLSourceItem表示VDL源代碼子工程、VOMItem表示VOM組件子工程,VOMBasicItem表示VOM基本實現(xiàn)子工程,VOMTest表示測試子工程等。fillLocalToolBar將相關(guān)的操作添加工程資源管理器視圖的工具欄,它以工程資源管理器視圖的菜單管理器對象為參數(shù)。addPages將向?qū)ы摚∟ewProjectWizardPage)對象添加給向?qū)ο螅祷匾粋€boolean值,true表示接受完成請求并關(guān)閉對話框,false表示拒絕完成請求并保持對話框。圖形化格式頁則以組織結(jié)構(gòu)圖的形式顯示每種結(jié)構(gòu)(類、屬性、方法等)對應(yīng)的圖標及其繼承關(guān)系,可以添加、更改、刪除圖片。NewProjectWizard負責(zé)生成向?qū)J綄υ捒?;NewProjectWizardPage負責(zé)生成向?qū)υ捒虻囊粋€頁面,供用戶填入項目的參數(shù)和配置;NewVDLFileWizard和NewVDLFileWizardPage負責(zé)產(chǎn)生項目文件夾的生成向?qū)υ捒蚝凸┯脩籼钊腠椖课募?shù)和配置的頁面; NewVDLClassWizard 和NewVDLClassWizardPage負責(zé)生成項目文件。ProjectExplorer有兩個屬性:String ID和TreeViewer viewer,String ID定義了資源管理器對象的ID,viewer定義唯一的啟動器對象實例,用于和其它類分享。 項目生成與管理功能 功能描述在VIMT中用戶可以可視化的實現(xiàn)項目的生成、導(dǎo)入、導(dǎo)出、編輯、信息的分級視圖顯示等功能。VDLBuild類根據(jù)TDL編譯器名稱、路徑、源文件名稱、編譯選項等屬性構(gòu)建了編譯對象,通過Invocation類中的方法run()完成了編譯。此模塊的功能就是在已有的這些信息上,精確定位錯誤的出處,即打開出錯文件,定位到出錯的行。下面簡單介紹三個外部應(yīng)用程序:1. CDT:CDT是一款eclipse插件,用于在eclipse平臺中開發(fā)C/C++程序。extends39。extends39。Member_list39。Enumeration_bodyMessage_declPackage_decl。Package_body639。39。 | 39。BNF范式定義的語言是一個字符串集合,它們的書寫規(guī)則如下:symbol::=alternative1|alternative2…它的意思是左邊的符號(symbol)被右邊的兩個可選符號中的任意一個替代,然后以遞歸的方式描述右邊的符號,直到右邊只剩下終結(jié)符為止,終結(jié)符是一種沒有書寫規(guī)則的符號,它們通常被放在引號中,是語言字符串集合中最基本的組成部分[23]。,在編輯器中新建一個內(nèi)容輔助類,該內(nèi)容輔助類監(jiān)聽TDL文本代碼的變化。doSaveDocument:將TDL文件保存在磁盤上。 可視化建模模塊可視化建模模塊,提供圖像化建模方式,支持TDL元素可視化表示和TDL可視化生成向?qū)?,支持TDL、UML、圖形化格式的多格式模型文件以及相關(guān)的導(dǎo)入導(dǎo)出,支持TDL到UML、UML到TDL的雙向映射,也支持模型文件的布局優(yōu)化、元素顏色區(qū)分和層次化展示。3. 可擴展?;緮?shù)據(jù)類型是構(gòu)建本類型系統(tǒng)的基本信息單位,廣泛用于局部類、參數(shù)列表、向量、SDO公共狀態(tài)中。本地類類似于C語言中的結(jié)構(gòu)體,不同支出在于,結(jié)構(gòu)體只能包含狀態(tài)數(shù)據(jù),而本地類可以包含方法,但本地類的方法不能進行遠程調(diào)用,而總是只能在本地(調(diào)用者進程內(nèi))調(diào)用。SDO類有以下特點:1. 它的狀態(tài)成員可以是基本類型2. 它的成員可以是指向自己的SDO指針,也可以是指向其它SDO的指針3. 它的狀態(tài)成員可以是向量,但SDO不能是向量中的成員4. 它的狀態(tài)成員可以是枚舉類型5. 它的狀態(tài)成員可以是本地類(local class)6. 它的狀態(tài)成員不能是消息(message)下面是一個SDO類的示例:class Duration{long seconds。 4浙江大學(xué)碩士學(xué)位論文 第2章相關(guān)知識介紹第2章 相關(guān)知識介紹本文的工作是開發(fā)TDL一體化模型構(gòu)建工具,因此需要對相關(guān)知識有所了解,主要是模型描述語言TDL和客戶端開發(fā)框架Eclipse RCP。闡述了課題的背景,介紹了虛擬試驗驗證技術(shù)的發(fā)展狀況,主要是美國的TENA框架的相關(guān)情況,最后說明了本文將要完成的工作內(nèi)容和研究意義。VPG是一個分布式、復(fù)雜的一體化虛擬試驗系統(tǒng),它為軍工產(chǎn)品開發(fā)的全過程提供支持,提高了產(chǎn)品的開發(fā)效率,降低了開發(fā)風(fēng)險和生產(chǎn)成本[10]。關(guān)鍵詞: TDL,框架代碼,文本編輯,編譯i浙江大學(xué)碩士學(xué)位論文 AbstractAbstractTest and Training Enabling Architecture (TENA) is a mon architecture being developed by for test and training munity,which provides architectural framework for the development, integration and interoperability of range test and training resources. Research our own Virtual Testing Enabling Architecture(VITA)is necessary because the test and training of military in the information process is facing many challenges. VIMT, which is an important part of the VITA, can improve the efficiency of model building, provide means for model testing and support model reusing. Based on the TDL language, this paper plete the model building tool by the Eclipse RCP development framework. This paper mainly plete the following aspects:1. According to the needs of the client, we