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

?

彈載飛行控制軟件重用技術研究

2015-04-30 13:03劉思思劉迪盧娥
軟件導刊 2015年4期

劉思思 劉迪 盧娥

摘要摘要:針對彈載飛行控制軟件研制現(xiàn)狀,探討軟件重用的目的、意義及技術途徑;結(jié)合彈載飛行控制軟件的組成和設計原則,分析可重用軟件應滿足的基本條件;提出一種基于領域工程的彈載飛行控制軟件重用實施方法;從軟件工程化要求、編碼要求、軟件測試要求和硬件設計要求等方面建立彈載飛行控制軟件通用構件庫的可重用構件選取標準。最后,用實例說明了彈載飛行控制軟件重用的可操作性。

關鍵詞關鍵詞:彈載飛行控制軟件;軟件重用 ;可重用構件

DOIDOI:10.11907/rjdk.151201

中圖分類號:TP3-0

文獻標識碼:A文章編號文章編號:16727800(2015)004002304

0引言

我國航天事業(yè)正處于高速發(fā)展時期,型號發(fā)射任務密集,對彈載飛行控制軟件研制周期提出了更高要求。開發(fā)人員往往迫于項目壓力,優(yōu)先進行軟件產(chǎn)品開發(fā),而忽視軟件重用問題。當前彈載飛行控制軟件研制實行項目管理,不同項目團隊開發(fā)的軟件框架不同,開發(fā)人員所使用的數(shù)據(jù)結(jié)構也不同,軟件重用難以推廣。此外,不同型號彈載計算機硬件平臺的不同,也直接導致了底層驅(qū)動軟件的不可重用。

1彈載飛行控制軟件重用

1.1軟件重用的目的和意義

早期的彈載計算機電路是由模擬電路搭建而成的,隨著電子技術的發(fā)展,彈載計算機電路設計實現(xiàn)了數(shù)字化,彈載飛行控制軟件研制快速興起。但受現(xiàn)實條件的約束,每個型號彈載飛行控制軟件研制都不得不重復編碼、測試、調(diào)試、編寫文檔、系統(tǒng)聯(lián)調(diào)等工作。

當前彈載飛行控制軟件研制工作量大、時間緊、任務重,從開發(fā)效率、企業(yè)成本,以及軟件工程化、標準化、軟件測試等角度考慮,實施彈載飛行控制軟件重用迫在眉睫。彈載飛行控制軟件不同于其它商業(yè)軟件,需要找到符合自身特點的重用技術途徑和實施方法。

1.2軟件重用的技術途徑

軟件重用的技術包括庫函數(shù)、模板、面向?qū)ο?、設計模式、組件、框架、構架等。圖1為軟件重用的主要技術、實現(xiàn)途徑以及實例。

面向?qū)ο蠹夹g主要針對使用面向?qū)ο蟮恼Z言開發(fā)的軟件,彈載飛行控制軟件作為嵌入式軟件,一般采用C語言,或者C語言和匯編語言混合編程進行開發(fā)。因此,可以綜合考慮庫函數(shù)、模板、構件、架構、框架等技術途徑,選取符合彈載飛行控制軟件自身特點的重用方法。

構件、架構、框架三者呈現(xiàn)層次遞進的關系,同時又存在交集。對于彈載飛行控制軟件而言,可以將各函數(shù)單元劃分為功能構件;架構主要指軟件的組織結(jié)構,即邏輯時序和構件的調(diào)用關系;框架則可理解為工程的文件目錄結(jié)構,包括頭文件的定義和引用關系等。只有正確理解上述概念,才能正確區(qū)分彈載飛行控制軟件的構件、架構和框架,為重用打好基礎。

1.3可重用軟件

重用最重要的是要有可重用的軟件。導彈分類方法較多,如根據(jù)作戰(zhàn)使命不同可分為戰(zhàn)略導彈和戰(zhàn)術導彈;根據(jù)發(fā)射載具不同可以分為空空導彈、面空導彈等;根據(jù)制導體制不同可以分為雷達制導導彈、紅外制導導彈等。不同類型導彈其彈載飛行控制軟件研制任務需求和彈載計算機硬件平臺不盡相同,底層驅(qū)動,接口協(xié)議,算法模型等較難重用。同一類型導彈彈載飛行控制軟件的研制需求和彈載計算機硬件平臺往往具有共同特性。可以從總體需求層次區(qū)分出不同的軟件系統(tǒng),新研彈載飛行控制軟件可以在同一系統(tǒng)類型的彈載飛行控制軟件的基礎上加以改進。

從系統(tǒng)角度來講,可重用的彈載飛行控制軟件應滿足以下條件:①軟件模塊劃分及其框架、架構布局合理;②軟件運行的硬件平臺DSP及數(shù)據(jù)接口選型標準;③通信協(xié)議制定規(guī)范。以上3個條件也是對軟件控制算法功能模塊劃分、軟件運行硬件平臺和通信協(xié)議提出的通用化要求。

除此之外,結(jié)合航天特點,可重用的彈載飛行控制軟件相關配套文檔要齊備;軟件必須通過單元測試、確認測試和第三方評測,所發(fā)現(xiàn)的問題都已經(jīng)改正且通過回歸測試。此外,應經(jīng)過型號研制所有階段的飛行試驗驗證。

2彈載飛行控制軟件組成與設計原則

彈載飛行控制軟件通常由底層硬件驅(qū)動軟件、接口協(xié)議層軟件和應用層軟件組成。其中,底層硬件驅(qū)動軟件主要完成硬件端口的初始化,設備自檢和數(shù)據(jù)輸入輸出控制;接口協(xié)議層軟件主要完成數(shù)據(jù)組包發(fā)送和接收解包;應用層軟件主要完成制導控制計算和指令形成計算。上述3層軟件由時間驅(qū)動的事件響應機制,即彈上時序和邏輯控制來實現(xiàn)任務調(diào)度。彈載飛行控制軟件組成如圖2所示。

彈載飛行控制軟件具有實時性高、時序和邏輯復雜,可靠性強的特點。其設計需遵守以下原則:

(1)自頂向下的原則。即在確定彈載計算機硬件平臺的前提下,首先確定軟件的基本結(jié)構,然后細化到實現(xiàn)這些功能的每一個具體的軟件模塊,形成詳細的軟件開發(fā)卷宗,直至定義某一個具體的函數(shù)、變量和指針,使設計做到有條不紊,開發(fā)過程清晰明了,從宏觀上把握軟件設計質(zhì)量。

(2)結(jié)構化設計原則。包括程序和數(shù)據(jù)的結(jié)構化設計。通過細化軟件模塊,形成由所有軟件模塊按照一定的接口關系和數(shù)據(jù)交換關系構成的軟件結(jié)構,做到結(jié)構完整,易讀、易查、易測試。

(3)針對彈載計算機的實時性應用特點,以導彈工作時序為主線,進行合理的實時任務調(diào)度,通過彈載計算機系統(tǒng)在規(guī)定時間內(nèi)可靠地完成設計任務。

3彈載飛行控制軟件重用方法

彈載飛行控制軟件與其它商業(yè)軟件不同,必須探索出一條符合航天型號軟件特點的重用途徑。近年來,相關研究成果豐富。2006年,北京航天自動控制研究所孟小韋、馬衛(wèi)華[1]認為,可以從模塊級和任務級兩個方面來進行軟件通用化設計,并提出了開發(fā)飛行控制軟件集成開發(fā)工具原型。2007年,中國空間技術研究院提出了可重的星載軟件構件應具有的基本特性[2]。2011年,上海衛(wèi)星工程研究所提出了基于(I/O層、軟件總線層和應用層)層次框架的星載軟件重用方法[3]。

領域工程強調(diào)為一組相似或相近系統(tǒng)的應用建立基本能力和必備基礎(包括產(chǎn)品空間、構件、體系結(jié)構)的過程,是實現(xiàn)構件獲取和重用的有效方法[4]。相關研究表明,相似領域的軟件更容易重用。在彈載飛行控制軟件重用過程中,可以根據(jù)導彈系統(tǒng)類別從縱向領域確定可重用軟件系統(tǒng)框架和架構,進而根據(jù)軟件總體研制需求從橫向領域選擇可重用的構件。

因此,從領域工程的角度出發(fā),可以按照領域分析、領域設計、領域?qū)崿F(xiàn)3個活動過程來實施彈載飛行控制軟件重用,如圖3所示。具體步驟如下:

第一步:領域分析。分析彈載飛行控制軟件的系統(tǒng)類別,獲得領域模型;參照導彈種類劃分,如戰(zhàn)術和戰(zhàn)略、空空和面空、雷達制導和紅外制導等區(qū)分彈載飛行控制軟件;同時兼顧彈載計算機硬件平臺,確定軟件領域模型,即可重用軟件選型。

第二步:領域設計。按照軟件研制任務需求,確定軟件框架,設計軟件架構。不同領域模型的軟件架構可能有所不同,但是軟件框架基本相同。因此,可以在選擇好可重用軟件的基礎上進行框架和架構設計。

第三步:領域?qū)崿F(xiàn)。將滿足需求的功能構件組成軟件系統(tǒng)。

4彈載飛行控制軟件可重用構件標準

一套可重用軟件不一定包含所有的可重用構件。從圖2可以看出彈載飛行控制軟件組成層次和功能模塊,可在此基礎上,建立可重用的彈載飛行控制軟件可重用構件庫,該庫由彈載飛行控制軟件的功能模塊(構件)組成。

4.1軟件工程化要求

航天系統(tǒng)從1996年開始,就已從標準化和加強測試入手,推行航天型號軟件的工程化開發(fā)。1998年召開的航天系統(tǒng)第四次責任人會議提出提高航天型號軟件質(zhì)量,全面加強航天型號軟件產(chǎn)品開發(fā),初步確立了型號軟件的管理體制,并著手確定箭(星)載計算機的選型,確定了統(tǒng)一型號軟件的運行環(huán)境[5]。

航天型號實施軟件重用和推進型號軟件工程化工作是相互促進的。彈載飛行控制軟件開發(fā)過程一般包括:系統(tǒng)需求分析與設計、軟件需求分析、概要設計、詳細設計、軟件實現(xiàn)、組裝測試、確認測試、系統(tǒng)聯(lián)試、驗收交付、運行維護等10個階段。實施彈載飛行控制軟件重應參照航天型號軟件工程化相關要求,如Q/QJA 30A2013《航天型號軟件工程化要求》等,規(guī)范軟件研制各階段的技術和管理。

4.2編碼要求

正確性、健壯性、可靠性、性能、易用性、清晰性、安全性、可擴展性、兼容性、可移植性等是軟件的質(zhì)量屬性[7]。在軟件設計過程中應全面考慮每個屬性,確保型號發(fā)射成功,實施“零缺陷”的質(zhì)量管理。代碼編寫質(zhì)量越高,軟件出錯概率就越小,程序執(zhí)行效率越高,資源余量就越大。因此,可重用構件必須充分考慮軟件質(zhì)量屬性,設計高質(zhì)量的程序模塊。

當前彈載飛行控制軟件主要有兩種變量作用域(數(shù)據(jù)類型)使用體系。全局變量參數(shù)傳遞和結(jié)構體類型變量進行參數(shù)傳遞,兩種用法各有優(yōu)劣。

全部變量增加了函數(shù)間數(shù)據(jù)聯(lián)系的渠道,如果在一個函數(shù)中改變了全局變量的值,就可能影響到其它函數(shù)。在程序設計中,模塊劃分要求內(nèi)聚性強[6],與其它模塊的耦合性弱,而全局變量不符合這一原則。使用結(jié)構體類型數(shù)據(jù)傳遞參數(shù),則可以將函數(shù)有效封閉起來,切斷與外界的聯(lián)系。全局變量會降低程序的清晰性,在執(zhí)行各函數(shù)時都可能改變外部變量的值。而結(jié)構體數(shù)據(jù)類型可以將一組變量組織成一個組合項,能清晰反映該組變量之間的內(nèi)在聯(lián)系,但由于結(jié)構體變量必須使用引用的方式訪問,因此代碼不夠簡潔,調(diào)試查找不方便。

因此,在建立可重用的構件庫的過程中,全局變量和結(jié)構體數(shù)據(jù)類型應結(jié)合使用,發(fā)揮各自的優(yōu)點,提高程序的可讀性和可靠性。

4.3軟件測試要求

可重用構件必須經(jīng)過充分的軟件測試,使圈復雜度、基本復雜度、扇出數(shù)、函數(shù)形參個數(shù)等指標在符合標準C語言要求的基礎上,滿足(GJB53692005)《航天型號軟件C語言安全子集》、(GJBZ1412004)《軍用軟件測試指南》等規(guī)范,以及相關軍種軟件編碼標準要求。彈載飛行控制軟件安全關鍵等級一般為A級,動態(tài)度量指標應滿足修正語句覆蓋率、條件覆蓋率和條件判斷覆蓋率(MC/DC)均為100%的要求。

測試人員在做靜態(tài)測試時,經(jīng)常遇到單個函數(shù)代碼行數(shù)超過200行的情況,很難滿足動態(tài)測試覆蓋率指標要求。對于復雜算法的模型文件,軟件開發(fā)人員應按照算法功能模塊將代碼拆分并封裝成幾個子函數(shù)。這樣,既增強了程序的可讀性,也利于測試,否則很難達到100%的覆蓋率指標要求。動態(tài)指標中的MC/DC覆蓋率對代碼分支判斷程序結(jié)構設計要求很高,可重用構件應滿足MC/DC覆蓋率指標100%的要求。

4.4硬件設計要求

彈載計算機硬件環(huán)境及外圍環(huán)境直接影響底層驅(qū)動軟件能否重用。

當前各型號彈載計算機硬件平臺不盡相同,有C32、C6000和C28XX系列等,有的是單CPU系統(tǒng),有的是多CPU系統(tǒng)。目前同一領域的導彈彈載計算機硬件DSP基本已經(jīng)統(tǒng)型,外圍接口也基本一致。

隨著導彈不斷小型化,計算機硬件設計也向一體化和小型化方向發(fā)展。即采用一體化設計的飛行控制設備,制導、導引和引戰(zhàn)等系統(tǒng)實現(xiàn)一體化設計。因此,要求硬件環(huán)境和外圍環(huán)境的變化不會對重用產(chǎn)生影響,即要求彈載計算機在“多合一”前后硬件電路功能和底層驅(qū)動軟件不變,實現(xiàn)底層驅(qū)動軟件構件的可重用。

4.5其它要求

(1)命名規(guī)范??芍赜脴嫾暮瘮?shù)和變量命名應該規(guī)范化,例如全局變量和局部變量應有明顯可區(qū)分標識,變量名中應包含變量類型縮寫和度量單位縮寫,并區(qū)分大小寫。

(2)文件結(jié)構清晰。文件結(jié)構主要包含源文件(.c文件)和頭文件(.h文件),也可以理解為軟件的“框架”[7]??蚣茏鳛闃嫾囊环N,其源文件和頭文件所包含的元素應該分類定義在不同的.c和.h中,且順序(結(jié)構)合理。例如,彈載飛行控制軟件中的模型、協(xié)議、底層驅(qū)動程序按不同功能模塊安排在不同源文件中,而頭文件則包括外部變量及全局函數(shù)聲明、常量及宏定義、全局函數(shù)原型等。合理的軟件框架也有利于使用自動化軟件測試工具進行單元測試。

5結(jié)語

彈載飛行控制軟件重用的理想狀態(tài)是,在新軟件研制過程中可以直接使用被重用的構件,研制技術流程不進行需求分析、軟件設計、編碼、單元測試、組裝測試、確認測試、軟件評測等重復工作;軟件開發(fā)人員有更多精力開展驗證、開發(fā)管理、軟件自動生成等關鍵性技術工作;促進彈載飛行控制軟件研制走上具有航天特色的軟件產(chǎn)品化、標準化之路,建立現(xiàn)代工業(yè)流水線生產(chǎn)模式的彈載飛行控制軟件研制工廠。

參考文獻參考文獻:

[1]孟小豐,馬衛(wèi)華,控制系統(tǒng)飛行控制軟件重用技術研究[J]. 航天控制,2006(6):8183.

[2]郭堅,葉志玲,陸嵐,星載軟件復用技術探討[J]. 計算機測量與控制,2007.15(4):541543.

[3]李夢宇,彭攀,星載軟件重用技術研究[J]. 上海航天,2011(5):6367.

[4]李楠.基于特征的領域工程及構件技術應用研究[D].成都:西南交通大學,2013.

[5]劉正高,啟動軟件重用庫工程,推進航天型號軟件標準化[J]. 航天標準化,1999(2):58.

[6]譚浩強,C語言程序設計教程[M],北京:清華大學出版社,2007.

[7]林銳,韓永泉,高質(zhì)量程序設計指南——C++/C語言[M]. 北京:電子工業(yè)出版社,2007.

[8]劉杰,軟件重用技術及在航天飛行軟件中的應用[J]. 載人航天,2008(3):6064.

[9]馬永杰,蔣兆遠,張燕,基于功能構件的軟件復用方法[J]. 計算機應用與軟件,2009(8):7577.

[10]張選剛,劉如松,軟件復用在航空嵌入式軟件測試中的應用研究[J]. 航空計算技術,2009(5):8791.

責任編輯(責任編輯:杜能鋼)

保靖县| 航空| 仲巴县| 东丰县| 饶阳县| 迁西县| 丹寨县| 闽侯县| 海晏县| 灵宝市| 怀柔区| 德兴市| 望城县| 绵阳市| 建始县| 乐山市| 南江县| 蓝山县| 六盘水市| 定西市| 墨玉县| 砚山县| 昭平县| 安远县| 衡水市| 永胜县| 德保县| 武乡县| 富源县| 双鸭山市| 和政县| 辽中县| 元阳县| 包头市| 新化县| 玉屏| 满洲里市| 广德县| 钟祥市| 黄冈市| 五常市|