宮 磊, 任向紅, 寇 璽, 洪憲文
(火箭軍工程大學, 陜西 西安 710025)
軟件風險評估是軟件開發生命周期中最敏感、最關鍵的活動[1]。為有效地控制軟件項目開發過程的風險,識別、評價和有效管理潛在的風險源具有重要意義。依靠專家經驗和知識的專家判斷法是開展軟件項目風險評估的主要方式,為避免個人主觀因素導致評估結果出現偏差,基于不同模型的群決策風險評估信息融合是當前眾多學者關注和研究的方向[2-7]。然而,采用以上方法時對專家意見無法實現多維度的風險值描述,專家在量化表達個人風險評估意見時,經常在數個風險值間猶豫不決,極大地降低了風險評估結果的可信性。D-S證據理論作為一種不確定性的推理方法,在決策[8-9]、風險分析[10]、信息融合[11-12]、不確定性測量[13]等領域得到廣泛應用,已成為一種基本的、重要的融合算法。因此,本文提出一種基于證據理論的軟件項目風險評估方法。
定義1:某待解決問題的所有可能答案的集合用Θ表示且規定Θ中元素兩兩互斥,當只能取Θ中某個元素作為需要的結果時,稱Θ為識別框架,可表示如下:
Θ={θ1,θ2,…,θj,…,θN}
(1)
其中:θj稱為識別框架Θ的一個事件或元素;N是元素個數;j=1,2,…,N。
由識別框架Θ的所有子集組成的集合稱為Θ的冪集,記為2Θ,可表示如下:
2Θ={?,{θ1},{θ2},{θ3},…,{θN},{θ1∪θ2},…,Θ}
(2)
定義2:設基本信任分配函數m是一個從集合2Θ到[0,1]的映射,A表示識別框架Θ的任一子集,記作A?Θ,且滿足
(3)

定義3:設Ai?Θ,Bj?Θ,在識別框架Θ下的兩個證據E1和E2相應的BPA為m1和m2,則融合規則為
(4)
(5)
其中,K稱為沖突系數,反映了各個證據之間的沖突程度。
由m給定的信任函數稱為m1和m2的直和,記為m1⊕m2,當K=0時,表示證據完全一致,當K<1不成立時,則表示m1和m2的直和不存在。
對于多個BPA,如果m1和m2可以融合,則m1⊕m2也是一個BPA,如果該函數與m3也可以融合,那么m1⊕m2⊕m3也是一個BPA。依次類推,如果都滿足融合條件,可將它們融合一個BPA,記為m1⊕m2⊕…⊕mn。
為了解決證據合成方法不能使用或得出明顯不合理的結果的問題,王肖霞等[14]提出了證據間相似系數、支持度和可信度的證據預處理方法。證據間的距離越小,則相似性越大,沖突越小,證據間的距離越大,則相似性越小,沖突越大。在本文提出的風險評估方法中,相似系數用來處理證據間的沖突問題,獲得專家評估值的權重,并以此輔助決策者精準復盤評估過程。具體過程如下。
第一步:計算相似系數及相似矩陣。
定義:假定識別框架Θ的兩個證據E1和E2相應的基本概率分配函數為m1和m2,證據數為n,則證據E1和E2間的相似系數表示為如下:
(6)
相似系數d12用來表示證據間的相似程度,d12∈[0,1],d12值越大,則相似性越好。相似系數可表示為矩陣的形式:
(7)
第二步:計算證據的支持度和可信度。
矩陣各行的和為各證據對Ei的支持度:
(8)
Sup(Ei)表示證據Ei被其他證據支持的程度,Sup(Ei)∈[1,n]。如果Sup(Ei)的數值越大,代表證據與其他證據越相似,證據間相互支持程度越高,如果Sup(Ei)的數值越接近于1,代表證據與其他證據越不一致,證據間相互支持程度越低,當Sup(Ei)=1時,表示Ei與其他所有證據完全沖突。
將證據支持度歸一化得到證據可信度,即證據Ei的可信度,也是證據的權重,表示為
(9)
第三步:根據證據權重修改證據,得出:
(10)
第四步:根據合成規則合成加權平均的證據,有n組證據時,將加權平均的證據合成n-1次。
風險識別是風險管理的重要環節,軟件項目風險受時間、成本、質量、組織、技術等因素影響,只有合理識別風險,才能為組織風險評估提供基礎。隨著技術的發展和項目管理方法的改進,人們提出了許多識別風險的方法,如德爾菲法、專家判斷法、圖解法、頭腦風暴法等。本文對已有文獻中討論的軟件項目風險類型進行了總結,詳見表1。
風險因素會因環境變化而變化,不同軟件項目涉及的風險也不同。結合表1中的風險類型,以及專家經驗對實際項目情況進行分析,風險決策者結合項目實際情況、用戶要求、軟件開發生命周期特點等因素,決定針對項目中的三類風險進行評估,分別為進度風險(T)、成本風險(M)和過程管理風險(V),風險評估清單詳見表2。值得注意的是,表2中一些風險并非獨立的,例如預算設置不合理(M1)可能導致設計不可實現(V2)。風險因素越多,越難以量化和判斷風險因素之間的關系。所以,本文提出的方法中,專家做出的判斷被認為是已經考慮了風險因素之間的相互關系。
BOEHM[20]最早將風險管理引入軟件項目,提出了風險管理包括風險發生概率和嚴重性兩個重要指標,這兩個指標在工程領域得到了廣泛的應用,風險矩陣法作為一種便捷、高效的風險評估工具,可用于對風險發生概率和嚴重性進行綜合評估[21-23]。風險的定義如下:
風險=風險發生概率(P)×嚴重性(S)
風險矩陣是一種常用的風險管理工具,根據項目特點可將其設置為不同的風險發生概率和嚴重性等級,一般可設置風險發生概率等級={極低,較低,中等,較高,極高}。風險嚴重性等級={極輕微,輕微,中等,嚴重,災難性},風險等級={Ⅰ,Ⅱ,Ⅲ,Ⅳ}。其中:風險等級集合中的Ⅰ表示“可接受”,Ⅱ表示“視情,可接受”,Ⅲ表示“視情,不接受”,Ⅳ表示“不可接受”,具體的風險矩陣及其等級如圖1所示。

圖1 風險矩陣及其等級Fig.1 Risk matrix and rating
第一步:設置證據支持度閾值。少數服從多數的思想在信息融合、決策等領域近年得到廣泛應用,然而對于少數專家意見的重要性也不能忽視[24-25]。設置證據支持度閾值的目的是為決策者復盤評估值的合理性提供依據,當決策者進一步確定評估結果時,可依據專家意見支持度的高或低進行可信性判斷。綜上所述,根據證據支持度定義,提出支持度低的評估數值閾值設置條件為
(11)
當Sup(Ei)小于閾值時,則認為Ei不被其他專家支持,Sup(Ei)大于或等于閾值時,則認為Ei被多數專家支持。
第二步:每位專家對風險逐一做出發生概率和嚴重性判斷。
第三步:將評估結果轉化為BPA。
第四步:根據公式(7)、公式(8)、公式(9)計算證據相似系數、支持度和可信度。
第五步:根據公式(10)計算調整后的BPA。
(12)
(13)
第六步:基于證據理論合成規則融合調整后的BPA,如果有n個專家,則進行n-1次融合,融合公式如下所示。
(14)
(15)
第七步:根據融合結果,梳理風險發生概率值、嚴重性值和風險等級。
第八步:根據具體項目要求設置風險權重。風險發生概率等級權重:極低為1,較低為2,中等為3,較高為4,極高為5;設風險嚴重性等級權重:極輕微為1,輕微為2,中等為3,嚴重為4,災難性為5(表3)。根據風險矩陣中各風險等級權重,計算風險優先級:

表3 風險權重
Risk=Wight(R)×mPR(A)×mSR(B)
(16)
第九步:梳理評估數值相互支持度,使決策者可根據具體情況復盤評估過程,決定相信評估結果或重新組織風險評估。基于證據理論的軟件項目風險評估方法流程圖如圖2所示。

圖2 基于證據理論的軟件項目風險評估方法流程圖Fig.2 Flow chart of software project risk assessment based on evidence theory
本案例是基于證據理論軟件項目風險評估方法的應用,組織三位專家對某項目進行評估風險。
第一步:根據公式(11)得出支持度低的評估值條件是Sup(Ri)<2。
第二步:三位專家分別對項目發生風險的概率和后果的嚴重性進行評估,專家評估意見表見表4,例如風險T1的發生概率等級為1的數值是60%,表示證據E1有60%的把握認為風險T1的發生概率為極低。風險M1的嚴重性等級為4的數值是70%,表示證據E3有70%的把握認為風險M1造成后果的嚴重性為嚴重。

表4 專家評估意見表
第三步:將專家評估結果轉化為BPA,以風險V2為例進行說明。
風險發生概率的BPA如下:
mPV2,1∶mPV2,1(1)=0.6,mPV2,1(2)=0.4
mPV2,2∶mPV2,2(2)=0.5,mPV2,2(3)=0.2,mPV2,2(θ)=0.3
mPV2,3∶mPV2,3(1)=0.7,mPV2,3(2)=0.2,mPV2,3(θ)=0.1
風險后果嚴重性的BPA如下:
mSV2,1∶mSV2,1(4)=0.1,mSV2,1(5)=0.9
mSV2,2∶mSV2,2(4)=0.2,mSV2,2(5)=0.8
mSV2,3∶mSV2,3(4)=0.2,mSV2,3(5)=0.8
第四步:根據公式(8)計算各專家關于風險V2發生概率意見的證據支持度:
SupPV2(E1)=2.467,SupPV2(E2)=1.770,SupPV2(E3)=2.208
同理,計算各專家關于風險V2后果嚴重性意見的證據支持度得:
SupSV2(E1)=2.982,SupSV2(E2)=2.991,SupSV2(E3)=2.991
計算各專家關于風險V2發生概率意見的證據可信度得:
CrdPV2(E2)≈0.275,CrdPV2(E3)≈0.343
計算各專家關于風險V2后果嚴重性意見的證據可信度得:
CrdSV2(E1)≈0.333,CrdSV2(E2)≈0.334,CrdSV2(E3)≈0.334
第五步:根據公式(12)計算調整后風險發生概率的BPA得:
=0.383×0.6+0.343×0.7≈0.470
=0.383×0.4+0.275×0.5+0.343×0.2≈0.359
=0.275×0.2=0.055
根據公式(13)計算調整后風險嚴重性的BPA得:

第六步:計算證據理論融合規則調整后的BPA,因為有三位專家,所以進行兩次融合。根據公式(14)計算風險發生概率的融合結果:
mPV2(1)=mCPV2(1)⊕mCPV2(1)⊕mCPV2(1)≈0.643
mPV2(2)=mCPV2(2)⊕mCPV2(2)⊕mCPV2(2)≈0.341
mPV2(3)=mCPV2(3)⊕mCPV2(3)⊕mCPV2(3)≈0.011
根據公式(15)計算風險嚴重性的融合結果:
mSV2(4)=mCSV2(4)⊕mCSV2(4)⊕mCSV2(4)≈0.008mSV2(5)=mCSV2(5)⊕mCSV2(5)⊕mCSV2(5)≈0.992
基于證據理論的風險融合結果見表5。

表5 風險融合結果
第七步:根據風險矩陣,統計風險發生概率等級、嚴重性等級和風險等級(表6)。

表6 風險等級及風險值
第八步:根據公式(16)計算最終風險值,即表6中每種風險等級的最大值作為該等級的最終風險值,風險優先級排序表見表7。

表7 風險優先級排序表
第九步:梳理專家評估數值相互支持度,結果見表8。

表8 專家評估數值相互支持度
(1)確定風險優先級。風險決策者可根據風險等級高低設置對應于各風險等級的應對策略。對于每個風險等級,可以根據風險排序,確定風險關注度順序,以風險等級Ⅳ級為例進行說明,Ⅳ級應重點關注四個風險,即M2>V3>M1>V2,其中M2>V3解釋為成本超出預算(M2)較系統測試過程遇到突發情況(V3)具有更高的風險。
(2)確定多等級風險關注度。風險可能存在不同的風險等級,風險決策者可以根據項目具體情況、風險的性質、不同的軟件開發生命周期、風險偏好等其他因素,選擇關注的風險等級是高或是低。例如:預算設置不合理風險(M1)包含三個風險等級,分別是Ⅳ級、Ⅲ級和Ⅱ級,如果項目風險決策者掌握了專家沒有掌握的信息,確定資金按時到位的可能性較大,則風險決策者可以據此傾向于關注M1較低的風險等級(Ⅱ級),依據Ⅱ級風險應對策略制訂應對措施。
(3)復盤專家評估過程。從表8中的數據可以看出,三位專家對估計不準確、策劃時遺漏了部分重要任務風險(T1)發生概率的評估數值間支持度值均為1.000,解釋為三位專家的意見互相矛盾;三位專家對T1風險后果嚴重性的評估數值間支持度值高于閾值,分別為2.387、2.755和2.478,說明評估值相互支持度較高,專家意見較為一致。三位專家對預算設置不合理風險(M1)后果嚴重性的評估數值間支持度值分別為2.000、1.000和2.000,表明另外兩位專家不支持證據E2的評估意見,證據E1和證據E3意見較為一致。風險決策者可結合項目特點、風險偏好、項目不同生命周期等情況,決定相信模型結果或重新評估風險。如果需重新評估,應補增專家,重復本文提出的風險評估方法流程。
與現有文獻應用的模糊理論[4]、熵權法[26]、TODIM方法[27-28]相比,本文提出的基于證據理論的軟件項目風險評估方法具有以下優勢。
唐愛國等[4]提出的基于模糊理論的軟件項目風險評估模型中,權重是組織風險評估前主觀設定的。本文提出的風險評估方法權重是通過衡量證據間的相似性確定的,僅與專家評估值有關,專家評估值的權重大小隨專家對不同風險評估值支持度不同而變化。
王蔚[26]基于熵權TOPSIS方法進行軟件項目風險評估,該模型不能解決評估數值沖突的問題。然而,證據間相似系數是一種基于證據間距離表示證據間相似程度從而能夠有效解決證據沖突問題的方法。
TODIM方法是一種交互式多準則決策方法,使用TODIM方法需要多次對比修改判斷矩陣。本文提出的方法僅依據專家評估值,建立表示評估值相互支持度的矩陣即可,不需進一步調整判斷矩陣。
專家意見的不確定性是影響風險評估可信性的重要因素。基于相似系數在優化證據理論合成方法方面的優勢,以及其體現數據一致性的本質特征,提出了一種新的軟件項目風險評估方法,不僅綜合了多數專家的評估結果,而且為防止遺漏少數專家的有效信息提供了數據支撐,為綜合判斷風險提供了多角度的決策信息。