国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于代碼自動(dòng)生成的計(jì)算機(jī)輔助系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2015-12-05 05:11:20李麗萍孟小豐劉立輝
航天控制 2015年4期
關(guān)鍵詞:代碼生成時(shí)序表格

李麗萍 孟小豐 劉立輝

北京航天自動(dòng)控制研究所,北京100854

隨著航天技術(shù)的不斷發(fā)展,軟件的應(yīng)用范圍越來(lái)越廣,其中一類非常重要的軟件——時(shí)序控制軟件,其主要功能是按照一定的時(shí)間邏輯序列,完成飛行任務(wù)過(guò)程中實(shí)時(shí)控制指令的接收與發(fā)送。此類軟件的特征是:在基線狀態(tài)建立后,后續(xù)的每次任務(wù)中僅需要對(duì)軟件中的數(shù)據(jù)進(jìn)行局部修改,程序的框架和具體功能不變化。

在航天軟件研制過(guò)程中,傳統(tǒng)的采用手動(dòng)編寫軟件代碼的研制模式逐漸顯露出各種弊端,其基于人工手動(dòng)進(jìn)行軟件更改的方式越來(lái)越難以適應(yīng)現(xiàn)代高速發(fā)展的控制系統(tǒng)時(shí)序軟件的復(fù)雜性,存在效率低下與錯(cuò)誤率高等許多缺點(diǎn)。軟件生成的方法與手段的落后,在一定程度上浪費(fèi)人力資源,影響設(shè)計(jì)質(zhì)量,因此進(jìn)行時(shí)序類軟件自動(dòng)生成技術(shù)和方法研究是非常有意義的。

時(shí)序軟件代碼自動(dòng)生成的計(jì)算機(jī)輔助系統(tǒng)是實(shí)現(xiàn)從原始的任務(wù)輸入文件(一般為WORD 文件)到目標(biāo)代碼文件的自動(dòng)生成集成環(huán)境,它的主要優(yōu)點(diǎn)在于以圖形界面的方式向用戶提供了可視化的軟件自動(dòng)生成工作環(huán)境,實(shí)現(xiàn)任務(wù)語(yǔ)言到軟件代碼的智能轉(zhuǎn)換,具有效率高、質(zhì)量可靠、通用性強(qiáng)及人機(jī)界面友好的特點(diǎn)。該系統(tǒng)使軟件的生成工作變的直觀、簡(jiǎn)單,并且該系統(tǒng)還兼顧了對(duì)測(cè)試結(jié)果進(jìn)行判斷的功能,進(jìn)一步確保軟件的可靠性。

1 系統(tǒng)設(shè)計(jì)總體思路

時(shí)序控制軟件主要功能是實(shí)現(xiàn)時(shí)序的發(fā)送功能,主要是以順序執(zhí)行的方式進(jìn)行,即到一定時(shí)間發(fā)送一個(gè)時(shí)串以控制箭體完成某種動(dòng)作,時(shí)序時(shí)串的時(shí)間值來(lái)源于系統(tǒng)任務(wù)書中的時(shí)序時(shí)串表。其程序的主體適用瀑布式通用程序框架,主要是任務(wù)要求的時(shí)序時(shí)串?dāng)?shù)值、數(shù)量及組合發(fā)生變化,并且這些時(shí)序的發(fā)送功能相似,不同之處也有規(guī)律可循,因此可實(shí)現(xiàn)自動(dòng)生成的方式完成時(shí)序時(shí)串代碼的生成工作和測(cè)試數(shù)據(jù)輔助判讀工作。時(shí)序控制軟件的自動(dòng)生成應(yīng)實(shí)現(xiàn)從軟件任務(wù)書(Word 文檔)到最終軟件代碼的自動(dòng)識(shí)別、自動(dòng)轉(zhuǎn)換、自動(dòng)生成、單元測(cè)試輔助判讀,因此應(yīng)具有以下功能:

1)自動(dòng)識(shí)別:讀取系統(tǒng)提供的任務(wù)書中的有效數(shù)據(jù),如時(shí)序時(shí)串表格,進(jìn)行逐行掃描,獲取包括火箭級(jí)數(shù)、待轉(zhuǎn)換的時(shí)串名稱等有效信息(同時(shí)兼容Office 多個(gè)版本),進(jìn)行規(guī)格化檢查后得到規(guī)格化的原始數(shù)據(jù);

2)自動(dòng)轉(zhuǎn)換:原始數(shù)據(jù)完成規(guī)格化處理后,按照代碼轉(zhuǎn)換規(guī)則(時(shí)串外部地址規(guī)則文件和地址內(nèi)存規(guī)則文件),轉(zhuǎn)換成帶有注釋的中間代碼,并且自動(dòng)轉(zhuǎn)換可適應(yīng)不同數(shù)據(jù)規(guī)格和數(shù)據(jù)量的變化;

3)自動(dòng)生成:選擇所需生成的時(shí)串級(jí)別,將中間代碼插入指定的源代碼模版文件后自動(dòng)生成程序源代碼,編譯連接按鈕一鍵生成最終的代碼執(zhí)行程序;

4)單元測(cè)試輔助判讀:生成與單元測(cè)試結(jié)果格式一致的結(jié)果文件,與人工測(cè)試的單元測(cè)試結(jié)果進(jìn)行比對(duì),可設(shè)置判讀門限,將不一致的地方標(biāo)出,以供測(cè)試人員進(jìn)行使用。

2 計(jì)算機(jī)輔助系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

該系統(tǒng)應(yīng)具有原始數(shù)據(jù)自動(dòng)識(shí)別功能、中間數(shù)據(jù)的自動(dòng)轉(zhuǎn)換功能、軟件代碼的自動(dòng)生成及測(cè)試結(jié)果的自動(dòng)判讀功能?;谶@些功能,本系統(tǒng)可設(shè)計(jì)為3 層:表示層、業(yè)務(wù)層和I/O 層。其中I/O 層是軟件的最底層,負(fù)責(zé)文檔的讀取和代碼存盤;業(yè)務(wù)層為中間層,負(fù)責(zé)代碼轉(zhuǎn)換規(guī)則的管理以及具體的代碼生成工作;表示層為最上層,為軟件與用戶的接口,主要包括圖形界面元素。表示層、業(yè)務(wù)層和I/O 層3 級(jí)層次間的總體框架設(shè)計(jì),可實(shí)現(xiàn)底層的原始數(shù)據(jù)讀取及格式轉(zhuǎn)換,業(yè)務(wù)層的規(guī)則提取、數(shù)據(jù)分析及代碼的自動(dòng)生成。最后通過(guò)表示層提交輔助自動(dòng)生成的結(jié)果,圖1 為軟件的總體框架設(shè)計(jì)圖。

圖1 軟件的總體框架設(shè)計(jì)圖

2.1 I/O 層

I/O 層是軟件的最底層,包括3個(gè)功能模塊,分別是TXT 文件存儲(chǔ)模塊,TXT 文件讀取模塊和WORD 表格讀取模塊,這3個(gè)功能模塊相互獨(dú)立,完成文檔處理功能。

1)Word 文檔讀取

主要負(fù)責(zé)讀取Microsoft Word 程序文檔,以及將轉(zhuǎn)換好的代碼保存到磁盤。該層是針對(duì)Microsoft Office 的VBA 編程接口的抽象層,對(duì)VBA 接口進(jìn)行了封裝,同時(shí)封裝了Windows 操作系統(tǒng)下的文件操作接口。該技術(shù)應(yīng)同時(shí)兼容Office 多個(gè)版本,本軟件使用2個(gè)類進(jìn)行Word 文檔讀取,其中一個(gè)類負(fù)責(zé)WORD 文檔操作部分,主要包括WORD 文檔的打開、關(guān)閉,選取表格,控制文檔的顯示等功能;另一個(gè)類負(fù)責(zé)WORD 表格操作部分,主要包括WORD表格內(nèi)容的讀取,獲取表格的行列總數(shù)等功能。

2)文本讀取與保存

程序中針對(duì)文本操作的輸入輸出模塊用于訪問(wèn)代碼生成中使用的指令模板。本軟件的指令模板直接以文本方式存放在軟件文件夾中。文本操作模塊同時(shí)具備索引功能,可以在代碼文件中找到指定的標(biāo)志文本位置,并將代碼插入指定位置中。

2.2 業(yè)務(wù)層

業(yè)務(wù)層是軟件的中間層,也是核心層。其主要完成讀取時(shí)串名稱與外部地址和內(nèi)存映射等規(guī)則,分析時(shí)序時(shí)串表,并得到級(jí)別數(shù)量等信息,根據(jù)規(guī)則生成匯編程序代碼等工作。代碼生成器參考代碼模板,并將最終生成代碼交由I/O 層的文本保存模塊保存到磁盤。

1)規(guī)則管理器

用于管理代碼生成過(guò)程所需的各個(gè)時(shí)串外部地址和內(nèi)存地址,以及代碼的模板。負(fù)責(zé)讀取規(guī)則表格和代碼模板并記錄在內(nèi)存中,同時(shí)還具有規(guī)則一致性檢查功能,可以檢查2個(gè)規(guī)則文件中是否有不一致的內(nèi)容。本軟件在用戶選擇規(guī)則文件后執(zhí)行規(guī)則的初始化工作,并使用2個(gè)類分別管理外部地址規(guī)則和內(nèi)存規(guī)則。

2)文檔分析器

用于對(duì)待轉(zhuǎn)換的時(shí)序時(shí)串表格進(jìn)行預(yù)處理,掃描表格中的所有行列,記錄有效的時(shí)串步序號(hào),為代碼生成工作做準(zhǔn)備。

3)數(shù)據(jù)綜合

為代碼生成器的數(shù)據(jù)提供模塊,該模塊從規(guī)則管理器中找到符合規(guī)則的模板內(nèi)容和地址信息,將其提供給代碼生成器,數(shù)據(jù)綜合管理了所有的規(guī)則、代碼模板以及相應(yīng)的緩存和狀態(tài)信息。

4)代碼生成器

為核心模塊之一,其功能為將數(shù)據(jù)綜合模塊提供的代碼模板組合起來(lái),然后使用相應(yīng)的規(guī)則信息對(duì)模板中的關(guān)鍵字段進(jìn)行替換,從而生成相應(yīng)的程序代碼。使用關(guān)鍵字替換功能,將需要?jiǎng)討B(tài)指定的內(nèi)容定義為關(guān)鍵字,然后從數(shù)據(jù)綜合模塊獲得關(guān)鍵字的指定信息,然后進(jìn)行文本替換,使用多個(gè)代碼模板聯(lián)合生成最終代碼。

5)測(cè)試結(jié)果分析

測(cè)試結(jié)果分析模塊將測(cè)試工具的輸出文本信息與規(guī)則管理器中的相應(yīng)規(guī)則進(jìn)行對(duì)比,標(biāo)識(shí)出不符合規(guī)則的內(nèi)容。由于測(cè)試結(jié)果分析同樣需要使用時(shí)串規(guī)則等內(nèi)容,因此主要功能實(shí)現(xiàn)在數(shù)據(jù)綜合模塊中。具體實(shí)現(xiàn)和接口參考數(shù)據(jù)綜合模塊。

6)代碼檢查

代碼檢查模塊可以對(duì)已生成的代碼進(jìn)行一定的合法性檢查,其中包括代碼的標(biāo)號(hào)唯一性檢查和代碼的長(zhǎng)度檢查。為方便日后擴(kuò)展功能,代碼檢查功能放置在一個(gè)單獨(dú)的模塊文件中。

2.3 表示層

表示層主要包含用戶的圖形界面模塊,用戶可以通過(guò)表示層與本軟件進(jìn)行交互。本軟件使用基于Microsoft Office 的圖形界面,在界面中分別有相應(yīng)的控制按鈕響應(yīng)用戶指令。同時(shí),用戶界面有防止誤操作的功能,用戶無(wú)法進(jìn)行非法的指令輸入。

本軟件具有代碼的基本編輯功能,其中包括代碼的可視化編輯,代碼查找、打印、剪切、復(fù)制和粘貼及代碼定位等功能。為方便將生成代碼插入到文件的指定位置,本模塊還有一鍵生成插入標(biāo)志的功能,如圖2 所示。

圖2 代碼編輯與顯示示意圖

使用Xtreme ToolkitPro 提供的第三方控件實(shí)現(xiàn)。其中包括CXTPSyntaxEditView 代碼編輯視圖、CXTPTabClientWnd 框架視圖、CXTPDockingPaneManager ??抗芾砥骱虲XTPCommandBars 工具欄等。

1)規(guī)則管理

規(guī)則管理界面主要用于加載和檢查時(shí)串外部地址規(guī)則和內(nèi)存規(guī)則。成功加載后,規(guī)則信息會(huì)在規(guī)則管理窗口中顯示。對(duì)于規(guī)則檢查,如果工具發(fā)現(xiàn)當(dāng)前規(guī)則與已讀入規(guī)則有不一致的地方,會(huì)以提示框的形式顯示,如圖3 所示。該部分使用了??繖诩恿斜砜蚩丶慕Y(jié)構(gòu)。

圖3 規(guī)則管理界面示意圖

2)代碼生成

代碼生成的用戶界面主要由幾個(gè)生成控制按鈕組成,其中包括時(shí)序時(shí)串文件的加載和時(shí)序的選擇等,如圖4 所示。該功能通過(guò)響應(yīng)工具欄上的指定命令按鈕實(shí)現(xiàn)。同時(shí),對(duì)于需要配置信息的指令,程序還會(huì)從指定配置欄中讀取相應(yīng)信息。

3)測(cè)試結(jié)果分析

測(cè)試結(jié)果可以在用戶界面上以類似加載程序文件的方式顯示。在讀入結(jié)果文件后,會(huì)將其數(shù)據(jù)與工具中已加載的規(guī)則進(jìn)行對(duì)比分析,將不一致的內(nèi)容以特殊符號(hào)“* ”標(biāo)識(shí)出來(lái),如圖5 所示,該部分的界面實(shí)現(xiàn)與代碼生成類似,同樣使用工具欄響應(yīng)函數(shù)。

圖4 代碼生成界面示意圖

圖5 測(cè)試結(jié)果分析界面示意圖

3 實(shí)際應(yīng)用

時(shí)序軟件代碼自動(dòng)生成工具的使用過(guò)程設(shè)計(jì)為以下步驟:

1)代碼生成

在代碼生成之前,需要由用戶選擇包含轉(zhuǎn)換規(guī)則的Word 文檔文件,其中包括時(shí)串外部地址規(guī)則文件和地址內(nèi)存規(guī)則文件。工具讀取規(guī)則后,會(huì)將讀取的規(guī)則數(shù)量顯示在界面中,供用戶確認(rèn)。

確定轉(zhuǎn)換規(guī)則后,用戶可以選擇待轉(zhuǎn)換的時(shí)序時(shí)串表格文件。點(diǎn)擊“時(shí)序時(shí)串”命令,程序會(huì)將含有該文件的Word 程序窗口彈出,提示用戶選擇需要轉(zhuǎn)換的表格。用戶可以選擇指定表格或?qū)⒐鈽?biāo)置于待轉(zhuǎn)換表格中,然后點(diǎn)擊用戶界面上的讀取時(shí)序信息按鈕,軟件對(duì)該文件進(jìn)行分析,讀取表格信息,包括級(jí)別個(gè)數(shù)、待轉(zhuǎn)換的時(shí)串名稱等,并將分析的結(jié)果信息呈現(xiàn)在用戶界面中。

成功分析時(shí)序時(shí)串表格后,用戶就可以在界面上選擇所需生成的時(shí)串級(jí)別,并指定代碼文件。在生成代碼前,可以使用代碼編輯的“標(biāo)記”功能插入指定標(biāo)記,自動(dòng)生成的代碼將填入標(biāo)記所指定的位置。用戶點(diǎn)擊“生成代碼”按鈕后,程序?qū)⑸勺罱K的代碼文件,在找到指定插入標(biāo)記的情況下,代碼會(huì)被插入到指定位置,否則代碼會(huì)覆蓋整個(gè)文件。

2)代碼檢查

在完成代碼生成或加載后,即可使用代碼檢查功能。當(dāng)前本工具支持“標(biāo)志檢查”和“長(zhǎng)度檢查”功能。在點(diǎn)擊相應(yīng)功能按鈕后,程序?qū)⒅鹦蟹治霎?dāng)前代碼行,并執(zhí)行相應(yīng)檢查。

3)代碼編譯

使用批處理文件執(zhí)行代碼編譯工作,批處理內(nèi)容如圖6 所示。其中“%1”參數(shù)為當(dāng)前已生成或已加載的代碼文件名稱,“%2”參數(shù)為工具生成的臨時(shí)文件,該文件作為“hexobj”指令的輸入,提供指令的輸入?yún)?shù)。

圖6 編譯批處理文件內(nèi)容

4)規(guī)則和時(shí)序時(shí)串表格正確性檢查

本軟件可分別針對(duì)地址規(guī)則表格、內(nèi)存規(guī)則表格和時(shí)序時(shí)串表格進(jìn)行正確性檢查。

針對(duì)地址規(guī)則表格和內(nèi)存規(guī)則表格,主要檢查內(nèi)容為規(guī)則數(shù)量是否一致,每個(gè)時(shí)串對(duì)應(yīng)的外部地址是否一致,外部地址與內(nèi)存地址的映射規(guī)則是否一致。

針對(duì)時(shí)序時(shí)串表格,本工具首先分析表格格式是否合法。如果合法,則在此基礎(chǔ)上分析時(shí)序時(shí)串的數(shù)量以及對(duì)應(yīng)級(jí)別、各項(xiàng)時(shí)間值是否一致等。

對(duì)于以上檢查不一致的情況,系統(tǒng)將提示錯(cuò)誤并將詳細(xì)信息保存在日志文件中。

5)測(cè)試結(jié)果分析

測(cè)試結(jié)果分析同樣需要加載規(guī)則參數(shù)以及時(shí)序時(shí)串表格,其加載過(guò)程與代碼生成相同。成功分析時(shí)序時(shí)串表格后,用戶可以在界面上選擇所需讀取的測(cè)試結(jié)果類型,其中包括“定時(shí)測(cè)試”和“允許測(cè)試”?!岸〞r(shí)測(cè)試”直接使用測(cè)試結(jié)果文件中的時(shí)間值進(jìn)行分析,“允許測(cè)試”則將結(jié)果文件中的時(shí)間值加上“補(bǔ)償時(shí)間”值進(jìn)行分析。分析工程將以已加載的時(shí)序時(shí)串表格為基礎(chǔ),對(duì)測(cè)試結(jié)果文件進(jìn)行逐行分析,當(dāng)無(wú)法找到指定結(jié)果行時(shí),分析過(guò)程將停止并提示錯(cuò)誤。對(duì)于測(cè)試結(jié)果中的每一行,將在該行結(jié)尾處添加規(guī)則指定的時(shí)間或地址值,并將不匹配的值用特殊符號(hào)標(biāo)識(shí)。

4 結(jié)束語(yǔ)

目前,軟件代碼自動(dòng)生成技術(shù)正在逐漸走向?qū)嵱?。本文針?duì)控制系統(tǒng)時(shí)序控制軟件手工生成的現(xiàn)狀,提出了一種高效率、高可靠性的自動(dòng)生成方案,并設(shè)計(jì)完成了基于數(shù)據(jù)自動(dòng)生成的計(jì)算機(jī)輔助生成系統(tǒng),改進(jìn)了運(yùn)載器控制系統(tǒng)時(shí)序控制軟件生成的薄弱環(huán)節(jié),使得時(shí)序控制軟件生成的效率大大提高,節(jié)省了勞動(dòng)力成本,可以有效地實(shí)現(xiàn)控制系統(tǒng)時(shí)序控制軟件研制過(guò)程中的可靠性增長(zhǎng)。

[1]Thomas H Cormen,Charles E Leiserson,et al. 潘金貴,顧鐵成,等,譯. 算法導(dǎo)論[M]. 機(jī)械工業(yè)出版社,2006,9.

[2]David Simon,周瑜萍. et al. Visual C ++6 編程寶典[M].電子工業(yè)出版社,2006,5.

[3]Deke McClelland,Laurie UlrichFuller. 邱燕明,周瑜萍,等,譯. Photoshop CS2 寶典[M]. 電子工業(yè)出版社,2006,3.

[4]求是科技,編著. Visual C ++6.0 數(shù)據(jù)庫(kù)開發(fā)技術(shù)與工程實(shí)踐[M].人民郵電出版社,2004,1.

猜你喜歡
代碼生成時(shí)序表格
基于時(shí)序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識(shí)別研究
《現(xiàn)代臨床醫(yī)學(xué)》來(lái)稿表格要求
基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
Lustre語(yǔ)言可信代碼生成器研究進(jìn)展
統(tǒng)計(jì)表格的要求
統(tǒng)計(jì)表格的要求
統(tǒng)計(jì)表格的要求
一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
電子制作(2016年15期)2017-01-15 13:39:08
代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
電子世界(2016年15期)2016-08-29 02:14:28
基于XML的代碼自動(dòng)生成工具
電子科技(2015年2期)2015-12-20 01:09:20
湖南省| 西乌珠穆沁旗| 陕西省| 岑巩县| 茌平县| 永济市| 金川县| 万荣县| 上饶市| 蓬溪县| 镇安县| 阜城县| 绥棱县| 富裕县| 浠水县| 乐平市| 齐齐哈尔市| 嘉禾县| 台前县| 洛阳市| 吉水县| 石家庄市| 山阳县| 沂源县| 杭锦后旗| 临潭县| 平度市| 辽中县| 永兴县| 介休市| 秀山| 巢湖市| 韩城市| 虞城县| 锦屏县| 若羌县| 瓦房店市| 南雄市| 钟山县| 利津县| 长泰县|