• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于XML的代碼自動生成技術(shù)在軟件開發(fā)中的應(yīng)用

      2017-06-27 08:14:18武建亮辛長平
      無線電通信技術(shù) 2017年4期
      關(guān)鍵詞:代碼生成分機(jī)配置文件

      武建亮,辛長平,楊 寧

      (1.中國電子科技集團(tuán)第五十四研究所,河北 石家莊 050081;2.河北遠(yuǎn)東通信系統(tǒng)工程有限公司,河北 石家莊 050081;3. 中國人民解放軍63615部隊,新疆 庫爾勒 841001)

      基于XML的代碼自動生成技術(shù)在軟件開發(fā)中的應(yīng)用

      武建亮1,辛長平2,楊 寧3

      (1.中國電子科技集團(tuán)第五十四研究所,河北 石家莊 050081;2.河北遠(yuǎn)東通信系統(tǒng)工程有限公司,河北 石家莊 050081;3. 中國人民解放軍63615部隊,新疆 庫爾勒 841001)

      針對航天測控工程監(jiān)控軟件的功能及開發(fā)維護(hù)過程中遇到的通用性差、接口依賴型強、代碼復(fù)用率低、開發(fā)效率低等問題,提出了基于XML的數(shù)據(jù)關(guān)系描述技術(shù)和代碼自動生成技術(shù)。能夠自動生成針對各分機(jī)的數(shù)據(jù)結(jié)構(gòu)類、數(shù)據(jù)處理類和分機(jī)界面。工程實踐證明,應(yīng)用該技術(shù)可以實現(xiàn)軟件代碼的快速開發(fā),具有開發(fā)周期短、適應(yīng)性強、可靠性高的特點。

      航天測控;XML;代碼自動生成

      0 引言

      目前航天測控工程中監(jiān)控軟件作為測控系統(tǒng)的監(jiān)控中心,擔(dān)負(fù)著整個系統(tǒng)設(shè)備的狀態(tài)監(jiān)視、參數(shù)設(shè)置、任務(wù)配置等功能,同時負(fù)責(zé)調(diào)度系統(tǒng)設(shè)備執(zhí)行各種自檢、測試、系統(tǒng)標(biāo)校、目標(biāo)捕獲以及測控任務(wù)的執(zhí)行等功能。監(jiān)控軟件通過網(wǎng)絡(luò)、串口等多種通信方式與系統(tǒng)內(nèi)各分機(jī)或分系統(tǒng)進(jìn)行信息交互。隨著測控系統(tǒng)設(shè)備的功能越來越全,設(shè)備越來越多,監(jiān)控軟件的開發(fā)越來越復(fù)雜,需要花費大量人力、時間去進(jìn)行接口的編碼、調(diào)試和測試,而且接口在發(fā)生變動時(經(jīng)常發(fā)生),維護(hù)和修改也會耗費大量時間。由不同人員編寫的代碼質(zhì)量不盡相同,導(dǎo)致目前航天測控工程監(jiān)控軟件存在開發(fā)效率低、可維護(hù)性差、通用性差、接口依賴型強、代碼復(fù)用率低、功能模塊耦合度高等問題。

      為了解決上述問題,本著統(tǒng)一、高效、快速、可靠的設(shè)計思想,提出了在監(jiān)控軟件開發(fā)過程中使用基于XML[1-3]配置文件的代碼生成技術(shù),應(yīng)用此技術(shù)能自動生成針對各分機(jī)的數(shù)據(jù)結(jié)構(gòu)類、數(shù)據(jù)處理類和分機(jī)界面,從而實現(xiàn)監(jiān)控軟件的快速開發(fā),同時提高軟件的可靠性,也使監(jiān)控軟件代碼的通用性、可維護(hù)性大大增強。

      1 設(shè)計思想

      為了自動生成監(jiān)控軟件針對各分機(jī)的數(shù)據(jù)結(jié)構(gòu)類、數(shù)據(jù)處理類和分機(jī)管理界面,需要解決的主要問題包括:

      ① 采用可描述性語言對每個外部接口的數(shù)據(jù)幀格式、內(nèi)外部接口數(shù)據(jù)元素、內(nèi)外部接口數(shù)據(jù)元素格式轉(zhuǎn)換方式、參數(shù)執(zhí)行結(jié)果等關(guān)系進(jìn)行描述;

      ② 利用數(shù)據(jù)和函數(shù)代碼生成技術(shù),將外部接口幀格式、外部接口命令幀、內(nèi)外數(shù)據(jù)元素轉(zhuǎn)換、參數(shù)執(zhí)行結(jié)果比對等關(guān)系轉(zhuǎn)換為數(shù)據(jù)類和函數(shù)體;

      ③ 利用窗體界面代碼生成技術(shù),生成設(shè)備狀態(tài)監(jiān)視窗體用于監(jiān)視各分機(jī)設(shè)備工作參數(shù)和設(shè)備狀態(tài);

      ④ 利用窗體界面代碼生成技術(shù),生成設(shè)備參數(shù)設(shè)置和控制窗體用于進(jìn)行分機(jī)設(shè)備控制。

      采用基于XML的配置文件來對每個外部接口的數(shù)據(jù)幀格式、內(nèi)外部接口數(shù)據(jù)元素、內(nèi)外部接口數(shù)據(jù)元素格式轉(zhuǎn)換方式、參數(shù)執(zhí)行結(jié)果等關(guān)系進(jìn)行描述,同時利用配置文件中描述的分機(jī)接口信息生成對應(yīng)的分機(jī)數(shù)據(jù)結(jié)構(gòu)類、分機(jī)設(shè)備處理類、分機(jī)人機(jī)界面中的參數(shù)設(shè)置界面,實現(xiàn)監(jiān)控軟件的高效快速開發(fā)。

      2 XML配置文件設(shè)計

      XML是萬維網(wǎng)聯(lián)盟(World Wide Web Consortium,W3C)發(fā)布的一種標(biāo)準(zhǔn),是標(biāo)準(zhǔn)通用標(biāo)記語言(Standard Generalized Markup Language,SGML)的一個簡化子集。XML遵循嚴(yán)格語法規(guī)范,實現(xiàn)了數(shù)據(jù)存儲格式結(jié)構(gòu)化,具有擴(kuò)展性好、數(shù)據(jù)共享與重用簡單和網(wǎng)絡(luò)傳輸方便等優(yōu)點,已成為一種通用的數(shù)據(jù)交換標(biāo)準(zhǔn)[4-8]。

      XML配置文件描述內(nèi)容主要包括:

      ① 對分機(jī)外部接口數(shù)據(jù)元素及分機(jī)命令幀格式進(jìn)行描述;

      ② 對分機(jī)處理類內(nèi)部數(shù)據(jù)元素進(jìn)行定義,并定義內(nèi)部數(shù)據(jù)元素與外部接口數(shù)據(jù)元素之間的轉(zhuǎn)換關(guān)系;

      ③ 對分機(jī)下發(fā)參數(shù)和匯報參數(shù)比對關(guān)系進(jìn)行描述。

      接口的規(guī)范化描述如圖1所示。其中,圖1(a)為數(shù)據(jù)元素的規(guī)范化描述,將分機(jī)接口中每一個數(shù)據(jù)元素包含12個屬性,即序號(關(guān)鍵字,不能重復(fù))、名稱、數(shù)據(jù)類型、量化單位、步進(jìn)、最大值、最小值、默認(rèn)值、單位、格式、描述、顯示選擇;圖1(b)為接口命令的規(guī)范描述,具體屬性包括命令名稱、命令標(biāo)識、數(shù)據(jù)長度和命令內(nèi)容(與接口數(shù)據(jù)元素對應(yīng));圖1(c)為接口轉(zhuǎn)換的規(guī)范化描述,屬性包括:主數(shù)據(jù)元素序號、名稱、子數(shù)據(jù)元素個數(shù)和子數(shù)據(jù)元素[9-10,15,16]。表1為XML配置文件列表。

      (a)數(shù)據(jù)元素表

      (b)命令組織關(guān)系表

      表1 配置文件列表

      序號配置文件名稱用途11.xml發(fā)數(shù)據(jù)元素集合22.xml收數(shù)據(jù)元素集合33.xml內(nèi)部數(shù)據(jù)元素集合44.xml參數(shù)比對結(jié)果數(shù)據(jù)元素集合55.xml發(fā)命令與發(fā)數(shù)據(jù)元素對應(yīng)表66.xml接命令與收數(shù)據(jù)元素對應(yīng)表77.xml發(fā)枚舉數(shù)據(jù)元素枚舉項列舉88.xml收枚舉數(shù)據(jù)元素枚舉項列舉99.xml收發(fā)數(shù)據(jù)元素對應(yīng)關(guān)系1010.xml收數(shù)據(jù)元素與內(nèi)部數(shù)據(jù)元素轉(zhuǎn)換關(guān)系

      3 代碼自動生成技術(shù)

      3.1 生成數(shù)據(jù)結(jié)構(gòu)類

      利用配置文件中描述的分機(jī)接口信息生成對應(yīng)的分機(jī)數(shù)據(jù)結(jié)構(gòu)類代碼。生成數(shù)據(jù)結(jié)構(gòu)類代碼的過程由SmcuMaker_Data類完成,SmcuMaker_Data類視圖如圖2所示。

      圖2 SmcuMaker_Data類視圖

      SmcuMaker_Data類實現(xiàn)的主要功能函數(shù)包括:

      ① Create_DataClass:根據(jù)生成數(shù)據(jù)結(jié)構(gòu)類文件;

      ② Create_Macro:根據(jù)生成分機(jī)地址、命令字的宏定義;

      ③ Create_CmdData:根據(jù)每個命令生成對應(yīng)的結(jié)構(gòu),包含初始化函數(shù)。

      3.2 生成分機(jī)設(shè)備處理類

      利用配置文件中描述的分機(jī)接口信息生成分機(jī)設(shè)備處理類,每一個外部分機(jī)生成一個對應(yīng)的設(shè)備處理類。生成分機(jī)設(shè)備處理類代碼的過程由SmcuMaker_Dev類完成,SmcuMaker_Dev類視圖如圖3所示。

      圖3 SmcuMaker_Dev類視圖

      3.3 生成人機(jī)界面

      利用配置文件中描述的分機(jī)接口信息生成分機(jī)人機(jī)界面中工作量最大的參數(shù)設(shè)置界面,每一個外部分機(jī)生成一個對應(yīng)的監(jiān)控界面。生成分機(jī)參數(shù)設(shè)置界面的過程由SmcuMaker_View類完成,SmcuMaker_View類視圖如圖4所示。

      圖4 SmcuMaker_View類視圖

      ① Create_ViewClass:根據(jù)生成界面;

      ② Create_Attribute:界面類屬性定義,包括界面控件和命令數(shù)據(jù)對象,利用設(shè)置數(shù)據(jù)元素表和下發(fā)命令與數(shù)據(jù)元素對應(yīng)關(guān)系表為每個單命令中的數(shù)據(jù)元素創(chuàng)建名稱控件(Label,用于顯示數(shù)據(jù)元素名稱)和輸入(顯示)控件,輸入(顯示)控件根據(jù)數(shù)據(jù)元素格式選擇,目前支持浮點輸入、十六進(jìn)制輸入、文本輸入、枚舉輸入和十進(jìn)制輸入;

      ③ Create_CmdData:根據(jù)為每個命令生成對應(yīng)的結(jié)構(gòu),包含初始化函數(shù);

      ④ 分機(jī)包含多個單元時,使用頁簽進(jìn)行區(qū)分,并且為每個單元創(chuàng)建設(shè)置和更改按鈕。

      4 仿真實驗對比

      為驗證本文方法,統(tǒng)計了手動編碼與代碼自動生成兩種方式開發(fā)一個工程監(jiān)控軟件中標(biāo)準(zhǔn)模式基帶分機(jī)管理模塊的工作量、時間、代碼質(zhì)量并做統(tǒng)計比對。從表2可知編寫數(shù)據(jù)結(jié)構(gòu)類的效率稍高,代碼錯誤率稍低,但從表3和表4可知編寫分機(jī)管理類和人機(jī)界面時,使用XML自動生成方式比手動編碼節(jié)省大約90人時的工作量,總工作量節(jié)省大約85人時,代碼錯誤率大幅降低。

      手動編碼方式在軟件開發(fā)的各個階段都可能存在錯誤,而且由于編碼人員水平不同導(dǎo)致代碼質(zhì)量也參差不齊,而使用代碼自動生成技術(shù)開發(fā)軟件時僅在前期開發(fā)和調(diào)試代碼生成器時投入較大工作量,一旦代碼生成器調(diào)試完成,軟件編碼工作可轉(zhuǎn)換為編寫配置文件。

      通過實驗證明代碼自動生成技術(shù)可提高軟件的開發(fā)效率、可靠性和代碼的可維護(hù)性[11-14]。

      表2 手動與代碼生成工程實驗對比-數(shù)據(jù)結(jié)構(gòu)類

      開發(fā)方式行數(shù)工作量(人時)代碼(XML)錯誤率/%可維護(hù)性手動編寫數(shù)據(jù)結(jié)構(gòu)類4552452好編寫XML文件2265503好

      表3 手動與代碼生成工程實驗對比-分機(jī)管理類

      開發(fā)方式代碼行數(shù)工作量(人時)代碼(XML)錯誤率/%可維護(hù)性手動編碼55355618差代碼生成5561<13好

      表4 手動與代碼生成工程實驗對比-人機(jī)界面類

      開發(fā)方式代碼行數(shù)工作量(人時)代碼(XML)錯誤率/%可維護(hù)性手動編碼143753613差代碼生成18585<13好

      5 結(jié)束語

      提出通過XML配置文件的方式對監(jiān)控軟件與各外部分機(jī)之間的接口進(jìn)行描述,并使用代碼生成技術(shù)生成相應(yīng)的數(shù)據(jù)結(jié)構(gòu)類、設(shè)備分機(jī)處理類和人機(jī)界面。該方法較以往的接口開發(fā)流程在效率和正確率方面有顯著提高,可將傳統(tǒng)的代碼驗證變?yōu)樯梢?guī)則驗證,只要規(guī)則正確,生產(chǎn)的代碼就完全正確,因此該方法可適用于多個領(lǐng)域的監(jiān)控軟件開發(fā)。

      [1] Meixner G,Seissler M,Breiner K.Model-Drieven Useware Engineering [J].Model-Driven Development of Advanced User Interface,2011,340:1-26.

      [2] 王慶.XML約束在XML數(shù)據(jù)存儲、發(fā)布和轉(zhuǎn)換中的應(yīng)用[D].上海:復(fù)旦大學(xué),2004:15-17.

      [3] 馬俊,王曉磊.XML技術(shù)在數(shù)據(jù)集成與共享中的應(yīng)用[M].武漢:武漢華中科技大學(xué)出版社,2009.

      [4] 張瓊,黃翩.基于XML的代碼自動生成工具[J].電子科技,2015,28(2):95-97.

      [5] 趙軍. 基于模板的代碼生成器的研究與實現(xiàn)[J]. 長春師范學(xué)院學(xué)報,2011(12):28-34.

      [6] 苗維杰,李天輝.基于XML代碼生成技術(shù)的應(yīng)用研究[J]. 電子元器件應(yīng)用,2009(10):75-78 .

      [7] 楊皓,楊忠,吳愚.基于XML腳本的代碼生成技術(shù)及其應(yīng)用[J].電腦知識與技術(shù),2009(07):1712-1713.

      [8] 范秋生.XML的代碼生成器的設(shè)計與實現(xiàn)[J].長江大學(xué)報(自然科學(xué)版)理工卷,2008(01):211-212.

      [9] 王明,劉立新,張核銘,等.基于.NET平臺的生產(chǎn)管理系統(tǒng)設(shè)計與實現(xiàn)[J].無線電工程,2008,38(5):10-12.

      [10]孫婧,劉瑩,孟景濤,等.基于XML的軟件通用程序框架[J].無線電工程,2015,45(6):25-27.

      [11]狄彩云,張英,狄衛(wèi)國,等.航天測控通信中指定源組播的技術(shù)研究[J].無線電工程,2014,44(9):5-7.

      [12]孫偉杰,張曉欣,畢嘉鴻,等.C程序代碼結(jié)構(gòu)審查算法的研究與實現(xiàn)[J].無線電工程,2013,39(3):89-92.

      [13]張晶,黃小峰.基于業(yè)務(wù)模型和界面模型的代碼生成工具[J].電腦與信息技術(shù),2016,24(5):2-15.

      [14]孫偉杰,張曉欣,畢嘉鴻,等.C程序代碼結(jié)構(gòu)審查算法的研究與實現(xiàn)[J].無線電工程,2013,39(3):89-92.

      [15]接卉,蘭雨晴,駱 沛.一種關(guān)鍵字驅(qū)動的自動化測試框架[J]. 計算機(jī)應(yīng)用研究,2009,26(3):927-929.

      [16]戴建國,郭 理,曹傳東.JUnit框架剖析[J]. 計算機(jī)與數(shù)字工程,2008(08):43-45.

      Application of XML-based Code Auto-generation Technique in Aerospace TT&C Software Development

      WU Jian-liang1,XIN Chang-ping2,YANG Ning3

      (1. The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China;2. Hebei Far-East Communication System Engineering Co.,Ltd,Shijiazhuang Hebei 050081,China;3. Unit 63615,PLA,Kuerle Xinjiang 841001,China)

      In order to solve the problems such as the low generality,high dependence on interface,low code sharing rate and low development efficiency during the software development of aerospace TT&C system,this paper proposes a solution based on the technique of data relation description based on XML and code auto-generation. Through this solution,the classes of data structure,data processing and interface of sub-system for each sub-system can be automatically generated. The engineering practice has proven that by using the proposed technique,fast development of software code can be implemented,and advantages such as short development circle,good adaptability and high reliability can be achieved.

      aerospace TT&C;XML;code auto-generation

      10. 3969/j.issn. 1003-3114. 2017.04.24

      武建亮,辛長平,楊寧.基于XML的代碼自動生成技術(shù)在軟件開發(fā)中的應(yīng)用[J].無線電通信技術(shù),2017,43(4):101-104.

      [WU Jianliang,XIN Changping,YANG Ning. Application of XML-based Code Auto-generation Technique in Aerospace TT&C Software Development [J]. Radio Communications Technology,2017,43(4):101-104. ]

      2017-03-20

      國家高技術(shù)研究發(fā)展計劃(863計劃)項目(2013AA122904)

      武建亮(1984—),男,工程師,主要研究方向:航天測控。辛長平(1983—),女,工程師,主要研究方向:信息系統(tǒng)開發(fā)。

      TP311

      A

      1003-3114(2017)04-101-4

      猜你喜歡
      代碼生成分機(jī)配置文件
      提示用戶配置文件錯誤 這樣解決
      基于無線技術(shù)的鐵路客車火災(zāi)報警裝置設(shè)計概述
      Lustre語言可信代碼生成器研究進(jìn)展
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      一種通用的硬幣清分機(jī)設(shè)計
      電子制作(2018年23期)2018-12-26 01:01:02
      寬帶接入網(wǎng)環(huán)境下區(qū)間電調(diào)分機(jī)接入方式研究
      忘記ESXi主機(jī)root密碼怎么辦
      某型微波著陸引導(dǎo)設(shè)備模擬訓(xùn)練系統(tǒng)設(shè)計
      電子制作(2017年16期)2018-01-30 07:15:14
      代碼生成技術(shù)在軟件開發(fā)中的應(yīng)用
      電子世界(2016年15期)2016-08-29 02:14:28
      镇平县| 镇雄县| 沙湾县| 磐安县| 拉萨市| 嘉荫县| 平果县| 都安| 金华市| 仁怀市| 林甸县| 玉林市| 昭通市| 蓬安县| 辽阳县| 京山县| 永仁县| 额尔古纳市| 成武县| 汕尾市| 白银市| 南皮县| 满城县| 泊头市| 五峰| 裕民县| 溆浦县| 成武县| 运城市| 大洼县| 子长县| 金堂县| 宁陵县| 大宁县| 稻城县| 余干县| 兴隆县| 旬阳县| 巩留县| 田林县| 肇源县|