軟件開發(fā)成本估算_第1頁
軟件開發(fā)成本估算_第2頁
軟件開發(fā)成本估算_第3頁
軟件開發(fā)成本估算_第4頁
軟件開發(fā)成本估算_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.PAGE :.;PAGE 11軟件開發(fā)本錢估算軟件開發(fā)本錢估算主要指軟件開發(fā)過程中所破費的任務量及相應的代價。 不同與傳統(tǒng)的工業(yè)產品,軟件的本錢不包括原資料和能源的耗費,主要是人的勞動的耗費。另外,軟件也沒有一個明顯的制造過程,它的開發(fā)本錢是以一次性開發(fā)過程所破費的代價來計算的。因此,軟件開發(fā)本錢的估算,應是從軟件方案、需求分析、設計、編碼、單元測試、集成測試到認證測試,整個開發(fā)過程所破費的代價作為根據(jù)的。軟件開發(fā)本錢估算的閱歷模型Putnam 模型 1978年Putnam提出的,一種動態(tài)多變量模型。L = Ck * K1/3 * td4/3其中: L源代碼行數(shù)(以LOC計)K整個開發(fā)過程所

2、破費的任務量以人年計td開發(fā)繼續(xù)時間以年計Ck技術形狀常數(shù),它反映“妨礙開發(fā)進展的限制,取值因開發(fā)環(huán)境而異,見下表Ck的典型值開發(fā)環(huán)境開發(fā)環(huán)境舉例2000差沒有系統(tǒng)的開發(fā)方法,缺乏文檔和復審8000好有適宜的系統(tǒng)的開發(fā)方法,有充分的文檔和復審11000優(yōu)有自動的開發(fā)工具和技術從上述方程加以變換,可以得到估算任務量的公式: K = L3/(Ck3*td4)還可以估算開發(fā)時間: td = L3/(Ck3*K)1/4COCOMO模型(constructive cost model) 這是由TRW公司開發(fā),Boehm提出的構造化本錢估算模型。是一種準確的、易于運用的本錢估算方法。COCOMO模型中用到

3、以下變量:DSI源指令條數(shù)。不包括注釋。1KDSI = 1000DSI。MM開發(fā)任務量以人月計 1MM = 19 人日 = 152 人時 =1/12 人年TDEV開發(fā)進度。(以月計)COCOMO模型中,思索開發(fā)環(huán)境,軟件開發(fā)工程的類型可以分為3種:組織型(organic): 相對較小、較簡單的軟件工程。開發(fā)人員對開發(fā)目的了解比較充分,與軟件系統(tǒng)相關的任務閱歷豐富,對軟件的運用環(huán)境很熟習,受硬件的約束較小,程序的規(guī)模不是很大50000行 嵌入型(embedded): 要求在嚴密聯(lián)絡的硬件、軟件和操作的限制條件下運轉,通常與某種復雜的硬件設備嚴密結合在一同。對接口,數(shù)據(jù)構造,算法的要求高。軟件規(guī)模

4、恣意。如大而復雜的事務處置系統(tǒng),大型/超大型操作系統(tǒng),航天用控制系統(tǒng),大型指揮系統(tǒng)等。 半獨立型semidetached: 介于上述兩種軟件之間。規(guī)模和復雜度都屬于中等或更高。最大可達30萬行。 估算公式:根本COCOMO模型估算任務量和進度的公式如下任務量: MM = r*(KDSI)c 進度: TDKV = a(MM)b其中閱歷常數(shù) r, c, a, b 取決于工程的總體類型。COCOMO模型按其詳細程度可以分為三級:根本COCOMO模型,中間COCOMO模型,詳細COCOMO模型。其中根本COCOMO模型是是一個靜態(tài)單變量模型,它用一個以已估算出來的原代碼行數(shù)(LOC)為自變量的閱歷函數(shù)

5、計算軟件開發(fā)任務量。 中級COCOMO模型在根本COCOMO模型的根底上,再用涉及產品、硬件、人員、工程等方面的影響要素調整任務量的估算。詳細COCOMO模型包括中間COCOMO模型的一切特性,但更進一步思索了軟件工程中每一步驟如分析、設計的影響。根本COCOMO模型經(jīng)過統(tǒng)計63個歷史工程的歷史數(shù)據(jù),得到如下計算公式??傮w類型任務量進度組織型MM = 10.4*(KDSI)1.05TDKV = 10.5(MM)0.38半獨立型MM = 3.0*(KDSI)1.12TDKV = 10.5(MM)0.35嵌入型MM = 3.0*(KDSI)1.20TDKV = 10.5(MM)0.32 最近在復習

6、軟件工程的課程,對軟件工程本錢估算模型有了些認識,以下是我的一些心得,希望與大家分享. 首先我們需求明確的是為什么要做軟件工程預算.首先軟件工程是不同于普通工程工程的工程類型.受用戶需求,開發(fā)方式的影響很大.沒有明確的預算,會導致軟件開支的不可控制,隨著工程的進展,開發(fā)放要承當?shù)娘L險也會添加.另外假設沒有預算,更不能夠與客戶達成開發(fā)協(xié)議.沒有人會傻到委托他人做一個本人都不知道要花多少錢才干完成的工程.最后也就是我個人對工程預算的看法,好的工程預算應該包括團體預算與小組或個人預算兩部分,好的工程經(jīng)理應該了解本人的團隊,對突發(fā)事件等的思索應該放在工程預算之中,然后將工程的開支細化到小組乃至個人,這

7、一點看似多余,但是卻很有必要.比如在實踐的開發(fā)過程中,由于為了縮短工期而招收新的程序員,這就需求對新程序員進展培訓.新程序員耗費的團隊本錢是要思索在內的.這也就是傳統(tǒng)意義上的peron-monthes所不能完全表達的部分. 新增人員的開支是不能被忽略的.這需求在實踐開發(fā)過程中統(tǒng)計得到數(shù)據(jù),來準確計算. 工程謀劃義務集: 1.明確工程范圍 2.確定可行性 3.分析風險 4.確定需求的資源a.確定需求的人力資源 b.確定可復用的軟件資源 c.標識環(huán)境資源 5.估算本錢和任務量 a.分解問題 b.運用規(guī)模,功能點,過程義務或用例等方法進展兩種以上的估算 c.調和不同的估算 6.制定工程進度方案 a.

8、建立一組有意義的義務集合 b.定義義務網(wǎng)絡 c.運用進度方案工具制定時間表d.定義進度跟蹤機制在工程謀劃義務集中,每一步都涉及到軟件開發(fā)本錢.對人員,環(huán)境,可復用軟件的資源的一致調度,將直接影響本錢.其中受軟件開發(fā)的特殊行,人力資源本錢是最不好控制的.相對來說環(huán)境資源就容易控制得多. 環(huán)境資源包括軟件工具,硬件,網(wǎng)絡資源等,當然還要包括公司的日常費用(刨除開發(fā)團隊傭金與開支,由于這部分屬于人力資源本錢).這些無非是買來或者維持,本錢是很容易計算的. 可復用軟件資源就要思索到軟件的詳細設計,功能模塊的關系以及系統(tǒng)架構等詳細信息.專家建議是將軟件資源分為如下四部分:1.廢品構件:指可以從第三方直接

9、購買的商品構件.或者以前工程中完全一樣的構件. 2.具有完全閱歷的構件:以前工程開發(fā)過的,與當前需求類似的功能構件. 3.具有部分閱歷的構件:為以前工程開發(fā),與當前工程要構造的軟件有關的已有規(guī)格,設計,代碼或測試數(shù)據(jù).但是需求重新架構. 4.新構件 開發(fā)的本錢可像而知,是升序陳列的.所以在軟件開發(fā)的一開場就應該思索的運用以后技術,對可復用軟件資源進展整理,不能在開發(fā)過程中才思索,要知道一個關鍵構件的重用會為軟件開發(fā)帶來多大的效益.不過凡事也不是必然,不已有構件的擴展要思索到原構件設計,開發(fā)文檔的完好性等要素. 還是就人力資源進展分析,由于跟人才干與技術方向的不同,programmer不能夠像普

10、通意義上的工人或者機器一樣有效地預期本錢.我們可以開發(fā)一個原型,利用原型數(shù)據(jù)來對應分析每個人的價值與本錢.但是應該思索的是,隨著程序員的個人要素的變卦(年齡,職務,時間,身體情況等),原型數(shù)據(jù)只能作為一個普通參考.例如SARS期間,或流行性感冒的傳播,人力本錢就會變得不好控制.(極限情況下,這將使一個工程面臨流產) 目前流行的估算方式大致可分為如下幾類: 分解估算: 1.軟件規(guī)模估算. 2.基于問題的估算. 3.基于loc估算.(loc:代碼行數(shù)) 4.基于fp估算.(fp:functionpoint 功能點) 5.基于過程估算. 6.基于用例估算. 閱歷估算:典型的閱歷估算模型是經(jīng)過回歸分析

11、從以往的軟件工程中搜集的數(shù)據(jù)得來的.這種模型的總體構造表現(xiàn)為下面的方式: E=A+B*(e)C 其中A,B,C都是閱歷常量.E是任務量(單位:人*月),e是估算變量(loc或者fp).除了公式表達的方式以外,還有一些方式的工程調整成分,如問題的復雜程度,開發(fā)人員閱歷,開發(fā)環(huán)境等,一以下出些常用的調整系數(shù):Personnel Attributes Analyst capability(ACAP) Programmer capability(PCAP) Applications experience (AEXP) Virtual machine Experience(VEXP) Programmi

12、ng language experience(LEXP)Project Attributes Modern programming practices(MODP) Software Tools (TOOL) Required Development schedule(SCED)這些系數(shù)都應該應該根據(jù)詳細的工程進展調整和設計.cocomo:(constructive cost model)這種模型是Barry Boehm在其論述軟件工程經(jīng)濟學中引見的一種層次構造的軟件估算模型.如今曾經(jīng)被廣泛運用.主要運用于運用組裝模型,早期設計階段模型,體系構造后階段模型.將在以后的日志中對大家進展更深化的引見

13、.目前,有三種根本的軟件工程本錢估算方法:自頂向下、自底向上和差別估算法。自頂向下的方法是對整個工程的總開發(fā)時間和總任務量做出估算,然后把它們按階段、步驟和任務單元進展分配;自底向上的方法是分別估算個任務單元所需的開發(fā)時間,然后匯總得出總的任務量和開發(fā)時間;差別估算是將開發(fā)工程與一個或多個已完成的類似工程進展比較,找出與某個類似工程的假設干不同之處,并估算每個不同之處對本錢的影響,導出開發(fā)工程的總本錢。專家估算法專家估算法是依托一個或多個專家對工程做出估計,它要求專家具有專門知識和豐富的閱歷,是一種近似的猜測。Delphi法是最流行的專家評價技術,在沒有歷史數(shù)據(jù)的情況下,這種方式適用于評定過去

14、與未來,新技術與特定程序之間的差別,但專家專的程度及對工程的了解程度是任務中的難點,雖然Delphi技術可以減輕這種偏向,專家評價技術在評定一個新軟件實踐本錢時通常用得不多,但是,這種方式對決議其它模型的輸入時特別有用。Delphi法鼓勵參與者就問題相互討論,要求有多種軟件相關閱歷人的參與,相互壓服對方。類推估算法類推估算法是比較科學的一種傳統(tǒng)估算方法,它適宜評價一些與歷史工程在運用領域、環(huán)境和復雜度的類似的工程,經(jīng)過新工程與歷史工程的比較得到規(guī)模估計。類推估算法估計結果的準確度取決于歷史工程數(shù)據(jù)的完好性和準確度,因此,用好類推估算法的前提條件之一是組織建立起較好的工程后評價與分析機制,對歷史

15、工程的數(shù)據(jù)分析是可信任的。這種方法的根本步驟是:1整理出工程功能列表和實現(xiàn)每個功能的代碼行;2標識出每個功能列表與歷史工程的一樣點和不同點,特別要留意歷史工程做得不夠的地方;3經(jīng)過步驟1和2得出各個功能的估計值;4產生規(guī)模估計。算式估算法算式估算法利用閱歷模型進展本錢估算,它通常采用閱歷公式來預測軟件工程方案所需求的本錢、任務量和進度數(shù)據(jù)。目前還沒有一種估算模型可以適用于一切的軟件類型和開發(fā)環(huán)境,從這些模型中得到的結果必需慎重運用。1Putnam模型Putnam模型是一種動態(tài)多變量模型,它是假定軟件開發(fā)的整個生存期中任務量的分布,如一個30人年以上的工程,其人力運用分布如圖7.3所示。然后根據(jù)

16、曲線導出一個估算公式:2COCOMO模型構造性本錢模型COCOMOCOnstructiveCOstMOdel是一種準確的、易于運用的本錢估算方法,它分為根本COCOMO模型和中級COCOMO模型兩種類型。根本COCOMO模型是一個靜態(tài)單變量模型,它用一個以已估算出來的源代碼行數(shù)LOC為自變量的閱歷函數(shù)來計算軟件開發(fā)任務量。中間COCOMO模型那么在用LOC為自變量的函數(shù)計算軟件開發(fā)任務量的根底上,再用涉及產品、硬件、人員、工程等方面屬性的影響要素來調整任務量的估算。更詳細的COCOMO模型除了包括中間COCOMO模型的一切特性外,還思索了在需求分析、軟件設計等每一步的影響。*根本COCOMO模

17、型估算公式EabKLOCexpbbDcbEexpdb其中,E為開發(fā)所需的人力人月,D為所需的開發(fā)時間月,KLOC為估計提交的代碼行,ab、bb、cb和db為不同軟件開發(fā)方式的值,見下表。方式abbbcbdb組織型2.41.052.50.38半獨立型3.01.122.50.35嵌入型3.61.22.50.32由以上公式可以導出消費率和所需人數(shù)的公式:消費率KLOCE代碼行/人月人數(shù)ED*中級COCOMO模型估算公式中級COCOMO模型先產生一個根本COCOMO模型一樣方式的估算公式,然后對15個本錢驅動屬性打分,定出乘法因子,對公式進展修正。15個影響軟件任務量的要素見下表:任務量要素fi非常低

18、低正常高非常高超高產品要素軟件可靠性數(shù)據(jù)庫規(guī)模產品復雜性0.750.881.001.151.400.941.001.081.160.700.851.001.151.301.65計算機要素執(zhí)行時間限制存儲限制虛擬機易變性環(huán)境周轉時間0.870.871.001.001.001.001.111.061.151.071.301.211.301.151.661.56人的要素分析員才干運用論域實踐閱歷程序員才干虛擬機運用閱歷程序文語運用閱歷1.291.421.211.411.461.131.171.101.071.001.001.001.001.000.860.910.860.900.950.710.820.70工程要素現(xiàn)代程序設計技術軟件工具的運用開發(fā)進度限制1.241.241.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論