張帆 姜月 林志超 齊鑫 李寧檸
遼寧郵電規(guī)劃設(shè)計院有限公司 遼寧 沈陽 110179
目前較為流行的軟件成本度量技術(shù)有:利用專家經(jīng)驗進行的判定法、類比相似項目數(shù)據(jù)的估算法、采用回歸函數(shù)的分析法、基于數(shù)學(xué)算法的模型估算法及PERT法等[1]。
專家判定法是根據(jù)估算專家的歷史經(jīng)驗和主觀意識,結(jié)合新項目的自身特征給出估算結(jié)果,這樣的估算結(jié)果往往過分依賴于專家的判斷,缺乏客觀性和標(biāo)準(zhǔn)性。
類比估算法將新的軟件項目與以往類似項目在使用環(huán)境、應(yīng)用場景等方面的實際數(shù)據(jù)進行類比,得出一個估算值,類比結(jié)果的準(zhǔn)確性往往依賴于以往相似項目歷史數(shù)據(jù)的完整性和代表性。
回歸分析法利用軟件產(chǎn)品的歷史數(shù)據(jù)來預(yù)測和估算新軟件項目的估算成本,常用的有OLS、OSR、CART等回歸方法,其方法簡單、易用,但是回歸模型需要對軟件項目進行嚴(yán)格的假設(shè)條件,一旦出現(xiàn)偏差較大的參數(shù)值,就會對回歸算法的估算結(jié)果造成巨大的影響。
算法模型估算法給出了一種或多種的數(shù)學(xué)方法,由這種數(shù)學(xué)方法所引起的軟件成本度量,可以看作是主要成本與控制因素之間變化的函數(shù)。算法模型具體分類如下表:
雖然算法模型的發(fā)展趨勢十分樂觀,但其度量結(jié)果的準(zhǔn)確性仍受制于軟件項目的規(guī)模、模型因子及軟件環(huán)境等因素,且目前還沒有任何一個適用性及通用性很強的模型可以滿足各類軟件項目的成本度量。
在實際項目管理中,對于實現(xiàn)復(fù)雜、采用前沿技術(shù)且無相似項目可以作為經(jīng)驗參考的軟件項目,可以采用PERT技術(shù)。PERT實現(xiàn)原理是假設(shè)工作的時間和完成時間都是隨機的,并遵循著一定的概率分布,PERT就能夠預(yù)測該工作在特定日期內(nèi)可實現(xiàn)的可能性[2]。PERT在綜合考慮項目各種可能存在風(fēng)險的前提下,采用三點估計法來估算活動的持續(xù)時間,根據(jù)不同項目活動所需要的完成時間劃分成3種情況進行估算:
最可能持續(xù)時間(mostlikely time):是在已知該項目所具備的資源、資源的產(chǎn)出率及能夠支持給該活動所需的實際可能性和依賴其余活動參與的條件下,需要的連續(xù)的時間[3]。
樂觀持續(xù)時間(optimistic time):是在最可能持續(xù)時間所有的前提條件都是最有利的時候所預(yù)估出來的持續(xù)時間。
悲觀持續(xù)時間(pessimistic time):是在最可能持續(xù)時間所有的前提條件都是最惡劣的時候所預(yù)估出來的持續(xù)時間。
根據(jù)以上公式還可以進一步計算出任一項工作的時間方差,公式為:通過平均值及方差計算得到的活動持續(xù)時間相對于單點計算獲得的值要更加準(zhǔn)確。
為解決目前常用成本度量算法及模型存在的不足,得到客觀準(zhǔn)確的度量結(jié)果,本文采用結(jié)合方差和PERTF的動態(tài)調(diào)整度量方法,其原理就是通過方差分析動態(tài)的調(diào)整度量值,然后再將PERT法融入成本度量的一種新型的成本估算?;玖鞒虉D如下圖1所示。
圖1 結(jié)合方差和PERT的軟件成本動態(tài)調(diào)整度量模型
此方法適用性廣、運用方便具體實現(xiàn)步驟如下:
步驟1:
步驟2:
分析估計結(jié)果:項目經(jīng)理對每個活動負責(zé)人的估計結(jié)果進行匯總,并對每個活動不同的成本估算算法模型計算出的成本進行分析。分析方法如下:
(1)分析每個活動中不同算法模型的估計值M與活動計算出的三點估計值之間的誤差,若存在S>30%,即有一個偏差值大于所設(shè)定的偏差值標(biāo)準(zhǔn),此時跳轉(zhuǎn)執(zhí)行步驟 1;
(2)此次執(zhí)行步驟1時需要由所有專家參與,分析并動態(tài)的調(diào)整算法模型涉及的影響因素,重新計算該活動的成本,否則 為該活動成本的最終成本估計值;
(3)計算項目整體工期的成本值=(各活動成本的最終估計值)。
步驟3:
活動負責(zé)人將上述估計結(jié)果進行統(tǒng)一匯總,計算出項目成本的總估計值,確定出最終的項目成本估計值。
本文應(yīng)用上述方法來完成一個軟件開發(fā)項目的成本度量,將軟件項目的生命周期大概分為3個主要活動:需求分析、需求設(shè)計和系統(tǒng)開發(fā)。各項活動通過3種不同類型的算法模型進行成本的估計,然后根據(jù)PERT方法的三點估算計算出每個活動成本的估計值。如下圖所示:
圖2 軟件項目活動圖
設(shè)定項目的偏差標(biāo)準(zhǔn)為30%,本例在估算過程中參考了三種不同類型算法模型的成本估算數(shù)據(jù)。本例中選擇不同類型的算法模型分別是:復(fù)合模型中的COCOMOⅡ模型、乘法模型中的Bailey Basili模型和線性模型中的SDC模型[3]。活動成本估算結(jié)果如表2所示:
表1 算法模型分類表
表2 活動成本估算表
以表中1中 “需求分析”的數(shù)據(jù)為例,對其最終的估計結(jié)果進行計算。
對于需求分析活動而言,每個估算模型的估計值與三點估計值之間的偏差的絕對值分別為:2,2,0。因為所以需求分析活動的其他兩個算法模型的S分別為:15%,0,均在偏差標(biāo)準(zhǔn)30%之內(nèi)。所以該為該活動的最終成本估計值,即該活動的最終估計成本估計為13。以此類推,其他活動的每個算法模型的S也都在偏差標(biāo)準(zhǔn)30%之內(nèi),因此需求設(shè)計和系統(tǒng)開發(fā)的最終成本估計值分別為:68,99。因此,可得項目的總工期為t=t1+t2+t3=13+68+99=180人天。
計算得到以上3個活動的期望成本和標(biāo)準(zhǔn)差為:
根據(jù)概率理論,每個活動消耗的成本服從正態(tài)概率分布;舉例說明:系統(tǒng)開發(fā)活動的期望成本為=99,其方差為=3.5;則根據(jù)上面的數(shù)據(jù),可以得出成本在范圍內(nèi)即95.5與102.5之間,完成項目的概率為68%;成本在范圍內(nèi)即在92與106之間,完成項目的概率95%;成本在范圍內(nèi)即在88.5與109.5之間,完成項目的概率為99%。系統(tǒng)開發(fā)的三個算法中Bailey Basili模型估計成本110大于=109.5,說明Bailey Basili模型算法計算出的成本對于系統(tǒng)分析而言估算準(zhǔn)確度比較高;需求分析活動中COCOMOⅡ模型算法計算出的成本值準(zhǔn)確度比較高;需求設(shè)計活動中三個算法中Bailey Basili模型估計成本55小于=58.1,在此成本下完成的概率幾乎為0,因此Bailey Basili模型不適用于需求設(shè)計活動,估算成本值的準(zhǔn)確度比較低;通過算法模型的準(zhǔn)確度的判斷,可以分析出每個算法模型適用的活動類型,具有項目成本度量估算的參考價值;例如本文中所舉案例的估算出得的成本是180,而項目最終實際成本為185,其誤差在5%之內(nèi),因此估算方法是切實可行的。
本文研究的方差分析和PERT方法結(jié)合的動態(tài)調(diào)整技術(shù),將不同類型的度量算法模型一起計算得到估算的成本,從而提高了度量成本的準(zhǔn)確性及靈活性,而且還可以得出每個算法估算模型最為適用的活動。最后本文按照算法的理論原理,以一個實際項目為例子進行了驗證,通過實驗結(jié)果可以看出,在軟件成本度量的準(zhǔn)確性上本文介紹的方法明顯優(yōu)于其他算法模型,通過算法計算得到的成本度量結(jié)果與實際成本之間的偏差最小,用數(shù)據(jù)結(jié)果證實了該算法的準(zhǔn)確性。