【第158期 November 5, 2010】
 

研發新視界

蒙地卡羅分析方法於實務上的應用

作者/童敬宇

[發表日期:2010/11/1]



前言

軟體專案開發主要分為專案計畫、軟體需求分析、軟體設計、程式建置與測試、整合測試、產品化與交付產品等階段。專案經理需選擇適合專案之方法與流程做調適,以期能達到目標。因能力成熟度模式整合(Capability Maturity Model Integration, CMMI)第四級中,專案需建立各個階段的流程績效基準(Process Performance Baseline, PPB),專案可利用流程績效基準作為流程方法組合的基礎,並預測是否可達專案目標。

蒙地卡羅分析步驟建置

蒙地卡羅由回歸方程式(Regression Equation)、定義隨機參數等步驟建置,如下:

步驟 1: 建置回歸模型:y = f(x1, x2, ..., xq)。

步驟2: 建置模型中,屬於非計畫性的隨機變數:xi1, xi2, ..., xiq。

步驟3: 執行一次的模擬,並記錄結果:yi。

步驟4: 重複步驟2~3: i = 1 to n。

步驟5: 利用直方圖、信賴區間分析結果。

若將回歸方程式應用到專案,可將依變數(Dependent Variable)視為專案之目標,自變數(Independent Variable)視為影響依變數專案目標結果的各因子,如缺失數、人力等。此外,自變數若為不可計畫之值,則是為隨機變數,例如人力差異(Effort Variation),需運用到流程績效基準,且專案選擇的方法,也會改變自變數,進而影響依變數。定義隨機變數的同時,必須選擇此變數的機率分配(Probability Distribution),以利蒙地卡羅依據該分配預測。蒙地卡羅將利用上述設定,模擬依變數的結果,其次數通常為5000至上萬次。

蒙地卡羅流程與實例說明

一、定義專案目標:



二、建置回歸模型:

經由專案相關數據的收集,並利用統計工具建置回歸模型,如下:
時程變異=0.02*缺失數+0.23*人力變異

三、制定各流程之開發方法與自變數的流程績效基準,方法的選定會影響特定自變數的數值。

四、經由方法選定,並利用蒙地卡羅方法得出結果
,如下圖:


《圖一》蒙地卡羅預測結果


結語

由結果得知,在專案選定特定方法的情況下,達到專案目標的機率為39%。

蒙地卡羅在實務上,可搭配各種模型的建置與設計,達到預測的目的。該方法目前以被能力成熟度模式整合官方所採用,若組織本身已收集足夠的歷史數據,以及包含各種流程開發方法,不妨利用此模型,替專案選定最佳的開發方法,以達到預定之目標。