楚 菲 宿魯艷
(中國電子科技集團公司第二十八研究所 南京 210023)
指揮信息系統[1]軟件的研制過程有著軟件系統復雜、軟件需求變化快,軟件規模龐大,研制周期短等特征。為了適應指揮信息系統軟件研制特點,對于軍工企業而言進行軟件工程的過程改進是必由之路,要不斷地優化企業的軟件工程實踐,采取適合企業情況的最佳實踐。
軍用軟件能力成熟度模型是軍用軟件全生存周期過程技術和管理最佳實踐的集合[2]。這些“最佳實踐”是對過程活動所獲得的經驗、做法進行總結和萃取,將其形成標準化的,可推廣實施的操作、流程、規則等,以有效地在整改組織范圍內最大地利用改進過程所創造的價值[3]。這些實踐可以指導組織實施精細化過程管理,不斷改進組織過程,提高質量和過程績效[4],提升組織整體交付效率,降低交付后缺陷率,進而實現組織核心競爭力的提升,提升客戶滿意度。在軍用軟件能力成熟度模型四級“量化級”中明確要求“采取量化分析技術,實現較高的質量和過程績效”。一個組織整體運作的關鍵因素在于組織過程績效,建立和維護組織過程績效基線和模型是非常關鍵的,是提升組織能力和進行定量管理的基礎[5]。
本文選取軟件設計評審過程進行量化改進,給出了建立軟件設計評審過程性能模型的方法。在模型建立過程的工具選擇方面,由于Minitab 是一款體積小、功能全面的質量管理工具軟件,它涵蓋了基本統計技術、回歸分析、方差分析、實驗設計分析、控制圖、質量工具和可靠性工具等功能[6],本模型建立過程選用Minitab工具。
軟件質量之父Watts S.Humphrey 多年前就提出了團隊軟件過程TSP(Team Software Process)模型[7],在該模型中提出了十個量化法則,其中兩個量化法則能夠充分說明軟件設計評審的重要性。具體描述如下。
關于工作量分布的定量法則:在設計評審上花費的時間比設計時間多50%以上時,評審一般比較徹底。這條法則告訴我們相比設計過程,設計結果是否正確、合理、足夠優秀更為重要。而要確保好的設計結果就要抓好設計評審。
關于質量分布的定量法則:80%的軟件缺陷[8]應該在編譯之前發現。這條法則告訴我們軟件缺陷越早發現越好。越早發現缺陷,修復軟件缺陷的成本越低。研究表明,評審在發現規格說明錯誤和設計錯誤方面的有效性高達75%。由于能夠檢測出并排除掉絕大部分的這類錯誤,評審過程將極大地降低后續開發和維護階段的成本[9]。
指揮信息系統軟件的研制過程中,擬制軟件設計說明是不可或缺的一個環節,軟件設計說明主要描述計算機軟件配置項的設計,包括計算機軟件配置項級設計決策、計算機軟件配置項體系結構設計和實現該軟件所需的詳細設計[10]。軟件設計過程是軟件編碼前非常重要的一個環節,所以在軟件設計評審過程中充分挖掘問題顯得至關重要。建立模型,能夠掌握已研制軟件過程狀態的穩定性和過程之間的關系,開展后續軟件預測,對目標實現的達成情況進行分析并有針對性地采取措施[11]。因此,為了把好軟件編碼前最后一道關,提升軟件設計評審有效性,研究軟件設計評審過程性能模型的建立方法是十分必要的。
建立軟件設計評審過程性能模型要盡可能地識別出所有對過程性能有影響的因子,并對影響因子進行分類、排序后,初步確定影響軟件設計評審質量的因子是:軟件設計人員能力、軟件設計投入工作量、評審人員能力、評審速率、項目難度、軟件需求評審清除缺陷密度,即:軟件設計評審清除問題密度Y=f(項目難度X1、軟件設計人員能力X2、評審人員能力X3、評審速率X4、軟件設計單頁投入工作量X5、軟件需求評審清除缺陷密度X6)。
模型因子取值如下。
項目難度X1取值說明見表1。

表1 項目難度X1取值說明

表2 單個設計人員能力取值說明

表3 單個設計人員能力取值說明
評審速率X4=軟件設計文檔頁數/評審所花工時;
軟件設計單頁投入工作量X5=軟件設計總工作量/軟件設計文檔頁數;
軟件需求評審清除缺陷密度X6=軟件需求評審問題數量/軟件需求文檔頁數。
按照如下原則收集原始有效數據,作為建立軟件設計評審質量過程績效模型的樣本數據:
1)近五年軟件研制類或含軟件的系統研制類項目;
2)開展了軟件設計評審活動的項目數據;
3)軟件設計評審度量數據完整,詳實。
軟件設計評審原始數據收集表見圖1,為了達到能建立模型的要求,篩選后至少保留20 組數據。

圖1 軟件設計評審原始數據收集表模板
對原始數據進行整理、分析,首先刪除無效數據,如:設計評審問題密度等于零的項目數據;然后分別對設計評審問題密度和各模型因子進行排序,識別出設計評審問題密度特別小或特別大的數據,對數據的特殊性進行研判,如果項目存在特殊性導致設計評審問題密度數據異常,則剔除該異常數據。
按照圖1 模板建立原始數據表,導入初步篩選后的模型預測值和所有模型因子數據。將設計評審量化模型因子X1~X6和軟件設計評審清除問題密度Y 拷貝至Minitab 工具中,為便于在Minitab 工具中顯示,預測模型和部分模型因子簡稱如下。
軟件設計評審清除問題密度Y 簡稱為“設計評審問題密度”;
軟件設計人員能力X2簡稱為“設計能力”;
評審人員能力X3簡稱為“評審能力”;
軟件設計單頁投入工作量X5 簡稱為“設計工作量”;
軟件需求評審清除缺陷密度X6 簡稱為“需求評審問題密度”。
建立如表4 的工作表,設計評審清除問題密度值Y對應C8列,各模型因子值X對應C2~C7列。

表4 建立模型Minitab原始數據表
所有統計分析的過程都是基于樣本服從正態分布的假設,所以樣本數小于30 的樣本必須先進行數據正態性檢驗,只有服從正態分布的樣本得到的控制圖才有意義。
對軟件設計評審清除問題密度Y 和各連續型模型因子X 數據分析進行正態性檢驗,概率圖見圖2。

圖2 選定正態性檢驗圖
圖2 直觀地展示了樣本點和標準正態性分布的擬合程度,并列出了樣本數據的均值、標準差、樣本量(N)、樣本數據的累積分布與理論正態的累積正態分布的面積差(AD 值)、統計量指標(P 值)。AD值越小,樣本數據越接近正態分布。圖3中P值小于0.005,說明樣本數據不服從正態分布。則對數據進行穩定性檢查,區分過程的普通原因和特殊原因的簡單有力工具是控制圖[12],嘗試借助控制圖識別異常點,刪除異常點后再進行數據正態性檢驗。

圖3 變量控制圖
控制圖基于正態分布理論建立,按順序繪點成圖,以此監控過程是否處于控制狀態。控制圖中包括中心線、上控制界限和下控制界限,上下控制界限線以內的點可接受,上下控制線以外點為異常點[13]。使用Minitab 工具進行數據穩定性檢查,生成變量控制圖見圖3。
控制圖中顯示有兩個點距離中心線大于兩個標準差,判定為異常點,數據不穩定,剔除異常點后,重新進行數據正態性檢驗和數據穩定性檢查。剔除異常數據的樣本數據符合正態分布,正態性分析見圖4,數據穩定性分析見圖5,數據穩定,未見異常點。

圖4 選定正態性檢驗圖

圖5 變量控制圖
為了驗證軟件設計評審清除問題密度Y 與每一個模型因子X 之間、以及模型因子X 兩兩之間的線性關聯程度。使用Minitab 工具進行數據相關性分析,相關性分析結果見圖6。

圖6 相關性分析結果
業界關于Pearson 相關系數的絕對值參考值如下:
根據Pearson相關系數進行分析:
1)軟件設計評審清除問題密度Y 與模型因子X之間的相關性分析見表5。

表5 Y與X的相關性分析表
經分析,模型因子“設計能力”與模型預測值不相關,刪除該模型因子。
2)各模型因子X之間的相關性分析見表6。

表6 X之間的相關性分析表
經分析,“評審能力”和“項目難度”強相關,為了保證模型的線性特性,在建模時需要排除其中一個模型因子,排除對預測值貢獻較小的模型因子“項目難度”。
將數據相關性分析后保留的模型因子X 進行組合,驗證各模型因子X對軟件設計評審清除問題密度Y 的影響程度。通常選擇對預測值Y 影響較大,且模型因子個數適中的因子進行建模,以簡化模型,便于模型的使用。
使用Minitab 工具分析最佳子集,最佳子集分析結果見圖7。

圖7 最佳子集分析結果
選擇模型因子組合時綜合考慮R-Sq(調整)值和模型因子的數量,選擇R-Sq(調整)值較高,同時模型因子個數適中的模型因子組合,通過回歸分析試算模型,試算后檢查是否有異常觀測值,如有異常觀測值,刪除數據后再次進行回歸分析。通過以上試算分析,最終選擇試算模型因子組合為評審能力和設計工作量。
為了研究模型因子X 與模型預測值Y 之間的線性依賴關系,對選擇的最佳子集進行回歸分析,回歸分析結果見圖8,殘差圖見圖9。

圖8 回歸分析結果

圖9 殘差圖
回歸分析結果顯示R-Sq(調整)值為87.73%,超過75%,該模型因子組合達到建模要求,以“評審能力”和“設計工作量”作為關鍵因子構造回歸方程,獲得公式和各項參數。
分析模型公式和因子組合符合實際工作情況,各因子可控,確定最終模型公式如下:
軟件設計評審清除問題密度=0.05522×評審人員能力-0.00229×評審速率-0.1450。
以上給出了軟件設計評審過程性能模型的建立方法,該方法的運用依賴于軟件設計評審過程的穩定,軟件設計評審過程數據收集準確,影響因子識別全面,樣本量充分等因素。因此,如果在運用此方法在建立過程性能模型時遇到困難,可以從以上角度查找原因。在軟件設計評審過程性能模型初次建立完成后,應繼續收集數據,待樣本量充分后,根據后續積累的數據對模型進行持續改進,校準過往的過程性能模型。量化改進是持續進行的,持續改進是提高績效的循環活動[14],持續地量化改進必將不斷提升組織的產品質量和過程績效,實現組織核心競爭力的不斷提升。
通過建立基于GJB5000A 定量管理的型號軟件體系及實施應用,提升了軟件研制管理能力。建立基線,能夠掌握已研制軟件的過程管理能力水平,為后續軟件的研制作參考;建立模型,能夠清楚已研制軟件過程狀態的穩定性和過程之間的關系,開展后續軟件預測,對目標實現的達成情況進行分析并有針對性地采取措施。定量管理能夠更好地對科研生產過程進行控制,其方法可以應用到科研生產管理的方方面面。結合定量管理的預防管理思路深入推進軟件研制過程的穩定性,全面應用獲取更多不同研制類型、不同研制階段的過程數據,建立更加精準的基線和模型,推動規范管理向精益管理轉型。