軟件工程項目風險分析
與任何其他工程項目一樣,軟件工程項目的開發也存在各種各樣的風險,有些風險甚至是災難性的。R.Charette認為,風險與將要發生的事情有關,它涉及諸如思想、觀念、行為、地點、時間等多種因素;風險隨條件的變化而改變,人們改變、選擇、控制與風險密切相關的條件可以減少風險,但改變、選擇、控制條件的策略往往是不確定的。在軟件開發過程中,人們關心的問題是,什么風險會導致軟件項目的徹底失???顧客需求、開發環境、目標機、時間、成本的改變對軟件項目的風險會產生什么影響?人們必須抓住什么機會、采取什么措施才能有效地減少風險、順利完成任務?所有這些問題都是軟件開發過程中不可避免并需要妥善處理的。軟件工程的風險分析包括:風險標識、風險估算、風險評價和風險管理四部分。
1、風險標識
從宏觀上看,風險可以分為項目風險、技術風險和商業風險三類。由于項目在預算、進度、人力、資源、顧客和需求等方面的原因對軟件項目產生的不良影響稱為項目風險。軟件在設計、實現、接口、驗證和維護過程中可能發生的潛在問題,如規格說明的二義性、采用陳舊或尚不成熟的技術等等,對軟件項目帶來的危害稱技術風險。開發了一個沒人需要的優質軟件,或推銷部門不知如何銷售這一軟件產品,或開發的產品不符合公司的產品銷售戰略,等等,稱為商業風險。這些風險有些是可以預料的,有些是很難預料的。為了幫助項目管理人員、項目規劃人員全面了解軟件開發過程存在的風險,Boehm建議設計并使用各類風險檢測表標識各種風險。例1給出一個參考性的“人員配備風險檢測”。
例1、人員配備風險檢測。
(1)開發人員的水平如何。
?。?)開發人員在技術上是否配套。
?。?)開發人員的數量如何。
?。?)開發人員是否能夠自始至終地參加軟件開發工作。
?。?)開發人員是否能夠集中全部精力投入軟件開發工作。
(6)開發人員對自己的工作是否有正確的期望。
?。?)開發人員是否接受過必要的培訓。
?。?)開發人員的流動是否能夠保證工作的連續性。
上述問題可以選用0,1,2,3,4,5來回答。完全肯定取值為0,反之為5,中間情況分別取值1,2,3,4。值越大表示風險越大。人員配備風險檢測表反映了人的因素對軟件項目的影響,可以用它來估算人的因素對軟件項目帶來的風險。
2、風險估算
軟件項目管理人員可以從影響風險的因素和風險發生后帶來的損失兩方面來度量風險。為了對各種風險進行估算,必須建立風險度量指標體系;必須指明各種風險帶來的后果和損失;必須估算風險對軟件項目及軟件產品的影響;必須給出風險估算的定量結果。
3、風險評價和管理
在風險分析過程中,經常使用三元組[RI,LI,XI]描述風險。其中RI代表風險,LI表示風險發生的概率,XI是風險帶來的影響,I = 1,2,…L是風險序號,表示軟件項目共有L種風險。軟件開發過程中,由于項目超支、進度拖延和軟件性能下降都會導致軟件項目的終止,因此多數軟件項目的風險分析都需要給出成本、進度和性能三種典型的風險參考量。當軟件項目的風險參考量達到或超過某一臨界點時,軟件項目將被迫終止。在軟件開發過程中,成本、進度、性能是相互關聯的。例如,項目投入成本的增長應與進度相匹配,當項目投入的成本與項目拖延的時間超過某一臨界點時,項目也應該終止進行。通常風險估算過程可分為
四步:①定義項目的風險參考量;②定義每種風險的三元組[RI,LI,XI];③定義項目被迫終止的臨界點;④預測幾種風險組合對參考量的綜合影響。
三元組[RI,LI,XI]是風險管理的基礎。設高級職員流動給項目帶來的風險為RI。根據歷史的經驗或直觀感覺,高級職員離開課題組的概率:LI = 70%。這一事件的出現帶來的影響XI是項目開發時間延長15%,項目成本增加20%。于是項目負責人可以采取下列風險管理措施:
?。?)項目開始以前應控制產生風險的原因,在項目開工后應想方設法減輕風險影響。
?。?)了解導致項目開發人員變動的原因,在項目開發期間應控制上述原因,盡量減少人員的流動。
(3)在工作方法和技術上應采取適當措施,防止因人員流動給工作帶來損失。
?。?)項目在開發過程中應及時公布并交流項目開發的信息。
(5)建立組織機構,確定文檔標準,并及時生成文檔。
?。?)對工作進行集體復審,使多數人都能了解工作的細節,跟上工作進度。
(7)為關鍵技術準備后備人員。
為了降低高級職員流動給軟件項目帶來的風險,管理人員可以采取培養后備人才的措施。在軟件開發過程中,盡量讓更多的人參與總體設計和關鍵技術的攻關工作。實施這些措施需要一定的人力、時間和經費。管理人員應根據降低風險、減少損失的原則,客觀地分析形勢,做出正確的決策。
一個大型軟件的開發大約存在30至40種風險。如果每種風險都需要3至7個風險管理步驟,那么風險管理本身也可以構成軟件開發過程的一個子項目。人們必須懂得,風險管理不僅需要人力資源,而且還需要經費的支持。
1、風險標識
從宏觀上看,風險可以分為項目風險、技術風險和商業風險三類。由于項目在預算、進度、人力、資源、顧客和需求等方面的原因對軟件項目產生的不良影響稱為項目風險。軟件在設計、實現、接口、驗證和維護過程中可能發生的潛在問題,如規格說明的二義性、采用陳舊或尚不成熟的技術等等,對軟件項目帶來的危害稱技術風險。開發了一個沒人需要的優質軟件,或推銷部門不知如何銷售這一軟件產品,或開發的產品不符合公司的產品銷售戰略,等等,稱為商業風險。這些風險有些是可以預料的,有些是很難預料的。為了幫助項目管理人員、項目規劃人員全面了解軟件開發過程存在的風險,Boehm建議設計并使用各類風險檢測表標識各種風險。例1給出一個參考性的“人員配備風險檢測”。
例1、人員配備風險檢測。
(1)開發人員的水平如何。
?。?)開發人員在技術上是否配套。
?。?)開發人員的數量如何。
?。?)開發人員是否能夠自始至終地參加軟件開發工作。
?。?)開發人員是否能夠集中全部精力投入軟件開發工作。
(6)開發人員對自己的工作是否有正確的期望。
?。?)開發人員是否接受過必要的培訓。
?。?)開發人員的流動是否能夠保證工作的連續性。
上述問題可以選用0,1,2,3,4,5來回答。完全肯定取值為0,反之為5,中間情況分別取值1,2,3,4。值越大表示風險越大。人員配備風險檢測表反映了人的因素對軟件項目的影響,可以用它來估算人的因素對軟件項目帶來的風險。
2、風險估算
軟件項目管理人員可以從影響風險的因素和風險發生后帶來的損失兩方面來度量風險。為了對各種風險進行估算,必須建立風險度量指標體系;必須指明各種風險帶來的后果和損失;必須估算風險對軟件項目及軟件產品的影響;必須給出風險估算的定量結果。
3、風險評價和管理
在風險分析過程中,經常使用三元組[RI,LI,XI]描述風險。其中RI代表風險,LI表示風險發生的概率,XI是風險帶來的影響,I = 1,2,…L是風險序號,表示軟件項目共有L種風險。軟件開發過程中,由于項目超支、進度拖延和軟件性能下降都會導致軟件項目的終止,因此多數軟件項目的風險分析都需要給出成本、進度和性能三種典型的風險參考量。當軟件項目的風險參考量達到或超過某一臨界點時,軟件項目將被迫終止。在軟件開發過程中,成本、進度、性能是相互關聯的。例如,項目投入成本的增長應與進度相匹配,當項目投入的成本與項目拖延的時間超過某一臨界點時,項目也應該終止進行。通常風險估算過程可分為
四步:①定義項目的風險參考量;②定義每種風險的三元組[RI,LI,XI];③定義項目被迫終止的臨界點;④預測幾種風險組合對參考量的綜合影響。
三元組[RI,LI,XI]是風險管理的基礎。設高級職員流動給項目帶來的風險為RI。根據歷史的經驗或直觀感覺,高級職員離開課題組的概率:LI = 70%。這一事件的出現帶來的影響XI是項目開發時間延長15%,項目成本增加20%。于是項目負責人可以采取下列風險管理措施:
?。?)項目開始以前應控制產生風險的原因,在項目開工后應想方設法減輕風險影響。
?。?)了解導致項目開發人員變動的原因,在項目開發期間應控制上述原因,盡量減少人員的流動。
(3)在工作方法和技術上應采取適當措施,防止因人員流動給工作帶來損失。
?。?)項目在開發過程中應及時公布并交流項目開發的信息。
(5)建立組織機構,確定文檔標準,并及時生成文檔。
?。?)對工作進行集體復審,使多數人都能了解工作的細節,跟上工作進度。
(7)為關鍵技術準備后備人員。
為了降低高級職員流動給軟件項目帶來的風險,管理人員可以采取培養后備人才的措施。在軟件開發過程中,盡量讓更多的人參與總體設計和關鍵技術的攻關工作。實施這些措施需要一定的人力、時間和經費。管理人員應根據降低風險、減少損失的原則,客觀地分析形勢,做出正確的決策。
一個大型軟件的開發大約存在30至40種風險。如果每種風險都需要3至7個風險管理步驟,那么風險管理本身也可以構成軟件開發過程的一個子項目。人們必須懂得,風險管理不僅需要人力資源,而且還需要經費的支持。
本文標簽:軟件工程項目風險分析
* 由于無法獲得聯系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《軟件工程項目風險分析》相關權利人與機電之家網取得聯系。










