周培
(中航雷華柯林斯(無錫)航空電子設備有限公司質量適航部,無錫214063)
隨著民用機載軟件的功能、種類和規模日益增長,對軟件適航的相關要求、方法和技術也不斷提高。DO-178C《機載系統和設備合格審定中的軟件考慮》于 2011 年正式發布,作為 1992 年的DO-178B的升級,除了在錯誤與不一致、術語一致、措辭改進等方面進行修訂之外,主要在目標與活動、補充、工具鑒定、協調系統與軟件層面等方面進行了更新與改進。DO-178C 作為機載軟件適航可接受的符合性標準,明確要求機載軟件綜合過程中必須包含軟件質量保證(SQA)過程。
國內,各軍民用軟件研制單位都在積極開展軟件質量保證工作,常采用 GJB 5000A+DO-178C 的模式。基于GJB 5000A 的軟件質量保證與質量管理研究較多,但 GJB 5000A 未明確說明軟件質量保證過程的過渡準則。而美國航空無線電技術委員會(RTCA)頒布的DO-178C 僅提出相關目標和指南性描述,并未具體說明產生適航要求的質量數據方法。
本文從軟件生命周期的定義、過程和數據出發,首先探討實施軟件質量保證的原因和必要性;其次基于DO-178C 軟件質量保證過程的目標、活動和符合性評審三個方面分析該過程的實施;最后結合軟件項目質量管理技術和工具,從規劃軟件質量管理、管理軟件質量和控制軟件質量三個過程探究基于DO-178C 的軟件質量管理方法并給出工程實踐建議。
一個項目的通過為每個過程選擇活動,為活動指定順序,并為活動分配職責來定義一個或多個軟件生命周期。項目屬性決定了過程順序,軟件開發過程的通常順序是需求、設計、編碼和集成。
軟件生命周期的過程可能是迭代的,也就是輸入和重新輸入。迭代的時間和程度因系統功能的增量開發、復雜性、需求開發、硬件可用性、對先前過程的反饋以及項目的其他屬性而變化。所選軟件生命周期的各個部分通過增量集成過程和軟件驗證過程活動的組合聯系在一起。
DO-178C 的軟件生命周期過程包含以下四個方面。
(1)軟件計劃過程(Software Planning Process,簡稱 SPP)。
(2)軟件開發過程(Software Development Process,簡稱SDP)。該過程輸出軟件產品,分為需求、設計、編碼和集成四個過程。
(3)軟件綜合過程(Software Integration Process,簡稱SIP)。該過程分為驗證、配置管理、質量保證和審定聯絡四個過程。綜合過程與開發過程在整個軟件生命周期并行。
生命周期過程之間的關系如圖1 所示,可以看出:軟件質量保證過程是軟件綜合過程中必不可少的一部分。

圖1 DO-178C 的軟件計劃、開發與綜合過程的關系Fig.1 Relationship between software planning,development and integration process of DO-178C
軟件生命周期過程會生成軟件生命周期數據,這些數據是機載軟件產品的表現形式,也是軟件生命過程的記錄,更是軟件適航取證的基本依據。軟件生命周期過程所產生的軟件生命周期數據如圖2 所示,其中5 大計劃包括軟件開發計劃(SDP)、軟件驗證計劃(SVP)、配置管理計劃(SCMP)、質量保證計劃(SQAP)和軟件審定計劃(PSAC);3 大標準包括軟件需求標準(SRS)、軟件設計標準(SDS)和軟件編碼標準(SCS)。軟件質量保證計劃用以指導軟件質量保證過程的工作開展。

圖2 DO-178C 的軟件生命周期數據Fig.2 Software life cycle data of DO-178C
DO-178C 明確要求確保軟件質量保證(SQA)過程。SQA 過程根據軟件規劃過程和軟件質量保證計劃的定義進行應用。SQA 過程活動的輸出記錄在軟件質量保證記錄或其他軟件生命周期數據中。
SQA 過程評估軟件生命周期過程及其輸出,以確保目標得到滿足,缺陷得到檢測、評估、跟蹤和解決,軟件產品和軟件生命周期數據符合取證要求。
SQA 過程目標通過確保這些過程按照已批準的軟件計劃和標準執行,為軟件生命周期過程產生符合其需求的軟件堅定了信心。
SQA 過程的目標是確保下述流程。
(1)開發和審查軟件計劃和標準,以符合DO-178C 并保持一致性。
(2)軟件生命周期過程符合已批準的軟件計劃和標準。
(3)滿足軟件生命周期過程的轉換標準。
(4)對軟件產品進行符合性評審。
為滿足SQA 過程目標:SQA 過程應在軟件生命周期過程的活動中發揮積極作用,并使那些執行SQA 過程的人具有權力、責任和獨立性,以確保SQA 過程目標得到滿足;SQA 過程應保證軟件計劃和標準的制定與評審的一致性;SQA 過程應確保軟件生命周期過程符合批準的軟件計劃和標準;SQA 過程應確保軟件生命周期過程的過渡準則已符合批準的軟件計劃;SQA 過程應確保軟件生命周期數據按照控制類別進行控制;在交付作為取證申請一部分提交的軟件產品之前,應進行軟件符合性審查;SQA 過程應產生SQA 過程的記錄,包括作為取證申請的一部分提交的每個軟件產品的審核結果和完成軟件符合性評審的證據;SQA 過程應提供供應商過程和輸出符合已批準的軟件計劃和標準的保證。
SQA 過程應包括在軟件生命周期內對軟件開發和集成過程的審核,以確保:
(1)軟件計劃有效。
(2)對軟件計劃和標準的偏差進行檢測、記錄、評估、跟蹤和解決。一般認為過程偏差的早期檢測有助于有效實現生命周期過程目標。
(3)記錄已批準的偏差。
(4)軟件開發環境已按照軟件計劃的規定提供。
(5)問題報告、跟蹤和糾正措施過程符合軟件配置管理計劃。
(6)通過正在進行的系統安全評估過程向軟件生命周期過程提供的輸入已得到處理。
軟件符合性評審的目的是確保作為取證申請的一部分,提交的軟件產品的軟件生命周期過程是完整的,軟件生命周期數據是完整的,可執行目標代碼是受控的,并且可以重新生成。
審查應確定下述9 個方面。
(1)已完成計劃的軟件生命周期過程活動,包括生成軟件生命周期數據,并保留其完成記錄。
(2)從特定系統需求、安全相關需求或軟件需求開發的軟件生命周期數據可追溯到這些需求。
(3)軟件生命周期數據符合軟件計劃和標準并按照軟件配置管理(SCM)計劃進行控制。
(4)問題報告符合SCM 計劃,已經過評估并記錄其狀態。
(5)記錄并批準軟件需求偏差。
(6)可執行目標代碼可以從存檔的源代碼中重新生成。
(7)通過使用已發布的說明書,可以成功加載已批準的軟件。
(8)先前的軟件符合性評審中的問題報告將被重新評估以確定其狀態。
(9)如果為使用先前開發的軟件尋求取證,則當前的軟件產品基線可追溯到先前的基線以及對該基線的已批準更改。
從DO-178C 的軟件質量保證要求可以看出,機載軟件的質量管理可分為三大過程,即規劃軟件質量管理、管理軟件質量和控制軟件質量。
通用的規劃質量管理是識別項目及其可交付成果的質量要求和標準,并準備對策確保符合質量要求的過程。對于機載軟件,則是根據DO-178C 的SQA 過程要求在規劃階段產生軟件質量保證計劃(SQAP)。該計劃建立用于完成SQA 過程目標的方法,應包括過程改進、質量測量指標和管理方法的描述,SQAP 需要包含下述內容。
(1)環境:描述SQA 的環境,包括范圍、組織職責與聯系、標準、程序、工具和方法。
(2)權力:聲明SQA 的權力、職責和獨立性,包括軟件產品的批準權限。
(3)活動:SQA 活動貫穿整個軟件生命周期,包括SQA 方法,例如評審、審計、報告、檢查和監控等;問題報告、跟蹤和糾正措施的相關活動;軟件符合性評審活動。
(4)過渡準則:明確進入SQA 過程的過渡準則。
(5)時間安排:在軟件生命周期活動中SQA過程活動的時間安排。
(6)SQA 記錄:定義SQA 過程產生的記錄。
(7)監督供應商:描述確保供應商的實施過程和輸出滿足計劃和標準的方法。
管理軟件質量即實施SQA 過程,采用SQAP中定義的方法審計質量要求和質量控制測量結果,促進SQA 過程持續改進。
在實施SQA 過程中,通過用SQAP 過程預防缺陷,或者在軟件生命周期中對正在進行的工作檢查出缺陷,來保證質量的確定性。在此執行過程中,會產生一系列的SQA 記錄,如評審記錄、審計報告、檢查單、監控記錄等,并以此觸發糾正措施、預防措施或缺陷補救來提出變更請求。而變更請求需要全面考慮改進建議,因此,實施SQA過程是為過程持續改進創造條件。
機載軟件通常為瀑布模型,控制質量活動由特定人員在特定時間點執行。質量控制監督并記錄質量執行結果,以便評估績效,核實軟件和工作已經達到主要相關方的質量要求,可供最終驗收。通過績效審查,測量、比較和分析質量測量指標,采用根本原因分析,書面記錄質量控制測量結果,隨之產生相應的確認變更和被核實的交付軟件。
綜上所述,基于DO-178C 的軟件質量管理過程如圖3 所示。

圖3 DO-178C 的軟件質量管理過程Fig.3 Software quality management process of DO-178C
在機載軟件質量管理過程中可采用的工具和方法為:質量成本分析,檢查單,同行評審,審計,問題解決方法,檢查。
應充分給予軟件質量人員(SQE)對軟件相關過程和產品進行質量判斷的職責和權力,包括停止交付不符合要求的軟件產品和文檔的權力。在產品發布前,必須由SQE 批準產品中使用的所有軟件或用于產品驗收測試的所有軟件和相關文檔。在整個軟件生命周期中,工程人員負責設計和開發軟件以滿足內部和外部客戶以及監管機構的要求,而SQE 的角色應是“客戶的聲音”,與工程合作以確保軟件需求被理解,使用的設計方法能夠產生可接受的軟件產品。
靈活并高效使用機載軟件質量管理過程的技術和工具。對組織過程資產的檢查單庫應進行維護更新,包括編碼檢查單、計劃檢查單、測試用例/測試步驟檢查單等。切實落實同行評審,采用專家判斷,組織相關方和領域專家在軟件需求、設計、測試和驗收階段有效開展同行評審,針對交付軟件提出高質量的問題發現并實施糾正措施。對于階段審計,不只是識別不符合項,更應識別并積累正在實施的最佳實踐,對質量問題庫進行更新以積累組織的經驗教訓知識庫。靈活使用問題解決方法,通過定義問題,識別根本原因,生成可能的解決方案,選擇最佳解決方案,執行并驗證解決方案的有效性,解決發現的不符合項。
民用機載軟件的質量管理目標在于使客戶滿意,“計劃—實施—檢查—行動(PDCA)”戴明環仍然是其持續改進的基礎。管理層在其質量職責內應創造并保持真正使全員能充分參與實現質量目標的內部環境。由于使用民用機載軟件的環境獨特性和系統依賴性,也應增強與其他供應商的互利合作關系,以推動質量的保證,共同實現客戶的需求和期望。
以民用機載軟件中某綜合監視系統軟件項目為例,在六個月的執行過程中,采用基于DO-178C的軟件質量保證與管理方法。該軟件項目的質量目標如表1 所示,質量目標分為準時交付率、交付合格率與客戶滿意度。準時交付率=計算期內準時交付的交付物數量/計算期內計劃交付的交付物數量;交付合格率=計算期內合格交付的交付物數量/計算期內實際交付的交付物數量;客戶滿意度滿分為5 分,3 分表示滿足客戶的期望。

表1 某綜合監視系統軟件項目7~12 月的質量目標Table 1 Quality objective of integrated surveillance system software from July to December
從表1 可以看出:雖然每個月準時交付,但是隨著SQAP 的建立,實施SQA 過程并進行軟件質量測量結果的控制,交付合格率逐漸提升,且客戶對軟件質量的滿意度逐漸增加。
該軟件項目的質量目標可分解為兩個關鍵過程的關鍵績效指標:糾正與預防措施過程,變更控制過程,如表2 所示,其中糾正與預防措施過程包括糾正與預防措施的按時關閉率,變更控制過程包括軟件變更請求的按時關閉率。SQA 過程在每個月進行檢查和評審,針對不合格項均開展根本原因分析并發起糾正或預防措施,并積極參與軟件研發過程中的變更請求。

表2 某綜合監視系統軟件項目7~12 月的關鍵績效指標Table 2 Quality KPIs of integrated surveillance system software from July to December
從表2 可以看出:糾正與預防措施的按時關閉率逐漸提高,軟件變更請求的按時關閉率也逐漸增大,表明有效的軟件質量保證與管理方法使問題減少且提高變更請求的效率。
民用機載軟件的合格審定作為復雜的綜合性工程研究內容,DO-178C 為其可接受的符合性與適航性審定活動提供了明確的指南。質量保證過程作為DO-178C 的要求,是貫穿軟件全生命周期的必不可少的重要過程,過程產生的質量記錄更是適航取證的必需數據。
基于DO-178C 的軟件質量保證與管理的落實,有利于推進民用機載軟件質量的提升和適航取證,更有助于在當今采用多標準、多體系融合運行的趨勢下提高軟件質量保證能力,為符合需求的機載軟件提供信心,力求縮小差異使客戶滿意,有效保證機載軟件的質量和持續改進。