




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件工程管理第五章軟件工程本錢管理SoftwareProjectCostManagement工程本錢管理是工程管理的一個重要組成局部,它是指在工程的具體實施過程中,為了保證完成工程所花費的實際本錢不超過其預(yù)算本錢而展開的工程本錢估算、工程預(yù)算編制和工程本錢控制等方面的管理活動。必須要加強對工程實際發(fā)生本錢的控制。一旦工程本錢失控,就很難在預(yù)算內(nèi)完成工程。本錢失控的情況常常是以下原因造成的:本錢估算和本錢預(yù)算不夠準確細致;許多工程在本錢估算、本錢預(yù)算、本錢控制方法上沒有統(tǒng)一的標準可循。思想上的誤區(qū):實際本錢超出預(yù)算是必然的。5.1工程本錢5.2工程本錢管理的內(nèi)容5.3資源方案5.4本錢估算5.5軟件工程的本錢估算5.6本錢預(yù)算5.7工程本錢控制5.1工程本錢5.1.1工程本錢軟件開發(fā)本錢:人工本錢是最主要的軟件開發(fā)本錢。在軟件開發(fā)工程中,付給軟件工程師的人工費用占了開發(fā)本錢的絕大局部。工程管理費用:用于工程組織、管理、控制的費用支出。盡管硬件/支持軟件本錢、差旅及培訓費用可能在工程總本錢中占較大比例,但最主要的本錢還是在開發(fā)過程中所花費的工作量及相應(yīng)的代價。軟件產(chǎn)品生產(chǎn)不是一個重復(fù)的制造過程,而是以“一次性〞開發(fā)過程的花費來計算的。軟件工程開發(fā)本錢的估算應(yīng)以整個工程軟件開發(fā)全過程所花費的人工代價作為計算的依據(jù),并可以按與軟影響工程本錢的因素 件生命周期對應(yīng)的階段進行估算。質(zhì)量故障本錢與質(zhì)量保證本錢是相互矛盾的。質(zhì)量保證本錢高,故障就少,質(zhì)量故障本錢就低。反之亦然。因此,需要建立一個動態(tài)平衡。質(zhì)量總成本質(zhì)量保證成本質(zhì)量故障成本質(zhì)量成本項目總成本項目工期總成本間接費用成本直接費用成本 及生產(chǎn)率相對低下,工期會延長,造成本錢的增加。因此,人力資源是重要的影響因素。價格對本錢的影響 中間產(chǎn)品和效勞、市場人力資源、硬件、軟件的價格也對本錢產(chǎn)生直接的影響。因為價格對工程本錢預(yù)算的影響很大。5.2工程本錢管理的內(nèi)容工程本錢管理主要由工程資源方案的編制,本錢估算,本錢預(yù)算和本錢控制等4個過程組成,以下圖給出了這些過程的主要框架。以上四個過程相互影響、相互作用,有時也與外界的過程發(fā)生交互影響,根據(jù)工程的具體情況,每一過程由一人或數(shù)人或小組完成,在工程的每個階段,上述過程至少出現(xiàn)一次。某些工程,特別是小工程,資源方案、本錢估算和本錢預(yù)算三者緊密相連,可把這些過程視為一個過程處理。1.輸入
?工作分解結(jié)構(gòu)
?歷史資料
?范圍說明
?資源庫描述
?組織策略
2.工具與技術(shù)
?專家判斷
?頭腦風暴法
3.輸出
?資源需求計劃1.輸入
?工作分解結(jié)構(gòu)
?資源需求
?資源單價
?活動時間估計
?歷史資料
?財務(wù)圖表
2.工具與技術(shù)
?類比估計
3.輸出
?成本估算
?詳細說明
?成本管理計劃1.輸入
?成本估算
?工作分解結(jié)構(gòu)
?項目進度
2.工具與技術(shù)
?成本估算工具與方法
3.輸出
?基準成本項目成本管理1.輸入
?基準成本
?執(zhí)行情況
?變更要求
?成本管理計劃
2.工具與技術(shù)
?成本變更控制系統(tǒng)
?執(zhí)行情況測量
?另外的計劃
?項目管理軟件
3.輸出
?修改后成本估算
?更新的預(yù)算
?糾正措施
?完成項目所需成本估算
?經(jīng)驗與教訓成本控制成本預(yù)算成本估算資源計劃5.3資源方案資源方案編制過程的依據(jù)工作分解結(jié)構(gòu)WBS 它是編制資源方案所依據(jù)的最重要的根底,根據(jù)工作分解結(jié)構(gòu),明確完成工程各項工作的資源需求。歷史信息 記錄了以前類似工程的資源需求、資源方案、工程實施時實際消耗的資源等方面的有關(guān)情況。 充分利用和借鑒相關(guān)歷史信息來編制工程資源需求方案,可以提高資源需求方案的準確性,還可以減少編制的工作量。5.3.2工程資源方案編制的方法組織策略 指有關(guān)人員的招聘,設(shè)備或材料的租賃或采購策略等。定額法 當工程實施所需要的某些資源〔包括人力、設(shè)備、材料等〕有國家或行業(yè)的統(tǒng)一標準定額,或有權(quán)威部門制定的規(guī)那么時,應(yīng)以這些統(tǒng)一的定額或規(guī)那么為標準來制定工程資源需求方案。資料統(tǒng)計法 參考以往類似工程的歷史統(tǒng)計數(shù)據(jù)資料,計算并確定工程資源需求方案。 它要求所采用的歷史信息應(yīng)與當前工程有可比性,并信息足夠詳細,有很強的可操作性。適合于創(chuàng)新性不強的工程。利用工作分解結(jié)構(gòu) 根據(jù)工作分解結(jié)構(gòu)所列出的工程全部工作的一覽表,確定出每一項任務(wù)所需的各種資源,再將其匯總,編制出工程資源需求方案。這是最可行的一個方法。資源均衡法 這是平衡各種資源在工程各個時期投入的一種常用方法。在保證工程完工時間不變的情況下可以調(diào)整資源的需求情況,控制資源投入時間,盡可能均衡使用各種資源來滿足工程要求的完工進度。工程資源方案編制的結(jié)果編制工程資源方案的結(jié)果是編制出工程資源需求方案,對工程所需的各種資源的需求情況和使用方案給出詳細的描述。工程資源的需求安排應(yīng)當分解落實到具體的工作任務(wù)上。5.4本錢估算工程本錢估算是工程本錢管理的核心內(nèi)容。通過本錢估算,分析并確定工程的估算本錢,以此為根底進行工程的本錢預(yù)算,進而展開對工程進行本錢控制等一系列管理活動。工程本錢估算是指為了實現(xiàn)工程目標,完成工程的各項活動,根據(jù)工程資源方案中確定的各種資源需求〔人員、設(shè)備、材料等〕和市場上各種資源的價格,對完成工程所必需的各種資源的費用作出近似的估算。5.4.1工程本錢估算的概念簡言之,工程本錢就是工程形成全過程所耗用的各種費用的總和。工程定義與決策本錢〔可行性研究本錢〕工程設(shè)計本錢〔工程設(shè)計所花費本錢〕工程獲得本錢〔為獲取外部資源,如廣告、招投標、詢價等所花費本錢〕工程實施本錢〔工程實施過程所花費的硬/軟件設(shè)施與支持平臺、人工、咨詢本錢以及一定數(shù)量的意外本錢的總和〕。工程本錢的消耗與工程所耗用資源的數(shù)量、質(zhì)量和價格有關(guān),與工程工期的長短有關(guān),與工程結(jié)果的質(zhì)量有關(guān),與工程范圍的廣度/深度有關(guān)。工程本錢估算的步驟:識別與分析工程本錢的構(gòu)成要素。如人工費、咨詢費、設(shè)備費、軟件費等。根據(jù)已識別的本錢構(gòu)成要素,估算每一個要素的本錢。分析本錢估算的結(jié)果,找出可以互相補償?shù)谋惧X,協(xié)調(diào)各種本錢之間的比例關(guān)系。例如,設(shè)計質(zhì)量的提高可能會大量減少工程實施階段的本錢。因此,工程設(shè)計本錢增加會帶來工程實施本錢的降低,兩種本錢之間存在互相補償?shù)年P(guān)系。因此,在工程本錢估算過程中,要積極尋找這種有補償效應(yīng)的本錢,仔細研究本錢之間的這種此消彼長的關(guān)系和量值對工程總本錢造成的影響,努力使工程預(yù)期收益最大化。本錢估算要以資源方案中所列的工程資源需求和工程組織對這些資源的預(yù)計價格為根底。工程本錢估算的依據(jù)為:工作分解結(jié)構(gòu)資源需求方案:資源數(shù)量和質(zhì)量標準資源價格:市場價格或歷史價格工程本錢估算的依據(jù)工程本錢估算的方法工程持續(xù)時間:時間價值經(jīng)濟形勢:通貨膨脹和利率可以根據(jù)以往工程所積累的歷史信息為根底進行工程本錢估算。但工程之間總是存在一定差異,很少有簡單重復(fù),因此以往工程的本錢只能作參考。通??梢圆捎靡韵路椒ㄟM行本錢估算。類比估算法工程管理人員收集以往類似工程的有關(guān)歷史信息,包括規(guī)?!泊a行數(shù)或功能點數(shù)〕、費用、人力、時間、物價等;會同有關(guān)本錢估算專家對當前工程的總本錢進行估算;將估算結(jié)果按照工程的工作分解結(jié)構(gòu)的層次傳遞給直接下層的管理人員,由他們對自己負責的工作和活動的本錢進行估算;繼續(xù)向下一層管理人員傳遞他們的估算結(jié)果,直到工程的基層人員。 這種方法又稱“自頂向下估算法〞,其主要思想是從工程的整體出發(fā),首先進行類推,再做分解。估算人員根據(jù)以前已完成的類似工程所消耗的總本錢〔總工作量〕,推算當前工程的總本錢〔總工作量〕,然后按比例將它分配到各工作分解單元中去,再來檢驗它是否能滿足要求。分解比例參看下表。優(yōu)點是簡單易行,花費少。當工程詳細資料難以得到時,這種方法行之有效。缺點是類似工程很難找,估算準確度較差。對工程中的特殊困難估計缺乏。工料列表法基層管理人員計算出每個工作單元的生產(chǎn)本錢;將各個工作單元的生產(chǎn)本錢自下向上逐級累加,匯總到工程的高層管理者;工程的高層管理人員計算出工程的總本錢。這種估算方法又稱“自底向上估算法〞。依據(jù)工程的工作分解結(jié)構(gòu),先“分解〞,再對每個分解后的工作單元采取“類比〞或其他方法進行估算,最后匯總。優(yōu)點是結(jié)果十分詳細,準確性高。缺點是實際操作非常耗時,費用較高。而且通常估算值缺少各項子任務(wù)之間相互聯(lián)系所需要的工作量,還缺少許多與工程實施有關(guān)的管理工作量.從心理學角度,通常會陷于一種惡圈:進行第一輪估算的基層管理人員會認為上級管理人員會以一定比例削減他們的本錢估算,他們會過高估算自己工作的資源需求?;谶@種情況,上層管理人員真的會認為應(yīng)該削減估算的本錢,這又恰恰證實了基層管理人員的疑心。參數(shù)模型法利用工程的一些特性參數(shù)〔如代碼行或功能點〕建立數(shù)學模型來估算工程本錢。這種方法有一組工程本錢估算關(guān)系式,用它們對工程總本錢作出近似估算。這種估算只針對影響工程總本錢程度最大的本錢變量進行估算,不考慮一些細節(jié)性本錢因素。例如,考慮建立一個局域網(wǎng)系統(tǒng)的工程本錢,先估算建造一個標準節(jié)點的本錢作為系數(shù)因子,以標準節(jié)點數(shù)作為變量因子,兩者相乘,得到工程的總本錢。優(yōu)點是用這種方法估算工程本錢的速度很快,只需要一小局部信息。缺點是不同的估算模型估算出的結(jié)果差異較大,因此,選擇適宜的模型以保證估算結(jié)果的準確性至關(guān)重要。為保證工程本錢模型的適用性,在建立本錢模型時,要注意:保證建立參數(shù)模型時所依據(jù)的歷史信息的準確性;模型中的一些重要參數(shù)必須量化處理。根據(jù)工程的實際情況,對參數(shù)模型可按適當?shù)谋壤{(diào)整。工程本錢估算的結(jié)果利用工程本錢管理軟件利用工程本錢管理軟件,可以通過直接輸入與工程本錢有關(guān)的數(shù)據(jù),或自定義工程本錢函數(shù),計算出工程本錢的估算結(jié)果。目前幾乎所有大型工程的本錢估算,都是利用這類工程本錢估算軟件計算得到的。工程本錢估算結(jié)果文件 它以摘要或詳細的形式描述了:實施工程必須的所有資源〔人員、資金、硬/軟件工具、可復(fù)用構(gòu)件等〕,以及這些資源的數(shù)量、質(zhì)量標準、本錢。為應(yīng)付工程可能遇到的意外事件〔通貨膨脹、意外事故、原材料失竊等〕所支付的具有不可預(yù)見性的意外本錢。 本錢估算結(jié)果通常用貨幣量單位“元〞表示,但有時為了管理方便,用工作量“人日〞或“人月〞來表示。相關(guān)支持性細節(jié)文件和結(jié)果 它對工程本錢估算的依據(jù)進行詳細說明。工程工作范圍說明。工程本錢估算的根底和依據(jù)〔采用的估算方 法、參考的國家有關(guān)規(guī)定、各種中間計算的結(jié)果等〕。工程本錢估算的假設(shè)〔工程所需資源價格水平的估計、工程資源消耗定額的估計、工程實施人員的生產(chǎn)率等〕。工程本錢估算結(jié)果的誤差范圍。工程本錢管理方案通常,在工程管理中用本錢目標衡量工程績效。但在工程開始后,會發(fā)生各種無法預(yù)見的情況,隨時可能危及工程本錢目標的實現(xiàn)。例如,人員流失、設(shè)備購進渠道不通、支持工具有缺陷等。為實現(xiàn)在本錢目標范圍內(nèi)完成工程可交付成果,必須對如何管理和控制工程本錢變動的方案進行事先安排,即“有備無患〞。管理方案的主要內(nèi)容:識別并分析可能出現(xiàn)的各種意外事件;預(yù)測可能會發(fā)生損失的概率和程度;說明如何對費用偏差進行管理和如何對意外本錢的使用進行管理;提出方案和解決方案。5.5軟件工程的本錢估算5.5.1軟件的工作范圍軟件的工作范圍即軟件范圍。包括:功能、性能、限制、接口和可靠性。估算開始時應(yīng)對軟件功能進行評價,對其進行適當?shù)募毣员闾峁└敿毜募毠?jié)。由于本錢和進度的估算都與功能有關(guān),因此常采用某種程度的功能分解。性能的考慮包括處理時間和響應(yīng)時間的需求。限制那么標識產(chǎn)品本錢、外部硬件、可用存儲或其他現(xiàn)有系統(tǒng)對軟件的限制。功能、性能和限制必須在一起進行評價。當性能要求不同時,為實現(xiàn)同樣的功能,開發(fā)工作量可能相差一個數(shù)量級。還要表達某些質(zhì)量因素〔例如,給出的算法是否容易理解等〕。軟件與其它系統(tǒng)元素是相互作用的。要考慮每個接口的性質(zhì)和復(fù)雜性,以確定對開發(fā)資源、本錢和進度的影響。接口的概念可解釋為:運行軟件的硬件(如處理機與外設(shè))及間接受軟件控制的設(shè)備(如機器、顯示器);必須與新軟件連接的現(xiàn)有的軟件(如數(shù)據(jù)庫存取例程、子程序包、操作系統(tǒng));5.5.2軟件開發(fā)中的資源軟件開發(fā)所需的資源有:開發(fā)環(huán)境—硬件工具及軟件工具—提供支持開發(fā)的根底.可復(fù)用軟件構(gòu)件 —軟件構(gòu)造塊.人員 —主要資源通過終端或其他輸入/輸出設(shè)備使用該軟件的人;該軟件運行前后的一系列操作過程。對于每一種情況,都必須清楚地了解通過接口的信息轉(zhuǎn)換。人員可復(fù)用構(gòu)件硬件/軟件工具人員
需要的技能,可用性開始時間,工作期限硬件
開發(fā)系統(tǒng),目標機器,新系統(tǒng)其他硬件部分軟件
支持軟件可用性,投入時間,持續(xù)時間通常,對每一種資源,應(yīng)說明以下四個特性:資源的描述;資源的有效性說明;資源在何時開始需要;使用資源的持續(xù)時間。最后兩個特性統(tǒng)稱為時間窗口。1.人力資源對一些規(guī)模較大的工程,在整個工程生命周期中,各種人員參與情況不同。下面是各類不同人員隨開發(fā)進展在各個階段參與情況的曲線。管理人員初級技術(shù)人員高級技術(shù)人員高人員參與程度計劃需求分析概要設(shè)計詳細分析程序編碼單元測試集成測試確認測試2.可復(fù)用構(gòu)件庫為了促成軟件的復(fù)用,以提高軟件生產(chǎn)率和產(chǎn)品質(zhì)量,可建立可復(fù)用的軟件構(gòu)件庫。Bennatan建議將軟件資源分為4類:成品構(gòu)件:由第三方廠商開發(fā)或在以前的工程中開發(fā),經(jīng)過嚴格測試確保無誤的軟件,通常稱為COTS(commercialoff-the-shelf)。具有完全經(jīng)驗的構(gòu)件:現(xiàn)有的為以前類似的工程建立的規(guī)格說明、設(shè)計、代碼或測試數(shù)據(jù)。由于當前工程的成員在這些構(gòu)件所代表的應(yīng)用領(lǐng)域中有豐富的經(jīng)驗,應(yīng)用這類有完全經(jīng)驗的構(gòu)件時風險較小。3.硬件資源硬件是作為軟件工程的一種工具而投入的。宿主機〔Host〕─軟件開發(fā)時使用的計算機及外圍設(shè)備;目標機〔Target〕─運行已開發(fā)成功軟件的計算機及外圍設(shè)備;其他硬件設(shè)備─專用軟件開發(fā)時需要的特殊硬件資源;宿主機和必要的軟件工具構(gòu)成軟件開發(fā)環(huán)境。這樣的開發(fā)環(huán)境能夠支持多種用戶的需要,且能保持大量的由軟件開發(fā)組成員共享的信息。宿主機與目標機可以是同一種機型。4.軟件資源軟件人員在軟件開發(fā)過程中使用了許多軟件工具。將這些軟件工具集成就叫做計算機輔助軟件工程(CASE)。業(yè)務(wù)系統(tǒng)方案工具集工程管理工具集支持工具─文檔生成工具、網(wǎng)絡(luò)系統(tǒng)軟件、數(shù)據(jù)庫、電子郵件、通報板,以及配置管理工具分析和設(shè)計工具編程工具集成和測試工具原型化和模擬工具維護工具框架工具─這些工具能夠提供建立集成工程支撐環(huán)境〔IPSE〕的框架。5.5.3軟件度量軟件工程估算的依據(jù)是對以往工程進行度量所得到的有關(guān)工作量和時間的數(shù)據(jù)。只要事先建立特定的度量規(guī)程,很容易做到直接度量軟件所需要的本錢和工作量、產(chǎn)生的代碼行數(shù)等。軟件工程度量分為面向規(guī)模和面向功能度量:1.面向規(guī)模的度量面向規(guī)模的度量是對軟件產(chǎn)品和軟件開發(fā)過程的直接度量??梢越⒁粋€面向規(guī)模的數(shù)據(jù)表格來記錄工程的某些信息。該表格列出了在過去幾年完成的每一個軟件開發(fā)工程和關(guān)于這些工程的相應(yīng)面向規(guī)模的數(shù)據(jù)。例如,工程aaa-01的規(guī)模為12.1KLOC(千代碼行),工作量用了24個人月,本錢為168,000元,文檔為365頁,在交付用戶使用后第一年內(nèi)發(fā)現(xiàn)了29個錯誤,有3個人參加了工程aaa-01的軟件開發(fā)工作。面向規(guī)模的數(shù)據(jù)表格項目工作量千元KLOC文檔頁數(shù)錯誤數(shù)人數(shù)aaa-012416812.1365293ccc-046244027.21224865fff-034331420.21050
646
…
………………
…
………………需要注意的是,在表格中記載的工作量和本錢是整個軟件工程的活動〔分析、設(shè)計、編碼和測試〕,而不僅僅是編碼活動。對于每一個工程,可以根據(jù)表格中列出的根本數(shù)據(jù)計算簡單的面向規(guī)模的生產(chǎn)率和質(zhì)量的度量。生產(chǎn)率=KLOC/PM〔人月〕質(zhì)量=錯誤數(shù)/KLOC本錢=元/LOC文檔=文檔頁數(shù)/KLOC2.面向功能的度量面向功能的軟件度量是對軟件和軟件開發(fā)過程的間接度量。面向功能度量主要考慮程序的“功能性〞和“實用性〞,而不是對LOC計數(shù)。該度量是一種叫做功能點方法的生產(chǎn)率度量法,利用軟件信息域中的一些計數(shù)和軟件復(fù)雜性估計的經(jīng)驗關(guān)系式而導出功能點FP。面向功能的數(shù)據(jù)表格信息域參數(shù)用戶輸入數(shù)
346=用戶輸出數(shù)
457=用戶查詢數(shù)
346=文件數(shù)
71015=外部接口數(shù)
5710=總計數(shù)計數(shù)加權(quán)因數(shù)簡單中間復(fù)雜加權(quán)計數(shù)功能點計算確定五個信息域的特征,并在表格中相應(yīng)位置給出計數(shù)。用戶輸入數(shù):各個用戶輸入是面向不同應(yīng)用的輸入數(shù)據(jù)。用戶輸出數(shù):各個用戶輸出是面向應(yīng)用的輸出信息,包括報告,屏幕信息,錯誤信息等。在報告中的各個數(shù)據(jù)項不應(yīng)再分別計數(shù)。用戶查詢數(shù):查詢是一種聯(lián)機的交互操作,每次詢問/響應(yīng)具備應(yīng)計數(shù)。文件數(shù):每一個邏輯的主文件〔即數(shù)據(jù)的邏輯組合〕都應(yīng)計數(shù)。它可以是一個大數(shù)據(jù)庫的一局部,也可以是一個單獨的文件。外部接口數(shù):與系統(tǒng)中其他設(shè)備〔如磁盤文件〕通過外部接口讀寫信息次數(shù)均應(yīng)計數(shù)。一旦收集到上述數(shù)據(jù),下一步確定與每一個計數(shù)相關(guān)的復(fù)雜性值〔加權(quán)因子〕。一個信息域是簡單、平均還是復(fù)雜,由使用功能點方法的機構(gòu)自行確定,從而計算出加權(quán)計數(shù)。計算功能點,使用如下的關(guān)系式: FP=總計數(shù)×(0.65+0.01×SUM(Fi))總計數(shù)是所有加權(quán)計數(shù)項的和;SUM(Fi)是求和函數(shù):Fi〔i=1..14〕是復(fù)雜性校正值,它們通過逐一答復(fù)如下提問來確定。F1 系統(tǒng)是否需要可靠的備份和恢復(fù)?F2是否需要數(shù)據(jù)通信?F3是否有分布處理的功能?F4是否性能成為關(guān)鍵?F5系統(tǒng)是否運行在現(xiàn)存的高度實用化的操作環(huán)境中?F6 系統(tǒng)是否需要聯(lián)機數(shù)據(jù)項?F7 聯(lián)機數(shù)據(jù)項是否需要建立多重窗口顯示和切換,以完成處理輸入處理。F8 主文件是否聯(lián)機更新?F9 輸入、輸出、文件、查詢是否復(fù)雜?F10內(nèi)部處理過程是否復(fù)雜?F11是否需要將程序代碼設(shè)計成可復(fù)用的?F12設(shè)計中是否包括了轉(zhuǎn)移和安裝?F13系統(tǒng)是否設(shè)計成可以重復(fù)安裝在不同機構(gòu)中?F14系統(tǒng)是否設(shè)計成易修改和易使用?每個問題的答復(fù)按復(fù)雜性校正值給出(0~5)。復(fù)雜性校正值Fi的取值0..5: =0沒有影響=1偶然的=2適中的=3普通的=4重要的=5極重要的一旦計算出功能點,就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量和其它屬性:生產(chǎn)率=FP/PM〔人月〕質(zhì)量=錯誤數(shù)/FP本錢=元/FP文檔=文檔頁數(shù)/FP功能點度量是為了商用信息系統(tǒng)應(yīng)用而設(shè)計的。特征點度量〔FeaturePoints〕可以用于系統(tǒng)和工程軟件應(yīng)用特征點度量適合于算法復(fù)雜性高的應(yīng)用。而實時處理、過程控制、嵌入式軟件應(yīng)用的算法復(fù)雜性都偏高,因此適合于特征點度量。為了計算特征點,可以象功能點計算那樣,對信息域值進行計數(shù)和加權(quán)。此外,特征點度量要對一個新的軟件特征“算法〞進行計數(shù)。計算特征點可使用一個計算表格。對于每一個度量參數(shù)只使用一個權(quán)值,并且使用FP=總計數(shù)×(0.65+0.01×SUM(Fi))來計算總的特征點值。特征點度量計算表格度量參數(shù)計數(shù)權(quán)值加權(quán)計數(shù)用戶輸入數(shù)
4=用戶輸出數(shù)
5=用戶查詢數(shù)
4=文件數(shù)
7=外部接口數(shù)
7=算法
3=總計數(shù)3.協(xié)調(diào)不同的度量方法代碼行數(shù)和功能點之間的關(guān)系依賴于用來實現(xiàn)軟件的程序設(shè)計語言和設(shè)計質(zhì)量。下面給出使用各種程序設(shè)計語言建立一個功能點所需要的平均代碼行數(shù)的粗略估算。程序語言LOC∕FP(平均值)程序語言LOC∕FP(平均值)匯編語言320Ada9553C128VasualBasic32COBOL106Smalltalk22FOETRAN106PowerBuilder16Pascal90代碼生成器15C++64SQL125.5.4軟件工程估算在估算時往往存在某些不確定性,使得工程管理者無法正常進行管理而導致產(chǎn)品遲遲不能完成。工程復(fù)雜性對于增加軟件方案的不確定性影響很大。復(fù)雜性越高,估算的風險就越高。工程規(guī)模對于軟件估算的精確性和成效影響也比較大。隨著軟件規(guī)模的擴大,問題分解會更加困難。工程的規(guī)模越大,開發(fā)工作量越大,估算的風險越高。工程的結(jié)構(gòu)化程度也影響工程估算的風險。隨著結(jié)構(gòu)化程度的提高,進行精確估算的能力就能提高,而風險將減少。歷史信息的有效性也影響估算的風險。對以往工程進行綜合度量,可借用來比較準確地進行估算,安排進度以防止重走過去的彎路,而總的風險也減少了。如果對軟件工程的工作范圍還不十分清楚,或者用戶的要求經(jīng)常變更,都會導致對軟件工程所需資源、本錢、進度的估算頻頻變動,增加估算的風險。方案人員應(yīng)當要求在軟件的規(guī)格說明中給出完備的功能、性能、接口的定義。軟件工程的估算能夠通過一系列系統(tǒng)化的步驟,在可接受的風險范圍內(nèi)提供估算結(jié)果。估算對風險的影響低風險區(qū)項目復(fù)雜性項目結(jié)構(gòu)化、規(guī)約的不確定程度項目工作量大小1.
使用LOC和FP估算在軟件工程估算中,在兩個方面使用了LOC和FP數(shù)據(jù):把LOC和FP數(shù)據(jù)當做一個估算變量,用于量度軟件每一個元素的規(guī)模。LOC和FP數(shù)據(jù)作為從過去工程中收集到的基線數(shù)據(jù),與其它估算變量聯(lián)合使用,進行本錢和工作量的估算。LOC和FP的共性在于:給出一個有界的軟件范圍的表達由此表達把軟件分解成一些小的可分別獨 立進行估算的子功能對每一個子功能估算LOC或FP把基線生產(chǎn)率度量(如LOC/PM或FP/PM)用做特定的估算變量,導出子功能的本錢或工作量綜合子功能的估算得到整個工程的總估算。用LOC做為估算變量時,必須進行功能分解,且需要到達很詳細的程度。而估算FP時需要的數(shù)據(jù)是宏觀的量,當把FP當做估算變量時不需分解得很詳細。LOC是直接估算的,而FP是通過估計輸入、輸出、數(shù)據(jù)文件、查詢和外部接口的數(shù)目,以及14種復(fù)雜性校正值間接地確定的。工程方案人員可對每一個分解的功能提出一個有代表性的估算值范圍。利用歷史數(shù)據(jù)或憑實際經(jīng)驗〔當其它的方法失效時〕,對每個功能分別按最正確的、可能的、悲觀的三種情況給出LOC或FP估計值。記作a、m、b。接著計算LOC或FP的期望值E。
所有子功能的總估算變量值除以相應(yīng)于該估算變量的平均生產(chǎn)率度量得到工程的總工作量。例如,假設(shè)假定總的FP估算值是310,基于過去工程的平均FP生產(chǎn)率是5.5FP/PM,那么工程的總工作量是:
工作量=310/5.5=56PM作為LOC和FP估算的實例,考察一個為CAD應(yīng)用而開發(fā)的軟件包。系統(tǒng)定義評審指明,“軟件是在一個工作站上運行,其接口必須使用各種計算機圖形設(shè)備,包括鼠標器、數(shù)字化儀、高分辯率彩色顯示器和激光打印機。〞在這個實例中,使用LOC做為估算變量。根據(jù)系統(tǒng)規(guī)格說明,軟件范圍的初步表達如下 “軟件從操作員那里接收2維或3維幾何數(shù)據(jù)。操作員通過用戶界面與CAD系統(tǒng)交互并控制它,這種用戶界面將表現(xiàn)出很好的人機接口設(shè)計特性。所有的幾何數(shù)據(jù)和其它支持信息保存在一個CAD數(shù)據(jù)庫內(nèi)。要開發(fā)一些設(shè)計分析模塊以產(chǎn)生在各種圖形設(shè)備上顯示的輸出。軟件要設(shè)計得能控制并與能各種外部設(shè)備,包括鼠標器、數(shù)字化儀、激光打印機和繪圖儀交互。〞經(jīng)過分解,識別出以下主要軟件功能:用戶界面和控制功能二維幾何造型三維幾何造型數(shù)據(jù)庫管理計算機圖形顯示功能外設(shè)控制PC設(shè)計分析模塊通過分解,可得到如下估算表功能a樂觀值m可能值b悲觀值E期望值元/行行/PM成本(元)工作量(PM)用戶接口控制180024002650234014315327607.4二維幾何造型41005200740053802022010760024.4三維幾何造型46006900860068002022013600030.9數(shù)據(jù)庫管理2950340036003350182406030013.9圖形顯示40504900620049502220010890024.7外部設(shè)備控制2000210024502140281405992015.2設(shè)計分析66008500980084001830015120028.0總計33360656680144.5從歷史的基線數(shù)據(jù)求出生產(chǎn)率度量,即行/PM和元/行。需要根據(jù)復(fù)雜性程度的不同,對各功能使用不同的生產(chǎn)率度量值。在表中的因此可得,該工程總本錢的估算值為657,000元,總工作量的估算值為145人月〔PM〕。2.工程人工本錢的估算工程人工本錢主要是指軟件開發(fā)過程中所花費的工作量及相應(yīng)的代價。它不包括原材料和能源的消耗,主要是人的勞動的消耗。人的勞動消耗所需代價就是軟件產(chǎn)品的人工本錢。工程人工本錢的計算方法不同于其它物理產(chǎn)品本錢的計算,是以一次性開發(fā)過程所花費的代價來計算的。工程人工本錢的估算,應(yīng)是從軟件方案、需求分析、設(shè)計、編碼、單元測試、集成測試到確認測試,整個軟件開發(fā)全過程的花費作為依據(jù)的。單獨一位專家可能會有種種偏見,最好由多位專家進行估算,取得多個估算值。有多種方法把這些估算值合成一個估算值:一種方法是簡單地求各估算值的中值或平均值。其優(yōu)點是簡便。缺點是可能會由于受一、二個極端估算值的影響而產(chǎn)生嚴重的偏差。另一種方法是召開小組會,使各位專家們統(tǒng)一于或至少同意某一個估算值。優(yōu)點是可以擯棄蒙昧無知的估算值,缺點是一些組員可能會受權(quán)威或政治因素的影響。專家對此估算值另做一次估算。在綜合專家估算結(jié)果的根底上,組織專家再次無記名地填寫表格。比較兩次估算的結(jié)果。假設(shè)差異很大,要通過查詢找出差異的原因。上述過程可重復(fù)屢次。最終可獲得一個得到多數(shù)專家共識的軟件規(guī)?!苍创a行數(shù)〕。最后,通過與歷史資料進行類比,根據(jù)過去完成軟件工程的規(guī)模和本錢等信息,推算出該軟件每行源代碼所需要的本錢。然后再乘以該軟件源代碼行數(shù)的估算值,就可得到該軟件的本錢估算值。軟件人工本錢估算的經(jīng)驗?zāi)P蛙浖_發(fā)人工本錢估算是依據(jù)開發(fā)本錢估算模型進行估算的。開發(fā)本錢估算模型采用經(jīng)驗公式來預(yù)測軟件工程方案所需要的本錢、工作量和進度數(shù)據(jù)。根據(jù)模型中估算變量的依存關(guān)系,可把模型分為靜態(tài)模型和動態(tài)模型。靜態(tài)模型從一個唯一的估算變量〔如源代碼規(guī)模〕計算其他變量〔如工作量和時間〕,且所有計算公式對于所有場合都一樣。動態(tài)模型中所有變量是相互依存的。根據(jù)根本估算變量的多少,模型又可分為單變量模型和多變量模型。單變量模型只用一個估算變量計算出其他所有變量;多變量模型需要多個變量來描述過程。典型的靜態(tài)單變量估算模型是通過對從以前的軟件工程收集到的數(shù)據(jù)進行回歸分析導出的。其總體結(jié)構(gòu)具有以下形式: E=A+B*(ev)C其中,E是以人月為單位的工作量,A、B、C是經(jīng)驗常數(shù),ev是估算變量〔LOC或FP〕。1.靜態(tài)單變量估算模型(1)面向LOC的估算模型 E=5.2(KLOC)0.91Walston-Felix模型E=5.5+0.73(KLOC)1.16Bailey-Basili模型E=3.2(KLOC)1.05Boehm根本模型E=5.288(KLOC)1.047Doty模型〔針對KLOC>9的情況〕除上述關(guān)系以外,大多數(shù)估算模型均有某種形式的工程調(diào)整措施,使得E能夠根據(jù)其他的工程特性〔如問題的復(fù)雜性、開發(fā)人員的經(jīng)驗、開發(fā)環(huán)境等〕加以調(diào)整。(2)面向FP的估算模型 E=-13.39+0.0545FPAlbrecht-Gaffney模型E=60.627.72810-8FP3Kemerer模型E=585.7+15.12FPMaston-Barnett-Mellichamp模型
從以上模型可知,每一個模型對于相同的LOC或FP值,會產(chǎn)生出不同的結(jié)果。這意味著使用這些估算模型時,必須根據(jù)當前工程的需要,對模型加以調(diào)整。2.Putnam模型系統(tǒng)定義功能設(shè)計規(guī)格說明系統(tǒng)開發(fā)系統(tǒng)維護與支持工作量(人月)時間系統(tǒng)定義功能設(shè)計規(guī)格說明安裝測試與確認設(shè)計與編碼開發(fā)工作=總工作量的40%維護與支持工作=總工作量的60%Ck的典型值開發(fā)環(huán)境開發(fā)環(huán)境舉例2000差沒有系統(tǒng)的開發(fā)方法,缺乏文檔和復(fù)審,批處理方式。8000好有合適的系統(tǒng)開發(fā)方法,有充分的文檔和復(fù)審,交互執(zhí)行方式。11000優(yōu)有自動開發(fā)工具和技術(shù)3.COCOMO81模型
〔COnstructiveCOstModel81〕結(jié)構(gòu)型本錢估算模型是一種精確、易于使用的本錢估算方法。DSI(DeliveredSourceInstruction)定義為代碼的源程序行數(shù)。假設(shè)一行有兩個語句,那么算做一條指令。它包括作業(yè)控制語句、格式語句和數(shù)據(jù)聲明,但不包括注釋語句。KDSI=1024DSIMM(Man-Months)表示開發(fā)工作量〔人月〕。TDEV(TimeofDevelopment)表示開發(fā)進度。它由工作量決定〔月〕。(1)COCOMO81模型的限制模型本錢估算涵蓋的開發(fā)期,開始于產(chǎn)品設(shè)計階段之初,終止于集成與測試階段之末。其他階段的本錢和進度單獨估算。模型本錢估算僅包含在開發(fā)期間工作分解結(jié)構(gòu)中的活動,其中包含了管理和文檔編制的工作量,但不包含用戶培訓、安裝方案、移植方案等相關(guān)工作量。模型估算包括了工程中所有直接計費的勞動力的活動,包括工程經(jīng)理和程序庫管理員,但不包括計算中心操作員、人事部門職員、秘書、高層管理人員、房屋管理員等。(2)COCOMO81模型中工程的分類組織型半獨立型嵌入型產(chǎn)品目標的系統(tǒng)理解充分很多一般有關(guān)工作的經(jīng)驗大量很多適中對需求一致性的要求基本很多充分對外部接口說明一致性的要求基本很多充分有關(guān)新硬件和操作程序的并行開發(fā)若干適中大范圍對創(chuàng)新的數(shù)據(jù)處理架構(gòu)和算法的需求最低若干很多提前完成時的獎金低適中高產(chǎn)品范圍的規(guī)模<50KDSI<300KDSI所有規(guī)模軟件項目開發(fā)模式特性COCOMO81模型分類COCOMO模型按其詳細程度分成三級:根本COCOMO模型中間COCOMO模型詳細COCOMO模型組織型半獨立型嵌入型分批數(shù)據(jù)處理簡單庫存/生產(chǎn)管理熟悉的OS,編譯器科學模型多數(shù)事務(wù)處理系統(tǒng)簡單指令控制系統(tǒng)新的OS,DBMS大的庫存/生產(chǎn)管理復(fù)雜事務(wù)處理系統(tǒng)超大型操作系統(tǒng)航天控制系統(tǒng)大的指令控制系統(tǒng)軟件項目開發(fā)模式應(yīng)用舉例根本COCOMO模型是靜態(tài)單變量模型,用源代碼行數(shù)(KDSI)為自變量的經(jīng)驗函數(shù)計算軟件開發(fā)工作量。中間COCOMO模型在用KDSI為自變量的函數(shù)計算軟件開發(fā)工作量〔稱為名義工作量〕的根底上,用涉及產(chǎn)品、硬件、人員、工程等方面的影響因素調(diào)整工作量估算。詳細COCOMO模型包括中間COCOMO模型的所有特性,但用上述各種影響因素調(diào)整工作量估算時,還要考慮對軟件工程過程中每一階段〔分析、設(shè)計等〕的影響。(3)根本COCOMO模型根本COCOMO模型的標稱工作量和進度公式按這些公式得到的估算實例參看下表。它總結(jié)了每一種軟件工程開發(fā)模式和不同規(guī)模產(chǎn)品中估算出來的工作量、生產(chǎn)率、開發(fā)進度等。產(chǎn)品規(guī)模:小型(2KDSI),中小型(8KDSI),中型(32KDSI),大型(128KDSI),超大型(256KDSI)。項目類型工作量進度組織型MM=2.4(KDSL)1.05TDEV=2.5(MM)0.38半獨立型MM=3.0(KDSL)1.12TDEV=2.5(MM)0.35嵌入型MM=3.6(KDSL)1.20TDEV=2.5(MM)0.32標準規(guī)模產(chǎn)品的根本COCOMO估算工作量(MM)小型中小型中型大型超大型組織型半獨立型嵌入型5.06.58.321.3314491146230392687121632506420生產(chǎn)率(DSI/MM)小型中小型中型大型超大型組織型半獨立型嵌入型40030824137625818235221913932718610515880進度(月)小型中小型中型大型超大型組織型半獨立型嵌入型4.64.84.98.08.38.41414142424244241平均投入人員(FSP)小型中小型中型大型超大型組織型半獨立型嵌入型1.11.41.72.73.75.26.5101616295177157(4)中間COCOMO模型進一步考慮15種影響工作量的因素〔稱本錢驅(qū)動因素〕,通過定下乘法因子,修正COCOMO標稱工作量公式和進度公式計算的結(jié)果,可以更合理地估算軟件〔各階段〕的工作量和進度。中間COCOMO模型的標稱工作量與進度公式計算公式:MM=a(KDSI)bEAF項目類型工作量進度組織型MM=3.2(KDSL)1.05TDEV=2.5(MM)0.38半獨立型MM=3.0(KDSL)1.12TDEV=2.5(MM)0.35嵌入型MM=2.8(KDSL)1.20TDEV=2.5(MM)0.32成本驅(qū)動因素fi很低低正常高很高超高產(chǎn)品因素軟件可靠性0.750.881.001.151.40數(shù)據(jù)庫規(guī)模0.941.001.081.16產(chǎn)品復(fù)雜性0.700.851.001.151.301.65計算機因素執(zhí)行時間限制1.001.111.301.66存儲限制1.001.061.211.56虛擬機易變性0.871.001.151.30環(huán)境周轉(zhuǎn)時間0.871.001.071.15虛擬機是指為完成某一軟件任務(wù)所使用硬、軟件的復(fù)合體。環(huán)境周轉(zhuǎn)時間是指從用戶輸入到運算結(jié)果返回的時間。成本驅(qū)動因素fi很低低正常高很高超高人員因素分析員能力1.461.000.860.71應(yīng)用領(lǐng)域經(jīng)驗1.291.131.000.910.82程序員能力1.421.171.000.860.70虛擬機使用經(jīng)驗1.211.101.000.90程序語言經(jīng)驗1.411.071.000.95項目因素先進編程技術(shù)1.241.101.000.910.82使用軟件工具1.241.101.000.910.83開發(fā)進度限制1.231.081.001.041.10例1.一個32KDSI的聲音輸入系統(tǒng)是一個輸入原型,或是一個可行性表演模型。所需可靠性非常低。把此模型看做半獨立型軟件。那么有
MM=3.0〔32〕1.12=146
又查下表知f1=0.75,其它fi=1.00,那么最終有MM=146×0.75=110.例2.一個規(guī)模為10KDSI的商用微機遠程通信的嵌入型軟件,使用中間COCOMO模型進行本錢估算。程序標稱工作量MM標稱=2.8(10)1.20=44.38〔MM〕影響因素fi情況取值1.軟件可靠性只用于局部地區(qū)恢復(fù)問題不嚴重1.00(正常)2.數(shù)據(jù)庫規(guī)模20000字節(jié)0.94(低)3.產(chǎn)品復(fù)雜性用于遠程通信處理1.30(很高)4.時間限制使用70%的CPU時間1.10(高)5.存儲限制64M中使用了45M1.06(高)6.機器使用商用微處理機1.00(正常)7.周轉(zhuǎn)時間平均2小時1.00(正常)8.分析員能力優(yōu)秀人才0.86(高)9.工作經(jīng)驗遠程通信工作3年1.10(低)10.程序員能力優(yōu)秀人才0.86(高)11.工作經(jīng)驗微型機工作3年1.00(正常)12.語言使用經(jīng)驗12個月1.00(正常)影響因素fi情況取值13.使用現(xiàn)代編程技術(shù)1年以上0.91(高)14.使用軟件工具基本的微機軟件1.10(低)15.工期9個月1.00(正常)工作量調(diào)節(jié)因子程序?qū)嶋H工作量MM=MM標稱×EAF=44.38×1.16==51.48〔MM〕開發(fā)所用時間TDEV=2.5(51.5)0.32=8.9〔月〕如果分析員與程序員的工資都按每月6,000美元計算,那么該工程的開發(fā)人員的工資總額為51.5×6,000=309,000〔美元〕做為比照,現(xiàn)在用IBM模型計算PM=5.2(10)0.91=42.27〔人月〕D=4.1(10)0.38=1.84〔月〕S=0.54(42.27)0.60=5.1(人)(5)詳細COCOMO模型詳細COCOMO模型的標稱工作量公式和進度公式與中間COCOMO模型相同。詳細COCOMO模型引入了兩種新特色:階段敏感的工作量影響因素:把軟件開發(fā)分為4個階段:需求方案和產(chǎn)品設(shè)計、詳細設(shè)計、編碼和單元測試、集成與測試。三層次的產(chǎn)品分級結(jié)構(gòu):針對每一個影響因素,按模塊層、子系統(tǒng)層、系統(tǒng)層,有相應(yīng)工作量因素分級表,供不同層次的估算使用。兩者綜合,每張表都按產(chǎn)品層次-開發(fā)階段-要求上下,詳細給出定量的估計。例如,軟件可靠性〔RELY〕的工作量因素分級表〔子系統(tǒng)層〕和產(chǎn)品復(fù)雜性〔CPLX〕的工作量因素分級表〔模塊層〕如表所示。使用這些表格,可以比中間COCOMO模型更方便、更準確地估算軟件開發(fā)工作量。軟件可靠性本錢驅(qū)動因素分級表
(子系統(tǒng)層)階段級別需求和產(chǎn)品設(shè)計詳細設(shè)計編程和單元測試集成及測試綜合非常低0.800.800.800.600.75低0.900.900.900.800.88正常1.001.001.001.001.00高1.101.101.101.301.15非常高1.301.301.301.701.400.80×0.15+0.80×0.30+0.80×0.30+0.60×0.25==0.75各階段工作量分配比例產(chǎn)品復(fù)雜性本錢驅(qū)動因素分級表
(模塊層)階段級別需求和產(chǎn)品設(shè)計詳細設(shè)計編程和單元測試集成及測試綜合非常低0.700.700.700.700.70低0.850.850.850.850.85正常1.001.001.001.001.00高1.151.151.151.151.15非常高1.301.301.301.301.30可靠性要求不同導致工程活動的差異等級需求與產(chǎn)品設(shè)計詳細設(shè)計編碼與單元測試集成與測試很低不詳細;很多待定;較少確認;最小量QA,CM,用戶手冊草稿,測試計劃;最少設(shè)計評審;基本設(shè)計信息;最小量QA,CM,用戶手冊草稿,測試計劃;非正式設(shè)計檢查;沒有測試過程;最小路經(jīng)測試;最小標準檢查;最小QA,CM;最小I/O與非正式測試;最小用戶手冊;沒有測試過程;很多需求未經(jīng)測試;最小QA,CM;最小壓力與非正常測試;最小所需文檔;低基本信息,確認;頻繁的待定;基本QA,CM,標準用戶手冊草稿,測試計劃;中等詳細;基本QA,CM,用戶手冊草稿,測試計劃;最小測試過程;部分路徑測試,標準檢查;基本QA,CM,用戶手冊;部分I/O與非正常測試;最小測試過程;需求通常未經(jīng)測試;基本QA,CM,用戶手冊;部分壓力與非正常測試;等級需求與產(chǎn)品設(shè)計詳細設(shè)計編碼與單元測試集成與測試正常正常項目V&V高詳細的確認,QA,CM,標準,設(shè)計評審,文檔編制;詳細的測試計劃,過程;詳細的確認,QA,CM,標準,關(guān)鍵設(shè)計評審,文檔編制;詳細的測試計劃,過程;詳細的測試過程,QA,CM,文檔化;廣泛的非正常測試;詳細的測試過程,QA,CM,文檔化;廣泛的壓力與非正常測試;很高詳細的確認,QA,CM,標準,設(shè)計評審,文檔編制;與獨立的V&V機構(gòu)接口;非常詳細的測試計劃,過程;詳細的確認,QA,CM,標準,關(guān)鍵設(shè)計評審,文檔編制;非常徹底的設(shè)計檢查;非常詳細的測試計劃,過程;與獨立的V&V機構(gòu)接口;詳細的測試過程,QA,CM,文檔化;非常徹底的代碼檢查;非常廣泛的非正常測試;與獨立的V&V機構(gòu)接口;非常詳細的測試過程,QA,CM,文檔化;非常廣泛的壓力與非正常測試;與獨立的V&V機構(gòu)接口;4.COCOMO-II模型 用系統(tǒng)。系統(tǒng)集成:對系統(tǒng)的每一局部可用應(yīng)用組裝方式來開發(fā),再做系統(tǒng)的集成。適用于規(guī)模較大、嵌入較多且先例較少的系統(tǒng)的開發(fā)。COCOMOII模型通過三個不同的模型分別對三個不同的階段進行估算:應(yīng)用組裝模型〔估算早期原型開發(fā)工作量〕早期設(shè)計模型〔估算探索和選擇可用的系統(tǒng)∕軟件體系結(jié)構(gòu)和操作所用工作量〕后架構(gòu)模型〔估算實際系統(tǒng)開發(fā)的工作量〕(1)應(yīng)用組裝模型屏幕、報告和3GL構(gòu)件統(tǒng)稱為元素。2000年Boehm等人在COCOMOII:2000中把“對象點〞改為“應(yīng)用點〞,以防止概念的混淆。應(yīng)用組裝模型估算的步驟:評估應(yīng)用計數(shù):估算組成該應(yīng)用的屏幕、報告和3GL構(gòu)件數(shù)目。確定復(fù)雜性級別:對于每一個屏幕、報告、3GL構(gòu)件,根據(jù)一些特征,把它們劃分到簡單、中等和困難等3個復(fù)雜性級別。 其中,srvr為與屏幕或報告相關(guān)聯(lián)的效勞器〔主機或同等物〕數(shù)據(jù)表數(shù),clnt為與屏幕或報告相關(guān)聯(lián)的客戶機〔個人工作站〕數(shù)據(jù)表數(shù)。數(shù)據(jù)表的數(shù)量和來源包含的視圖數(shù)總數(shù)<4(<2個srvr,<3個clnt)總數(shù)<8(2~3個srvr,<3~5個clnt)總數(shù)8(>3個srvr,>5個clnt)<3簡單的簡單的中等的3~7簡單的中等的困難的8中等的困難的困難的表1屏幕應(yīng)用點復(fù)雜性等級每一個屏幕可以展開為假設(shè)干視圖〔views〕。根據(jù)屏幕所涉及視圖數(shù)和數(shù)據(jù)表數(shù),可以確定該屏幕的復(fù)雜性等級。數(shù)據(jù)表的數(shù)量和來源包含的節(jié)數(shù)總數(shù)<4(<2個srvr,<3個clnt)總數(shù)<8(2~3個srvr,<3~5個clnt)總數(shù)8(>3個srvr,>5個clnt)<2簡單的簡單的中等的2~3簡單的中等的困難的4中等的困難的困難的表2報告應(yīng)用點復(fù)雜性等級每一個報告可以包括有假設(shè)干節(jié)〔sections〕。根據(jù)報告所涉及節(jié)數(shù)和數(shù)據(jù)表數(shù),可以確定該報告的復(fù)雜性等級。3)
加權(quán):根據(jù)每一個元素的復(fù)雜性級別,參照表3對其加權(quán)。4)計算應(yīng)用點數(shù):將每一個元素的計數(shù)乘以權(quán)值得到該元素的加權(quán)計數(shù),再將各個元素的加權(quán)計數(shù)累加,得到總的應(yīng)用點計數(shù)。表3應(yīng)用點復(fù)雜性加權(quán)元素類型復(fù)雜性加權(quán)簡單的中等的困難的屏幕123報表2583GL構(gòu)件--10估計工程復(fù)用的百分比r:如果工程在開發(fā)中使用了構(gòu)件或復(fù)用了以前的軟件,再估計復(fù)用的百分比r。計算要開發(fā)的新應(yīng)用點數(shù):通過以下公式得到調(diào)整后的新應(yīng)用點數(shù)NAP。NAP=〔應(yīng)用點計數(shù)〕×〔100–r〕/100 例如,一個應(yīng)用程序包含840個應(yīng)用點,其中20%可以通過使用現(xiàn)成的構(gòu)件來提供,那么調(diào)整后的新應(yīng)用點〔NAP〕的得分將是 NAP=840×(100-20)/100=6727) 確定生產(chǎn)率:其單位是:PROD=NAP∕人月表4對象點/工作量轉(zhuǎn)換表8) 估算工作量PM=NAP/PROD例如,一個應(yīng)用程序有672個新應(yīng)用點,開發(fā)環(huán)境的生產(chǎn)率是正常的,那么工程的估計工作量為:PM=672/13=52〔人月〕開發(fā)者的經(jīng)驗和能力∕開發(fā)環(huán)境成熟度和能力很低低標稱高很高生產(chǎn)率PROD47132550(2)早期設(shè)計模型和后架構(gòu)模型的標稱工作量估算公式估算功能點。功能點通過量化與主要外部數(shù)據(jù)、控制輸入/輸出、文件相關(guān)的信息處理功能來度量軟件工程。表5用戶功能類型功能類型描述外部輸入從系統(tǒng)邊界外進入的各種(唯一的)用戶數(shù)據(jù)外部輸出從系統(tǒng)邊界內(nèi)流出的各種(唯一的)用戶數(shù)據(jù)(2)早期設(shè)計模型 可以根據(jù)軟件需求和設(shè)計文檔的信息,對于每一個功能類型,分別統(tǒng)計功能計數(shù)。確定復(fù)雜性等級。按照下表,確定每個功能的復(fù)雜性等級。復(fù)雜性等級劃分為“低〞、“一般〞或“高〞。功能類型描述內(nèi)部邏輯文件把系統(tǒng)中主要的用戶數(shù)據(jù)或控制信息邏輯組定義為一個內(nèi)部邏輯文件,包括系統(tǒng)產(chǎn)生的、使用的和維護的各個邏輯文件。外部接口文件系統(tǒng)之間傳遞或共享的文件都是外部接口文件外部查詢根據(jù)用戶輸入的查詢要求進行處理并導致一個直接輸出即為一個外部查詢表6FP復(fù)雜性等級記錄元素類型數(shù)1~1920~50≥511低低一般2~5低一般高≥6一般高高對于內(nèi)部邏輯文件和外部接口文件數(shù)據(jù)元素類型數(shù)文件類型數(shù)1~56~19≥200~1低低一般2~3低一般高≥4一般高高對于外部輸出和外部查詢數(shù)據(jù)元素類型數(shù)3) 對各功能類型計數(shù)加權(quán):根據(jù)表7。按照復(fù)雜性等級對各個功能類型計數(shù)加權(quán)?!苍摍?quán)值反映了實現(xiàn)功能所需工作量的大致估計〕計算未調(diào)整的功能點:把所有加權(quán)后的功能計數(shù)相加,得到未調(diào)整功能點。根據(jù)表8,把未調(diào)整功能點轉(zhuǎn)換成源代碼行數(shù)。文件類型數(shù)1~56~19≥200~1低低一般2~3低一般高≥4一般高高對于外部輸入數(shù)據(jù)元素類型數(shù)表7功能點復(fù)雜性權(quán)值低一般高外部輸入346外部輸出457外部查詢346內(nèi)部邏輯文件71015外部接口文件5710傳統(tǒng)的功能點度量,還需要考慮14種用于校正度量值的影響因素,然而COCOMOII沒有這樣做。COCOMOII先計算未調(diào)整功能點,再應(yīng)用復(fù)用因子、本錢驅(qū)動因子、尺度因子進行調(diào)整。復(fù)雜性權(quán)值功能類型表8從UFP到SLOC的默認轉(zhuǎn)換率語言SLOC∕UFP語言SLOC∕UFP機器代碼640Lisp64基本匯編320Prolog64宏匯編213C++55C128Java53Fortran77107Ada9549UnixShellScripts107AIShell49CompiledBasic91VisualC++34Pascal91VisualBasic5.029Cobol(ANSI85)91PERL27Modula280SQL20Fortran9595PowerBuilder16Forth64HTML3.015例如,工程的功能點數(shù)據(jù)如下:由此可計算未調(diào)整功能點為 UFP=43+74+56+715+610=235假設(shè)采用C編程,那么源代碼行數(shù)為: SLOC=235128=30080=29.375(KSLOC)功能類型類型數(shù)據(jù)元素復(fù)雜性權(quán)重功能計數(shù)外部輸入文件18低34外部輸出文件112低47外部查詢文件716高65內(nèi)部邏輯文件記錄22104高157外部接口文件記錄1456高106估算工作量工作量估算公式為:其中,A=2.94〔對COCOMOII.2000〕。KSLOC是千源代碼行數(shù)。指數(shù)E是5個尺度因子〔SF,ScaleFactors〕的總合。其中,B=0.91〔對COCOMOII:2000〕。EMi是工作量調(diào)整因素中的本錢驅(qū)動因子。尺度因子SFi的含義尺度因子解釋先例性SF1反映機構(gòu)對此類型項目的經(jīng)驗。包括機構(gòu)對產(chǎn)品目標的理解程度,以往類似系統(tǒng)的工作經(jīng)驗,相關(guān)硬件和操作程序開發(fā)的熟悉和協(xié)同程度,數(shù)據(jù)處理、體系結(jié)構(gòu)以及算法是否需要有創(chuàng)新等?!昂艿汀贝頍o經(jīng)驗,“很高”代表對該領(lǐng)域有徹底了解。開發(fā)靈活性SF2反映開發(fā)過程中的靈活程度?!昂艿汀贝碥浖秶仨毰c已建立的需求、外部接口規(guī)范等高度一致,“很高”代表客戶只給出了總的目標。體系結(jié)構(gòu)∕風險化解SF3反映風險分析情況。包括是否識別出關(guān)鍵風險項,軟件體系結(jié)構(gòu)在任務(wù)、接口、構(gòu)件、技術(shù)、性能方面不確定性如何,是否通過設(shè)計評審和完善體系結(jié)構(gòu)建立了化解這些風險項的里程碑。“很低”代表無分析,“很高”代表完全、徹底的風險分析。尺度因子SFi的含義–續(xù)尺度因子解釋團隊凝聚力SF4反映開發(fā)團隊相互了解和協(xié)作的程度。包括項目相關(guān)人員的目標和企業(yè)文化的一致性,項目相關(guān)人員是否有能力有意愿適應(yīng)其他相關(guān)人員的目標,團隊建設(shè)和團隊工作是否有經(jīng)驗。“很低”代表交互很困難,“很高”代表團結(jié)高效。過程成熟度SF5反映機構(gòu)的過程成熟度??捎?減去CMM過程成熟度等級得到。通過分析上表所示的5個尺度因子來計算指數(shù)E。這些因子有六個等級,從“很低〞到“極高〞,分別賦予5~0值,將這些估算值相加除以100,再加上B=0.91,就得到該指數(shù)的取值。例如,一個組織正承擔一個工程,該組織對于該工程所在領(lǐng)域沒有經(jīng)驗。工程客戶沒有定義需采用的過程,需求和接口只有大概的設(shè)想。在工程進展中沒有做重大風險分析,還需組織新的開發(fā)團隊來完成這個系統(tǒng)。此外該組織最近剛實行過程改善方案,并且依據(jù)CMM模型被評為2級。在進行指數(shù)計算時,各尺度因子取值為:先例性機構(gòu)的新工程,取值“低〞(4)開發(fā)靈活性無客戶介入,取值“很高〞(1)體系結(jié)構(gòu)∕風險化解無風險分析,取值“很低〞(5)團隊凝聚力新團隊,取值“一般〞(3)過程成熟度有些過程控制,取值“一般〞(3)計算得到的指數(shù)E為:后架構(gòu)模型用在軟件生命周期中軟件體系架構(gòu)完成后的系統(tǒng)構(gòu)造階段,應(yīng)用于產(chǎn)品實際開發(fā)和維護。后架構(gòu)模型的工作量調(diào)整后架構(gòu)模型采用17個本錢驅(qū)動因子EMi,來調(diào)整標稱工作量,以反映待開發(fā)軟件的特征。該模型可用于為整個工程或由多個模塊組成的工程估算工作量和進度。EMi描述很低低標稱高很高極高產(chǎn)品RELY軟件可靠性0.820.921.001.101.26—DATA數(shù)據(jù)庫規(guī)?!?.901.001.141.28—CPLX產(chǎn)品復(fù)雜性0.730.871.001.171.341.74RUSE可復(fù)用開發(fā)—0.951.001.071.151.24DOCU文檔編制0.810.911.001.111.23—EMi描述很低低正常高很高極高平臺TIME執(zhí)行時間限制——1.001.111.291.63STOR內(nèi)存限制——1.001.051.171.46PVOL平臺易變性—0.871.001.151.30—人員ACAP分析員能力1.421.191.000.850.71—PCAP程序員能力1.341.151.000.880.76—PCON人員連續(xù)性1.291.121.000.900.81—續(xù)一EMi描述很低低正常高很高極高APEX應(yīng)用經(jīng)驗1.221.101.000.880.81—PLEX平臺經(jīng)驗1.191.091.000.910.85—LTEX語言和工具經(jīng)驗1.201.091.000.910.84—項目TOOL軟件工具1.171.091.000.900.78—SITE多站點開發(fā)1.221.091.000.930.860.80SCED開發(fā)進度1.431.141.001.001.00—續(xù)二各本錢驅(qū)動因子等級的劃分要求的可靠性:主要看軟件失效造成的影響:數(shù)據(jù)庫規(guī)模:因為測試數(shù)據(jù)庫需大量測試數(shù)據(jù),可用D/P即測試數(shù)據(jù)的字節(jié)數(shù)與程序SLOC的比率來衡量產(chǎn)生和維護這些測試數(shù)據(jù)所需工作量。很低低標稱高很高極高n/aD/P<1010≤D/P
<100100≤D/P
<10001000≤D/Pn/a很低低標稱高很高極高僅有點不方便低度易彌補的損失中度易彌補的損失高財務(wù)損失性命攸關(guān)n/a產(chǎn)品復(fù)雜性:從5個方面來綜合衡量產(chǎn)品復(fù)雜性:很低低標稱高很高極高控制操作控制轉(zhuǎn)移少,簡單模塊連接結(jié)構(gòu)化編程,多為簡單謂詞簡單回調(diào)和消息傳遞,分布式處理存在復(fù)合謂詞和高度嵌套多任務(wù)復(fù)雜分布式處理多資源調(diào)度,微指令控制,分布式硬實時控制計算操作簡單表達式計算中等表達式計算標準算法和矩陣運算基本數(shù)值分析算法復(fù)雜數(shù)值分析算法隨機數(shù)據(jù)分析,并行計算設(shè)備相關(guān)操作有簡單格式的簡單讀寫語句在GET/PUT級讀寫包括狀態(tài)檢查、錯誤處理的讀寫物理I/O操作,優(yōu)化I/O通信鏈路處理、嵌入式系統(tǒng)微程序控制操作、性能關(guān)鍵嵌入式系統(tǒng)數(shù)據(jù)管理操作主存的簡單數(shù)組,簡單查詢單文件子集、中等查詢多文件讀寫和復(fù)雜數(shù)據(jù)查詢、更新數(shù)據(jù)流觸發(fā)器,數(shù)據(jù)重構(gòu)分布式數(shù)據(jù)庫、復(fù)雜觸發(fā)器高耦合動態(tài)相關(guān)的對象結(jié)構(gòu),自然語言數(shù)據(jù)管理用戶界面操作簡單輸入表單,報表生成器簡單GUI生成器工具集的簡單使用工具集開發(fā)擴展,多媒體中等2/3D動態(tài)圖形和多媒體復(fù)雜多媒體、虛擬現(xiàn)實、自然語言界面可復(fù)用開發(fā):主要考慮構(gòu)造在當前或未來工程中復(fù)用的構(gòu)件所需要的額外工作量:匹配生命周期需求的文檔主要考慮在軟件產(chǎn)品生命周期各階段對工程文檔的需求的適應(yīng)性來評估的。很低低標稱高很高極高未滿足絕大多數(shù)生命周期需求未滿足某些生命周期需求滿足生命周期需求超出生命周期需求大大超出生命周期需求n/a很低低標稱高很高極高n/a無跨項目跨程序跨產(chǎn)品線跨多條產(chǎn)品線執(zhí)行時間限制:主要通過系統(tǒng)或子系統(tǒng)預(yù)期消耗的時間與可用執(zhí)行時間的比率〔%〕來確定其執(zhí)行時間的限制等級:內(nèi)存限制:主要通過系統(tǒng)或子系統(tǒng)預(yù)期使用的內(nèi)存空間與可用空間的比率〔%〕來確定其內(nèi)存限制的等級: 內(nèi)存消耗包括動態(tài)鏈接或動態(tài)嵌入構(gòu)件所用存儲很低低標稱高很高極高n/an/a<50%50~70%70~85%85~95%很低低標稱高很高極高n/an/a<50%50~70%70~85%85~95%平臺易變性:平臺是指硬件和支持軟件的總體〔舊稱虛擬機〕。分析員能力:主要考慮分析和設(shè)計人員的分析和設(shè)計能力、生產(chǎn)率和徹底性、溝通和協(xié)作能力:很低低標稱高很高極高15分35分55分75分90分n/a很低低標稱高很高極高n/a每1年有主要變更,每1個月有次要變更每6個月有主要變更,每2周有次要變更每2個月有主要變更,每周有次要變更每2周有主要變更,每2天有次要變更n/a程序員能力:能力評價應(yīng)基于程序員作為小組的能力而不是作為個人能力。主要考慮能力、生產(chǎn)率、徹底性、溝通和協(xié)作能力,不考慮程序員的經(jīng)驗。人員連續(xù)性:主要根據(jù)人員的年周轉(zhuǎn)率來確定:應(yīng)用經(jīng)驗:根據(jù)工程組對應(yīng)用領(lǐng)域的經(jīng)驗,包括對應(yīng)用領(lǐng)域工作的經(jīng)驗和類似軟件的使用經(jīng)驗確很低低標稱高很高極高48%∕年24%/年12%∕年6%/年3%/年n/a很低低標稱高很高極高15分35分55分75分90分n/a定分級:平臺經(jīng)驗:平臺使用經(jīng)驗對生產(chǎn)率也有影響。平臺包括GUI、數(shù)據(jù)庫、網(wǎng)絡(luò)和分布式中間件等。語言和工具經(jīng)驗:除了編程語言方面的經(jīng)驗外,工程支持工具集方面的經(jīng)驗也影響開發(fā)工作量。很低低標稱高很高極高≤2個月6個月1年3年6年n/a很低低標稱高很高極高≤2個月6個月1年3年6年n/a很低低標稱高很高極高≤2個月6個月1年3年6年n/a16)軟件工具的使用:
多點開發(fā):主要根據(jù)兩個因素來劃分等級。很低低標稱高很高極高編輯編碼調(diào)試工具簡單的前端/后端CASE,很少集成基本生命周期工具,中度集成健壯成熟的生命周期工具,中度集成健壯成熟主動的生命周期工具,與過程、方法、復(fù)用的良好集成n/a很低低標稱高很高極高分布描述國際多城市和多企業(yè)多城市或多企業(yè)同一城市或大區(qū)域同一建筑或企業(yè)完全同處一地溝通描述電話郵件專用電話、傳真寬帶電子郵件窄帶電子郵件窄帶電子郵件、視頻會議多媒體交互18)要求的開發(fā)進度:這是描述整個工程進度伸縮的本錢驅(qū)動因子,它度量施加在開發(fā)工程組上的進度限制。以相對于標稱進度的加速或延長的百分比來劃分等級。 進度加速說明需要更多的工作量,在早期安排化解風險的措施和細化軟件體系結(jié)構(gòu),在后期完成測試和文檔工作;進度延長原那么上可以不影響本錢,但可能要執(zhí)行更多的工程管理工作。很低低標稱高很高極高標稱進度的75%標稱進度的85%標稱進度的100%標稱進度的130%標稱進度的160%n/a早期設(shè)計模型的工作量調(diào)整早期設(shè)計模型用在軟件工程的早期階段,采用了后架構(gòu)模型本錢驅(qū)動因子的簡化集。每個本錢驅(qū)動因子結(jié)合了后架構(gòu)模型的幾個本錢驅(qū)動因子。因素描述結(jié)合后架構(gòu)成本驅(qū)動因素RCPX產(chǎn)品可靠性和復(fù)雜性RELY,DATA,CPLX,DOCURUSE必要的復(fù)用RUSEPDIF平臺困難程度TIME,STOR,PVOLPERS人員能力ACAP,PCAP,PCONPREX人員經(jīng)驗AEXP,PEXP,LTEXFCIL設(shè)施TOOL,SITESCED進度SCED強調(diào)可靠性和文檔化很少少有些基本強烈很強烈極強烈產(chǎn)品復(fù)雜性很簡單簡單有些中等復(fù)雜很復(fù)雜極復(fù)雜數(shù)據(jù)庫規(guī)模小小小中等大很大極大等級極低很低低標稱高很高極高EMi0.490.600.831.001.331.912.72產(chǎn)品可靠性和復(fù)雜性〔RCPX〕時間和存儲限制≤50%≤50%65%80%90%平臺易變性很穩(wěn)定穩(wěn)定有些不穩(wěn)定不穩(wěn)定極不穩(wěn)定等級低標稱高很高極高EMi0.871.001.291.812.61平臺困難程度〔PDIF〕應(yīng)用、平臺、語言和工具經(jīng)驗≤3個月5個月9個月1年2年4年6年等級極低很低低標稱高很高極高EMi1.591.331.221.000.870.740.62分析員和程序員能力20分35分45分55分65分75分85分人員連續(xù)性45%30%20%12%9%6%4%等級極低很低低標稱高很高極高EMi2.121.621.261.000.830.6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國增韌母料數(shù)據(jù)監(jiān)測研究報告
- 2025年軍隊文職人員招聘之軍隊文職教育學模擬考試試卷A卷含答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備初級技能模擬考試試卷A卷含答案
- 2021-2022學年廣東省廣州四中初中部逸彩校區(qū)七年級(下)期中數(shù)學試卷(含答案)
- 2025年天津市專業(yè)技術(shù)人員公需考試試題-為中國式現(xiàn)代化提供強大動力和制度保障-黨的二十屆三中全會暨《中共中央關(guān)于進一步全面深化改革、推進中國式現(xiàn)代化的決定》總體解讀
- 高等教育自學考試《00074中央銀行概論》模擬試卷一
- 2025年大學英語六級考試預(yù)測試卷一
- 2023年同等學力申碩《英語》試題真題及答案
- 美容整形手術(shù)服務(wù)合同協(xié)議
- 紡織服裝產(chǎn)品質(zhì)量免責承諾書
- 2025年海南??谑兴畡?wù)局招聘事業(yè)單位人員35人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- COP生產(chǎn)一致性控制計劃
- 2025年電力人工智能多模態(tài)大模型創(chuàng)新技術(shù)及應(yīng)用報告-西安交通大學
- 天津2025年天津市機關(guān)后勤事務(wù)服務(wù)中心分支機構(gòu)天津市迎賓館招聘2人筆試歷年參考題庫附帶答案詳解
- 華東師大版七年級數(shù)學下冊“第1周周考”
- 教師論文撰寫培訓
- 2024年道路運輸企業(yè)安全生產(chǎn)管理人員證考試題庫
- EPC總承包管理方案
- 安全生產(chǎn)管理體系建設(shè)講解
- 學習雷鋒主題班會雷鋒日學習雷鋒精神-
- 事故隱患內(nèi)部舉報獎勵制度
評論
0/150
提交評論