宮 磊, 任向紅, 寇 璽, 洪憲文
(火箭軍工程大學(xué), 陜西 西安 710025)
軟件風(fēng)險評估是軟件開發(fā)生命周期中最敏感、最關(guān)鍵的活動[1]。為有效地控制軟件項(xiàng)目開發(fā)過程的風(fēng)險,識別、評價和有效管理潛在的風(fēng)險源具有重要意義。依靠專家經(jīng)驗(yàn)和知識的專家判斷法是開展軟件項(xiàng)目風(fēng)險評估的主要方式,為避免個人主觀因素導(dǎo)致評估結(jié)果出現(xiàn)偏差,基于不同模型的群決策風(fēng)險評估信息融合是當(dāng)前眾多學(xué)者關(guān)注和研究的方向[2-7]。然而,采用以上方法時對專家意見無法實(shí)現(xiàn)多維度的風(fēng)險值描述,專家在量化表達(dá)個人風(fēng)險評估意見時,經(jīng)常在數(shù)個風(fēng)險值間猶豫不決,極大地降低了風(fēng)險評估結(jié)果的可信性。D-S證據(jù)理論作為一種不確定性的推理方法,在決策[8-9]、風(fēng)險分析[10]、信息融合[11-12]、不確定性測量[13]等領(lǐng)域得到廣泛應(yīng)用,已成為一種基本的、重要的融合算法。因此,本文提出一種基于證據(jù)理論的軟件項(xiàng)目風(fēng)險評估方法。
定義1:某待解決問題的所有可能答案的集合用Θ表示且規(guī)定Θ中元素兩兩互斥,當(dāng)只能取Θ中某個元素作為需要的結(jié)果時,稱Θ為識別框架,可表示如下:
Θ={θ1,θ2,…,θj,…,θN}
(1)
其中:θj稱為識別框架Θ的一個事件或元素;N是元素個數(shù);j=1,2,…,N。
由識別框架Θ的所有子集組成的集合稱為Θ的冪集,記為2Θ,可表示如下:
2Θ={?,{θ1},{θ2},{θ3},…,{θN},{θ1∪θ2},…,Θ}
(2)
定義2:設(shè)基本信任分配函數(shù)m是一個從集合2Θ到[0,1]的映射,A表示識別框架Θ的任一子集,記作A?Θ,且滿足
(3)
定義3:設(shè)Ai?Θ,Bj?Θ,在識別框架Θ下的兩個證據(jù)E1和E2相應(yīng)的BPA為m1和m2,則融合規(guī)則為
(4)
(5)
其中,K稱為沖突系數(shù),反映了各個證據(jù)之間的沖突程度。
由m給定的信任函數(shù)稱為m1和m2的直和,記為m1⊕m2,當(dāng)K=0時,表示證據(jù)完全一致,當(dāng)K<1不成立時,則表示m1和m2的直和不存在。
對于多個BPA,如果m1和m2可以融合,則m1⊕m2也是一個BPA,如果該函數(shù)與m3也可以融合,那么m1⊕m2⊕m3也是一個BPA。依次類推,如果都滿足融合條件,可將它們?nèi)诤弦粋€BPA,記為m1⊕m2⊕…⊕mn。
為了解決證據(jù)合成方法不能使用或得出明顯不合理的結(jié)果的問題,王肖霞等[14]提出了證據(jù)間相似系數(shù)、支持度和可信度的證據(jù)預(yù)處理方法。證據(jù)間的距離越小,則相似性越大,沖突越小,證據(jù)間的距離越大,則相似性越小,沖突越大。在本文提出的風(fēng)險評估方法中,相似系數(shù)用來處理證據(jù)間的沖突問題,獲得專家評估值的權(quán)重,并以此輔助決策者精準(zhǔn)復(fù)盤評估過程。具體過程如下。
第一步:計(jì)算相似系數(shù)及相似矩陣。
定義:假定識別框架Θ的兩個證據(jù)E1和E2相應(yīng)的基本概率分配函數(shù)為m1和m2,證據(jù)數(shù)為n,則證據(jù)E1和E2間的相似系數(shù)表示為如下:
(6)
相似系數(shù)d12用來表示證據(jù)間的相似程度,d12∈[0,1],d12值越大,則相似性越好。相似系數(shù)可表示為矩陣的形式:
(7)
第二步:計(jì)算證據(jù)的支持度和可信度。
矩陣各行的和為各證據(jù)對Ei的支持度:
(8)
Sup(Ei)表示證據(jù)Ei被其他證據(jù)支持的程度,Sup(Ei)∈[1,n]。如果Sup(Ei)的數(shù)值越大,代表證據(jù)與其他證據(jù)越相似,證據(jù)間相互支持程度越高,如果Sup(Ei)的數(shù)值越接近于1,代表證據(jù)與其他證據(jù)越不一致,證據(jù)間相互支持程度越低,當(dāng)Sup(Ei)=1時,表示Ei與其他所有證據(jù)完全沖突。
將證據(jù)支持度歸一化得到證據(jù)可信度,即證據(jù)Ei的可信度,也是證據(jù)的權(quán)重,表示為
(9)
第三步:根據(jù)證據(jù)權(quán)重修改證據(jù),得出:
(10)
第四步:根據(jù)合成規(guī)則合成加權(quán)平均的證據(jù),有n組證據(jù)時,將加權(quán)平均的證據(jù)合成n-1次。
風(fēng)險識別是風(fēng)險管理的重要環(huán)節(jié),軟件項(xiàng)目風(fēng)險受時間、成本、質(zhì)量、組織、技術(shù)等因素影響,只有合理識別風(fēng)險,才能為組織風(fēng)險評估提供基礎(chǔ)。隨著技術(shù)的發(fā)展和項(xiàng)目管理方法的改進(jìn),人們提出了許多識別風(fēng)險的方法,如德爾菲法、專家判斷法、圖解法、頭腦風(fēng)暴法等。本文對已有文獻(xiàn)中討論的軟件項(xiàng)目風(fēng)險類型進(jìn)行了總結(jié),詳見表1。
風(fēng)險因素會因環(huán)境變化而變化,不同軟件項(xiàng)目涉及的風(fēng)險也不同。結(jié)合表1中的風(fēng)險類型,以及專家經(jīng)驗(yàn)對實(shí)際項(xiàng)目情況進(jìn)行分析,風(fēng)險決策者結(jié)合項(xiàng)目實(shí)際情況、用戶要求、軟件開發(fā)生命周期特點(diǎn)等因素,決定針對項(xiàng)目中的三類風(fēng)險進(jìn)行評估,分別為進(jìn)度風(fēng)險(T)、成本風(fēng)險(M)和過程管理風(fēng)險(V),風(fēng)險評估清單詳見表2。值得注意的是,表2中一些風(fēng)險并非獨(dú)立的,例如預(yù)算設(shè)置不合理(M1)可能導(dǎo)致設(shè)計(jì)不可實(shí)現(xiàn)(V2)。風(fēng)險因素越多,越難以量化和判斷風(fēng)險因素之間的關(guān)系。所以,本文提出的方法中,專家做出的判斷被認(rèn)為是已經(jīng)考慮了風(fēng)險因素之間的相互關(guān)系。
BOEHM[20]最早將風(fēng)險管理引入軟件項(xiàng)目,提出了風(fēng)險管理包括風(fēng)險發(fā)生概率和嚴(yán)重性兩個重要指標(biāo),這兩個指標(biāo)在工程領(lǐng)域得到了廣泛的應(yīng)用,風(fēng)險矩陣法作為一種便捷、高效的風(fēng)險評估工具,可用于對風(fēng)險發(fā)生概率和嚴(yán)重性進(jìn)行綜合評估[21-23]。風(fēng)險的定義如下:
風(fēng)險=風(fēng)險發(fā)生概率(P)×嚴(yán)重性(S)
風(fēng)險矩陣是一種常用的風(fēng)險管理工具,根據(jù)項(xiàng)目特點(diǎn)可將其設(shè)置為不同的風(fēng)險發(fā)生概率和嚴(yán)重性等級,一般可設(shè)置風(fēng)險發(fā)生概率等級={極低,較低,中等,較高,極高}。風(fēng)險嚴(yán)重性等級={極輕微,輕微,中等,嚴(yán)重,災(zāi)難性},風(fēng)險等級={Ⅰ,Ⅱ,Ⅲ,Ⅳ}。其中:風(fēng)險等級集合中的Ⅰ表示“可接受”,Ⅱ表示“視情,可接受”,Ⅲ表示“視情,不接受”,Ⅳ表示“不可接受”,具體的風(fēng)險矩陣及其等級如圖1所示。
圖1 風(fēng)險矩陣及其等級Fig.1 Risk matrix and rating
第一步:設(shè)置證據(jù)支持度閾值。少數(shù)服從多數(shù)的思想在信息融合、決策等領(lǐng)域近年得到廣泛應(yīng)用,然而對于少數(shù)專家意見的重要性也不能忽視[24-25]。設(shè)置證據(jù)支持度閾值的目的是為決策者復(fù)盤評估值的合理性提供依據(jù),當(dāng)決策者進(jìn)一步確定評估結(jié)果時,可依據(jù)專家意見支持度的高或低進(jìn)行可信性判斷。綜上所述,根據(jù)證據(jù)支持度定義,提出支持度低的評估數(shù)值閾值設(shè)置條件為
(11)
當(dāng)Sup(Ei)小于閾值時,則認(rèn)為Ei不被其他專家支持,Sup(Ei)大于或等于閾值時,則認(rèn)為Ei被多數(shù)專家支持。
第二步:每位專家對風(fēng)險逐一做出發(fā)生概率和嚴(yán)重性判斷。
第三步:將評估結(jié)果轉(zhuǎn)化為BPA。
第四步:根據(jù)公式(7)、公式(8)、公式(9)計(jì)算證據(jù)相似系數(shù)、支持度和可信度。
第五步:根據(jù)公式(10)計(jì)算調(diào)整后的BPA。
(12)
(13)
第六步:基于證據(jù)理論合成規(guī)則融合調(diào)整后的BPA,如果有n個專家,則進(jìn)行n-1次融合,融合公式如下所示。
(14)
(15)
第七步:根據(jù)融合結(jié)果,梳理風(fēng)險發(fā)生概率值、嚴(yán)重性值和風(fēng)險等級。
第八步:根據(jù)具體項(xiàng)目要求設(shè)置風(fēng)險權(quán)重。風(fēng)險發(fā)生概率等級權(quán)重:極低為1,較低為2,中等為3,較高為4,極高為5;設(shè)風(fēng)險嚴(yán)重性等級權(quán)重:極輕微為1,輕微為2,中等為3,嚴(yán)重為4,災(zāi)難性為5(表3)。根據(jù)風(fēng)險矩陣中各風(fēng)險等級權(quán)重,計(jì)算風(fēng)險優(yōu)先級:
表3 風(fēng)險權(quán)重
Risk=Wight(R)×mPR(A)×mSR(B)
(16)
第九步:梳理評估數(shù)值相互支持度,使決策者可根據(jù)具體情況復(fù)盤評估過程,決定相信評估結(jié)果或重新組織風(fēng)險評估?;谧C據(jù)理論的軟件項(xiàng)目風(fēng)險評估方法流程圖如圖2所示。
圖2 基于證據(jù)理論的軟件項(xiàng)目風(fēng)險評估方法流程圖Fig.2 Flow chart of software project risk assessment based on evidence theory
本案例是基于證據(jù)理論軟件項(xiàng)目風(fēng)險評估方法的應(yīng)用,組織三位專家對某項(xiàng)目進(jìn)行評估風(fēng)險。
第一步:根據(jù)公式(11)得出支持度低的評估值條件是Sup(Ri)<2。
第二步:三位專家分別對項(xiàng)目發(fā)生風(fēng)險的概率和后果的嚴(yán)重性進(jìn)行評估,專家評估意見表見表4,例如風(fēng)險T1的發(fā)生概率等級為1的數(shù)值是60%,表示證據(jù)E1有60%的把握認(rèn)為風(fēng)險T1的發(fā)生概率為極低。風(fēng)險M1的嚴(yán)重性等級為4的數(shù)值是70%,表示證據(jù)E3有70%的把握認(rèn)為風(fēng)險M1造成后果的嚴(yán)重性為嚴(yán)重。
表4 專家評估意見表
第三步:將專家評估結(jié)果轉(zhuǎn)化為BPA,以風(fēng)險V2為例進(jìn)行說明。
風(fēng)險發(fā)生概率的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
風(fēng)險后果嚴(yán)重性的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
第四步:根據(jù)公式(8)計(jì)算各專家關(guān)于風(fēng)險V2發(fā)生概率意見的證據(jù)支持度:
SupPV2(E1)=2.467,SupPV2(E2)=1.770,SupPV2(E3)=2.208
同理,計(jì)算各專家關(guān)于風(fēng)險V2后果嚴(yán)重性意見的證據(jù)支持度得:
SupSV2(E1)=2.982,SupSV2(E2)=2.991,SupSV2(E3)=2.991
計(jì)算各專家關(guān)于風(fēng)險V2發(fā)生概率意見的證據(jù)可信度得:
CrdPV2(E2)≈0.275,CrdPV2(E3)≈0.343
計(jì)算各專家關(guān)于風(fēng)險V2后果嚴(yán)重性意見的證據(jù)可信度得:
CrdSV2(E1)≈0.333,CrdSV2(E2)≈0.334,CrdSV2(E3)≈0.334
第五步:根據(jù)公式(12)計(jì)算調(diào)整后風(fēng)險發(fā)生概率的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
根據(jù)公式(13)計(jì)算調(diào)整后風(fēng)險嚴(yán)重性的BPA得:
第六步:計(jì)算證據(jù)理論融合規(guī)則調(diào)整后的BPA,因?yàn)橛腥粚<?所以進(jìn)行兩次融合。根據(jù)公式(14)計(jì)算風(fēng)險發(fā)生概率的融合結(jié)果:
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
根據(jù)公式(15)計(jì)算風(fēng)險嚴(yán)重性的融合結(jié)果:
mSV2(4)=mCSV2(4)⊕mCSV2(4)⊕mCSV2(4)≈0.008mSV2(5)=mCSV2(5)⊕mCSV2(5)⊕mCSV2(5)≈0.992
基于證據(jù)理論的風(fēng)險融合結(jié)果見表5。
表5 風(fēng)險融合結(jié)果
第七步:根據(jù)風(fēng)險矩陣,統(tǒng)計(jì)風(fēng)險發(fā)生概率等級、嚴(yán)重性等級和風(fēng)險等級(表6)。
表6 風(fēng)險等級及風(fēng)險值
第八步:根據(jù)公式(16)計(jì)算最終風(fēng)險值,即表6中每種風(fēng)險等級的最大值作為該等級的最終風(fēng)險值,風(fēng)險優(yōu)先級排序表見表7。
表7 風(fēng)險優(yōu)先級排序表
第九步:梳理專家評估數(shù)值相互支持度,結(jié)果見表8。
表8 專家評估數(shù)值相互支持度
(1)確定風(fēng)險優(yōu)先級。風(fēng)險決策者可根據(jù)風(fēng)險等級高低設(shè)置對應(yīng)于各風(fēng)險等級的應(yīng)對策略。對于每個風(fēng)險等級,可以根據(jù)風(fēng)險排序,確定風(fēng)險關(guān)注度順序,以風(fēng)險等級Ⅳ級為例進(jìn)行說明,Ⅳ級應(yīng)重點(diǎn)關(guān)注四個風(fēng)險,即M2>V3>M1>V2,其中M2>V3解釋為成本超出預(yù)算(M2)較系統(tǒng)測試過程遇到突發(fā)情況(V3)具有更高的風(fēng)險。
(2)確定多等級風(fēng)險關(guān)注度。風(fēng)險可能存在不同的風(fēng)險等級,風(fēng)險決策者可以根據(jù)項(xiàng)目具體情況、風(fēng)險的性質(zhì)、不同的軟件開發(fā)生命周期、風(fēng)險偏好等其他因素,選擇關(guān)注的風(fēng)險等級是高或是低。例如:預(yù)算設(shè)置不合理風(fēng)險(M1)包含三個風(fēng)險等級,分別是Ⅳ級、Ⅲ級和Ⅱ級,如果項(xiàng)目風(fēng)險決策者掌握了專家沒有掌握的信息,確定資金按時到位的可能性較大,則風(fēng)險決策者可以據(jù)此傾向于關(guān)注M1較低的風(fēng)險等級(Ⅱ級),依據(jù)Ⅱ級風(fēng)險應(yīng)對策略制訂應(yīng)對措施。
(3)復(fù)盤專家評估過程。從表8中的數(shù)據(jù)可以看出,三位專家對估計(jì)不準(zhǔn)確、策劃時遺漏了部分重要任務(wù)風(fēng)險(T1)發(fā)生概率的評估數(shù)值間支持度值均為1.000,解釋為三位專家的意見互相矛盾;三位專家對T1風(fēng)險后果嚴(yán)重性的評估數(shù)值間支持度值高于閾值,分別為2.387、2.755和2.478,說明評估值相互支持度較高,專家意見較為一致。三位專家對預(yù)算設(shè)置不合理風(fēng)險(M1)后果嚴(yán)重性的評估數(shù)值間支持度值分別為2.000、1.000和2.000,表明另外兩位專家不支持證據(jù)E2的評估意見,證據(jù)E1和證據(jù)E3意見較為一致。風(fēng)險決策者可結(jié)合項(xiàng)目特點(diǎn)、風(fēng)險偏好、項(xiàng)目不同生命周期等情況,決定相信模型結(jié)果或重新評估風(fēng)險。如果需重新評估,應(yīng)補(bǔ)增專家,重復(fù)本文提出的風(fēng)險評估方法流程。
與現(xiàn)有文獻(xiàn)應(yīng)用的模糊理論[4]、熵權(quán)法[26]、TODIM方法[27-28]相比,本文提出的基于證據(jù)理論的軟件項(xiàng)目風(fēng)險評估方法具有以下優(yōu)勢。
唐愛國等[4]提出的基于模糊理論的軟件項(xiàng)目風(fēng)險評估模型中,權(quán)重是組織風(fēng)險評估前主觀設(shè)定的。本文提出的風(fēng)險評估方法權(quán)重是通過衡量證據(jù)間的相似性確定的,僅與專家評估值有關(guān),專家評估值的權(quán)重大小隨專家對不同風(fēng)險評估值支持度不同而變化。
王蔚[26]基于熵權(quán)TOPSIS方法進(jìn)行軟件項(xiàng)目風(fēng)險評估,該模型不能解決評估數(shù)值沖突的問題。然而,證據(jù)間相似系數(shù)是一種基于證據(jù)間距離表示證據(jù)間相似程度從而能夠有效解決證據(jù)沖突問題的方法。
TODIM方法是一種交互式多準(zhǔn)則決策方法,使用TODIM方法需要多次對比修改判斷矩陣。本文提出的方法僅依據(jù)專家評估值,建立表示評估值相互支持度的矩陣即可,不需進(jìn)一步調(diào)整判斷矩陣。
專家意見的不確定性是影響風(fēng)險評估可信性的重要因素?;谙嗨葡禂?shù)在優(yōu)化證據(jù)理論合成方法方面的優(yōu)勢,以及其體現(xiàn)數(shù)據(jù)一致性的本質(zhì)特征,提出了一種新的軟件項(xiàng)目風(fēng)險評估方法,不僅綜合了多數(shù)專家的評估結(jié)果,而且為防止遺漏少數(shù)專家的有效信息提供了數(shù)據(jù)支撐,為綜合判斷風(fēng)險提供了多角度的決策信息。