對航空航天領域的工業軟體設計來說,安全無疑是重中之重,而在眾多安全準則中,最為關鍵也最具影響力的就是DO-178B。
▲DO-178B軟體生命週期過程關係圖
01.什麼是DO-178B?
DO-178B的全稱為“機載系統裝置合格審定中的軟體考慮”,釋出於1992年,由無線電航空技術委員會(RTCA,Radio Technical Commission for Aeronautics)與歐洲民用航空電子協會(EUROCAE,European Organization for CivilAviation Equipment)共同開發,是一項國際通行的適航認證標準,主要關於機載系統和裝置所使用的任務關鍵型軟體的安全性。儘管DO-178B只是一項指南而非政策,但仍具有極其重要的地位,美國聯邦航空管理局(FAA,Federal Aviation Administration)就將DO-178B作為判斷軟體在機載環境中是否安全可靠的指南,即機載軟體適航認證的標準依據。
*RTCA是一個非營利性行業協會,旨在制定技術指南並供政府監管部門使用,以“取得一致性”為宗旨。
儘管DO-178B是專為滿足航空航天領域的機載軟體需求而開發,但也被廣泛應用於其他行業,通常與DO-254(也稱機載電子硬體設計保證指南)一起使用。與DO-178B一樣,DO-254也是由RTCA釋出的。
02.DO-178B和DO-178C有什麼區別?
DO-178B和DO-178C都是RTCA為機載軟體所制定的標準,後者釋出於2011年,可以理解為前者的升級版,主要根據前者1992年釋出以來軟體開發實踐、技術和工具等方面的進步對其進行了勘誤、澄清與補充,修改了原來描述不清晰的方面,並加了模型開發、工具鑑定、物件導向方法等技術。
▲DO-178C軟體生命週期過程和系統之間資訊流
DO-178C保持了與DO-178B相同的軟體級別,繼續強調基於需求的開發、測試和可追溯性的重要性。其最為顯著的一處變化為新增了一個新的軟體生命週期模型,稱為“基於模型的開發與驗證”(MBD,Model Based Definition),有助於提升軟體開發的效率和質量,也為使用形式化方法的商用現成(COTS,Commercial Off-The-Shelf)軟體提供了更為明確的指導。
03.DO-178B概述
DO-178B根據軟體故障對乘客、機組人員和飛機的潛在影響分為A(最嚴重)到E(最不嚴重)的五個級別,提供了軟體開發、驗證和確認的系統流程,包括需求、設計、編碼和測試。
A級(災難性):故障使飛機安全飛行和著陸所需的關鍵功能失效,可能導致飛機墜毀,因而無法繼續安全飛行。
B級(危險/嚴重):故障會影響飛機的安全性和效能,降低機組人員克服不利操縱狀態的能力,造成乘客的嚴重傷害。
C級(較重):故障的影響仍然明顯但比B級帶來的影響小,給機組帶來明顯的工作量增加,安全係數降低。
D級(較輕):故障相較C級更輕,但仍會給乘客帶來不便或改變常規飛行計劃。
E級(無影響):故障完全不影響飛機執行能力,對機組工作量沒有影響。
▲機載軟體失效條件與目標
常規來說,A-E級所對應的特定應用軟體開發工作量層級遞減,但關於低階別向高階別轉移成本的可靠資料較少,現有的少量資料表明,單一層級躍升所增加的開發成本為75%—150%,主要原因在於更高等級所要達到的目標會越來越多。成本增加的主要原因是每個臨界等級需要達到的目標越來越多。
DO-178B級別認定通常分為5個過程,每個過程都需要輸出一組預期文件:
軟體規劃階段:輸出軟體開發計劃(SDP,Software Development Plan)。
軟體發展階段:輸出軟體需求資料(SRD,Software Requirements Data)、軟體設計描述(SDD,Software Design Description)、原始碼和可執行目的碼。
軟體認證階段:輸出軟體驗證案例和程式(SVCP,Software Verification Cases and Procedures)以及軟體驗證結果(SVR,Software Verification Results),並對所有要求、設計和程式碼進行審查。
配置管理階段:輸出軟體配置索引(SCI,Software Configuration Index)和軟體生命週期環境配置索引(SECI,Software life cycle Environment Configuration Index)。
質量保證階段:輸出軟體質量保證記錄(SQAR,Software Quality Assurance Records)、軟體符合性審查(SCR,Software Conformity Review)和軟體實施概要(SAS,Software Accomplishment Summary)。
04.DO-178B中軟體驗證的重要性
軟體驗證是DO-178B的重要組成部分,用於確保軟體按預期執行並滿足安全性和可靠性要求,在軟體部署到飛機上之前識別並消除可能存在的軟體缺陷和錯誤。使用恰當的驗證工具即可幫助開發人員實現各項測試的自動化執行,提升測試效率、效果並縮短開發週期。
▲基於DO-178B的軟體開發與驗證過程
05.軟體驗證工具在DO-178B中的作用
軟體驗證工具在實現DO-178B的目標方面發揮著至關重要的作用,可以幫助開發人員實現靜態分析、動態分析和基於需求的測試等。以下是軟體驗證工具在DO-178B認證中的關鍵作用:
靜態分析工具
靜態分析工具在不執行軟體的情況下分析軟體原始碼,透過檢查程式碼結構、語法和資料流來檢測潛在的缺陷和違反編碼標準的情況,可以識別未初始化變數、緩衝區溢位和不可訪問程式碼等問題,幫助開發人員儘早發現錯誤,從而降低軟體執行中出現故障的可能性。
動態分析工具
動態分析工具用於監測軟體執行過程中的行為,捕捉執行時資訊如記憶體使用、函式呼叫和變數值,對於檢測執行時錯誤、記憶體洩漏和效能瓶頸格外有效,能夠幫助使用者深入瞭解軟體的實際行為,也有助於發現靜態分析中不明顯的問題。
基於需求的測試工具
基於需求的測試工具能夠根據具體的指定需求對軟體進行驗證,據需自動生成測試用例,有助於確保所有需求都得到充分測試;有助於實現需求、設計和測試用例之間的可追溯性(DO-178B的一項關鍵要求)。
06.驗證工具選擇注意事項
在選擇符合DO-178B的軟體驗證工具時,應考慮以下幾個因素:
工具鑑定:DO-178B要求開發過程中使用的軟體驗證工具必須合格,需要證明工具可靠、有效,並且不會帶來額外的錯誤。鑑定過程通常包括記錄工具的功能和限制條件,以及提供工具驗證和確認的證據。
工具整合:所選擇的軟體驗證工具應能整合到開發環境和軟體開發生命週期中,與開發工具、編譯器和其他軟體無縫協作,確保工作流程順暢,並促進驗證自動化。
工具文件和支援:工具文件和支援應包括全面的使用者手冊、教程和示例等文件,供應商的技術支援和定期更新也至關重要。
為確保滿足DO-178B要求,軟體驗證工具的使用應符合標準中規定的準則,應詳實記錄選擇、鑑定和使用工具的過程,並保留工具鑑定和驗證證據,所有工具應在整個軟體開發生命週期中始終如一地使用並接受嚴格的測試和審查。使用合適的需求管理工具來保證每項記錄的源頭追溯、每次修改的記錄在案是個不錯的選擇。
07.總結
DO-178B標準在20世紀90年代就被我國航空工業部門所認識,並對其進行了翻譯。隨著我國航空航天軟體工程化水平的提高,特別是C919等國家重大飛機型號的正式交付和運營,在適航認證目標的驅動下,DO-178B事實上已經成為我國航空工業必須遵循的軟體開發標準。
參考連結
https://visuresolutions.com/do-178-guide/do-178b