◆ 呂 平 王 磊 潘東梅 欒美艷 胡 浩/ 文
星載軟件PPQA域實施方法的研究和實踐
◆ 呂 平 王 磊 潘東梅 欒美艷 胡 浩/ 文
由于星載軟件運行于特定的環境中,對其質量有很高的要求。對比傳統的航天軟件質量保證,發現星載軟件開發過程中實施過程和產品質量保證更能滿足需求。本文簡述了軟件研發過程和產品質量保證措施,研究了在星載軟件開發中的實施方法和具體實踐驗證,這些實施方法可以實時監控軟件項目的進展,及時發現問題和解決問題,進而提高軟件質量。
星載軟件;軍用軟件研制能力成熟度模型;過程和產品質量保證;質量保證
隨著航天軟件在航天型號系統中所占比重不斷增加,軟件質量已經成為影響航天產品質量的關鍵。航天星載軟件是具有高可靠性、高安全性的實時嵌入式軟件,軟件質量要求零缺陷。運用傳統的航天軟件質量保證工作存在以下幾個突出問題[1][2]:軟件開發文檔管理不健全;對軟件開發過程的監督不到位;對軟件質量缺陷未進行趨勢分析。過程和產品質量保證(Process and Product Quality Assurance以下簡稱“PPQA”)可以解決這些不足之處。但是,不同的軟件項目,PPQA的實施方法不盡相同。結合星載軟件項目的特點,提出星載軟件PPQA實施方法,通過嚴格的文檔標準有效規范軟件開發文檔;通過檢查軟件項目日常活動及時監控軟件開發過程;通過參與軟件開發和測試準確掌握項目中出現的質量問題,規避將來可能出現的問題。這些方法的實施,為交付高質量的航天星載軟件提供了保障。
PPQA是軍用軟件研制能力成熟度模型中一個重要的關鍵過程域,它貫穿于整個軟件開發的生命周期。PPQA過程域涉及三個方面[3][4]:對照適用的過程說明、標準和規程客觀地評價所實施的過程、工作產品和服務;標識并文檔化不符合問題,確保不符合項問題得到解決;向項目團隊成員和各級領導提供關于質量保證活動結果的反饋。其中,客觀的評價過程符合性是PPQA對其他過程域執行情況進行檢查和驗證的前提,確保其他過程域在執行過程中,按照已定義的過程說明、標準和規程正確執行,最終保證了達到其他過程域執行的目標。以軍用軟件研制能力成熟度模型二級為例,PPQA過程域與其他過程域之間的相互關系如圖1 所示。
圖2是PPQA的具體工作流程,圖中的“輸入”為PPQA每項活動執行的依據,“輸出”為每項活動完成后形成的PPQA工作產品。
2.1 評價過程活動和工作產品
過程活動評審需根據軟件項目的特征,確定需要檢查的各過程域中質量保證(以下簡稱“QA”)的任務和活動,并估計檢查次數、時間和人員。評審的頻度可分為事件性、階段性、每月例行等。活動評審通過檢查評審的形式實施。
工作產品審核需根據軟件項目開發計劃中的軟件產品評審計劃規定的工作產品和評價準則,安排參與軟件產品審核計劃。評審形式包括QA獨立審核、參與同行評審和參與評審。
2.2 通報并確保不符合問題解決
不符合問題是QA人員在產品審核和過程活動評審中發現的問題,它們反映出項目在遵循使用的標準、過程描述或規程中的不足。評審任務完成后或活動結束后,對評審中發現的軟件過程活動不符合項,QA人員需要跟蹤不符合問題的解決情況,直至問題關閉。
2.3 建立記錄并通報QA活動結果

圖1 PPQA域與其他過程域相互關系
QA人員建立并維護質量保證活動的記錄,并向相關人員通報QA活動結果。在此過程中產生的軟件工作產品審核檢查單、軟件活動評審檢查單、軟件不符合項跟蹤狀態表和QA階段報告納入開發庫;軟件質量保證計劃和QA總結報告納入受控庫。

圖2 過程和產品質量保證工作流程圖
3.1 制定軟件質量保證計劃
QA人員參與軟件生存周期模型的定義和軟件開發計劃的制訂,根據軟件開發計劃制定軟件質量保證計劃,計劃定義出各過程活動的檢查重點,標識出審核的工作產品對象,定義得越詳細,對QA人員今后的工作指導性就越強。計劃的主要內容如下表1所示。對于不同的項目,QA計劃在應用模板的同時,應再根據項目的具體要求在較低層次上進行個性化處理。選用不同的軟件研制模型,軟件研制階段也不相同,QA人員應根據項目的生命周期模型制定活動評審計劃。例如,對于中小型星載軟件項目,制定軟件產品的工作分解結構時,一次分解到位,不進行二次分解;在定義過程活動時,可以刪減每個階段開始前的實施策劃活動評審,提高QA人員的工作效率。
3.2 參與階段性評審和審核
階段過程活動評審重點是審查項目定義的過程是否得到實現。在評審的過程中,需根據軟件項目具體情況,剪裁或細化檢查單。例如,每月例行評審檢查單中的配置管理日常活動評審項是針對項目是否按照《軟件配置審核規程》進行審核、出入庫是否符合規程要求等進行評審的。但是,對于時間周期短的星載軟件項目,再按照每月例行評審檢查配置管理相關活動,實效性不足,應將每月例行評審檢查單中的配置管理日常活動評審項進行裁減,對于項目開發過程中進行工作產品出入庫活動使用專門進行配置管理評審的檢查單進行實時評審。
階段產品審核的側重點應放在軟件工作產品的符合性、可理解性、文檔的一致性和可追蹤性等方面。對工作產品內容的正確性一般不做審核,只審核內容的有無,是否符合規范,確保設計文檔可以為后續工作提供切實的指導。同時,針對星載軟件項目的特點,對具有里程碑意義的工作產品,QA人員在進行了重點詳細的獨立審核后,應再組織同行評審。
3.3 檢查軟件項目日常活動
只參與階段性評審和審核,無法及時監督項目團隊的進展情況。QA人員可以通過參加雙周例會,及時獲取軟件項目的任務分配和跟蹤、風險跟蹤信息。在軟件開發的兩個階段點之間進行項目監控檢查,提供監控報告給項目負責人和QA組長,如開發進度及不符合項問題的數量是否合理等,以便能及時反映出項目團隊中存在的問題,并對其進行跟蹤,把問題控制在最小的范圍之內。
3.4 參與軟件開發和測試
軟件開發過程中一些關鍵的質量問題往往出現在具體的開發過程中,QA人員應參與開發和測試。在進行設計和測試文檔的審核時,不僅對工作產品的符合性、一致性和可理解性進行審核,還應當從文檔的規范性、文檔的具體內容上進行審核,給項目團隊提供有力的支持。同時,QA人員在這個過程中可以及時準確地掌握項目中出現的質量問題,并能更好地融入到項目團隊中,有利于質量保證工作的展開。
3.5 跟蹤問題的解決情況
在評審過程活動、工作產品和項目日常工作中發現問題,QA人員要及時填寫《軟件不符合項報告》,與軟件項目負責人及問題相關負責人討論問題的解決措施,并填寫《軟件不符合項跟蹤狀態表》,進行全程跟蹤,指導所有不符合問題得到解決。對于在項目團隊內可以解決的問題應盡量在項目團隊內部解決,對于在項目團隊內不能解決或逾期未能解決的不符合問題,例如超出承諾期限、項目不愿意修改等,QA人員可以利用其獨立匯報的渠道將問題上報給高層領導尋求支持,協助項目團隊盡快解決問題。
3.6 分析軟件質量趨勢
在軟件項目的QA活動實施過程中,QA人員將在過程活動評審、工作產品審核后創建評審/審核報告,并在開發階段、里程碑時進行測量統計。根據測量統計結果分析確定QA活動的狀態,寫入階段報告及總結報告中,提交給軟件項目負責人及相關報告對象,向他們給出相關的質量趨勢。在進行質量趨勢分析時,應充分利用圖表,以便一目了然。QA階段報告與QA總結報告內容側重點是不一樣的,在QA階段報告中應重點分析此階段的過程活動評審和工作產品審核中發現的不符合問題及問題產生的原因,避免在下個開發階段出現類似問題。而在QA總結報告中應通過對已發生問題的數據進行對比、統計、時間序列等分析,來判斷軟件產品質量的總體趨勢,為評估軟件整體質量提供參考數據,并為將來的項目開展積累經驗和數據。
下文是PPQA實施方法在星載軟件開發過程中的實踐,詳細描述QA人員在每個開發階段的檢查任務、發現的問題、原因的分析及糾正措施。
4.1 項目策劃階段

表1 質量保證計劃內容
PPQA工作在軟件項目啟動時就開始進行。QA人員參與編制軟件開發計劃,為軟件項目負責人提供適合項目的使用標準和規程,并以此為基準制定項目質量保證計劃。將通過評審的質量保證計劃納入到受控庫中,并發送給項目相關人員。QA人員審核的工作產品包括軟件項目估計表、軟件開發計劃和配置管理計劃。
4.4 需求分析階段
需求分析階段在軟件生命周期模型中被設置為里程碑階段。QA人員為項目團隊提供有關軟件需求分析的標準、模板要求指導和文檔撰寫咨詢。對軟件需求規格說明書進行工作產品審核,以確保需求的一致性和可追蹤性。審核后的需求規格說明書經過評審入受控庫后,建立基線庫。此階段的需求管理活動和配置管理活動多,QA人員評審的重點是用戶需求確認活動、功能基線建立和發布活動、需求跟蹤活動和配置審核控制活動。
4.3 軟件設計階段
軟件設計階段工作包括概要設計和詳細設計。QA人員為項目團隊提供有關體系結構設計和詳細設計的標準、模板要求指導和文檔撰寫咨詢。概要設計說明和詳細設計說明的工作產品審核重點是確保設計的規范性和文檔編制的符合性與一致性。過程活動評審從保證評審過程有效性方面入手,如評審過程是否符合標準等。
4.4 軟件編碼階段
編碼階段是開發人員根據通過評審后的設計說明,進行編碼實現。QA人員幫助項目團隊理解編程規范等與過程有關的規程和標準。根據項目所使用的設計語言對源代碼進行編碼規范檢查,檢查原則為20%抽樣方法。QA人員對被抽樣源代碼的審核重點是版面風格、代碼規則審查和注釋率等。
4.5 軟件測試階段
測試階段是軟件開發過程中非常重要的階段,直接影響軟件代碼質量。QA人員幫助項目團隊理解測試計劃和測試用例的撰寫要求,向項目團隊提供有關測試規程和標準的咨詢。軟件測試包括單元測試、集成測試和配置項測試。QA人員對工作產品的審核主要是測試計劃、測試說明和測試分析報告的編寫是否符合規范,是否按照要求完成。
PPQA在星載軟件開發過程中的實施,需要根據項目的具體情況進行剪裁或者細化過程活動的評審和工作產品的審核。在星載軟件開發過程的具體實踐中,由于軟件項目負責人的工作任務多,導致項目的監控力度不足;設計文檔的編寫人員對文檔編寫標準理解不深入,導致項目工作產品審核中存在不符合問題增多等問題,通過調整項目負責人的工作分配和加強培訓設計文檔編寫人員,保證項目進展良好。實踐證明:有效的過程和產品質量保證實施方法可以加強對軟件開發過程的控制,提高開發文檔的規范化,積累寶貴的軟件研制管理經驗。
[1]石柱.軍用軟件能力成熟度模型可重復級實施指南[M]. 北京:中國標準出版社,2006年12月.
[2]劉根.軍用軟件質量保證問題研究[J].質量與可靠性,2010,147(3):48-50.
[3]李華北,劉小茵,鄭丹丹,等.過程改進基本原理及CMMI實施[M]. 北京:中國標準出版社,2009年11月.
[4]常柏林,孫中泉,劉陽.GJB5000A 2級軍用軟件過程管理[J].四川兵工學報,2010,10(31):141-143.
(作者單位:航天電子技術研究所)