葉赪镠,程春姬,馬 晉
(中國航空無線電電子研究所,上海 200233)
近年來,我國武器裝備正處于快速發展時期,軟件的需求日趨增多,軟件的規模、應用范圍、功能和性能都呈指數級增長,軟件逐步成為武器裝備的靈魂與核心。例如,隨著信息技術的飛速發展,綜合到航電系統的功能越來越復雜,任務更加多樣化,系統高度綜合化,航電軟件呈現出大規模、多學科、復雜性等特點,已成為大規模甚至超大規模的復雜軟件系統。同時,航電軟件的交付質量、周期、成本對飛機研制影響越來越大,也越來越受到重視。
由于軍用軟件和硬件環境的匹配要求非常嚴格,各分系統各模塊間接口交聯復雜、信息交換頻繁,實時性,安全性、穩定性要求極高,軟件的質量與可靠性要求越來越高。
自總裝備部出臺GJB5000-2003《軍用軟件能力成熟度模型》和GJB5000A-2008《軍用軟件研制能力成熟度模型》以來,軍用軟件研制單位根據軟件工程化要求開展軟件質量管理工作[1]。
在 GJB5000A軍用軟件研制能力成熟度等級 4中,有兩個過程域:組織過程績效和定量項目管理[2]。組織過程績效收集以往項目的歷史數據,利用各種統計技術,建立和維護組織的過程績效基線和模型。定量項目管理使用組織的過程績效基線和模型,以幫助項目預測是否能達到其質量和過程績效目標,并標識應采取怎樣的糾正措施。引入GJB5000A四級的定量項目管理可實時監控軟件研發質量,采用科學的方法確保軟件研發質量目標的實現。
本文首先介紹了GJB5000A四級軟件定量管理的作用,然后介紹了GJB5000A四級軟件定量管理的步驟,并舉例說明了質量方面的定量管理方法。
GJB5000A四級定量項目管理使用組織的過程績效基線和模型,以幫助項目預測達到目標的確定性概率。通過定量項目管理,快速定位影響軟件質量和成本的關鍵因素,及時調整策略,降低項目開發風險,提高軟件產品質量和降低軟件研發成本[3]:
(1)基于歷史項目度量,通過目標分解和組織提供的基線和模型,客觀、科學地確定項目的目標,并通過預測確定達到目標的確定性概率,避免盲目的制定目標。
(2)在項目執行過程中定期監控,通過階段預測來確定達到目標的確定性概率,主動掌握項目目標的執行情況,有助于對風險進行量化,對目標偏離的情況主動采取最優措施,確保目標的最終實現。
軟件定量管理的前提是組織具有大量的歷史項目數據,并依據歷史數據準確地建立了組織的質量和過程績效基線和模型。
定量管理首先需要確定項目的質量和過程績效目標。軟件策劃階段,軟件負責人應分析組織年度質量和過程績效目標,分析項目特性,識別本項目的績效目標,包括來自于客戶、最終用戶和開發團隊的需求,并確認各目標之間的關系和優先級[4]。
軟件負責人可參考組織庫中類似項目的過程績效基線和模型,制定軟件項目的質量和過程績效目標。通過模擬預測,對目標達成的確定性概率進行分析。當目標確定性概率不符合要求時,需要通過模擬預測對項目的績效目標進行調整,以確定最精準的項目目標。當目標發生沖突或不能達成時,提交管理指導委會員決策。
軟件項目的質量和過程績效目標確定后,通過分析組織過程績效基線和模型,識別能幫助實現項目目標的候選子過程。當組織過程績效模型復雜時,項目各階段子過程具有不同方法,即具有不同的基線,例如需求開發有原型法和訪談法,對應兩個基線,同行評審有會議法和審核法,也對應兩個基線。對于這種情況,策劃階段就需要模擬決策,找出符合績效目標的最佳方法組合,也即各子過程的基線組合。
當定量管理的子過程確定后,項目的階段定量管理時機也就確定了。
然后識別并確定子過程中需要定量管理的產品和過程測量屬性,確定測量項[5],如:缺陷密度、測試覆蓋率等。確定對應測量項的量化分析統計技術,如統計過程控制圖等。
根據以上的分析,需要制訂一份軟件定量管理計劃,作為項目過程中的定量管理依據,內容應包含以上分析的結果。
項目研制過程中,根據軟件定量管理計劃,在項目執行的各子過程階段,采集用于定量管理的測量項的實際數據。在定量分析之前,需要對測量數據進行有效性驗證[6]。
在各子過程階段,把采集的實際測量數據和對應子過程的績效目標進行比較。當實際數據不符合目標要求時,需要進行原因分析,識別不能達成目標的風險,采取必要的糾正措施,調整相應的項目目標基線,通過組織績效模型重新執行模擬預測,以檢驗后面階段項目質量和過程績效目標是否能達成[7]。此過程可能需要多次調整和預測,直致滿足后面階段項目目標。如果多次調整,超出了項目組實際能力范圍仍不能滿足項目目標,需提交項目負責人決策。
監控項目目標過程中,對已識別的風險納入風險管理,確定的問題納入問題跟蹤管理。
項目結束時,由軟件負責人整理項目的定量管理數據并提交軟件工程過程小組(SEPG)[8]。
假設某類型軟件的年度階段質量績效基線和模型如表1和表2所示,表1中的基線符合正態分布。本文結合這些質量基線和模型,進行軟件質量方面的定量管理說明。

表1 某類型軟件年度階段質量和過程績效基線Tab.1 Organizational stage Quality and process-performance baseline for certain type of softwares

表2 某類型軟件階段質量和過程績效模型Tab.2 Organizational Quality and processperformance model for certain type of softwares
需求評審缺陷密度的子因子:需求評審單位規模工作量。
3.2.1 初定項目的質量和過程績效目標
策劃階段,根據軟件估計,某配置項軟件需求條數大概100條,按照表1中需求評審缺陷密度轉換為缺陷數約為【12,18】。由于需求評審缺陷密度對最終質量目標驗收缺陷密度影響最大,該范圍不滿足驗收缺陷密度目標,通過預測,需求評審缺陷數范圍為【14,20】能滿足驗收缺陷密度目標。初步制訂項目的階段質量和過程績效目標,如表 3。由表2中模型公式得出,應變量需求評審缺陷密度是項目的一個階段質量目標,其是否滿足階段目標依賴于自變量子因子需求評審單位規模工作量的定量管理。項目要求達到質量目標的確定性概率大于等于95%。

表3 初定的項目階段質量績效目標Tab.3 Preliminary project stage quality performance objectives
3.2.2 調整項目質量和過程績效目標
使用蒙特卡洛模擬法來預測表3中目標的確定性概率是否能滿足要求,這可通過模擬分析軟件或者編寫相應的程序完成。
每次蒙特卡洛模擬采樣的次數越多(即參與預測的隨機樣本數據越多),預測的準確性會越高。表3中自變量子因子需求評審單位規模工作量基線隨機樣本數據代入表2中的過程績效模型,進行模擬。模型的模擬結果顯示為一張預測圖,如圖1為需求評審缺陷密度預測圖。

圖1 需求評審缺陷密度預測圖Fig.1 The forecast chart for requirement review defect density
根據項目的質量目標,本項目的需求評審缺陷密度應該為(0.14,0.2)。在當前項目質量目標條件下,按照需求評審缺陷密度目標進行估算的確定性概率為63.02%,見圖1,低于95%的質量要求,信心指數過低。
通過模型公式看出,為了達到需求評審缺陷密度質量目標的確定性概率大于等于95%,需要增加需求評審單位規模工作量。項目組根據組織的能力范圍和項目實際情況,調整需求評審單位規模工作量,計算出新的均值和標準差。基于新的需求評審單位規模工作量的基線,預測出新的需求評審缺陷密度目標的確定性概率。如果質量目標確定性概率滿足要求,項目組應策劃新的需求評審措施,例如可采用對需求評審檢查單內容重新制訂、增加或更換評審專家、重新增加需求的評審次數等方案,以增加需求評審單位規模工作量。
需求評審單位規模工作量均值調整到0.25后,重新模擬結果如圖2所示。

圖2 最終需求評審缺陷密度預測圖Fig.2 Final forecast chart for requirement review defect density
由模擬結果看出,加大需求評審單位規模工作量后需求評審缺陷密度達到目標的確定性概率為99.23%,符合質量目標要求,且未超出組織的能力范圍。調整后項目質量目標如表4所示。

表4 調整后的階段項目質量目標Tab.4 Adjusted project stage quality performance objectives
如果再次模擬仍未達到質量目標要求,則需要反復調整質量模型子因子基線數據,多次模擬質量目標并分析確定性概率。
以上例子中模型為一元方程。如果模型為多元公式,即應變量績效目標有多個自變量子因子,例如最終驗收缺陷密度可能和需求評審缺陷密度、編碼人員平均技能系數、集成測試單位規模用例數量、系統測試缺陷密度等多個過程子因子有關,該模型應是一個多元公式。這種情況下調整項目績效目標,首先需要進行敏感度分析,以找出模型中各子因子對績效目標的影響大小。敏感度分析可使用方差貢獻圖表示,子因子的相關系數百分比絕對值越大表示對績效目標的敏感度越大。調整時需要按模型子因子的敏感度由大到小的順序調整,先調整敏感度大的子因子基線,如果在組織能力范圍內調整后不能滿足要求,再調整敏感度小的子因子基線,直致滿足要求。4.2.1節中就是通過敏感度分析找出需求評審缺陷密度對驗收缺陷密度的影響最大。
在調整模型子因子基線數據時,依據經驗和組織實際能力相結合的原則調整,并需要進行原因分析。如果有不可控情況或超出組織能力范圍,需要采取措施、進行風險管理并提交領導決策。
3.2.3 確定軟件階段定量管理內容
項目質量目標確定后,軟件負責人需要根據組織的過程績效基線和模型,確定項目的階段定量管理時機。
項目過程中,模型公式的各應變量和自變量子因子對應的測量項都需要采集實際數據,其所屬的子過程都需要定量管理。
例如,表2模型公式中需求評審缺陷密度和需求評審單位規模工作量都是和定量管理相關的測量項,需要在需求評審階段結束時采集需求評審缺陷數、需求條數、需求評審工作量,并派生計算和定量分析。
把以上的內容寫入軟件定量管理計劃,包含年度組織質量和過程績效目標要求、項目質量目標、項目測量集、子過程定量分析方法、項目風險及目標達成、預防措施等。
項目過程中,項目組按照軟件定量管理計劃進行階段定量管理,定量管理方法和軟件策劃階段的方法類似。
例如,本例中在需求評審結束后,采集實際的需求評審的缺陷數,需求條數和需求評審工作量。計算出實際的需求評審缺陷密度和需求評審單位規模工作量。
如果實際的需求評審缺陷密度超出項目階段質量目標基線上下限范圍,則需調整需求評審缺陷密度的子因子“需求評審單位規模工作量”,并模擬得到新的需求評審缺陷密度。
如果需求評審缺陷密度目標新的確定性概率仍不滿足項目的質量要求,則需要反復調整需求評審單位規模工作量基線數據并多次模擬質量目標。如果有不可控情況或超出組織能力范圍,需要進行風險管理并提交領導決策。
模型子因子基線數據調整后需要按照新的基線數據制定方案,重新進行階段工作。例如本例中需要重新進行需求評審,需求評審結束后再次進行定量管理,直至滿足階段質量目標。
如果模型為多元公式,項目過程中,采用相同方法,在模型公式的各應變量和自變量子因子所屬的子過程采集實際數據和定量管理。
項目結束時,軟件負責人整理項目的定量管理數據,進行原因分析,找出各階段影響質量目標的因素及風險,記錄在階段報告和研制總結報告中,作為后續項目的風險防范。
本文介紹了GJB5000A四級軟件定量管理的方法。通過軟件定量管理,在項目研發過程中能預先預測影響項目目標的風險,及時采取措施,確保項目目標的最終實現。
本文的方法對于軍用軟件的定量項目管理具有很好的參考價值。
[1] 倪亭. 在軟件研發與測試中推廣GJB5000A[J]. 軟件, 2013,34(2): 31-35.
[2] 石柱. 軍用軟件研制能力成熟度模型及其應用[M]. 北京:中國標準出版社, 2009.
[3] 歐陽樹生, 胡勇, 沈華紅. 提高軟件開發項目定量預測模型準確率的研究[J]. 信息技術與標準化, 2016, (8): 68-70.
[4] 張旭, 劉浩馳. 基于CMMI的量化管理在項目中的應用與研究[J]. 電腦與電信, 2016, (4): 62-65.
[5] 馮聽雷. GJB5000A測量與分析過程域研究[J]. 軟件, 2012,33(4): 118-119.
[6] 解群, 鄒步青, 王勇. 軍用軟件過程質量度量實施方法研究[J]. 微型機與應用, 2014, 33(17): 1-4.
[7] 丁岳偉, 劉玉敬. 軟件項目量化管理的實踐[J]. 計算機系統應用, 2012, 21(6): 254-257.
[8] 劉文紅, 馬賢穎, 董銳, 張敏, 陳青, 吳欣, 張光迎. 基于CMMI的軟件工程實施:高級指南[M]. 北京: 清華大學出版社, 2015.