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