饒培峰 章曉春
【摘 要】DO-178B自1992年頒發(fā)以來,一直作為航空業(yè)普遍認可的機載軟件設(shè)計保證指南,F(xiàn)AA、EASA和CAAC等民航當(dāng)局在對含軟件的機載系統(tǒng)和設(shè)備進行適航審定時,都將DO-178B作為可接受的機載軟件符合性方法。本文結(jié)合民用飛機機載軟件開發(fā)和評審的工程經(jīng)驗對相關(guān)適航標(biāo)準(zhǔn)和指導(dǎo)性文件進行解讀,梳理了基于DO-178B的機載軟件開發(fā)過程,并對其監(jiān)控評審方法進行了研究。
【關(guān)鍵詞】機載軟件;DO-178B;工程評審;適航評審
0 引言
DO-178B是美國航空無線電委員會于1992年頒發(fā)的機載軟件指南,全稱為《機載系統(tǒng)和設(shè)備合格審定中對軟件的要求》[1]。DO-178B并不屬于民航法律規(guī)章,但FAA、EASA、CAAC等民航當(dāng)局在對含軟件的機載系統(tǒng)和設(shè)備進行適航審定時,都將DO-178B作為可接受的機載軟件符合性方法。DO-178B是基于對目標(biāo)的符合性和設(shè)計保證等級來衡量軟件的開發(fā)過程,其本質(zhì)是一項軟件設(shè)計保證標(biāo)準(zhǔn),而不是軟件開發(fā)標(biāo)準(zhǔn)。
本文介紹的基于DO-178B的機載軟件監(jiān)控評審方法有工程評審和適航評審有兩類。其中,工程評審是申請人對自己(或供應(yīng)商)的監(jiān)控評審,而適航評審是合格審定機構(gòu)(CAAC)對申請人的監(jiān)控評審。機載軟件工程評審與適航評審是相輔相成的,都是為了監(jiān)控機載軟件的開發(fā)過程,確保最終的軟件產(chǎn)品符合DO-178B和其它適航要求。
1 基于DO-178B的機載軟件開發(fā)過程
1.1 與軟件開發(fā)相關(guān)的系統(tǒng)情況
在進行機載軟件開發(fā)前,需考慮系統(tǒng)架構(gòu)、系統(tǒng)和軟件之間的信息流,并根據(jù)系統(tǒng)的安全性評估確定軟件的研制等級。DO-178B根據(jù)系統(tǒng)安全性評估將機載軟件劃分為A、B、C、D、E五個軟件等級,不同的軟件等級對應(yīng)了不同的目標(biāo)和為達到目標(biāo)所需進行的開發(fā)活動,其中A級別軟件的研制等級最高,所需符合的目標(biāo)數(shù)也最多。表1給出了軟件等級與軟件異常所導(dǎo)致的系統(tǒng)失效情況的對應(yīng)關(guān)系,以及軟件等級與DO-178B中規(guī)定的需滿足的目標(biāo)數(shù)量和需獨立實現(xiàn)的目標(biāo)數(shù)量的對應(yīng)關(guān)系。
1.2 軟件生命周期
軟件生命周期過程包括軟件計劃過程、軟件開發(fā)過程和軟件整體過程。軟件計劃過程定義并協(xié)調(diào)一個項目的軟件開發(fā)和整體過程活動;軟件開發(fā)過程是軟件開發(fā)的主體過程,包括軟件需求過程、軟件設(shè)計過程、軟件編碼過程和集成過程;軟件整體過程是保證軟件生命周期及其輸出正確、受控和可信,包括軟件驗證過程、軟件構(gòu)型管理過程、軟件質(zhì)量保證過程和合格審定聯(lián)絡(luò)過程。軟件生命周期過程如圖1所示。
1.3 軟件計劃過程
有效的計劃是確保軟件開發(fā)滿足DO-178B要求的決定性因素。軟件計劃過程的目標(biāo)是定義產(chǎn)生軟件的方法,其能滿足系統(tǒng)需求并提供與適航要求相一致的置信度水平。軟件計劃過程的輸出包括五個計劃和三個標(biāo)準(zhǔn),五個計劃分別為軟件合格審定計劃(PSAC)、軟件開發(fā)計劃(SDP)、軟件驗證計劃(SVP)、軟件構(gòu)型管理計劃(SCMP)和軟件質(zhì)量保證計劃(SQAP),三個標(biāo)準(zhǔn)分別為軟件需求標(biāo)準(zhǔn)、軟件設(shè)計標(biāo)準(zhǔn)和軟件編碼標(biāo)準(zhǔn)。
申請人應(yīng)就軟件合格審定計劃(PSAC)與合格審定當(dāng)局(CAAC)盡早溝通,并獲得其批準(zhǔn)。在軟件開發(fā)過程中,申請人應(yīng)一致地貫徹已確定的軟件計劃。
1.4 軟件開發(fā)過程
軟件開發(fā)過程包括四個子過程:軟件需求過程、軟件設(shè)計過程、軟件編碼過程和集成過程。其中,軟件需求過程是指開發(fā)軟件的高級別需求,這些高級別需求包括功能、性能、接口和安全性有關(guān)的需求;軟件設(shè)計過程是指開發(fā)軟件架構(gòu)和能用于實現(xiàn)源代碼的軟件低級別需求,這需要一次或多次迭代過程;軟件編碼過程是指由軟件架構(gòu)和軟件低級別需求實現(xiàn)源代碼;集成過程是指把可執(zhí)行目標(biāo)代碼加載到軟件/硬件集成的目標(biāo)硬件中。
軟件開發(fā)過程應(yīng)保持不同層次需求之間的追溯性,確保軟件實現(xiàn)了所有預(yù)期功能,且沒有實現(xiàn)預(yù)期功能以外的其它功能。特別地,對于衍生需求(無法追溯至上層需求的需求),必須進行安全性評估。
1.5 軟件整體過程
軟件整體過程包括四個過程:軟件驗證過程、軟件構(gòu)型管理過程、軟件質(zhì)量保證過程和合格審定聯(lián)絡(luò)過程。其中,軟件驗證過程是為了檢測和報告軟件開發(fā)過程中可能已形成的錯誤。驗證不僅僅是測試,還包含評審、分析等。軟件構(gòu)型管理過程包含構(gòu)型標(biāo)識、更改控制、基線確定和軟件產(chǎn)品(包括相關(guān)的軟件生命周期資料)歸檔活動。軟件質(zhì)量保證過程是指評估軟件生命周期過程及其輸出,以保證目標(biāo)得以滿足,故障得以檢測、評估、追蹤和解決,并保證軟件產(chǎn)品和軟件生命周期資料符合合格審定要求。合格審定聯(lián)絡(luò)過程是指在整個軟件生命周期中,申請人和合格審定當(dāng)局(CAAC)之間建立通信和相互了解,以有助于合格審定過程。
軟件整體過程貫穿軟件生命周期的整個過程,其保證軟件生命周期過程及其輸出正確、受控和可信,對開發(fā)出合格軟件產(chǎn)品具有重要的作用。
2 機載軟件監(jiān)控評審方法
2.1 機載軟件工程評審
機載軟件工程評審是指申請人為監(jiān)控機載軟件開發(fā)過程或進行適航評審活動準(zhǔn)備而進行的內(nèi)部評審,或?qū)C載軟件供應(yīng)商的評審。常見的機載軟件工程評審包括五種介入階段評審,分別為軟件計劃階段評審、軟件初步設(shè)計評審、軟件關(guān)鍵設(shè)計評審、軟件測試就緒評審和軟件符合性評審。
(1)軟件計劃階段評審:軟件計劃階段評審的目的是確認軟件計劃和標(biāo)準(zhǔn)是否符合DO-178B的要求,軟件研制等級分配是否經(jīng)系統(tǒng)確認,項目資源、進度、風(fēng)險等是否得到評估。
(2)軟件初步設(shè)計評審:軟件初步設(shè)計評審的目的是確認軟件高級別需求是否符合系統(tǒng)需求,軟件開發(fā)是否可以進入詳細設(shè)計階段。
(3)軟件關(guān)鍵設(shè)計評審:軟件關(guān)鍵設(shè)計評審的目的是確認軟件架構(gòu)和軟件低級別需求是否符合軟件高級別需求,源代碼是否符合軟件架構(gòu)和軟件低級別需求,軟件開發(fā)中的進度、成本等風(fēng)險是否可控。
(4)軟件測試就緒評審:軟件測試就緒評審的目的是確認軟件測試用例和測試程序是否已完成,軟件開發(fā)是否可以進入軟件測試階段。
(5)軟件符合性評審:軟件符合性評審的目的是確認軟件生命周期過程是否符合DO-178B及其它適航要求,所有軟件生命周期資料已完成并已得到批準(zhǔn)。
2.2 機載軟件適航評審
機載軟件適航評審是指合格審定當(dāng)局(CAAC)對機載軟件開發(fā)過程的介入階段評審。Order 8110.49[2]推薦了四種介入階段評審,分別為軟件計劃評審(SOI#1)、軟件開發(fā)評審(SOI#2)、軟件驗證評審(SOI#3)和軟件最終合格審定評審(SOI#4)。
(1)軟件計劃評審(SOI#1):當(dāng)軟件計劃過程完成,即軟件計劃和標(biāo)準(zhǔn)已完成,且已經(jīng)過評審,則可以考慮進行軟件計劃評審。軟件計劃評審的退出準(zhǔn)則:(a)軟件計劃和標(biāo)準(zhǔn)已經(jīng)過申請人的內(nèi)部評審,且問題已解決;(b)軟件計劃和標(biāo)準(zhǔn)已經(jīng)過軟件質(zhì)量保證部門評估,且問題已解決;(c)軟件計劃和標(biāo)準(zhǔn)已得到批準(zhǔn),并置于構(gòu)型控制之下;(d)DO-178B附錄A中表A-1的目標(biāo)全部滿足。
(2)軟件開發(fā)評審(SOI#2):當(dāng)一定量(典型地,至少50%)的軟件開發(fā)資料(如需求、設(shè)計、編碼等)已完成,且已經(jīng)過評審,則可以考慮進入軟件開發(fā)評審。軟件開發(fā)評審的退出準(zhǔn)則:(a)軟件高級別需求已被文檔化和評審,且可以追溯到系統(tǒng)需求;(b)軟件架構(gòu)已定義,且評審和分析已完成;(c)軟件低級別需求已被文檔化和評審,且可以追溯到軟件高級別需求;(d)源代碼實現(xiàn)軟件低級別需求并可以追溯到軟件低級別需求,且已經(jīng)過評審。
(3)軟件驗證評審(SOI#3):當(dāng)一定量(典型地,至少50%)的軟件驗證和測試數(shù)據(jù)已完成,且已經(jīng)過評審,則可以考慮進入軟件驗證評審。軟件驗證評審的退出準(zhǔn)則:(a)開發(fā)資料(如需求、設(shè)計、源代碼、目標(biāo)碼、鏈接和加載數(shù)據(jù)、可執(zhí)行映像等)已完成,且已經(jīng)過評審,并置于構(gòu)型控制之下;(b)測試用例和測試程序已被文檔化和評審,并置于構(gòu)型控制之下;(c)測試用例和測試程序已被執(zhí)行(正式或非正式);(d)完整的測試結(jié)果已被文檔化,且與計劃文件相一致;(e)軟件測試環(huán)境已被文檔化和控制。
(4)軟件最終合格審定評審(SOI#4):當(dāng)最終的軟件構(gòu)造已完成,軟件驗證已完成,軟件符合性檢查已執(zhí)行,軟件產(chǎn)品為正式的系統(tǒng)合格審定批準(zhǔn)已做好準(zhǔn)備,則可以考慮進入軟件最終合格審定評審。軟件最終合格審定評審的退出準(zhǔn)則:(a)軟件符合性檢查已被執(zhí)行,且問題已解決;(b)軟件完結(jié)綜述(SAS)和軟件構(gòu)型索引(SCI)已完成,且已經(jīng)過評審;(c)所有軟件生命周期資料已完成,且已被批準(zhǔn),并置于構(gòu)型控制之下。
2.3 工程評審和適航評審的關(guān)系
機載軟件工程評審與適航評審是相輔相成的,都是為了監(jiān)控機載軟件的開發(fā)過程,確保最終的軟件產(chǎn)品符合DO-178B和其它適航要求;不同的是,機載軟件工程評審是申請人對自己(或供應(yīng)商)的監(jiān)控評審,而機載軟件適航評審是合格審定機構(gòu)(CAAC)對申請人的監(jiān)控評審。
需要指出的是,機載軟件工程評審與適航評審各階段沒有嚴(yán)格的時間序列關(guān)系,只要軟件開發(fā)滿足各階段評審的進入準(zhǔn)則即可申請進入相應(yīng)階段評審,而且越早介入越好。此外,盡管本章介紹了五種機載軟件工程評審階段和四種機載軟件適航評審階段,但并不意味著每一個項目都需要分別開展這些評審,有的項目可能合并某些評審,有的項目或許需要更多評審,這需要根據(jù)項目的實際情況和與合格審定當(dāng)局(CAAC)的協(xié)商結(jié)果而定。
3 結(jié)語
本文結(jié)合民用飛機機載軟件開發(fā)和評審的工程經(jīng)驗,對機載軟件適航標(biāo)準(zhǔn)和指導(dǎo)性文件進行了解讀,梳理了基于DO-178B的機載軟件開發(fā)過程,并對其監(jiān)控評審方法進行了研究,在民用飛機機載軟件的開發(fā)及其監(jiān)控評審領(lǐng)域進行了有益的探索。
【參考文獻】
[1]Software Considerations in Airborne Systems and Equipment Certification, RTCA SC-167/ EUROCAE WG-12, RTCA Inc, 1992,12[Z].
[2]Software Approval Guidelines, AIR-120, FAA Order 8110.49, 2003,6[Z].
[責(zé)任編輯:湯靜]