摘?要:風(fēng)險因子的識別與分析是軟件項目風(fēng)險管理中的關(guān)鍵任務(wù)。在實際管理中,風(fēng)險因子的發(fā)生概率具有模糊性,因此通常應(yīng)用具有偏序關(guān)系的等級來劃分,由此本文基于具有優(yōu)勢關(guān)系的粗糙集理論對軟件項目風(fēng)險管理進行定量分析:利用優(yōu)勢關(guān)系和上下近似集合等概念,提出了軟件風(fēng)險管理決策系統(tǒng),在此基礎(chǔ)上,給出了項目的風(fēng)險決策協(xié)調(diào)系數(shù)、風(fēng)險因子對于決策的影響系數(shù)等定義與計算方法。此項工作能識別風(fēng)險管理中的薄弱環(huán)節(jié),合理分配資源,優(yōu)化管理過程,并為風(fēng)險決策的規(guī)則提取奠定了基礎(chǔ)。
關(guān)鍵詞:軟件風(fēng)險;風(fēng)險因子;粗糙集;優(yōu)勢關(guān)系;過程改進
Brooks曾指出復(fù)雜性、一致性、可變性及不可見性是軟件開發(fā)的四大難題[12],另有調(diào)查表明[24],軟件不能在計劃時間和預(yù)算內(nèi)高質(zhì)量交付使用的比例非常高,由此可見風(fēng)險是軟件開發(fā)中客觀存在的現(xiàn)象,風(fēng)險管理研究也成為軟件項目管理以及過程管理的主要組成部分,吸引了很多學(xué)者關(guān)注。
自從20世紀(jì)80年代末以來,軟件項目風(fēng)險在理論、方法、實踐方面都取得了很大的進展。從綜述文獻看,目前風(fēng)險管理的研究多注重過程、方法、實施框架等內(nèi)容,同時表明引入量化的分析技術(shù)與方法是風(fēng)險管理的難點,但也是一種趨勢,因此,國內(nèi)外學(xué)者從未停止過與之相關(guān)的研究與實踐。從早期的概率統(tǒng)計,過渡到?jīng)Q策樹、Petri網(wǎng)、貝葉斯網(wǎng)絡(luò),以及簇方法、神經(jīng)網(wǎng)絡(luò)等各種數(shù)據(jù)分析技術(shù)已經(jīng)得以應(yīng)用,并且突破了單一的風(fēng)險項分析,開始關(guān)注風(fēng)險項之間的關(guān)系。例如吳登生[5]等人考慮風(fēng)險相關(guān)性,采用多目標(biāo)粒子群算法對風(fēng)險控制多目標(biāo)優(yōu)化模型進行求解,尋找科學(xué)的風(fēng)險控制策略;楊莉[6]等人根據(jù)風(fēng)險數(shù)據(jù)的特點,結(jié)合風(fēng)險管理者的偏好,采用區(qū)間數(shù)模型給出迭代算法,選出最優(yōu)風(fēng)險應(yīng)對組合。筆者在文獻[7]中首次應(yīng)用經(jīng)典的粗糙集理論構(gòu)造了軟件項目風(fēng)險分析系統(tǒng),主要應(yīng)用等價類和不可分辨關(guān)系分析了軟件風(fēng)險因子之間的關(guān)系,為風(fēng)險決策提供了策略,但是未考慮風(fēng)險因子發(fā)生等級取值具有偏序關(guān)系,另外分析系統(tǒng)中決策屬性描述得比較模糊,缺少了決策屬性與風(fēng)險屬性的關(guān)系分析,在此基礎(chǔ)上,本文根據(jù)軟件項目風(fēng)險管理中數(shù)據(jù)特點,引入了具有優(yōu)勢關(guān)系的粗糙集模型,進一步探究風(fēng)險因子、決策屬性、軟件項目之間的聯(lián)系,并通過實例說明。
1?軟件風(fēng)險管理
軟件風(fēng)險管理旨在制定一系列可行的原則和實踐,規(guī)范化地控制影響項目成功的風(fēng)險,目的是識別、分析和消除風(fēng)險因素,以免它們威脅軟件的成功運作[3]。從早期的Boehm和Charette的風(fēng)險管理框架、Higuera和Haimes的持續(xù)風(fēng)險管理框架模型、Hall的六學(xué)科模型,到基于CMM/CMMI的軟件項目風(fēng)險管理等各種框架模型,以及風(fēng)險清單法、基于分類的問卷調(diào)查表法等各種風(fēng)險識別方法的研究中不難看出,風(fēng)險因子的識別、排序、分析、控制是軟件項目風(fēng)險管理的核心工作。
以Boehm為首的諸多學(xué)者通過研究與調(diào)查已經(jīng)列舉了上百條風(fēng)險清單[3,8,9],這些成果為軟件組織對照檢查形成自身的風(fēng)險列表提供了便利條件,同時,組織需要根據(jù)實際的文化與管理模式對風(fēng)險清單進行裁剪和評估。目前以及將來很長時間,軟件開發(fā)都將采用迭代式的開發(fā)模式[2],這意味著組織面臨多項目多風(fēng)險項的多重管理情形。在此種境況下,風(fēng)險因子的排序,重要風(fēng)險因子集合的識別,執(zhí)行的管理策略是否匹配,如何對優(yōu)先項目進行資源分配等,都是風(fēng)險管理決策中要考慮的問題。
2?基于優(yōu)勢粗糙集的軟件項目風(fēng)險管理
2.1?優(yōu)勢關(guān)系粗糙集的基本概念
粗糙集理論是波蘭科學(xué)家Pawlak提出的一種用來處理不精確知識的數(shù)學(xué)分析工具,被應(yīng)用到人工智能、數(shù)據(jù)挖掘和模式識別等諸多領(lǐng)域,不少學(xué)者也將其理論進行了擴展,GRECO等人提出了優(yōu)勢關(guān)系粗糙集[10],利用優(yōu)勢關(guān)系替代經(jīng)典粗糙集的等價關(guān)系表達屬性值之間的序關(guān)系,這特性表明用它來分析軟件項目風(fēng)險管理中的數(shù)據(jù)是合適的,此處先介紹幾個定義。
定義1?決策信息表S=(U,A,V,f),其中U為論域,A=C∪D為屬性集合,其中C為條件屬性,D為決策屬性,V為屬性值域,f為信息函數(shù),即f:U×A→V。
定義2?令為論域U上的弱偏序關(guān)系。設(shè)x,y∈U,PC,對a∈P,均有f(y,a)f(x,a),則認(rèn)為y關(guān)于P優(yōu)勢于x,表明在屬性P上y至少和x一樣好,表示為yDpx。
定義3?設(shè)x,y∈U,對象x的P優(yōu)勢集定義為D+P(x)={y|yDPx};劣勢集定義為D-P(x)={y|xDPy}。
定義4?決策屬性D將論域分為n個類C={Ct|t∈{1,2,…,n}},其中Cn>Cn-1>…C1,t類的上聯(lián)合定義為Ct=∪stCs,下聯(lián)合定義為CtCs。
定義5?假定PC,P-(Ct)和P-(Ct)分別為Ct的上、下近似:
2.2?軟件風(fēng)險因子分析模型
結(jié)合優(yōu)勢關(guān)系粗糙集理論中優(yōu)勢關(guān)系、上下聯(lián)合等定義,在文獻[17]基礎(chǔ)上,給出以下定義。
定義6?RS=<U,A,V,F(xiàn)>是軟件項目風(fēng)險決策信息系統(tǒng),其中U={x1,x2...xn}是一組軟件項目;A=R∪D,R∩D=,R={r1,r2...rn}是一組風(fēng)險因子,D={d1,d2...dn}是決策屬性,di∈{1,2,3},di是軟件項目xi采用的風(fēng)險管理決策等級,V是R的值域,f:U×R→V是信息函數(shù)。特別地,V=(uij),1
n,uij表示在項目xi中風(fēng)險因子rj發(fā)生的可能性,uij∈{1,2,3},參看表1和表2。
根據(jù)定義2中的優(yōu)勢關(guān)系,若xi,xj為兩個軟件項目,rk為某個風(fēng)險因子,若有f(xi,rk)f(xj,rk),則認(rèn)為xi關(guān)于rk優(yōu)于xj,說明在風(fēng)險因子rk上,項目xi和項目xj至少管控的一樣好,即uikujk,風(fēng)險因子rk在項目xj比xi更可能發(fā)生,或者等可能發(fā)生,表示為xiDrkxj。
2.2.1?優(yōu)先處理項目集合的確定
根據(jù)定義4,決策屬性D將論域劃分為3個類,U|D={C1,C2,C3},不難看出,C1是風(fēng)險管理策略中需要立即處理的項目集合,C2是需要關(guān)注預(yù)防的項目集合,C3是只需要一般記錄的項目集合,表明目前的風(fēng)險管理狀態(tài)良好,優(yōu)于C1和C2中包含的項目。顯而易見,管理資源應(yīng)該優(yōu)先分配給C1中的項目,在實際管理中,對于C2中的項目在資源供給不同時合理給出優(yōu)先考慮的集合是軟件風(fēng)險管理中面臨的重要決策。根據(jù)定義5中近似集合的定義,在資源有限時,優(yōu)先處理的項目集合可用A1表示,在資源較為充裕時,優(yōu)先處理的集合可用A2表示,它們的定義如下:A1=C1∪P-(C2)顯然,A1A2。
2.2.2?項目風(fēng)險決策的協(xié)調(diào)性分析
定義6包含了風(fēng)險管理中的所有數(shù)據(jù),其中V是風(fēng)險因子發(fā)生概率級別,D風(fēng)險管理決策等級,定義中取值都為1,2或3。D的取值應(yīng)該是根據(jù)V來確定的,在實際管理中因為R中包含的是一組風(fēng)險因子,需要綜合考慮V的取值,由此引入下列協(xié)調(diào)性的概念。
定義7設(shè)RS=<U,A,V,F(xiàn)>是軟件項目風(fēng)險決策信息系統(tǒng),若存在xi∈U,使得Uij=di都成立j=1,2,3…m,則說明項目xi給出的風(fēng)險決策等級是完全協(xié)調(diào)的。
例如,某個項目的所有風(fēng)險因子發(fā)生的概率等級都為1,即很可能發(fā)生,那么它對應(yīng)的風(fēng)險管理策略的等級自然也應(yīng)該為1,即立即處理,決策結(jié)果與風(fēng)險狀態(tài)是完全協(xié)調(diào)的。在實際管理中,完全協(xié)調(diào)幾乎是不存在的,因此下面引入?yún)f(xié)調(diào)系數(shù)的概念。
定義8設(shè)RS=<U,A,V,F(xiàn)>是軟件項目風(fēng)險決策信息系統(tǒng),xi∈U,kxi定義為項目xi的風(fēng)險決策協(xié)調(diào)系數(shù),i=1,2,…n,計算公式如下:
kxi=1,uij=di(j=1,2,…m)時,1-∑mj=1|uij-di|m×max{|uij-di|},其他。
1,kxi值為1時,項目xi的風(fēng)險決策是完全協(xié)調(diào)的。對于協(xié)調(diào)系數(shù)較小的項目需要探究其原因:一是相應(yīng)風(fēng)險策略等級是否合適,二是風(fēng)險因子的重要性是否相同,即不同的風(fēng)險因子即使是在發(fā)生概率等級相同,他們對風(fēng)險策略的影響程度也是不同的,這些對于尋找管理的薄弱環(huán)節(jié),優(yōu)化過程管理提供了很好的切入點。
2.2.3?風(fēng)險因子的影響性分析
從風(fēng)險管理決策信息系統(tǒng)的橫向入手,在上一節(jié)中分析了每個軟件開發(fā)項目最終的風(fēng)險管理決策是否與風(fēng)險狀態(tài)相協(xié)調(diào),從縱向角度,綜合某個風(fēng)險因子發(fā)生的概率等級與管理策略等級之間的關(guān)系,可以對風(fēng)險因子進行影響性分析。
定義9設(shè)RS=<U,A,V,F(xiàn)>是軟件項目風(fēng)險決策信息系統(tǒng),若存在rj∈R,使得Uij=di都成立i=1,2,3…n,則說明風(fēng)險因子rj對風(fēng)險決策的影響是完全的。
風(fēng)險管理決策屬于多準(zhǔn)則決策問題,不可能所有的風(fēng)險因子對決策的影響都是完全的,下面引入影響系數(shù)的定義。
定義10設(shè)RS=<U,A,V,F(xiàn)>是軟件項目風(fēng)險決策信息系統(tǒng),rj∈R,krj定義為風(fēng)險因子rj的影響系數(shù),j=1,2,…m,計算公式如下:
krj=1,uij=di(i=1,2,…n)時,
1-∑ni=1|uij-di|n×max{|uij-di|},其他。
易知,0
1,特別krj=1時,風(fēng)險因子rj對風(fēng)險管理策略是完全影響的。風(fēng)險因子的影響系數(shù)越接近1,在做管理策略時就越應(yīng)該被優(yōu)先考慮。
3?實例分析
本節(jié)采取文獻[7]中的數(shù)據(jù),表3中列舉了風(fēng)險因子,因本文給出了風(fēng)險管理策略的等級,為了與風(fēng)險因子的發(fā)生概率保持一致,表4中的實例數(shù)據(jù)表與文獻[17]中的數(shù)據(jù)表現(xiàn)形式不同。
通過數(shù)據(jù)集,根據(jù)定義3,得到下面優(yōu)勢類:
D+P(x1)={x1}
D+P(x2)={x1,x2}
D+P(x3)={x1,x2,x3,x4,x5,x6}
D+P(x4)={x1,x4}
D+P(x5)=D+P(x6)={x5,x6}
根據(jù)決策屬性,可以得到包含3個類的劃分U/D={C1,C2,C3},其中C1={x3,x4},C2={x5,x6},C3={x1,x2}。
根據(jù)定義4,得到每個類的上聯(lián)合:C1={x1,x2,x3,x4,x5,x6},C2={x3,x4,x5,x6},C3={x1,x2},根據(jù)定義5,可以得到?jīng)Q策類的上下近似集P-(C1)=P-(C1)=U,P-(C2)={x5,x6},P-(C2)=U,P-(C3)=P-(C3)={x1,x2}。
根據(jù)3.2.1中的描述,A1={x3,x4,x5,x6},A2=U,得到資源有限時優(yōu)先考慮的項目集合。
根據(jù)定義8,得到每個項目的風(fēng)險決策協(xié)調(diào)系數(shù)為:kx1=0.875,kx2=0.75,kx3=0.75,kx4=0.375,kx5=0.5,kx6=0.5。從計算結(jié)果分析,項目x1的協(xié)調(diào)系數(shù)最大,說明其風(fēng)險決策被質(zhì)疑的可能越小,風(fēng)險狀態(tài)是比較清晰的;對于協(xié)調(diào)系數(shù)較小的項目,需要關(guān)注各個風(fēng)險因子發(fā)生概率的等級變化,及時對策略等級進行調(diào)整。
根據(jù)定義10,得到各個風(fēng)險因子的影響系數(shù)為:kr1=0.75,kr2=0.5,kr3=0.75,kr4=0.5。
從結(jié)果看,客戶需求多變性和系統(tǒng)需求不清晰兩個風(fēng)險因子對管理決策的影響更大些,此舉能為風(fēng)險因子的重要性進行排序,另外影響系數(shù)的變化也為風(fēng)險因子之間的關(guān)系研究提供了一種途徑。
結(jié)語
本文基于優(yōu)勢關(guān)系的粗糙集理論,利用優(yōu)勢關(guān)系、上下聯(lián)合及上下近似集合的概念,主要研究了風(fēng)險管理中如何更合理的確定優(yōu)先處理的軟件項目集合,給出了項目的風(fēng)險策略的協(xié)調(diào)系數(shù)、風(fēng)險因子的影響系數(shù)的定義和計算方法。一方面可以審視目前的風(fēng)險管理策略是否適宜,確定優(yōu)先項目及核心因子進行重點監(jiān)控;另一方面,為尋找過程管理的薄弱點提供依據(jù),達到過程改進的目的。但是還存在許多有待解決的問題:如粗糙集中的核與風(fēng)險因子影響系數(shù)之間的關(guān)系,基于優(yōu)勢關(guān)系的協(xié)調(diào)粗糙集在風(fēng)險管理中的應(yīng)用等。另外,本文實例中數(shù)據(jù)較少,當(dāng)組織的數(shù)據(jù)較多時,如何利用協(xié)調(diào)系數(shù)、影響系數(shù)從決策樣例中提取決策規(guī)則,都是下一步可以研究的方向。
參考文獻:
[1]BROOKS?FP.No?silver?buttle[J].IEEE?computer,1987,20(4):1019.
[2]榮國平,張賀,邵棟,等.軟件過程與管理方法綜述[J].軟件學(xué)報,2019,30(1):6279.
[3]BOEHM?BW.Software?risk?management:?principles?and?practices[J].IEEE?Software,1991,8(1):3241.
[4]The?Standish?Group.CHAOS?Summary?2009[EB/OL].http://www.standishgroup.com/newsroom/chaos_2009.php,2009.
[5]吳登生,李建平,孫曉蕾,宋浩.考慮風(fēng)險相關(guān)性的軟件風(fēng)險多目標(biāo)優(yōu)化控制研究[J].系統(tǒng)工程理論與實踐,2015,35(3):578586.
[6]楊莉,李南.軟件項目風(fēng)險應(yīng)對措施優(yōu)選的區(qū)間模型及其算法[J].控制與決策,2011,26(4):530534.
[7]丁劍潔,郝克剛,侯紅,郭小群.基于粗糙集的軟件項目風(fēng)險管理研究[J].計算機科學(xué),2010,37(4):117119.
[8]Barki?H,River?d?S,Talbot?J.Toward?an?assessment?of?software?development?risk[J].J?of?Management?Information?Systems,1993,10(2):?203225.
[9]CAPERS?J.Assessment?and?control?o?f?software?risks[M].Englewood?Cliffs:?Yourdon?Press,1994.
[10]GRECO?S,MATARAZZO?B,SLOWINSKI?R.Rough?approximation?by?dominance?relations[J].International?Journal?of?Intelligent?Systems,2002,17(2):?153171.
基金項目:陜西省教育廳科研計劃項目(17JK0184);陜西省重點研發(fā)計劃項目(2021NY211)
作者簡介:丁劍潔(1979—?),女,博士,副教授,研究方向:數(shù)據(jù)分析、軟件過程改進。