楊家棚 肖衛(wèi)
(湖南云箭集團有限公司,湖南 長沙 410100)
航空彈藥對于奪取制空權(quán)和戰(zhàn)爭主動權(quán)具有極其重要的作用。20世紀90年代以來,以信息技術(shù)為基礎(chǔ)和先導的高技術(shù)使航空彈藥技術(shù)發(fā)生了質(zhì)的變化,智能化精確制導彈藥已現(xiàn)端倪。在航空彈藥趨向小型化、精確化和智能化發(fā)展的過程中,制導軟件的地位不斷提升。在總裝備部和航定辦發(fā)布的多項加強軍用軟件工程化管理的規(guī)定中,要求軍用軟件承研單位必須通過《軍用軟件研制能力成熟度模型》(GJB 5000A)的體系評價。對于軍貿(mào)科研和基金類軟件研制項目,雖然采用了經(jīng)過本地化改進的精簡開發(fā)生命周期模型(以下簡稱“精簡模型”)進行項目管理,但仍經(jīng)常發(fā)生進度延期的問題,對項目進度風險的量化分析不足。
進度目標作為軟件項目管理的重要目標之一,關(guān)系著整個軟件項目開發(fā)的成敗。進度風險是整個軟件項目中的主要沖突[1],要確保軟件項目成功,就必須從實質(zhì)上解決軟件項目進度管理中存在的問題。目前,國內(nèi)外學者主要通過計劃評審技術(shù)(Project Evaluation and Review Technique,PERT)、關(guān)鍵路徑法(Critical Path Method,CPM)和蒙特卡羅模擬法(Monte Carlo Simulation,MCS)等對項目進度風險管理進行研究[1]。其中,PERT在項目管理中應用廣泛[2],雖然考慮了活動用時的不確定性[3-4],但采用的是三點估計法估計活動用時,再利用加權(quán)平均計算活動用時期望,與實際情況有較大的誤差;應用CPM時,需先假設(shè)各活動的用時是確定的且具活動間有固定的邏輯關(guān)系。
為克服PERT和CPM應用的不足,許多學者對其進行了改進研究。張俊光[5]通過對IT項目和各階段工作量分布特性的研究,提出通過工作量的分解得到項目進度。楊莉等[6]使用模糊理論并引入緩沖區(qū)設(shè)置、優(yōu)化關(guān)鍵路徑法,從而對項目進度進行有效管控。張云寧等[7]從克服三點估計法的不足入手,對PERT進行了改進,并著重分析了項目進度風險。這些研究有助于項目管理水平的提高,但在進行項目策劃時未能給進度風險的定量分析提供有效的解決方案。
利用MCS可以將項目進度的不確定性風險轉(zhuǎn)化到階段工作量的確定性統(tǒng)計分布特征上,進行項目進度的風險量化分析[8]。因此,本文應用MCS對采用精簡模型的軟件研制項目進度風險進行量化分析,以提升軍貿(mào)科研和基金類軟件研制項目的風險管理和分析能力。
精簡模型包括系統(tǒng)分析與需求開發(fā)、軟件設(shè)計與實現(xiàn)、軟件測試、軟件驗收與交付4個階段,設(shè)置1個里程碑——軟件配置項測試報告完成評審。相對于瀑布模型,精簡模型對配置管理活動、項目管理過程與質(zhì)量保證過程進行了適應性精簡,項目管理過程僅對階段工作量進行估計。
MCS又稱為隨機抽樣模擬法,不同于確定性的數(shù)值計算方法,它是一種多元素統(tǒng)計分析方法。MCS通過試驗的方式得出事件發(fā)生的概率,并用作問題的解。MCS的主要應用步驟如下[9]:
(1)對實際問題進行參數(shù)化分析,確定隨機變量,描述概率統(tǒng)計過程,構(gòu)造數(shù)學模型。
(2)據(jù)模型特點確定隨機變量統(tǒng)計抽樣的概率分布特征。
(3)建立估計量,產(chǎn)生服從確定概率分布的隨機數(shù),進行隨機模擬試驗,并對模擬結(jié)果進行統(tǒng)計處理分析。
采用傳統(tǒng)的CPM計算軟件項目進度,是將關(guān)鍵路徑上的活動持續(xù)時間相加得到完成軟件項目所需的總時間。使用CPM估算進度時,需要保證每個活動的實際持續(xù)時間嚴格按計劃進行,否則很難保證進度估算的準確性。軟件開發(fā)項目在管理過程中存在許多不確定性因素,如開發(fā)人員能力不足、組間協(xié)調(diào)溝通欠缺、應用新技術(shù)等,會對項目進度產(chǎn)生一定程度的影響。因此,活動的持續(xù)時間是動態(tài)變化的,在精簡模型中階段的持續(xù)時間即隨機變量。
PERT是利用網(wǎng)絡(luò)分析制訂項目計劃且對計劃進行評價的技術(shù)。PERT網(wǎng)絡(luò)用箭線圖表示,其基本特征有:
(1)用帶有方向的箭頭表示活動。
(2)描繪了各活動間的邏輯關(guān)系,并標示了每項活動的工作量。
(3)禁止出現(xiàn)閉合回路(從某一節(jié)點出發(fā)最后又回到開始節(jié)點)的情況。
將精簡模型的階段視為活動,在PERT網(wǎng)絡(luò)中有4個活動,分別為:A系統(tǒng)分析與需求開發(fā),B軟件設(shè)計與實現(xiàn),C軟件測試,D軟件驗收與交付。
精簡模型的PERT網(wǎng)絡(luò)圖如圖1所示。其中,圓圈表示項目節(jié)點,1是項目開始節(jié)點,5是項目結(jié)束節(jié)點;箭線表示階段,其上方的字母表示階段名稱;圓括號中的數(shù)字表示由PERT估算得到的階段工作量的期望值。
采用PERT方法計算精簡模型每個階段進度的工作量Sk,公式如下
式中,ak為第k個階段的最樂觀時間;ck為第k個階段的最可能時間;bk為第k個階段的最悲觀時間。
使用PERT法估計階段工作量時,不是簡單地以取平均值的形式求三個估計量的均值,而是采取加權(quán)平均的形式計算最樂觀時間、最可能時間和最悲觀時間的加權(quán)平均值。
在對精簡模型階段工作量進行統(tǒng)計抽樣時,其中一個非常重要的步驟是產(chǎn)生隨機數(shù),確保抽樣得到的階段工作量的獨立性。
理論上,只要有連續(xù)分布的隨機數(shù),就可以由抽樣的方法得到任意分布的隨機數(shù)。[0,1]分布是最基礎(chǔ)的連續(xù)分布函數(shù)之一。利用MCS法對實際問題進行模擬時,首先需要解決的是大量均勻分布隨機數(shù)的產(chǎn)生,再選擇合適的抽樣方法將產(chǎn)生的隨機數(shù)轉(zhuǎn)換為具有一定統(tǒng)計分布特征的隨機數(shù)。隨機數(shù)產(chǎn)生流程如圖2所示。
利用確定性算法算得的[0,1]均勻分布隨機數(shù)序列并非真正意義上的隨機數(shù),但具有均勻性、獨立性等隨機數(shù)的統(tǒng)計特征。在實際問題MCS模擬中,一般使用偽隨機數(shù)代替真正的隨機數(shù)。因此,采用MCS對精簡模型軟件開發(fā)項目階段工作進行隨機抽樣時,各階段工作量抽樣值服從[0,1]分布特征。通過盡可能多次的隨機抽樣模擬每個階段工作量的風險的隨機特性。隨機抽樣模擬是通過對項目階段工作量進行建模,利用統(tǒng)計概率分布描述階段的進度風險。階段工作量常見的分布類型有貝塔分布、正態(tài)分布和三角分布等。通過對階段工作量抽樣數(shù)據(jù)的統(tǒng)計,分析項目進度安排是否存在進度延期風險,加強組織和軟件項目負責人對軟件項目進度管理上的把控。
精簡模型階段進度風險模塊主要包括階段工作量估計數(shù)據(jù)獲取模塊、隨機抽樣模塊和數(shù)據(jù)統(tǒng)計模塊。精簡模型階段進度風險模塊組成示意圖如圖3所示。
階段工作量估計數(shù)據(jù)獲取模塊的主要功能是獲取估計的階段工作量、設(shè)定的階段工作量,統(tǒng)計分布類型和模擬次數(shù)數(shù)據(jù)。隨機抽樣模塊的主要功能是判定設(shè)定階段工作量統(tǒng)計分布類型,產(chǎn)生階段工作量隨機抽樣數(shù)據(jù)。數(shù)據(jù)統(tǒng)計模塊的主要功能是對產(chǎn)生的階段工作量數(shù)據(jù)進行分布特性統(tǒng)計、計算階段工作量進度風險累積概率,并繪制階段進度分布圖與風險曲線圖。
根據(jù)PERT/CPM對階段工作量進行估計,獲得每個階段的三個估計值,通過加權(quán)平均計算階段工作量期望值及標準差。階段工作量估計見表1,其中A為系統(tǒng)分析與需求開發(fā),B為軟件設(shè)計與實現(xiàn),C為軟件測試,D為軟件驗收與交付。
表1 階段工作量估計
由表1可知,項目總工作量的三個估計值分別為:最樂觀120天、最可能139天、最悲觀175天,總工作量的期望為143天。
設(shè)定4組模擬次數(shù),分別為N等于100、1000、10 000、100 000進行項目進度風險模擬。每次模擬后,分別對階段工作量估計期望的概率和累計概率P1達到100%的第一完成點天數(shù)、項目總工作量期望的概率和累計概率達到100%的第一完成點天數(shù)進行統(tǒng)計分析。N次模擬的階段進度風險數(shù)據(jù)統(tǒng)計見表2。
表2 N次模擬的階段進度風險數(shù)據(jù)統(tǒng)計
由表2可知,各階段在以估計期望值為節(jié)點的完成概率約為50%,說明若由PERT技術(shù)估計的期望值作為階段進度節(jié)點,階段任務(wù)有約50%的概率是無法完成的,存在進度延期風險;各階段第一完成點天數(shù)在最悲觀估計值附近,所以在軟件項目策劃時,各階段的工作量定在最悲觀時間可以進一步降低進度風險。
由表2還可觀察到,模擬次數(shù)為100時,數(shù)據(jù)波動大,所以進行軟件項目進度MCS模擬時,模擬次數(shù)宜選擇1000~100 000。選擇模擬次數(shù)N=100 000,對MCS模擬得到的項目總工作量進行統(tǒng)計分析。模擬100 000次項目進度風險S曲線如圖4所示。
由圖4可知,項目在期望值143天完成的概率為37.99%,低于各階段在期望值完成的概率平均值50.04%。這說明項目總工期進度風險存在疊加效應,在進行項目策劃時不能只考慮各階段的進度風險,還要從整個項目過程進行風險平衡。項目總工期第一完成點為164天,高于估計的期望值143天,低于最悲觀175天,說明對整個項目而言,在軟件項目策劃時以最悲觀工作量作為進度節(jié)點可以留有6.71%的緩沖區(qū)。
因此,在進行軟件項目策劃時,可以根據(jù)項目的緊急程度將項目進度安排在第一完成點和最悲觀估計值之間,以保證項目進度留有一定程度的緩沖區(qū),降低項目延期風險。
采用本地化的精簡模型對軍貿(mào)科研和基金類軟件項目進行項目管理,雖然有一定成效,但進度延誤風險仍存在諸多不可控因素,且在項目策劃時僅對階段采用三點估計法得到的項目完成時間過于樂觀。為了加強對這兩類軟件研制的項目管理,本研究利用MCS把軍貿(mào)科研和基金類制導軟件研制項目中的不確定性分布轉(zhuǎn)化為階段工作量的確定性分布,對項目進度風險進行定量分析,輔助軟件項目負責人合理地安排進度。