軟件成本超支是軟件項目中經常遇到的問題。很多軟件項目經理都曾經歷過這樣的情況,由于開發成本的超支,軟件項目做完之后,不僅不能得到上級領導的表揚,甚至連項目獎金都拿不到,而這一切都來源于當初對項目成本估算的不準。
隨著軟件開發技術的發展,軟件成本在計算機系統總成本中影響越來越大,它直接影響到投資者的決策和軟件項目的開發。沒有合理而準確的軟件成本估算,就無法很好地進行軟件項目的管理。
據國際數據公司的研究報告顯示,全球500 強企業中,信息技術投資超過生產設備投資的企業達65%。然而軟件項目的開發情況卻不容樂觀,1995 年,美國大概只有10%的軟件項目可以按時交付,而且費用也不超支,約30%的項目沒有完成就被取消了。
項目超支的原因是多方面的,其中一個主要原因是由于軟件開發過程中,成本控制工作沒有做好,沒有對資源配置進行優化,因此造成了成本浪費。而更多的原因則來自對軟件項目成本的錯誤估算,用一個不可能的成本來實現一個比預算昂對得多的軟件,不管如何控制都將無法避免成本超支的噩運。
常用軟件成本估算模型介紹
在軟件成本估算領域,有很多的估算模型,這些模型經過了幾十年的發展,其中部分模型成為了目前軟件成本估算的常用模型,如功能點、DELPHI、SDC和COCOMO等。其中以功能點和COCOMO模型應用最廣。
功能點估算模型
功能點方法的本質是站在客戶的角度度量系統,它認為系統的功能可以分為以下5 類:內部邏輯文件、外部接口文件、外部輸入、外部輸出和外部查詢。根據計算規則首先確定每個功能的分類及其功能復雜度,從而可以得到每個功能的權值,全部功能的權值相加就得到“未調整的功能點數”。
功能點方法可以在早期度量軟件的規模,軟件的規模與它的工作量、進度和成本關系緊密,早期準確的軟件規模度量有助于確定軟件價格和提高策劃過程中估算的能力。
軟件項目管理過程從項目計劃開始,估算是項目計劃的第1個活動。估算時需要考慮很多因素,其中最重要的就是要交付軟件的規模。在軟件開發生命周期的早期階段,與用代碼行表示軟件規模相比,用功能點表示軟件規模作為估算的輸入要準確得多,Kemerer 的研究顯示,采用功能點進行估算的誤差是85%,而采用代碼行估算的誤差是601%。
由于軟件項目都是從需求分析開始,需求分析的主要目的就是確定用戶的需求,也即系統要實現的功能,因此功能點方法能夠在需求分析階段引入,如果有比較豐富的經驗積累,則可以進行準確度很高的成本估算。
COCOMO模型
COCOMO(Constructive Cost Model)是Boehm利用加利福尼亞的一個咨詢公司的大量項目數據推導出的一個成本模型。該模型于1981 年首次發
表了原始COCOMO 模型。 為適應軟件工程領域的快速變化, COCOMO 經過多次的更新,如1987年的Ada版本,1994年發展演變為COCOMOII模型。
COCOMO 模型按詳細程度可劃分為三級, 即基本COCOMO 模型, 中間COCOMO 模型和詳細COCOMO 模型。
(1)基本COCOMO 模型。它是靜態、單變量模型, 不考慮任何成本驅動, 僅以規模為基準進行估算只適于粗略迅速估算。
(2)中間COCOMO 模型。它是用15 個成本驅動改進基本模型, 這是對產品、硬件、工作人員、項目的特性等因素的主觀評估。成本驅動的影響定為項目級的,在考慮任何進度限制時進一步調整工作量。
(3)詳細COCOMO 模型。這是三種模型中最精確的模型。它是基于不同的成本驅動對項目的分段有不同的影響, 是用于考慮成本驅動的階段性影響時進一步改進估算, 這時的計算細化到子系統/模塊。它假定層次有三級:系統含有子系統, 子系統含有模塊。
在COCOMO模型中,首先需要確定的是待開發軟件的KLOC(千行代碼),因此COCOMO模型要進行準確的成本估算需要等到詳細設計階段結束后,因為只有詳細設計完成后,才能根據詳細設計的結果對每個模塊和類的代碼數量根據代碼功能的復雜程度進行較準確的估算。
程序結構分解和工作結構分解
結構化分析和設計遵從自頂向下,逐層分解的設計原則。設計師在把握的大的框架之后,在此基礎上進行逐步細化,最后才能完成一個復雜系統的設計工作。
在結構化設計方法中,先根據用戶的需求規格說明書,確定系統的邊界,繪制頂層數據流圖,然后對頂層圖中的加工進行細化,一層一層的細化下去,一直到得到系統的所有基本功能。
面向對象的設計雖然與結構化設計有了很大的區別,但是對對象的設計過程同樣是一個細化的過程。在確定了對象后,需將其抽象成類,并要對類的屬性,方法進行設計,這也是一個分解的過程。
文章來源于領測軟件測試網 http://www.kjueaiud.com/