DO-178C和FACE(未來機載能力環境)方法形成了一個自然的結合,使開發人員能夠結合軍事和商業領域的機載軟件生產的最佳實踐。通過根據 DO-178C 及其補充文件中提供的指南開發和驗證軟件組件,FACE 組件提供商可以實現其 FACE 可移植性目標,同時實現高 DAL [設計保證級別] 可靠性和安全性。
FACE [未來機載能力環境] 方法是一種政府-行業軟件標準和商業戰略,用于獲取負擔得起的軟件系統,旨在促進全球國防計劃中便攜式功能的創新和快速集成,從而降低系統生命周期成本。但是,FACE技術標準并未直接解決質量或適用性問題。特別是,盡管FACE技術標準定義了與保證相關的語言子集(“安全功能集”),但軟件組件遵守這些子集之一并不一定意味著達到了相關的保證水平。在軍事背景下證明這種保證涉及遵循MIL-HDBK-516C(適航認證標準)或MIL-STD-882E(安全實踐)等標準的指導。
就這些標準而言,它們并不完全關注軟件問題,也沒有解決現代技術(如基于模型的工程、面向對象編程和形式化方法)提供的挑戰(或機遇)。FACE組件開發人員可以利用的一種方法可以幫助實現相關的保證水平,方法是遵循RTCA DO-178C標準(及其補充)中針對商用機載系統所體現的原則。這些標準以軟件為重點,涵蓋現代技術,識別潛在問題及其解決方案。即使沒有進行DO-178C的正式認證,這些標準也可以幫助開發人員滿足最苛刻的可靠性和安全性保證要求,同時通過重復使用FACE應用程序組件實現成本節約。當使用編程語言技術(如 Ada 和 SPARK)時,這些優勢會得到放大,這些技術最能支持高保證系統的開發和驗證。
人臉技術標準
FACE技術標準是在The Open Group FACE聯盟的支持下制定的開放標準,當前版本是3.0版;幾個早期版本(2.0、2.1、2.1.1)也在使用中,并且受支持。FACE 技術標準定義了一個由五個段(圖 1)和數據架構組成的參考架構:
操作系統段 (OSS) 為其他段提供軟件基礎,包括分區、進程/線程管理和內存管理等服務。
輸入/輸出服務段 (IOSS) 定義從 PSSS 到平臺 IO 設備的接口。
特定于平臺的服務段(PSSS)定義了從PCS到IOSS的接口,例如圖形支持。
傳輸服務段 (TSS) 定義 FACE 組件之間的通信接口。
便攜式組件段 (PCS) 提供應用程序功能,并通過僅使用其他段中定義的接口來實現可移植性。
圖1|FACE技術標準定義了一個由五個段和一個數據架構組成的參考架構。
FACE 參考架構的基礎是 OSS,它通過 ARINC 653 和 POSIX API [應用程序編程
接口] 公開標準接口。編程語言的運行時庫通常也是 OSS 的一部分,盡管它們不是通過 API 調用(可能無法在不同的編譯器實現中移植)而是通過源語言語法調用的。
由于符合 FACE 標準的組件可以部署在具有不同安全和/或安保要求的上下文中,因此 FACE 技術標準為 OSS 接口定義了幾個配置文件:
通用 – 對于不需要高級別保證的組件:不保證實時確定性,可選時間分區,需要空間分區。
安全 – 對于需要安全保證的組件:實時確定性,需要時間/空間分區。子配置文件安全基礎和安全擴展反映了允許的 API。
安全性 – 對于需要安全和安保保證的組件:實時確定性,需要時間/空間分區。
FACE組件可以通過語言語法實現運行時功能,而不是在ARINC 653或POSIX API上顯式調用,因此FACE技術標準定義了類似于OSS配置文件的語言限制(“功能集”)。為 C、C++、Ada 和 Java 定義了通用、安全擴展、安全基礎和安全功能集。(FACE技術標準版3.0定義了Ada 95的安全和安保功能集;版本 3.1 為 Ada 2012 添加了這些集。
應用 DO-178C 原則
雖然DO-178C及其補充品是為應用于商業機載系統而開發的,但這些標準不一定是特定于軍用或商業航空的,并且可以用于其他安全關鍵領域。該指南基本上涉及三個主要目標:
可靠性 – 系統執行其應執行的操作(無故障)
安全 – 系統不做它不應該做的事情(沒有危險)
良好的軟件工程實踐 – 配置管理、質量保證等
該標準沒有規定具體的開發流程、危害評估方法或編程語言/工具,而是定義了目標,當滿意時,可以確信軟件滿足這些目標。事實上,大多數目標都與驗證過程有關:人工審查、自動分析和基于需求的測試,以適當的信心表明每個生命周期過程的輸出相對于其輸入是正確的。置信度(以及實現置信度所需的努力)取決于軟件的設計保證級別 (DAL)。
軟件組件的正式 DO-178C 認證可能很昂貴,尤其是在更高的 DAL 上。然而,在需要這種認證的商業航空領域之外,DO-178C可以更普遍地被視為生產安全關鍵系統的“最佳實踐”規范。從這個角度來看,該指南與FACE技術標準的要求是正交的,并且是一致的。通過采用和/或調整基于軟件DAL的DO-178C指南,FACE應用程序開發人員 - 更具體地說,便攜式組件部門的軟件開發人員 - 可以在不進行正式認證的情況下獲得DO-178C提供的大部分好處。
圖2|DO-178C及其補充劑是為機載系統和其他安全關鍵領域而開發的。
編程語言技術
DO-178C 的“軟件生命周期環境規劃”部分抓住了錯誤預防的本質:
。..選擇限制引入錯誤機會的需求開發和設計方法、工具和編程語言,以及確保檢測到引入錯誤的驗證方法。
由于早期錯誤檢測是降低開發和驗證成本的關鍵,因此 FACE 應用程序開發人員需要仔細考慮使用哪種語言和工具。在具有 FACE 技術標準中定義的功能集的語言中,Ada 在編譯時和運行時都強制執行最廣泛的檢查。Ada的形式可分析的SPARK子集更進一步,靜態檢測大量錯誤(包括不正確的信息流和緩沖區溢出),而不會產生大量的“誤報”。
語言和 API 限制
DO-178C 制導對 FACE 組件開發的適用性在 FACE 功能集中得到了證明。盡管通用集可能適用于低 DAL 的軟件,但 DAL C 到 A 的組件可能需要限制為簡單的語言子集(安全擴展、安全基礎或安全),以確保確定性執行和簡單的運行時支持。確定性和簡單性的要求既適用于應用程序代碼本身,也適用于與應用程序隱式鏈接的任何運行時庫(由 RTOS 或編譯器供應商提供)。
例如,FACE 技術標準版 3.0 中 Ada 95 的安全擴展功能集禁止異步控制轉移、動態存儲釋放和許多預定義的標準庫;它還將并發(任務)支持限制為 Ravenscar 配置文件中定義的構造。安全基礎和安全功能集進一步限制了運行時功能,將異常支持限制為“最后機會”處理程序,并禁止動態分配。遵守功能集限制(或為操作系統段配置文件定義的 POSIX 和 ARINC 653 API)有助于簡化安全關鍵型軟件的驗證,同時滿足 FACE 要求。
合格、值得信賴的工具
使用軟件工具自動化、減少或消除活動可以降低成本并防止錯誤,但前提是該工具值得信賴。在DO-178C的說法中,該工具必須在適當的級別進行鑒定。DO-178C 根據工具異常的影響和軟件組件的 DAL 定義了五個工具資格級別,TQL-5(最低)到 TQL-1(最高)。無論 DAL 如何,影響僅限于無法檢測到錯誤的工具都需要根據 TQL-5 的要求進行限定。在另一個極端,輸出是 DAL A 機載軟件一部分的工具必須在 TQL-1 上合格。(由于工具中的異常可能會導致可執行文件中的錯誤代碼,因此在沒有此類異常的情況下需要很高的置信度。各種 TQL 的具體要求在補充 DO-178C 的 DO-330 工具資格考慮標準中定義。
符合相關 TQL 的工具可以信任用于 FACE 組件開發或驗證;資格證明可以證明依賴該工具是合理的,而無需手動驗證工具的輸出。例如,DO-178C 的目標之一是“源代碼符合標準”,對于安全關鍵型 FACE 組件,相關標準將是相關的功能集定義(安全擴展、安全基礎、安保),可能通過項目特定的限制進行增強。檢查源代碼是否保留在生成的子集中的合格靜態分析工具可以減少驗證工作。
源代碼的準確性和一致性
DO-178C 中的關鍵驗證目標之一涉及源代碼的審查和分析:
準確性和一致性。目的是確定源代碼的正確性和一致性,包括堆棧使用情況、內存使用情況、定點算術溢出和解析、資源爭用和限制、最壞情況執行時間、異常處理、未初始化變量的使用、緩存管理、未使用的變量以及由于任務或中斷沖突而導致的數據損壞。編譯器(包括其選項)、鏈接器(包括其選項)和某些硬件功能可能會對最壞情況的執行計時產生影響,應評估這種影響。
FACE組件開發人員需要警惕這些問題,并認識到選擇合適的編程語言和工具的重要性。例如,在運行時在 Ada 中檢測到整數和定點溢出,并且使用 Ravenscar 配置文件進行并發(所有 Ada 功能集都允許這樣做,并且受可在 DO-178C DAL A 認證的運行時庫支持)可以幫助防止數據損壞。SPARK 靜態分析工具可以檢測未初始化變量的使用、未使用變量的出現、整數和定點溢出的可能性以及許多其他錯誤。
使用以前開發的軟件
FACE方法基于重用;在需要高保證的情況下,問題是當軟件組件在不同于最初認證的環境中使用時,如何獲得足夠的置信度。
一個問題是確定組件的 DAL(因此,對于 FACE 組件,要使用的 OSS 配置文件/語言功能集)以及隨之而來的生命周期要求。為了獲得最大的可重用性,應在設想其使用的最高 DAL 下開發和驗證組件。
另一個實質性問題是如何獲得信心,即在一個系統中已被證明滿足相關生命周期目標的組件將滿足另一個系統中的相關目標。DO-178C 為幾種情況提供了具體指導:當重用涉及軟件修改、飛機安裝更改、應用程序或開發環境更改或升級到開發基線時。其中每個項目的基礎活動都是全面的影響分析,以在整個軟件生命周期中識別組件在新上下文中重新部署的影響(包括對已知問題的分析)。例如,將相同的源代碼移植到新處理器將需要重新驗證最壞情況的執行時間假設、足夠的堆棧空間預留和類似的屬性。通過使用合格的工具可以減輕這種重新驗證。
專業技術
現代軟件技術(如基于模型的工程、面向對象和形式化方法)為機載軟件的開發人員帶來了許多好處,但它們也可能導致復雜性。例如,動態綁定簡化了某些設計模式,但也使演示正確的數據依賴關系變得更加困難。DO-178C的技術補充直接解決了這些問題,并展示了如何解決潛在的問題。
FACE方法側重于離散可重用軟件組件的軟件可移植性,將可靠性和安全性要求委托給其他標準。DO-178C專注于系統或子系統級別的軟件可靠性和安全性,將可移植性(使用先前開發的軟件)視為相關問題的“附加考慮因素”,而不是要求。這兩種方法是相輔相成的,是一致的。通過根據 DO-178C 及其補充文件中提供的指南開發和驗證軟件組件,FACE 組件提供商可以滿足 FACE 可移植性目標,同時實現高 DAL 可靠性和安全性。
DO-178C指南的一個關鍵要素是及早發現錯誤。面向軟件工程的語言(如 Ada 和 SPARK)由合格的工具和可認證的運行時庫(如 AdaCore 提供的庫)提供支持,可以簡化安全認證,同時實現 FACE 組件重用。DO-178C和FACE方法形成了一個自然的結合,允許開發人員結合商業和軍事領域的機載軟件生產的最佳實踐。
審核編輯:郭婷
-
接口
+關注
關注
33文章
9005瀏覽量
153749 -
操作系統
+關注
關注
37文章
7152瀏覽量
125584
發布評論請先 登錄
如何保證硫酸銅參比電極測量數據的準確性

提供半導體工藝可靠性測試-WLR晶圓可靠性測試
AEC-Q102認證之器件可焊性

什么是高選擇性蝕刻
請問如何保證多片AD1278的通道之間相位一致性?
實時操作系統可增強安全性和可靠性
汽車軟件單元測試的重要性
如何保證測長機測量的準確性?

工業工程軟件在企業導入中的重要性與必要性
如何保證備自投裝置可靠性和穩定性


無人機機載高光譜成像系統的應用及優勢

評論