崔利杰 任博 李澤
隨著信息技術(shù)的迅猛發(fā)展及其在軍事領(lǐng)域的廣泛應(yīng)用,軍用飛機已逐步由機電密集型裝備轉(zhuǎn)向軟件密集型裝備.如:在美軍軍機航電系統(tǒng)中,第二代軍機F-117飛機硬件實現(xiàn)的功能占80%,而軟件實現(xiàn)的功能占20%,第三代F-16飛機硬件實現(xiàn)的功能占60%,軟件實現(xiàn)的功能占40%,而到第四代F-22飛機硬件實的功能占20%,軟件實現(xiàn)的功能占80%[1].從代碼量上講,1982年定型的F-15C/D戰(zhàn)斗機軟件規(guī)模為23.6萬行,1992年的F-22軟件規(guī)模達(dá)700萬行代碼,2006年首飛的F-35規(guī)模高達(dá)1500萬行代碼[2].安全性設(shè)計是機載軟件設(shè)計的重要環(huán)節(jié),它的輸出會直接或間接地影響硬件的運行.但是,機載軟件在進(jìn)行安全性工作時,遇到許多實際的困難,諸如設(shè)計手段不規(guī)范,沒有明確的驗證方法和有效的評估數(shù)據(jù)、無法準(zhǔn)確評估軟件中錯誤的數(shù)量等[3].盡管如此,軟件界還是形成了共識,即軟件的質(zhì)量主要還是靠過程—包括規(guī)范設(shè)計、嚴(yán)格管理等來保障.美國航空無線電委員會(RTCA)出版的DO-178B/C文件是當(dāng)前應(yīng)用最為廣泛的民機機載軟件適航標(biāo)準(zhǔn),也被公認(rèn)為當(dāng)今軍、民機研制過程中最為重要的基礎(chǔ)符合性方法之一[3?6].然而,限于我國航空工業(yè)的現(xiàn)狀,特別是在軍機軟件研制領(lǐng)域存在的諸多問題,DO-178B/C標(biāo)準(zhǔn)與我軍軍機機載軟件研制的實際情況存在較大差異.我國軍機機載軟件的研制突出存在以下問題:一是軟件標(biāo)準(zhǔn)、要求引入較晚,許多條款還處于學(xué)習(xí)摸索階段,多數(shù)標(biāo)準(zhǔn)晦澀難懂,只有少數(shù)專業(yè)人員才能掌握等.二是設(shè)計人員缺少有力的技術(shù)手段支撐,難以實現(xiàn)適航標(biāo)準(zhǔn)要求的流程體系、文檔體系有效落地,造成當(dāng)前我軍軍機軟件開發(fā)過程中仍大量存在重功能、輕流程的現(xiàn)象;三是適航審查人員缺少合適的軟件審查工具助手,特別是缺少適用于我軍軍機研制的合理適航審查流程,更沒有統(tǒng)一、對應(yīng)的適航審查要點,導(dǎo)致軍機在開展軟件適航審查流程繁復(fù)、工作量大、標(biāo)準(zhǔn)不一.并且,DO-178B/C標(biāo)準(zhǔn)本身為能適用于歐美不同研制環(huán)境下的機載軟件開發(fā)項目,有些要求看上去似乎太過籠統(tǒng)或者離實際運用要求相去甚遠(yuǎn),與在我國特別是我國軍機機載軟件研制中以分階段開展文檔審查或評審為主的管理區(qū)別較大.基于此,應(yīng)根據(jù)我軍軍機機載軟件研制特點研究機載軟件適航審查要點的生成原則與生成辦法,分階段制定出審查要點和審查要素,以便軍機機載軟件適航審查工作能順利開展,提升機載軟件和飛機的安全性水平.
DO-178B/C[7?9]是面向過程和目標(biāo)指導(dǎo)機載軟件符合性驗證和審查活動的一套標(biāo)準(zhǔn),它和ARP4754[10]、ARP4761[11]、DO-254[12]一起構(gòu)成了現(xiàn)代機載系統(tǒng)(特別是高度綜合和復(fù)雜系統(tǒng))安全性設(shè)計與評估的一組指導(dǎo)材料.根據(jù)DO-178B/C標(biāo)準(zhǔn),軟件適航的基本要求包括3個方面:軟件生命周期過程、軟件生命周期過程數(shù)據(jù)和軟件生命周期過程數(shù)據(jù),這稱為軟件生命周期的三要素[13].換言之,一旦選擇DO-178B/C標(biāo)準(zhǔn)作為符合性方法以后,必須滿足該標(biāo)準(zhǔn)所定義的所有目標(biāo),而滿足這些適航目標(biāo)的途徑是執(zhí)行該標(biāo)準(zhǔn)所建議的過程和活動,為證明這些適航目標(biāo)被滿足,應(yīng)按照該標(biāo)準(zhǔn)所定義的軟件生命周期數(shù)據(jù)來組織相關(guān)證據(jù),這充分體現(xiàn)了過程、數(shù)據(jù)、目標(biāo)這3方面適航要求辯證統(tǒng)一.
圖1 DO-178B基本要素及相互關(guān)系
DO-178B標(biāo)準(zhǔn)把過程定義為“為制造特定的輸出或產(chǎn)品而在軟件生命周期中執(zhí)行的一系列活動的集合”.標(biāo)準(zhǔn)將軟件生命周期將軟件研發(fā)分為3大類12個過程(圖2).其中,軟件開發(fā)過程和軟件綜合過程又被分為4個子過程,過程的整體結(jié)構(gòu)和內(nèi)容也圍繞這一系列過程展開.標(biāo)準(zhǔn)定義了軟件研制過程中涉及的一系列活動,如溝通、策劃、建模、構(gòu)建、部署等,還有一系列普適性的如項目跟蹤控制、風(fēng)險管理、質(zhì)量保證、配置管理、技術(shù)評審等活動,標(biāo)準(zhǔn)還定義了過程或活動的先后順序和執(zhí)行關(guān)系,并通過“遷移準(zhǔn)則”來描述過程和活動的進(jìn)入和退出.這些活動貫穿整個軟件生命周期.通過這些活動的開展、軟件產(chǎn)生一系列輸出數(shù)據(jù),以證明軟件能夠達(dá)到相應(yīng)安全等級的目標(biāo)要求,從而達(dá)到規(guī)范、約束軟件研發(fā)的目的.
圖2 DO-178B定義軟件生命周期活動
參照FAA Order8110.49要求[14?15],結(jié)合我軍機載軟件研制現(xiàn)狀,機載軟件開展適航審查可分為4個階段:軟件計劃階段、軟件開發(fā)階段審查、軟件驗證階段審查和軟件最終審查.各階段審查的流程及關(guān)系如圖3所示.
1)軟件計劃階段審查應(yīng)在初始軟件計劃過程完成時(也就是在完成并評審了大部分的計劃和標(biāo)準(zhǔn)時)發(fā)起.這一審查一般被稱為介入階段(SOI#1).
2)軟件開發(fā)階段審查通常應(yīng)在至少50%以上軟件開發(fā)數(shù)據(jù)(也就是需求、設(shè)計和代碼)完成并評審后發(fā)起.這一審查一般稱為SOI#2.
3)軟件驗證階段審查通常應(yīng)在至少50%以上的軟件驗證和測試數(shù)據(jù)完成并評審后發(fā)起.這一審查一般稱為SOI#3.
4)軟件最終審定階段審查應(yīng)該在確定了軟件最終版本、完成了軟件驗證、進(jìn)行了軟件符合性審查、并且軟件應(yīng)在準(zhǔn)備好后,正式提出系統(tǒng)審查申請后發(fā)起.這一審查一般稱為SOI#4.
圖3 軟件適航審查流程
需要注意的是:雖然這里定義并描述了4類軟件審查,但并不意味著每個項目都需要這4類審查.一些項目可以合并審查,而另一些項目可能需要更多類型的審查;其次,軟件生命周期數(shù)據(jù)的有效性并不意味審查所有數(shù)據(jù).然而,數(shù)據(jù)應(yīng)該充分成熟,以便能夠發(fā)起合理性審查(Reasonable review).同樣地,項目中的所有遷移準(zhǔn)則(Transition criteria)沒必要都審查,但是應(yīng)保存充分的遷移準(zhǔn)則證據(jù),以確保這些準(zhǔn)則應(yīng)用在項目中,最后,項目生命周期中,被審查方和審查方應(yīng)該盡早展開討論,并確定型號、需求、數(shù)量、程度和軟件審查的形式.
相對于機載設(shè)備和產(chǎn)品的適航審查,機載軟件適航審查更注重對軟件研發(fā)過程中產(chǎn)生的數(shù)據(jù)、文檔開展審查.這就要求審查方在審查前做足準(zhǔn)備,如開展明確工作過程、開展目標(biāo)分析、列舉輸出數(shù)據(jù)工作,提出三者的對應(yīng)關(guān)系,針對文檔和數(shù)據(jù)制定出有針對性的審查要點,以有力地指導(dǎo)各階段的適航審查.下面以A級軟件的計劃階段為例,提出審查要點的建立原則與具體示例,建立軟件計劃階段適航審查中數(shù)據(jù)與目標(biāo)、活動的對應(yīng)關(guān)系,為軟件其他階段適航審查提供幫助.
卡爾曼濾波和BP神經(jīng)網(wǎng)絡(luò)技術(shù)都是現(xiàn)如今比較成熟的技術(shù),但是單獨使用又各有不足,在卡爾曼濾波中,GPS接收機極易因為遮擋或電磁干擾導(dǎo)致信號失鎖,造成卡爾曼濾波器發(fā)散,解算精度迅速下降[1-3]。BP神經(jīng)網(wǎng)絡(luò)本身具有自學(xué)習(xí)能力,但單獨使用在導(dǎo)航中,精度相對較低,不能滿足對精度的要求。本文采用BP神經(jīng)網(wǎng)絡(luò)輔助的方法解決了由于GPS信號失鎖導(dǎo)致的定位精度迅速下降的問題。
對于任何軟件項目,軟件計劃過程是軟件生命周期的初始過程.計劃過程建立了各種軟件計劃、標(biāo)準(zhǔn)、流程、活動、方法,以及開發(fā)、檢驗、控制、保證所需要的工具,提出軟件計劃階段生命周期數(shù)據(jù)(圖4).軟件計劃階段審查的目的是確定申請者的計劃和標(biāo)準(zhǔn)是否能夠切實滿足RTCA/DO-178B的目標(biāo).審查也能夠減少申請者生產(chǎn)軟件產(chǎn)品時因不符合RTCA/DO-178B的目標(biāo)或其他的認(rèn)證準(zhǔn)則而帶來的風(fēng)險.軟件計劃階段審查應(yīng)在初始軟件計劃過程完成之后發(fā)起.雖然軟件計劃過程可能貫穿整個軟件生命周期,而且計劃和標(biāo)準(zhǔn)可能隨項目進(jìn)展而變化,當(dāng)相關(guān)的初始遷移準(zhǔn)則滿足時,通常認(rèn)為軟件計劃過程結(jié)束.
將RTCA/DO-178B附件A中的計劃目標(biāo)應(yīng)作為軟件計劃階段審查的評價準(zhǔn)則.此外,還應(yīng)考試被審查方的能力水平,評定軟件失效條件和軟件安全性等級,與相應(yīng)軟件等級的軟件計劃和標(biāo)準(zhǔn)有關(guān)聯(lián)的事項也應(yīng)該進(jìn)行評價.
根據(jù)圖4,在軟件計劃階段時,被審查方應(yīng)向?qū)彶榉教峁┍?所示的軟件計劃和標(biāo)準(zhǔn)數(shù)據(jù).軟件支撐數(shù)據(jù)應(yīng)處于所適用的軟件等級的構(gòu)型控制之下.
表1 軟件計劃階段審查的數(shù)據(jù)
制定機載軟件適航審查要點時,可按照以下方法步驟開展.
1)目標(biāo)分析
逐個分析3.2節(jié)的審查目標(biāo),指出輸出數(shù)據(jù)和文檔的對應(yīng)關(guān)系.通過分析可以發(fā)現(xiàn),在軟件計劃階段審查時,軟件適航性目標(biāo)可為兩類,一類能夠?qū)?yīng)所有文檔,一類對應(yīng)若干文檔或某一文檔.這樣在制定審查要點時,按照共同要點和分要點進(jìn)行制定.
圖4 軟件計劃階段工作過程
2)要點分解
在進(jìn)行適航審查要點制定時,最重要和最關(guān)鍵的環(huán)節(jié)就是將審查目標(biāo)分解為審查要點.在進(jìn)行要點分解時,需注重以下原則:
a)內(nèi)容完整性
內(nèi)容完整性即在制定審查要點時首要考慮所制定的審查要點與DO-178B/C要求保持一致,如對“定義軟件開發(fā)標(biāo)準(zhǔn)”目標(biāo)進(jìn)行分解時,需要考慮到被審查數(shù)據(jù)與DO-178B相應(yīng)內(nèi)容的對應(yīng)關(guān)系,保證內(nèi)容的完整性,如提出“所定義標(biāo)準(zhǔn)是否與DO-178B11.6到11.8節(jié)中所述內(nèi)容一致”的要點.其次,要考慮到工具使用、開發(fā)環(huán)境、編譯測試等各個環(huán)節(jié).如制定出“計劃和標(biāo)準(zhǔn)是否描述了機載軟件和工具的軟件更改流程?“是否在計劃中說明了工具是否需要鑒定的原因和必要性?”“軟件開發(fā)環(huán)境是否明確定義?”“每個過程是否已經(jīng)都明確了各自的輸入,活動,遷移準(zhǔn)則以及輸出?”等要點.
b)前后一致性
要點制定時,應(yīng)考慮前后一致,這種一致性在計劃階段不僅是計劃與標(biāo)準(zhǔn)的一致,也應(yīng)是計劃和標(biāo)準(zhǔn)與系統(tǒng)安全性分析結(jié)果,以及計劃和標(biāo)準(zhǔn)在實施過程中輸出數(shù)據(jù)的一致.如要點制定時有“計劃與標(biāo)準(zhǔn)自身是否一致?”“SDP是否引用了SDS?”“系統(tǒng)安全評估,系統(tǒng)架構(gòu),以及安全特性是否與計劃中建議的每個軟件部件的軟件等級相符?”“標(biāo)準(zhǔn)是否經(jīng)過驗證以確保給定限制會產(chǎn)生不確定性和不可驗證的設(shè)計和代碼的一些方法使用?”“如果SQAP得到遵循,是否能夠滿足DO-178B表A-9目標(biāo)?”等.
c)定義明確性
明確性也是審查要點制定時的一個核心要求,它能夠保證審查人員在開展審查時更加準(zhǔn)確、方便.如在軟件計劃階段可制定“與系統(tǒng)開發(fā)過程的接口和交流管道是否已經(jīng)明確定義?”“宿主計算機的軟件開發(fā)環(huán)境與目標(biāo)機環(huán)境相似嗎,如果不同,這些差異已經(jīng)識別和分析了嗎?”“是否使用了內(nèi)存單元,如果使用了,計劃中是否包含了其精度及正確性驗證方法?”“處理器的調(diào)整緩存和/或流水線是否使用?如果使用,那么系統(tǒng)的分區(qū)、隔離、分享,及其他的保護(hù)方法和最壞運行時間是如何處理的?”等.
d)考慮特殊要求
除上述要點之外,許多DO-178B包含的特殊考慮也需要在審查要點中體現(xiàn)出來.如“在計劃中是否已經(jīng)考慮了以下這些內(nèi)容?先前開發(fā)軟件;COTS軟件;用戶可修改軟件;現(xiàn)場可加載軟件;可選項軟件······”,“相關(guān)的 SVP、環(huán)境、工具、培訓(xùn)、規(guī)程等是否應(yīng)用于下級供應(yīng)商?”“針對Axe軟件,如果在源代碼級別進(jìn)行結(jié)構(gòu)覆蓋分析,那么在SVP中是否描述了源代碼到目標(biāo)代碼的可追蹤性方法?”等.
3)文檔對應(yīng)
對目標(biāo)開展要點分解后,可對上述審查要點進(jìn)行文檔或數(shù)據(jù)對應(yīng),即將每個文檔對應(yīng)的審查要點羅列出來,便于審查人員進(jìn)行任務(wù)分工和角色分配.
根據(jù)以上方法,A級軟件制定出軟件計劃階段審查要點共84個,其中共同要點9個,軟件開發(fā)計劃對應(yīng)23個,軟件審查計劃對應(yīng)13個,軟件驗證計劃對應(yīng)13個,軟件配置管理計劃對應(yīng)6個,軟件質(zhì)量保證計劃對應(yīng)12個,軟件需求標(biāo)準(zhǔn)、軟件開發(fā)標(biāo)準(zhǔn)、軟件編碼標(biāo)準(zhǔn)對應(yīng)8個.限于篇幅,這里不一一列舉.
機載軟件是現(xiàn)代軍機的重要組成,軟件適航是保證機載軟件安全性的重要工作.作為管理部門和研制單位,構(gòu)建科學(xué)有效的審查流程,制定準(zhǔn)確合理的審查要點是開展軟件適航審查的關(guān)鍵所在.基于此,本文所提審查要點是通過系統(tǒng)分析DO-178B/C標(biāo)準(zhǔn),深入研究FAA.Order8110.49文件,結(jié)合我軍軍機機載軟件研制特點和現(xiàn)行標(biāo)準(zhǔn)而提出的,能夠適用于我軍機載軟件研制的審查流程.本文以A級軟件計劃階段為例,制定的對應(yīng)A級軟件計劃階段審查要點從文檔的角度定義了目標(biāo)和過程輸出的關(guān)系,為準(zhǔn)確、快捷開展軟件適航審查提供了依據(jù),按照本文原則方法提出的機載軟件適航審查要點為下一步開發(fā)自動化的審查平臺、為適航審查提供工具助手奠定了基礎(chǔ).當(dāng)然,文檔審查取代不了所有審查工作,必要時,仍需審查員借助其在豐富的經(jīng)驗開展現(xiàn)場審查來確保軟件適航標(biāo)準(zhǔn)的嚴(yán)格執(zhí)行和軍機安全性的有效提升.