王蔚
(北京太極信息系統技術有限公司,北京 100102)
軟件項目開發過程十分復雜,從項目啟動到完成受多種不確定性因素的影響,面臨諸多風險。在軟件項目管理過程中,為了實施有效的風險管理活動,需要對可能出現的風險進行識別和評估。這就需要研究有效的軟件項目風險評估方法,為項目管理人員制訂風險控制計劃、實施項目管理活動提供支撐。
目前,常用的風險評估方法很多,且各有特色。其中,專家打分法應用廣泛,是一種行之有效的評估方法,但也存在一定的局限性:一是受主觀因素的影響;二是需要解決多指標的綜合決策問題。
本研究在建立風險評估指標體系的基礎上,針對專家打分法中的主觀影響問題和多指標綜合決策問題,將熵權TOPSIS方法應用于軟件項目風險評估,基本思路是:引入熵權法EWM確定指標權重,減少指標權重的主觀因素影響;采用優劣解距離法TOPSIS對軟件項目多種風險指標進行綜合評價,解決多屬性決策問題。
常用的風險評估方法可以分為三大類:定性評估方法、定量評估方法、定性與定量相結合的評估方法,如圖1所示。
定性評估方法主要是依據研究者的知識及經驗等非量化信息對系統的風險狀況做出判斷,包括風險矩陣法、故障樹分析法、歷史比較法、德爾菲法等。定量評估方法運用數量指標對風險進行評估,包括聚類分析法、模糊綜合評價法。定性與定量相結合的評估方法結合定性評估、定量評估兩種方法的特征,包括專家評分法、灰色系統理論法、層次分析法。各種風險評估方法的特點與適用范圍均有所不同,其中專家打分法在風險評估中應用廣泛。
很多學者對軟件項目風險評估指標體系建立和評估方法進行了研究,并將其他領域一些經典、成熟的風險評估方法應用于軟件項目風險評估,取得了一系列成果。例如,楊國有[1]提出了一種軟件項目風險評估指標體系的建立方法;蔡玲[2]將Kano模型應用于軟件項目風險管理;唐愛國等[3]將貝葉斯網絡應用于軟件項目風險評估;邱繼棟[4]提出了處理基于AHP的軍工信息系統軟件科研項目風險評估方法;趙川、賀永會等[5-6]將BP神經網絡應用于軟件項目風險評估;潘梅森等[7]提出了基于LVQ的軟件項目風險評估模型的建立方法;蘭芳、李偉濤等[8-9]將灰色系統理論應用于軟件項目風險評估。此外,還有眾多文獻[10-15]將模糊理論應用于軟件項目風險評估。
開展軟件項目風險管理,其目的是在風險發生之前識別出潛在的問題,以便在項目的整個生命周期中規劃風險管理活動,并在必要時啟動這些活動,以緩解和消除風險的不利影響。
風險管理的通用框架如圖2所示,過程主要包括風險規劃、風險評估、風險應對和風險監控。風險評估又包括風險識別、風險分析和風險評價。
風險識別是指發現、確認和描述風險的過程。風險識別的常用方法包括頭腦風暴法和風險檢查單法。軟件項目典型的風險源包括:需求不確定或變化頻繁;設計過于簡單或復雜;使用的技術方法不熟悉;由于無先例而不能有效地估計工作量;項目人員新人多、缺乏經驗;開發環境或測試環境未及時到位;供方沒有按期交付組件或質量不過關;需方溝通欠缺;運行的連續性被破壞等。
風險分析是對風險發生的概率、后果和敏感性等進行分析,以便為風險評價和應對提供必要信息。
風險評價確定風險等級,對諸項風險進行排序,以便制定風險應對優先序策略。
軟件項目面臨多種風險,分類管理是一種有效的管理手段。采用分類的風險管理方式,有助于整合風險緩沖計劃的各項活動。
風險可按多種方式進行分類,如圖3所示。項目可根據自身特點選擇合適的風險分類方法,也可根據需要建立自己的風險分類方法。
本文從便于整合各項風險緩解計劃活動的角度出發,參考行業風險清單,按項目風險源類別建立軟件項目風險評價指標體系,如圖4所示。
本文提出的基于熵權TOPSIS的軟件項目風險評估方法,是一種改進的專家評分法。該方法以專家評分法為基礎,引入熵權法EWM設置評價指標的權重,以減少指標權重的主觀因素影響,并采用優劣解距離法TOPSIS對軟件項目風險進行綜合評價。
本方法引入熵權法EWM設置評價指標的權重。熵權法是一種客觀賦權法,用以減少指標權重的主觀因素影響。
熵權法是基于信息熵原理提出的一種客觀確定評價指標權重的方法。信息熵是信息論中描述不確定性的量,是系統無序程度的度量,由信息論創始人C.E.Shannon提出。信息熵越小,不確定性越小,相應信息的效用越大;反之,信息熵越大,不確定性越大,相應信息的效用越小。將該原理應用到系統評價中確定權重,就是熵權法。運用熵權法確定權重時,某評價指標的信息熵越小,評價作用越大,因而所賦予的權重應該越大。與人為設置指標權重不同,熵權法根據評價數據來相對客觀地設置權重。
熵權法的處理步驟如下。
3.1.1 數據標準化處理
根據原始風險值對數據進行標準化處理。設確定的風險評價指標有n個、被評項目有m個,初始評價值矩陣為
V=(vij)m×n(i=1,2,…,m;j=1,2,…,n)
式中,vij表示原始的風險值,取值1~10。風險值越大,表示風險越大。
標準化處理的方式為:采用最大最小歸一化方法,將原始數據轉換到[0,1]的范圍。風險值為反向指標,歸一化公式為
V*=(vij*)m×n
其中
3.1.2 各指標的信息熵計算
根據信息論中信息熵的定義計算各指標的信息熵,計算公式如下
其中
當pij=0時,令pijln(pij)=0。
3.1.3 各指標熵權確定
確定各指標的熵權如下
計算所有指標的熵權,得出評價指標的權重列向量。計算公式如下
W=(w1,w2,…,wn)T
獲得的熵權可以用于計算TOPSIS中的加權優劣解距離,也可以直接計算加權風險值。
直接計算加權風險值的方式是:根據原始評風險值表,乘以指標熵權,得到調整權重后的風險值,即加權風險值,如下
Y=(yij)m×n=(vijwj)m×n
根據加權風險值可以對各項目的不同風險進行排序,為制訂風險緩解計劃提供依據。
在本方法中,熵權將用于TOPSIS方法中各評價對象與正、負理想解距離的計算。
本方法采用熵權TOPSIS法進行軟件項目風險的綜合評估。TOPSIS是逼近理想解排序法,又稱為優劣解距離法,是一種多屬性決策法。TOPSIS法根據評價對象與理想解的接近程度判斷優劣,其具體步驟是:①構造正、負理想解;②計算各評價對象與正、負理想解之間的歐氏距離,得出評價對象與正理想解的接近程度,并以此作為評價依據。
TOPSIS主要用于解決多屬性決策問題,其基本思路是將多屬性綜合為單一屬性進行排序,進而得到最優方案。將TOPSIS和熵權相結合即得到一個既有客觀的指標權重又有多屬性決策的評估方法——熵權TOPSIS法。熵權TOPSIS法的處理步驟如下。
3.2.1 原始數據正向化
正向化是指將極小型指標、中間型指標、區間型指標對應的數據全部轉化成極大型指標,便于統一計算和處理。極大型指標也稱為效益型指標,指標越大越好;極小型指標也稱為成本型指標,指標越小越好。在軟件項目風險評估中,風險值是極小型指標。極小型指標轉換為極大型指標的公式如下
x*=max-x
將原始風險值矩陣V進行正向化處理,得到正向風險值矩陣如下
X=(xij)m×n;xij=max(v1j,v2j,…,vmj)-vij;(i=1,2,…,m;j=1,2,…,n)
3.2.2 正向風險值矩陣標準化
標準化是指通過標準化消除量綱的影響。在本軟件項目風險評估方法中,風險值量綱統一,可以省略標準化步驟。但出于通用性考慮,本方法仍保留標準化步驟。
將正向風險值矩陣X進行標準化處理,得到標準化的正向風險值矩陣Z如下
3.2.3 加權距離計算
計算各被評項目與正理想解和負理想解的加權距離,步驟如下:
(1)確定正負理想解。
正理想解是由Z矩陣中每列元素中的最大值組成的向量,如下
負理想解是由Z矩陣中每列元素中的最小值組成的向量
(2)計算加權距離。加權距離反映方案之間的接近程度。各被評項目與正理想解的加權距離為
各被評項目與負理想解的加權距離為
式中,i表示第i個被評項目;j表示第j個指標;wj是第j個指標的權重,由上節所述熵權法獲得。
3.2.4 計算各被評項目的綜合評分
至此完成被評項目的綜合評分,得分越大,越接近正理想解。
下面以對某企業對8個軟件研發項目的風險評估為例對本文方法進行分析。
實例中軟件項目原始風險值見表1,其中R1~R10分別對應軟件項目風險評價指標體系的10項指標。根據原始數據計算得到的風險評估指標的信息熵和熵權見表2。經過正向化和標準化處理的風險見表3。軟件項目與正、負理想解的距離和風險綜合評分見表4。

表1 軟件項目原始風險值

表2 指標信息熵和熵權表

表3 標準化的正向風險表

表4 軟件項目與正負理想解的距離和風險綜合評分表
通過實例結果可以看出,項目4綜合評分最高,風險最??;項目7綜合評分最低,風險最大。在算法方面,從表2中指標的信息熵和熵權可以看出,指標權重根據指標的信息熵而得到,其中信息熵值最小、不確定性最低的指標R8得到的權重最高。
需要說明的是,為便于展示與分析,本實例選用風險值作為原始數據。在實際應用時,指標根據需要設置成不同類型,通過相應的正向化和標準化處理形成評價矩陣。
本文提出的基于熵權TOPSIS的軟件項目風險評估方法,從便于整合各項風險緩解計劃活動的角度出發,建立了軟件項目風險評價指標體系。在評估方法方面,將熵權TOPSIS法應用于軟件項目風險評估。從整體來看,熵權TOPSIS法將TOPSIS和熵權相結合,是一種既有客觀指標權重又有多屬性決策的評估方法。
實例分析表明,熵權法根據指標的熵權確定權重,在一定程度上減少了主觀因素的影響。TOPSIS法較有效地將多種風險指標綜合成單一評分屬性,便于軟件項目風險的擇優與排序。但有兩點值得注意:一是通過多種比較試驗可以看出,雖然不同的數據標準化處理方式對熵權和綜合評分具有不同的影響,但是整體評估結果基本相符;二是由于指標權重完全由數據決定,特殊情況下通過信息熵得到的權重可能與平時的直觀認識有所不同。