饒培峰 章曉春


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