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