彭文希 謝 莉
(四川九洲空管科技有限責任公司,四川 綿陽 621000)
RTCA/DO-178B[1]規定了機載軟件研制的目標以及為了達到這些目標所需的活動與設計考慮,但未提及實現的方法與手段,本文就此問題提出了一些實際可行的工程經驗,包括生命周期階段劃分以及問題處理流程規劃。與獨立適航取證不同,隨機適航由主機廠作為申請方向局方進行表明,機載電子設備供應商向主機廠提供技術支持,同時也需要通過主機廠的驗證評審。在文獻[2]中描述了SOⅠ1 至SOⅠ4 審查階段的活動,但未涉及在軟件研制過程中的問題處理流程分析以及如何完成主機廠的適航驗證活動,文獻[3]描述了機載電子設備的CTSOA 取證過程,重點傾向于對設備的制造符合性試驗及軟硬件審查概述,文獻[4]中主要針對軟件計劃過程的活動研究,未涉及整個生命周期。本文對機載軟件各階段的具體實施過程作了詳述。
民用航空機載軟件研制和審定指南的規定,機載電子設備的軟件可分為3 個過程,分別是軟件計劃過程、軟件開發過程、軟件支持過程,過程的劃分與關系如圖1 所示。

圖1 軟件生命周期過程關系圖
各過程的定義與相互關系描述如下:
a.軟件計劃過程:定義并協調軟件開發和支持過程的活動,此過程屬于軟件生命周期中的軟件計劃階段。
b.軟件開發過程:生產軟件產品的過程,這個過程包括軟件需求過程(即軟件需求階段)、軟件設計過程(即軟件設計階段)、軟件編碼過程(即軟件編碼階段)和軟件/硬件集成過程(即軟件集成階段)。
c.軟件支持過程:確保軟件生命周期過程及其輸出正確、受控和可信。它包括軟件驗證過程、軟件構型管理過程、軟件質量保證過程和合格審定聯絡過程。
軟件生命周期模型采用V 模型開發[5],圖2 展示了開發模型架構。

圖2 軟件V 模型開發流程圖
軟件生命周期可劃分為軟件計劃階段、軟件需求階段、軟件設計階段、軟件編碼階段、軟件集成階段、軟件測試階段和軟件總結階段等7 個階段,軟件構型管理過程、軟件驗證過程、軟件質量保證過程和軟件合格審定聯絡過程則貫穿7個階段。機載軟件生命周期各過程之間是一個相互補充并不斷重復的過程,階段產品是一個反復迭代、持續改進過程的結果。
軟件研制過程不同階段須滿足不同的目標,為了達到這些目標所需要的活動和設計考慮應是什么,該如何既滿足目標要求又能在實際工程中較好地實現?本文以C919 客機某機載軟件隨機適航為例結合文獻[6],解析軟件整個生命周期階段的具體活動。
1.2.1 軟件計劃階段
在軟件計劃階段需完成軟件開發過程的策劃,確定軟件生命周期,包括過程之間的內部關系、它們的順序、反饋機理和轉換準則,同時選擇軟件生命周期環境及軟件開發模型,包括用于每一個軟件生命周期活動的方法和工具,定義與系統安全目標相符的軟件開發標準。
1.2.2 軟件需求設計階段
在軟件需求設計階段可采用SSR 方法[7]完成需求開發,建立軟件高低級需求間的追溯關系,識別軟件衍生需求,對其進行安全性評估,形成軟件衍生需求安全性評估報告,若軟件衍生需求有潛在的安全影響,則應在更上一層需求中增加建立系統需求,相應的衍生需求與之建立追溯關系。
1.2.3 軟件編碼與集成階段
開發人員根據設計的軟件架構和低級別需求編寫符合軟件編碼標準的源代碼,保證其可追蹤性、可驗證性、合理性及正確性。生成可執行目標碼并將其加載到目標機中以完成軟硬件集成,在驗證過程開展軟件代碼的評審與分析和軟件集成工程檢查。
1.2.4 軟件測試階段
在軟件測試階段,驗證軟件是否滿足高低級需求、軟件架構所規定的內容,完成需求、語句、數據耦合和控制耦合覆蓋分析,使得需求覆蓋率和結構覆蓋率達到規定值,對于不滿足覆蓋率要求的軟件部件,應對代碼結構進行分析,確認是否存在軟件缺陷。在此階段中通過測試、評審檢測到的不符合性的或不正確的輸入要反饋至軟件需求過程、軟件設計過程、軟件編碼過程、軟件集成過程和軟件計劃過程。
1.2.5 軟件總結階段
證明整個軟件生命周期符合RTCA/DO—178B 要求,以文本的形式總結研制過程,編制軟件構型索引、軟件生命周期環境構型索引、軟件實施概要等,分析和比較實際軟件研制過程及實際產生軟件生命周期相關數據與軟件合格審定計劃的差異,對偏離情況進行說明。
在隨機適航項目中還須完成主機廠的工程評審,評審后對相關軟件評審問題進行處理歸零,若涉及需上報主機廠批準的修改項,應先申請再整改,處理后發生變更的文件納入軟件構型管理受控庫,變更后的文件還應考慮是否重新提交主機廠,以保證問題處理過程的前后關聯性以及證據的完整性,因此軟件生命周期應設計邏輯合理的問題處理流程以及變更控制過程。
在機載軟件研制過程中存在客戶發起的需求變更或局方適航審查發現的工程問題,當接收到這些問題時將其轉換為內部問題,內部問題又分為工程問題和QA(Quality Assurance)問題,再按照相應的工程問題或QA 問題處理機制進行處理。所有問題項應作為變更的輸入,從而把構型管控與問題處理關聯起來。
在局方審查的四個階段中,證據鏈完整是最重要的特質,因此問題處理與變更的關聯性也是整個軟件研制過程的基本。QA 問題和工程問題處理機制說明如下:
a. QA 問題處理流程:填寫QA 問題報告單并發送至問題責任人,責任人依據QA 問題報告單對相關工作進行整改并填寫處理過程,每一份報告單應有唯一確定的標識號,實現問題可追溯性,項目的質量保證人員對整改措施及結果進行確認審核,完成問題閉環歸零,同時保存相應的QA 問題報告單作為質量保證審核依據。
b. 工程問題處理流程如下:出現工程問題時在工程問題報告單中記錄問題項,并對問題進行影響分析和評估,判定是否需要更改,如需更改還應判斷是否需要提交主機廠批準。問題整改完畢后,由問題整改責任人完成工程問題報告單中問題處理情況的填寫。
在問題整改完畢歸零后應進行受控變更,變更流程為:a.當構型項產生更改時,填寫變更申請,描述變更原因和影響域分析,同時應關聯對應的工程問題報告單編號;
b.更改責任人對構型項實施更改,更改完成后經功能審核、師物理審核、質量審核和軟件測試驗證通過后入庫。
QA 問題、工程問題的問題報告和更改控制流程圖如圖3所示。

圖3 問題報告和更改控制流程圖
機載電子設備軟件適航過程工作量大,審查范圍廣而細,問題處理與更改控制貫穿于整個研制過程,也是適航審查的關注重點。按照SOⅠ1~SOⅠ4 四個階段進行審查,分階段表明軟件符合性,能夠有效地完成隨機適航工作,同時明確機載設備供應商、主機廠與局方之間的分工關系,建立清晰的問題處理流程機制,可以更好地符合DO-178B 標準要求。