陳 茹 張 偉*
(北京青云航空儀表有限公司,北京 100000)
航空軟件具有高復雜性、高可靠性、高安全性的特點和需求。 隨著現代化武器裝備日趨復雜,軟件規模越來越大, 軟件在飛機系統中的應用越來越廣泛,由軟件失效引起的系統故障比重也越來越大。737Max飛機機動增強系統MCAS 故障,接連導致了印尼獅航“10·29”客機墜海事故和埃塞俄比亞航空302 航班墜機,共造成 500 余人死亡[1,2]。
為了提高軟件研制的安全性、可靠性、穩定性和效率,必須建立符合相關要求的軟件工程化研制文件體系和基本的應用流程,以實現對人員素質、組織管理、開發過程、技術保障等影響軟件質量的要素的管控。 目前,航空軍工企業的軟件體系主要依據標準為CMMI,對應的國內標準為GJB 5000A《軍用軟件能力成熟度模型》,而民用航空軟件商為滿足適航要求,其軟件研制通常需要符合DO-178C《機載系統和設備合格審定中的軟件考慮》。 從管理成本和企業競爭力考慮,應建立一套同時符合兩個標準的軟件研制體系[3]。
美國軍方為評估軟件供應商的能力,委托卡內基梅隆大學軟件工程研究所(SEI)建立CMM 模型;2000年,集成包括軟件、系統工程、集成產品和過程開發等多學科,發展成CMMI。 2003 年,我國原總裝備部根據CMM《軟件能力成熟度模型》標準,制定了GJB 5000;2008 年以CMMI 為主要參考藍本,對GJB 5000 進行了修訂,發布了GJB 5000A。 詳細發展歷程如圖1 所示。

圖1 GJB 5000A 及CMMI 標準發布歷程
GJB 5000A 是從過程的視角描述組織的開發能力的模型,是通過實施改進過程以實現質量改進的過程改進模型,共4 類22 個過程域。某一細分領域內相關實踐得到了有效實施(提供證據),代表在這個領域內組織達到了一定的能力水平。 GJB 5000A 將組織的軟件研制能力成熟度分為5 個等級,如表1 所示。

表1 CMMI 模型成熟度和過程域劃分[3]
DO-178 系列標準是由美國無線電技術委員會RTCA 牽頭研究和發布的,用以支持以軟件為基礎的設備和系統的合格審定。 為了滿足機載軟件的迅猛發展,DO-178 系列也進行了幾次版本的更新,如表2 所示。

表2 RTCA DO-178 標準發展歷程
1.3.1 基于軟件過程控制的思想
DO-178C 和GJB5000A 都是基于軟件自身的特點,從過程管控的角度出發,定義并描述了機載軟件的標準化開發過程或階段,就軟件開發過程的具體活動和目標給出了要求和評價標準。
1.3.2 研制過程的相似性
DO-178C 和GJB5000A 對過程的劃分以及過程活動和目標的定義均是從軟件工程的角度出發,在需求管理、需求分析、軟件設計、軟件驗證、配置管理、質量保證等方面,兩份標準具有一定的基礎共通性。
(1)關注目標和對象:DO-178C 關注的對象是具體的特定產品上,需滿足其安全性目標;而GJB5000A面向通用的工程方法、項目管理及過程改進,關注的是軟件組織的能力,而不是單個軟件項目。
(2)應用領域:DO-178C 應用領域為機載系統/設備軟件,GJB5000A 對應用領域沒有限定。
(3)審查方和適航要求:DO-178C 是軟件適航審定過程中的推薦標準;GJB5000A 對適航并無要求,是軍方對軍用軟件承制單位提出的要求, 在GJB 8000中要求承擔不同等級軟件必須具備GJB 5000A 相應等級的研制能力。
(4)研制保證等級DAL 和安全性目標的關注:DO-178C注重研制保證等級DAL 的觀念, 針對不同的DAL 和安全性目標有特定的要求,而GJB5000A 無明確區分。
(5)覆蓋率要求:DO-178C 對不同級別軟件提出的覆蓋率要求(語句覆蓋、判定覆蓋、MC/DC 覆蓋),而GJB5000A 未針對軟件測試提出具體目標。
(6)數據分類管理:DO-178C 配置管理對不同DAL軟件及不同數據進行了分類管理 (CC1 和CC2),而GJB5000A 未做分類管理[4]。
在未建立基于DO-178C 的軟件研制體系的情況下,某個產品滿足DO-178C 的適航要求,可能依賴項目團隊, 無法代表組織的能力達到特定的成熟度水平。但組織建立基于GJB5000A 的軟件研制體系,則代表組織在軟件研制方面具有一定的成熟度能力,根據GJB8000 的規定和一些以往的適航案例,可認為組織具備按照DO-178C 標準實施相應研制保證等級的基礎和條件。因此,可將組織完成GJB5000A 二級或三級認證作為基礎, 通過項目中的軟件適航審定工作,在GJB5000A 軟件體系中融入DO-178C 的新增要求和特殊規定。
通過GJB5000A 認證需建立軟件研制體系文件結構,體系中需遵循相關的軟件標準,常見標準包括:
(1)GJB 8000-2013 《軍用軟件研制能力等級要求》
(2)GJB/Z 141-2004 《軍用軟件測試指南》
(3)GJB 2786A-2009 《軍用軟件開發通用要求》
(4)GJB/Z 102A-2012 《軍用軟件安全性設計指南》
(5)GJB 438B-2009 《軍用軟件開發文檔通用要求》
(6)GJB 5235-2004 《軍用軟件配置管理》
融合上述標準后建立的軟件研制體系,一定程度上增加了與DO-178 的一致性,如對研制保證等級、安全性設計和目標、軟件覆蓋率、軟件研制階段等方面。 軟件研制體系需結合自身組織機構特點,以實現對軟件工程化的全過程進行系統的、條理清晰的、易操作的管理和指導,典型的軟件研制體系文件結構如圖2 所示。

圖2 軟件研制體系文件結構
為了將DO-178C 和GJB5000A 的具體要求進行顯性化對比,根據DO-178C 要求的軟件生存周期,用基于GJB5000A 的軟件研制文件體系進行對比, 各組織的體系文件不同可能存在一些差異,典型映射關系如表3。 由表3 可以看出,DO-178C 所要求的軟件生存周期數據,除《軟件合格審定計劃》《軟件完結綜述》外,其他數據,GJB5000A 大體上可作出對應。
表3 僅僅是基于GJB5000A 的軟件研制文件體系對DO-178C 的單向簡單粗糙映射。 為了在軟件研制體系中融入DO-178C 的要求, 使其能夠滿足軟件適航要求, 還需進行仔細分析后, 針對識別出的差異,對軟件研制體系進行修改,包括新增或調整人員崗位、文件及模板、應用流程、工具方法。 已識別的差異點包括:
(1)適航工作方面的缺失,應增加適航流程和軟件合格審定相關的文件規定,并設置相應的人員進行適航工作;
(2)配置管理方面的數據分類管理(CC1 和 CC2),除修訂體系文件外,必要時需對適用的軟件工具進行升級或替換。

表3 軟件生存周期數據的簡化映射關系
GJB5000A 和DO-178C 對軟件研制過程的描述沒有沖突的地方,僅是關注點不同。 可基于GJB5000A建立軟件研制體系, 提升組織的軟件研制成熟度,在此基礎上, 對體系與DO-178C 之間的差異進行逐項分析, 然后在軟件研制體系中融入DO-178C 的特殊要求,最終應建立一套同時符合兩個標準的軟件研制體系。