尤物视频网站,精品国产第一国产综合精品,国产乱码精品一区二区三区中文,欧美人与zoxxxx视频

免費咨詢電話:400 180 8892

您的購物車還沒有商品,再去逛逛吧~

提示

已將 1 件商品添加到購物車

去購物車結算>>  繼續購物

您現在的位置是: 首頁 > 免費論文 > 成本管理論文 > 軟件項目成本估算研究

軟件項目成本估算研究

引言

項目的成本管理,是指在規定時間內,為確保項目目標的實現,對項目實際發生的成本支出采取的各種控制措施和控制過程。其管理活動包括:資源需求預測、成本估算、成本預算和成本控制[3]。成本估算是后續成本管理活動的前提,也是成本管理中的重點與難點。

軟件項目的成本估算,并非傳統資金意義上的估算。由于人的腦力勞動是軟件開發的主體活動,因此軟件開發的主要投入在于支付開發人員腦力勞動的報酬。不同軟件開發單位的薪資水平存在很大差別,所以從普適性考慮,軟件項目成本估算研究的主要范圍是軟件項目的工作量和工作進度[6]。因此,衡量軟件成本的常用單位有人天、人月、人年等形式,并且有轉換系數可在不同單位間進行換算。在估算出軟件開發所需的人力成本之后,再根據開發單位的實際情況和項目內的其它費用即可估算出相應的成本[4]。

1 軟件項目成本估算階段

軟件項目的成本估算,一般需要經過以下3個階段:

(1)規模估算階段。規模估算是指對軟件的大小進行量化衡量,它是后續工作量估算的前提。估算軟件大小有兩種基本方式:估算軟件所解決問題的大小和數量,比如功能點,因此也稱功能規模的度量;估算解決方案的大小即技術規模的度量,比如代碼行數。一般在項目初期主要以估算問題大小為主,隨著項目的開展逐步采用以估算解決方案大小的方式。

(2)工作量和進度估算階段。工作量估算是對軟件開發所需人力的估算,這是軟件項目的主要成本。進度估算將估算項目各任務單元可支配的時間,并制定里程碑計劃。工作量估算和進度估算共同決定了項目團隊的規模和結構[4]。

(3)估算反饋階段。包括對成本估算方法本身的反饋,以及估算實踐中的階段性結果反饋[6]。在初期對項目掌握的情況較少并且仍有較多不確定性,隨著項目開展可了解到更多的信息以及既成事實后的情況。因此,通過不斷地進行階段性估算結果反饋,有利于調整估算方法相關數據,從而提高估算結果的精確性。

2 軟件成本估算方法

軟件成本估算方法主要有以下4種:類比估算法、項目分解法、專家估算法和參數模型法。

(1)類比估算法。類比估算法也稱基于案例的推理[2],即從已完成的類似項目的實際成本來估算新項目的成本。估算過程中,需確定項目之間的各項差異,并確定各項修正系數,對各項數據加以運算調整。

(2)項目分解法。需要對項目進行分解,根據分解的先后順序不同,可分為自上而下估算法和自下而上估算法。自上而下估算法的思想是從項目整體進行推算,將已估算出的項目整體工作量,按比例分攤至項目的各項活動中去。該方法比較適合在項目初期的總體設計中運用[8]。自下而上估算法與自上而下估算法正好相反,這種方法是將項目逐層分解成足夠基本明確工作量的子任務,在測算各子任務成本后,將它們累計起來就是整個軟件項目的成本。這種方法更適用于項目后期或分解后的子項目成本估算。

(3)專家估算法。邀請對軟件應用領域或開發環境有豐富知識的專家對該軟件項目進行工作量估算,當遇到一個與已有軟件項目類似的新項目時,可邀請熟悉原軟件項目的人員作為專家。

為了避免單個專家主觀因素的偏向性,該方法大都采取邀請多個專家進行估算,并對多個估算結果進行綜合。其中由美國蘭德公司(RAND Corporation)推廣的Delphi法正是匯集多個專家意見的技術,其步驟大致如下[10]:①組織者向各專家提供軟件規格說明書和估算表格供他們進行研究。估算表中應包括軟件成本估算的最小值(ai)、最有可能值(mi)、最大值(bi)以及簡要說明和填表時間;②在專家研究軟件規格說明后,組織者召集他們召開討論會議。會上專家可向組織者提問,組織者也可向專家介紹類似軟件的有關情況,專家之間也可展開討論;③專家填寫估算表格,并匿名提交;④組織者對表格數據進行匯總和分類摘要,并將結果反饋給各專家。Delphi法中的估算值匯總可用三點估計法,設各專家的估算期望值為Ei,最終估算期望中值為E,則有Ei=(ai+4mi+bi)/6,E=sum(Ei)/n;⑤組織者召集專家開會,對估算結果進行討論;⑥各專家研究估算結果,重新提交一份估算表格。重復④至⑥步驟,直至獲得一個大多數專家認可的估算值。

Delphi法可以避免集體討論盲目屈從權威或多數的缺陷,消除相互間的影響,能讓專家充分表達各自見解,集思廣益。然而該方法實施過程繁瑣,并且非常耗時。

(4)參數模型法,即通過采用一個或多個數學公式得出估算值的方法。這些數學公式一般是在搜集大量歷史軟件項目數據的基礎上,進行數學建模得出經驗公式,使用起來比較方便快捷。但一般都需要經過一定的校準之后才具有實際參考意義。

3 IFPUG

在規模估算階段,比較流行的參數模型有IFPUG(International Function Point Users Group,國際功能點用戶協會)功能點分析法。該方法最初是由IBM公司的工程師Allan Albrecht所設計的自頂向下法,后被IFPUG所采用、發展和推廣,并出版了多個版本的功能點計算實踐手冊[7]。該方法是目前應用最廣泛的軟件規模度量技術,在我國的軟件行業軟件工程定額標準(2009版)中也參考了該方法。該方法的基本步驟如下:

(1)把軟件系統分解為如表1所示的5類功能點,并估算各類功能點的數量(FPi)[1]。

(2)給各功能點分配復雜度權重(Wi),如表2所示[2]。

在給各功能點分配權重時,有定量的判斷規則。判斷ILF和EIF的復雜度依據的是其中所包含的數據元素類型數(data element type,DET)和記錄元素類型數(record element type,RET)。它們的判斷表格如表3所示[5]。

而對EI、EO和EQ復雜度的判斷,除了DET外還需要依據所涉及的文件類型數(file type referenced,FTR),并且有所不同。EI的復雜度判斷表格如表4所示[5],EO和EQ復雜度判斷表格如表5所示[5]。

(3)計算出一個未修正的功能點數(Unadjusted Function Point Count,UFPC)[9]:

UFPC=sum(FPi×Wi)。

(4)計算調整后的功能點數。僅從功能點數和其本身的復雜度,不能全面地反映系統規模,為此IFPUG還引入了14個系統特性(general system characteristic)對UFPC進行修正:數據通信、分布式數據處理、性能、可配置性、事務效率、實時數據輸入、終端用戶易用性、在線升級、復雜運算、代碼復用性、安裝簡易程度、操作方便性、多場合適應性、易于調整變更[1]。將該系統特性(Fi)按對系統規模的影響程度劃分為6個級別,從無影響到最大影響分別用數字0~5表示,這樣最終的功能點數FP可由以下公式計算得出:

FP= UFPC×(0.65+0.01×sum(Fi))

上式中的0.65和0.01均為經驗常量。

4 COCOMO

在工作量估算階段,常用的參數模型有COCOMO(Constructive Cost Model, 結構化成本模型)。該模型是由Barry Boehm在1981提出的(因此也稱為COCOMO81模型),是他研究了美國TRW公司的大量軟件項目后,推導出的一個成本估算模型[7]。該模型按詳細程度,分成基本型、中等型和詳細型。基本型按以下公式構建[10]:

E=a×Sb。

其中,E表示工作量,是按人月度量的;S是指規模,是按千行源代碼為單位的;a、b是常量,常量的選擇與軟件項目的類型有關,Boehm把系統類型分為3種,如表6所示[10]。

中等型模型的計算公式最終調整為:

E=a×Sb×EAF ,其中EAF=∏15[]i=1Fi

詳細模型是對中等模型的進一步擴展,其基本公式與中等模型的公式相同。它把系統劃分為系統層、子系統層、模塊層,按這3層提供不同的成本驅動因素表,供不同層次估算使用。同時還將模型常量按開發階段的不同進行一定的調整。

COCOMO81推出后,在軟件業得到了廣泛應用,也取得了良好效果。但軟件工程技術突飛猛進,新的軟件過程模型不斷涌現,COCOMO81的應用漸漸遇到了更多的困難。為了適應新的需要,Boehm與其合作者對COCOMO進行了不斷改進,在1996年正式發布了第一個版本的COCOMOⅡ[6],在COCOMOⅡ中對COCOMO81做了較大變更,比如劃分為應用組裝模型、早期設計模型、后構架模型。早期設計模型和后架構模型的計算公式均為[6]:

PM=A×SE×∏n[]i=1EMi

其中,PM為工作量,單位為人月,A為常量3.13(CO COMOⅡ2003版),S是指規模(按千行源代碼為單位),EMi為工作量系數,類似于COCOMO81中的工作量因素,在早期設計模型中概括為7個(式中n=7),而在后架構模型中擴展為17個(式中n=17)。E由以下公式計算所得[6]:

E=B+0.01×∑5[]i=1SFj

其中,B為常量0.93(COCOMOⅡ2003版)[6], SFj為:有先例、開發靈活性、架構/風險解決方案、團隊凝聚力、過程成熟這5個特性各按6個等級取值而來的比例因子[6]。

5 結語

軟件項目估算的目的不是預測項目實施的結果,而是幫助確定項目目標,使其在合理范圍內,從而能讓項目在可控狀態下達成項目目標[11]。軟件的估算離不開歷史數據的支撐,雖然有行業數據參考,但其準確度非常低,不同開發組織的生產率水平相差非常大,因此需要盡早積累開發組織自身的歷史數據。可從一組少量的數據開始,例如:每人每月完成的代碼行數、交付一個用戶故事的平均時長、BUG出現的概率以及修復時長等。

參考文獻參考文獻:

[1] IFPUG.Function point counting practices manual[M].Westerville:IFPUG,1999.

[2] BOB HUGHES,MIKE COTTERELL.軟件項目管理[M].第5版.北京:機械工業出版社,2010.

[3] 池仁勇.項目管理[M].第2版.北京:清華大學出版社,2009.

[4] 房東.軟件項目估算模型研究與實踐[D].濟南:山東大學,2006.

[5] 胡云龍.軟件規模度量方法介紹[J].計算機時代,2006(7):1721.

[6] 蔣敏迪.軟件成本估算模型及其實現[D].廣州:中山大學,2004.

[7] 李莉.基于功能點的COCOMOⅡ估算模型研究和應用[D].廈門:廈門大學,2008.

[8] 劉瑞河,陳志成.軟件項目管理中的成本估算[J].江西理工大學學報,2007,28(1):3639.

[9] 舒小仙.軟件項目管理的成本估算[J].中國水運,2008,8(12):8081.

[10] 鄭人杰,殷人昆,陶永雷.實用軟件工程[M].第2版.北京:清華大學出版社,1997.

[11] STEVE MCCONNELL.軟件估算——“黑匣子”揭密[M].北京:電子工業出版社,2007.

作者簡介:龔銀鋒(1983-),男,碩士,寧波數字電視有限公司項目經理,研究方向為軟件項目管理、業務運營支撐系統。

服務熱線

400 180 8892

微信客服

<th id="q6zaz"></th>
    1. <del id="q6zaz"></del>

    2. <th id="q6zaz"></th>