SPM-軟件工作量估算_第1頁
SPM-軟件工作量估算_第2頁
SPM-軟件工作量估算_第3頁
SPM-軟件工作量估算_第4頁
SPM-軟件工作量估算_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件工作量估算軟件項(xiàng)目的規(guī)模估算

確定了軟件項(xiàng)目開發(fā)的生命周期模型,進(jìn)行了工作任務(wù)分解,就建立了一個(gè)項(xiàng)目任務(wù)整體的框架結(jié)構(gòu)。

另外一方面,一個(gè)良好的軟件項(xiàng)目計(jì)劃的建立,還必須估算準(zhǔn)備開發(fā)的軟件項(xiàng)目的任務(wù)大小、資源情況、投入的成本、限制因素等,進(jìn)行充分的估算,最后,根據(jù)估算,才能制定出合理的項(xiàng)目開發(fā)計(jì)劃。具體來說,要估算的內(nèi)容包括:軟件工作產(chǎn)品的規(guī)模軟件項(xiàng)目的工作量和成本軟件項(xiàng)目的進(jìn)度項(xiàng)目所需要的人員、計(jì)算機(jī)等資源什么是軟件項(xiàng)目的規(guī)模

在一個(gè)軟件項(xiàng)目中,項(xiàng)目組要完成的工作產(chǎn)品,是規(guī)模評(píng)估的對(duì)象,那么,項(xiàng)目組要完成的工作產(chǎn)品包括些什么?是最后要交付的(向用戶和向組織二個(gè)方面)程序、文檔。但是,項(xiàng)目組并不是只要完成最后交付的程序和文檔,就可以了。在交付前,要進(jìn)行確認(rèn)和驗(yàn)證測(cè)試,為此,要進(jìn)行質(zhì)量控制有關(guān)的工作。再往前追述,項(xiàng)目組還必須做配置管理、需求管理,以及項(xiàng)目管理。這些都有工作量。那么,軟件規(guī)模如何估算?現(xiàn)在,常用的辦法,是通過對(duì)軟件程序的規(guī)模進(jìn)行估算的辦法,來間接反映軟件項(xiàng)目的規(guī)模。規(guī)模是工作量的一個(gè)方面,并不能說規(guī)模大,工作量就大。在這方面,并不一定是完全等同的。顯然,接口控制程序的程序量可能并不大,但是程序量比較大的報(bào)表處理程序的工作量就大。這種不合理性,一般通過相關(guān)的程序復(fù)雜度、難度,加以調(diào)節(jié)。這個(gè)問題,在相應(yīng)的評(píng)估算法中,采用加權(quán)因子的方法,加以調(diào)整。同樣,程序規(guī)模的增長,會(huì)帶來支持和管理工作成指數(shù)規(guī)模的增長。因此,這也是需要注意的地方。用什么來估算軟件項(xiàng)目的規(guī)模

軟件的規(guī)模計(jì)算,從有軟件的一天開始,就是一個(gè)沒有解決的問題。沒有解決的難題是,現(xiàn)在越來越?jīng)]有辦法給出評(píng)價(jià)程序量多少的統(tǒng)一尺度。在程序設(shè)計(jì)的早期,直接的編碼量(字節(jié)數(shù))是度量程序量的簡單辦法。但是,沒有多久,這個(gè)辦法就受到了挑戰(zhàn)。因?yàn)橛幸粋€(gè)好的算法(例如:好的循環(huán)控制),可以節(jié)省大量的程序編碼,但工作量(設(shè)計(jì)所花的時(shí)間、測(cè)試的復(fù)雜度)等,反而并沒有節(jié)省開發(fā)的精力和時(shí)間。因此,程序量作為工作量的度量標(biāo)準(zhǔn),顯然是不正確的。那么現(xiàn)在,在完全不同的系統(tǒng)、應(yīng)用環(huán)境下,提出統(tǒng)一和易于運(yùn)用的度量標(biāo)準(zhǔn),是非常困難的。為了解決問題,在CMM2的計(jì)劃管理中,已經(jīng)提出了一些度量的實(shí)例,包括:功能點(diǎn)數(shù)、特征點(diǎn)數(shù)、編碼行數(shù)(LOC)、需求數(shù)或頁數(shù)等。還可以有:模塊數(shù)目,表格數(shù),用戶界面屏數(shù),及數(shù)據(jù)結(jié)構(gòu)等,作為規(guī)模評(píng)估的參考。度量軟件項(xiàng)目規(guī)模的尺度,是一個(gè)相對(duì)值,而不存在絕對(duì)值。軟件項(xiàng)目規(guī)模的估算方法——LOC法

LOC(LineofCode)——

一個(gè)衡量軟件項(xiàng)目規(guī)模最常用的方法:

LOC指所有的可執(zhí)行的源代碼行數(shù),包括可交付的工作控制語言(JCL:JobControlLanguage)語句、數(shù)據(jù)定義、數(shù)據(jù)類型聲明、等價(jià)聲明、輸入/輸出格式聲明等。單位編碼行(1LOC)的價(jià)值和人月均編碼行數(shù)可以體現(xiàn)一個(gè)軟件生產(chǎn)組織的生產(chǎn)能力。組織可以根據(jù)對(duì)歷史項(xiàng)目的審計(jì)來核算組織的單行編碼價(jià)值。

概念說明LOCNCLOCCLOCLOC=NCLOC+CLOC例如,某軟件公司統(tǒng)計(jì)發(fā)現(xiàn)該公司每一萬行C語言源代碼形成的源文件(.c和.h文件)約為250K。某項(xiàng)目的源文件大小為3.75M,則可估計(jì)該項(xiàng)目源編碼大約為15萬行,該項(xiàng)目累計(jì)投入工作量為240人月,每人月費(fèi)用為10000元(包括人均工資、福利、辦公費(fèi)用公灘等),則該項(xiàng)目中單位LOC的價(jià)值為:(240×10000)/150000=16元/LOC該項(xiàng)目的人月均編碼行數(shù)為:

150000/240=625LOC/人月軟件項(xiàng)目規(guī)模的估算方法——Delphi法

Delphi法是最流行的專家評(píng)估技術(shù),在沒有歷史數(shù)據(jù)的情況下,這種方式適用于評(píng)定過去與將來,新技術(shù)與特定程序之間的差別,但專家“專”的程度及對(duì)項(xiàng)目的理解程度是工作中的難點(diǎn),盡管Delphi技術(shù)可以減輕這種偏差,專家評(píng)估技術(shù)在評(píng)定一個(gè)新軟件實(shí)際成本時(shí)通常用得不多,但是,這種方式對(duì)決定其它模型的輸入時(shí)特別有用。Delphi法的步驟是:

1、協(xié)調(diào)人向各專家提供項(xiàng)目規(guī)格和估計(jì)表格;

2、協(xié)調(diào)人召集小組會(huì)各專家討論與規(guī)模相關(guān)的因素;

3、各專家匿名填寫迭代表格;

4、協(xié)調(diào)人整理出一個(gè)估計(jì)總結(jié),以迭代表的形式返回專家;

5、協(xié)調(diào)人召集小組會(huì),討論較大的估計(jì)差異;

6、專家復(fù)查估計(jì)總結(jié)并在迭代表上提交另一個(gè)匿名估計(jì);

7、重復(fù)4-6,直到達(dá)到一個(gè)最低和最高估計(jì)的一致。軟件項(xiàng)目規(guī)模的估算方法——類比法

類比法適合評(píng)估一些與歷史項(xiàng)目在應(yīng)用領(lǐng)域、環(huán)境和復(fù)雜度的相似的項(xiàng)目,通過新項(xiàng)目與歷史項(xiàng)目的比較得到規(guī)模估計(jì)。類比法估計(jì)結(jié)果的精確度取決于歷史項(xiàng)目數(shù)據(jù)的完整性和準(zhǔn)確度。因此,用好類比法的前提條件之一是組織建立起較好的項(xiàng)目后評(píng)價(jià)與分析機(jī)制,對(duì)歷史項(xiàng)目的數(shù)據(jù)分析是可信賴的。類比法的基本步驟是:

1、整理出項(xiàng)目功能列表和實(shí)現(xiàn)每個(gè)功能的編碼行數(shù);

2、標(biāo)識(shí)出每個(gè)功能列表與歷史項(xiàng)目的相同點(diǎn)和不同點(diǎn),特別要注意歷史項(xiàng)目做得不夠的地方;

3、通過步驟1和2得出各個(gè)功能的估計(jì)值;

4、產(chǎn)生規(guī)模估計(jì)。前面介紹的代碼行技術(shù)是比較簡單的定量估算軟件規(guī)模的方法。這種方法依據(jù)以往開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù),估算實(shí)現(xiàn)一個(gè)功能所需要的源程序行數(shù)。當(dāng)有以往開發(fā)類似產(chǎn)品的歷史數(shù)據(jù)可供參考時(shí),這種方法估算出的數(shù)值還是比較準(zhǔn)確的。代碼行技術(shù)代碼行技術(shù)的優(yōu)點(diǎn):代碼是所有軟件項(xiàng)目開發(fā)都包含的“產(chǎn)品”,而且代碼行數(shù)很容易計(jì)算。代碼行技術(shù)的缺點(diǎn):源程序僅是軟件配置的一個(gè)成分,用它的規(guī)模代表整個(gè)軟件規(guī)模不太合理;用不同語言實(shí)現(xiàn)同一個(gè)軟件所需的代碼行數(shù)并不相同,即它依賴于所使用的編程語言;不適合于非過程語言。功能點(diǎn)技術(shù)是為克服代碼行技術(shù)缺點(diǎn)提出的;它涉及多種因素的度量方法;功能點(diǎn)技術(shù)根據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模,所以在系統(tǒng)設(shè)計(jì)初期就能夠估算出軟件項(xiàng)目的規(guī)模。信息域特性產(chǎn)品信息域的5個(gè)特性:輸入項(xiàng)數(shù)(Inp)

用戶向軟件輸入的項(xiàng)數(shù),這些輸入為軟件提供了面向應(yīng)用的數(shù)據(jù)輸出項(xiàng)數(shù)(Out)

軟件向用戶輸出的項(xiàng)數(shù),它們向用戶提供面向應(yīng)用的信息查詢數(shù)(Inq)

查詢,即一次聯(lián)機(jī)輸入,它導(dǎo)致軟件以聯(lián)機(jī)輸出方式產(chǎn)生某種即時(shí)響應(yīng)。主文件數(shù)(Maf)

邏輯主文件(數(shù)據(jù)的一個(gè)邏輯集合)的數(shù)目。外部接口數(shù)(Inf)。

機(jī)器可讀的全部接口的數(shù)量。功能點(diǎn)技術(shù)基本原理使用5個(gè)信息域的“加權(quán)和”CT與14個(gè)技術(shù)因素的“復(fù)雜性調(diào)節(jié)值”Fi來計(jì)算功能點(diǎn)FP:TCF估算功能點(diǎn)的步驟1、計(jì)算未調(diào)整的功能點(diǎn)數(shù)CT首先把信息域的每個(gè)特性都分類為簡單級(jí)、平均級(jí)或復(fù)雜級(jí),根據(jù)等級(jí)按下表分配功能點(diǎn)數(shù):估算功能點(diǎn)的步驟簡單平均復(fù)雜輸入系數(shù)a1345輸出系數(shù)a2457查詢系數(shù)a3346文件系數(shù)a471015接口系數(shù)a55710特性系數(shù)復(fù)雜級(jí)別然后用下式計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP:CT=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf估算功能點(diǎn)的步驟2、計(jì)算技術(shù)復(fù)雜因子TCF軟件復(fù)雜度的估算基于14個(gè)問題,逐一對(duì)各問題做出復(fù)雜度估計(jì),其取值范圍是0-5。估算功能點(diǎn)的步驟“沒有影響”取值0“偶然的”取值1“適中的”取值2“普通的”取值3“重要的”取值4“極重要的”取值5系統(tǒng)需要可靠的備份和復(fù)原嗎?需要數(shù)據(jù)通信嗎?有分布處理功能嗎?性能很關(guān)鍵嗎?系統(tǒng)是否在一個(gè)已有的、很實(shí)用的操作環(huán)境中運(yùn)行?系統(tǒng)需要聯(lián)機(jī)入口嗎?聯(lián)機(jī)入口需要在多屏幕或多操作之間切換以完成輸入?系統(tǒng)聯(lián)機(jī)需要更新主文件嗎?系統(tǒng)的輸入、輸出、文件或查詢很復(fù)雜嗎?系統(tǒng)內(nèi)部處理復(fù)雜嗎?代碼需要被設(shè)計(jì)成可復(fù)用的嗎?設(shè)計(jì)中要包括轉(zhuǎn)換及安裝嗎?系統(tǒng)的設(shè)計(jì)支持不同組織的多次安裝嗎?系統(tǒng)的設(shè)計(jì)有利于用戶修改和使用嗎?

功能點(diǎn)技術(shù)功能點(diǎn)技術(shù)沒有涉及系統(tǒng)本身的算法復(fù)雜性。因此,它僅僅適合算法比較簡單的事務(wù)處理軟件的規(guī)模度量;對(duì)算法較復(fù)雜的大型軟件系統(tǒng)并不適應(yīng)。工作量估算軟件估算模型使用由經(jīng)驗(yàn)導(dǎo)出的公式來預(yù)測(cè)軟件開發(fā)工作量,其中,工作量是軟件規(guī)模(LOC或FP)的函數(shù),工作量的單位通常是人月(pm)。靜態(tài)單變量模型動(dòng)態(tài)多變量模型COCOMO2模型支持大多數(shù)估算模型的經(jīng)驗(yàn)數(shù)據(jù),都是從有限個(gè)項(xiàng)目的樣本集中總結(jié)出來的,因此,沒有一個(gè)估算模型可以適應(yīng)所有類型的軟件和開發(fā)環(huán)境。靜態(tài)單變量模型靜態(tài)單變量的總體結(jié)構(gòu)形式如下:

其中,A、B、C是由經(jīng)驗(yàn)數(shù)據(jù)導(dǎo)出的常數(shù),E是以人月為單位的工作量,ev是估算變量(KLOC或FP)。下面給出典型的靜態(tài)單變量模型:面向KLOC的估算模型面向FP的估算模型面向KLOC的估算模型Walston_Felix(IBM模型)Bailey_Basili模型Boehm簡單模型

Doty模型(KLOC>9時(shí)適合)

面向FP的估算模型Albrecht&Gaffney模型Maston,Barnett和Mellichamp模型靜態(tài)單變量的估算模型從上面可以看出,對(duì)于相同的KLOC或LP,用不同的模型估算的結(jié)果各不相同。主要原因: 這些模型都僅僅依據(jù)若干領(lǐng)域中有限個(gè)項(xiàng)目的經(jīng)驗(yàn)數(shù)據(jù)推導(dǎo)出來的,適應(yīng)范圍有限。因此,必須根據(jù)當(dāng)前項(xiàng)目特點(diǎn)選擇適應(yīng)的估算模型,并依據(jù)需要對(duì)相應(yīng)模型作出調(diào)整。動(dòng)態(tài)多變量模型動(dòng)態(tài)多變量模型,即軟件方程式,它是根據(jù)4000多個(gè)當(dāng)代軟件項(xiàng)目中收集的生產(chǎn)率數(shù)據(jù)推導(dǎo)出來的。該模型把工作量看作是軟件規(guī)模和開發(fā)時(shí)間的函數(shù),其形式如下:動(dòng)態(tài)多變量模型其中:E是以人月或人年為單位的工作量;t是以月或年為單位的項(xiàng)目持續(xù)時(shí)間;B是特殊因子,它隨著對(duì)測(cè)試、質(zhì)量保證、文檔及管理技術(shù)的需求的增加而緩慢增加。對(duì)于較小程序(KLOC=5~15),B=0.16;而對(duì)于超過70KLOC的程序,B=0.39;P是生產(chǎn)率參數(shù),它反映下屬因素對(duì)工作量的影響:總體過程成熟度及管理水平;使用良好的軟件工程實(shí)踐的程度;使用程序設(shè)計(jì)語言的級(jí)別;軟件環(huán)境狀態(tài);軟件項(xiàng)目組的經(jīng)驗(yàn)和技術(shù);應(yīng)用系統(tǒng)的復(fù)雜性等。動(dòng)態(tài)多變量模型P的取值: 開發(fā)實(shí)時(shí)嵌入式軟件時(shí),P的典型值為2000; 開發(fā)電信系統(tǒng)時(shí),P=10000; 對(duì)于商業(yè)軟件來說,P=28000。從上式可以看出,開發(fā)同一個(gè)軟件產(chǎn)品(即LOC固定)的時(shí)候,如果把項(xiàng)目持續(xù)時(shí)間延長,則可降低完成項(xiàng)目所需要的工作量。COCOMO模型COCOMO模型—構(gòu)造性成本模型1981年Boehm在《軟件工程經(jīng)濟(jì)學(xué)》中首次提出了COCOMO模型。1997年Boehm等人提出的COCOMO2模型,是原始的COCOMO模型模型的修正版,它反映了十多年來人們?cè)谲浖杀竟浪惴矫嫠e累的經(jīng)驗(yàn)。COCOMO模型COCOMO模型給出了3個(gè)層次的工作量估算模型。這3個(gè)層次的模型在估算工作量時(shí),對(duì)軟件細(xì)節(jié)考慮的詳盡程度逐級(jí)增加。這些模型既可以用于不同類型的項(xiàng)目,也可以用于同一個(gè)項(xiàng)目的不同開發(fā)階段。這三個(gè)層次的估算模型分別是:基本COCOMO模型中間COCOMO模型詳細(xì)COCOMO模型COCOMO模型基本原理COCOMO模型具有以下形式:

其中,MM是開發(fā)工作量;KLOC是估計(jì)的源代碼行數(shù)(以千行為單位);a是模型系數(shù);fi是成本因素COCOMO模型基本原理每個(gè)成本因素根據(jù)它的重要程度和影響大小賦予一定的值,可把這些成本因素劃分為:產(chǎn)品因素計(jì)算機(jī)因素人員因素項(xiàng)目因素。1.101.041.001.081.23開發(fā)進(jìn)度的要求(SCED)0.830.911.001.101.24軟件工具的使用(TOOL)0.820.911.001.101.24程序設(shè)計(jì)實(shí)踐(MODP)0.951.001.071.14程序設(shè)計(jì)語言的經(jīng)驗(yàn)(LEXP)0.901.001.101.21開發(fā)環(huán)境的經(jīng)驗(yàn)(VEXP)0.700.861.001.171.42程序員水平(PCAP)0.820.911.001.131.29應(yīng)用經(jīng)驗(yàn)(AEXP)0.710.861.001.191.46系統(tǒng)分析員的能力(ACAP)1.151.071.000.87開發(fā)環(huán)境的響應(yīng)速度(TURN)1.301.151.000.87軟件開發(fā)環(huán)境的變化(VIRT)1.561.211.061.00內(nèi)存約束(STOR)1.661.301.111.00執(zhí)行時(shí)間約束(TIME)1.651.301.151.000.850.70軟件復(fù)雜性(CPLX)1.161.081.000.94數(shù)據(jù)庫規(guī)模(DATA)1.401.151.000.880.75軟件可靠性(RELY)極高很高高正常低很低級(jí)別成本因素基本COCOMO模型基本COCOMO模型是一個(gè)靜態(tài)單變量模型,它把軟件系統(tǒng)所需要的成本看作是程序大小單一變量的函數(shù),用于系統(tǒng)級(jí)的粗略估算。工作量MM=C×KLOCa(人月|人年)開發(fā)時(shí)間D=cEd(月|年)中間COCOMO模型中間COCOMO模型是一個(gè)靜態(tài)多變量模型,它把軟件系統(tǒng)所需要的成本看作是程序大小和一系列成本驅(qū)動(dòng)屬性的函數(shù)。該模型將軟件系統(tǒng)區(qū)分為系統(tǒng)和部件兩個(gè)層次;系統(tǒng)是由部件組成。詳細(xì)COCOMO模型詳細(xì)COCOMO模型除了包括中級(jí)COCOMO模型中所考慮的因素以外,并對(duì)工作量調(diào)節(jié)因子在軟件過程中每個(gè)步驟的影響作出詳細(xì)評(píng)估。該模型則將軟件系統(tǒng)分為系統(tǒng)、子系統(tǒng)、模塊三個(gè)層次。對(duì)規(guī)模估算的修正

為了補(bǔ)充單一算法的不足,實(shí)際上,軟件項(xiàng)目經(jīng)理常采用其他方法,來進(jìn)行“校正”和補(bǔ)充。這些方法是: (1)把大塊的任務(wù)分解為小規(guī)模的任務(wù)。例如:使用WBS對(duì)任務(wù)分解,然后對(duì)分解到的最“末梢”功能,進(jìn)行規(guī)模估算,然后,在進(jìn)行相加。這種方法的好處是化復(fù)雜為簡單。當(dāng)我們無法把握大系統(tǒng)的規(guī)模時(shí),我們可以比較有把握地估算小模塊的規(guī)模。但是,問題是,各單獨(dú)模塊的規(guī)模之合,一般(從工作量上)并不等于系統(tǒng)的工作量之合。這就是我們說到的系統(tǒng)集成的工作量。 (2)采用與歷史數(shù)據(jù)比較、修正的方法。 (3)采用最大值、最小值和最可能值折算的方法。 (4)對(duì)同一項(xiàng)目,至少使用二種以上工具和方法進(jìn)行測(cè)算,避免一種方法的局限性。` (5)使用同行專家評(píng)審、評(píng)估小組集體投票取折中值的方法,博采眾長。 (6)逐步逼近的方法;不把評(píng)估結(jié)果作為最終值,而是看成是一個(gè)逐步逼近的近似值,在以后的再評(píng)估中,可以進(jìn)行調(diào)整。當(dāng)項(xiàng)目剛剛啟動(dòng),做第一次測(cè)算時(shí),可以允許有30%以上的波動(dòng)范圍。在完成需求分析階段,希望能達(dá)到波動(dòng)控制在30%的范圍內(nèi)的目標(biāo)。當(dāng)基本完成詳細(xì)設(shè)計(jì)的時(shí)候,估計(jì)的編碼規(guī)模,應(yīng)只能有20%、甚至更低的誤差。對(duì)規(guī)模估算的迭代修正

隨著軟件項(xiàng)目進(jìn)程的逐步展開,需求被逐步地精細(xì)描述和定義,任務(wù)被依據(jù)需求進(jìn)行分配,使用任務(wù)分解結(jié)構(gòu)(WBS)的方法來建立需求(產(chǎn)品架構(gòu))與任務(wù)(軟件開發(fā)過程)之間直接的、準(zhǔn)確的聯(lián)系,并實(shí)現(xiàn)詳細(xì)化、文檔化,工作產(chǎn)品被分解成各個(gè)工作元素。產(chǎn)品架構(gòu)必然要反映出項(xiàng)目的整體設(shè)計(jì)概念、層次結(jié)構(gòu),并從分解后的組件和模塊功能分層中體現(xiàn)出來。隨著產(chǎn)品架構(gòu)的精化,進(jìn)一步定義出了開發(fā)各產(chǎn)品元素所需的過程任務(wù)。再把這些任務(wù)分配給不同的工程師。其目的是使任務(wù)分解架構(gòu)中每一項(xiàng)任務(wù),可以由個(gè)人或幾個(gè)人的小組在較短的時(shí)間內(nèi)完成??傊?,任務(wù)分解架構(gòu)越詳細(xì),則任務(wù)分配越明確,產(chǎn)品估算越準(zhǔn)確,項(xiàng)目計(jì)劃越完善,項(xiàng)目跟蹤也越精確。在這個(gè)基礎(chǔ)上,經(jīng)過一段時(shí)間的運(yùn)行,一些典型的模塊已經(jīng)完成,所沒有完成的只是相類似的模塊等待接著繼續(xù)開發(fā)。這時(shí),對(duì)每一個(gè)產(chǎn)品元素的規(guī)模進(jìn)行再估算和精細(xì)化調(diào)整的條件已經(jīng)具備,根據(jù)一段時(shí)間的經(jīng)驗(yàn),重新調(diào)整軟件項(xiàng)目規(guī)模估算,逐步求精,將獲得更接近實(shí)際的估算結(jié)果。序號(hào)系數(shù)因素因素取值準(zhǔn)則得分1234511創(chuàng)造性要求沒有-在不同設(shè)備上重編程序很少-具有更嚴(yán)格的要求有限-具有新的接口相當(dāng)多-具有相當(dāng)多的技巧重大的-應(yīng)用先進(jìn)的技巧

21通用程度(數(shù)據(jù)庫、中間平臺(tái)、操作系統(tǒng)等)很強(qiáng)的限制-單一目標(biāo)有限制-功能的范圍是參量化的有限的靈活性-允許格式上有變化多用途格式有一個(gè)主題領(lǐng)域很靈活能多設(shè)備范圍廣泛

31工作范圍同一辦公室同一棟樓同一城市跨城市跨國

41.2目標(biāo)范圍的變化沒有極少偶爾有經(jīng)常不斷

51.2體系結(jié)構(gòu)單一結(jié)構(gòu)C/SB/SB/A/SC/A/S三層以上跨語言平臺(tái)

61設(shè)備復(fù)雜性單機(jī)、常規(guī)處理單機(jī)、常規(guī)處理,擴(kuò)充的外設(shè)系統(tǒng)多機(jī),標(biāo)準(zhǔn)外設(shè)系統(tǒng)多機(jī),復(fù)雜的外設(shè)系統(tǒng)一機(jī)控制多機(jī)自動(dòng)I/O和顯示

71.2人員1~2人3~5人5~10人10~18人18人以上

85開發(fā)投資6人月以下6人月至3人年3人年至10人年10人年至30人年30人年以上

91.2重要程度數(shù)據(jù)處理對(duì)單一用戶關(guān)系有影響對(duì)用戶群關(guān)系有影響單位成敗國家安危

101對(duì)程序改變的完成時(shí)間要求2周以上1~2周3~7天1~3天24小時(shí)以內(nèi)

111對(duì)數(shù)據(jù)輸入的響應(yīng)時(shí)間要求1天以上60分鐘~1天1~60分鐘3秒~1分鐘3秒鐘以內(nèi)

121.2編程環(huán)境4GL(PB、Delphi、ASP等)4GL(VC、CBuilder、JBuilder)專業(yè)軟件平臺(tái)小中大型機(jī)平臺(tái)匯編語言

131并行的軟件開發(fā)沒有有限中等程度很多完全的并行開發(fā)

141.2代碼復(fù)用程度80%~100%60%~80%40%~60%20%~40%0%~20%

151終端用戶數(shù)12~56~2021~5051~

總分

規(guī)模評(píng)分必須具備20~3031~4849~6970~8889~100可行性研究報(bào)告√√√√√項(xiàng)目開發(fā)計(jì)劃√√√√√風(fēng)險(xiǎn)管理計(jì)劃表

√√√技術(shù)白皮書

√√√軟件需求說明書

√√√數(shù)據(jù)要求說明書

據(jù)實(shí)際決定據(jù)實(shí)際決定據(jù)實(shí)際決定據(jù)實(shí)際決定系統(tǒng)概要設(shè)計(jì)說明書

√√√詳細(xì)設(shè)計(jì)說明書

√√數(shù)據(jù)庫設(shè)計(jì)說明書

據(jù)實(shí)際決定據(jù)實(shí)際決定據(jù)實(shí)際決定據(jù)實(shí)際決定用戶手冊(cè)或使用說明√√√√√操作手冊(cè)

√√√代碼√√√√√測(cè)試計(jì)劃(單元)

√√√測(cè)試分析報(bào)告(單元)

√√√測(cè)試計(jì)劃(集成)

√√√√測(cè)試分析報(bào)告(集成)

√√√√測(cè)試計(jì)劃(系統(tǒng))

√測(cè)試分析報(bào)告(系統(tǒng))

√項(xiàng)目開發(fā)總結(jié)報(bào)告√√√√√COCOMO模型COCOMO模型包括基本模型、中級(jí)模型和詳細(xì)模型三個(gè)子模型COCOMO基本模型是一個(gè)靜態(tài)單變量模型,它利用以最終交付的源代碼行數(shù)作為自變量的函數(shù)來計(jì)算軟件的開發(fā)工作量和開發(fā)工期。COCOMO中級(jí)模型是在用源代碼行數(shù)作為自變量的函數(shù)計(jì)算軟件開發(fā)工作量的基礎(chǔ)上,再用涉及產(chǎn)品、硬件、人員、項(xiàng)目等多方面屬性的影響因素來調(diào)整工作量的估算。COCOMO詳細(xì)模型包括了COCOMO中級(jí)模型的所有特性,但在用上述影響因素來調(diào)整工作量估算時(shí),還需要考慮對(duì)軟件工程過程中的每一個(gè)步驟的影響。附錄:關(guān)于COCOMO模型COCOMO基本模型成本測(cè)算的基本原理:根據(jù)最終交付的行數(shù)來計(jì)算開發(fā)工作量,并進(jìn)而估計(jì)開發(fā)工期。COCOMO基本模型成本測(cè)算的公式如下:

PM=C1*(KDSI)K1

TDEV=C2*(MM)K2

PM—代表開發(fā)該軟件所需要的人月數(shù);

KDSI—所交付的千行源代碼數(shù)

TDEV—該軟件所需的開發(fā)時(shí)間,以月為單位

C1、C2、K1、K2—常量參數(shù),采用不同的開發(fā)方式取值不同開發(fā)方式C1K1C2K2組織型方式2.41.052.50.38半分離方式3.01.122.50.35嵌入方式3.61.202.50.32COCOMO基本模型的常量參數(shù)值COCOMO基本模型從軟件規(guī)模和開發(fā)方式的特征出發(fā),將開發(fā)工作分成組織型(有機(jī)式)、半分離型(半相連式)、嵌入型三種開發(fā)方式。

軟件項(xiàng)目的工作量估算

軟件開發(fā)項(xiàng)目的工作量,主要指軟件開發(fā)各過程中所花費(fèi)的工作量。與傳統(tǒng)的制造業(yè)不同,軟件的成本基本可以不考慮原材料和能源的消耗,主要是人的勞動(dòng)的消耗。另外,軟件也沒有一個(gè)明顯的制造過程,它的開發(fā)過程具有明顯的一次性過程特征。因此,軟件開發(fā)工作量的估算,應(yīng)是從軟件計(jì)劃、需求分析、設(shè)計(jì)、編碼、單元測(cè)試、集成測(cè)試到認(rèn)證測(cè)試,整個(gè)開發(fā)過程所花費(fèi)的工作量,作為工作量測(cè)算的依據(jù)。我們?cè)谇耙徽乱呀?jīng)介紹了軟件的生命周期模型,采用什么樣的生命周期模型,對(duì)使用什么樣的工作量估算算法,有很大的影響。實(shí)際上,有些算法適合某一模型,有些則適合另一模型。采用面向?qū)ο蠹夹g(shù)為主的開發(fā)與傳統(tǒng)的開發(fā)技術(shù),在工作量的估算上,當(dāng)然也不同。這些,都需要我們根據(jù)軟件開發(fā)的具體特點(diǎn),進(jìn)行選擇。軟件項(xiàng)目的工作量估算與進(jìn)度估算的關(guān)系

軟件項(xiàng)目工作量估算的結(jié)果是任務(wù)的人力和需時(shí)。在工作量估算時(shí),度量的任務(wù)需時(shí)是討論以任務(wù)元素、子任務(wù)、項(xiàng)目任務(wù)為單位(我們稱為:單位任務(wù))的需時(shí),它是計(jì)算成本、制定進(jìn)度計(jì)劃的依據(jù)。而在進(jìn)度估算時(shí),單位任務(wù)的需時(shí),又是時(shí)間進(jìn)度計(jì)劃安排的基本數(shù)據(jù)來源。

二者最主要的區(qū)別是:工作量估算時(shí)對(duì)時(shí)間的測(cè)算,注重的是最后獲得的時(shí)間總量,或者是不同階段、不同工作性質(zhì)、不同成本因素下的時(shí)間量。例如:工作量估算結(jié)果會(huì)按人力資源層次的不同,進(jìn)行分類:系統(tǒng)設(shè)計(jì)師需要多少人月、一般編程人員需要多少人月等。或者,在需求分析階段,需要多少人月、在設(shè)計(jì)階段需要多少人月等。這樣,可以比較容易地獲得人力資源需求和成本估算結(jié)果。在進(jìn)度估算時(shí),注重的是任務(wù)單元的時(shí)間長度、任務(wù)之間的時(shí)間先后關(guān)系和聯(lián)系關(guān)系。在做計(jì)劃進(jìn)度安排時(shí),重點(diǎn)考慮單位任務(wù)的時(shí)間歷時(shí),不考慮由誰和完成什么樣的單位任務(wù)(當(dāng)然不會(huì)完全不考慮,例如,需要調(diào)整或協(xié)調(diào)的時(shí)候)

軟件項(xiàng)目工作量的估算方法

軟件工作量的估算,可以采取不同的操作方法,以下是幾種常用的方法:(1)自頂向下估算法:首先對(duì)整個(gè)系統(tǒng)進(jìn)行總工作量估算,再考慮子系統(tǒng),把總工作量逐步分解為各組成部分的工作量,并考慮到開發(fā)該軟件所需要的資源、人員、質(zhì)量保證、系統(tǒng)集成安裝等的工作量。優(yōu)點(diǎn)是估算的工作量小,速度快。缺點(diǎn)是對(duì)項(xiàng)目中的特殊困難估計(jì)不足,估算出來的工作量盲目性大,有時(shí)會(huì)遺漏被開發(fā)軟件的某些部分。(2)自底向上估算法:先對(duì)開發(fā)各個(gè)子系統(tǒng)或每個(gè)模塊的工作量進(jìn)行估算,再逐步相加。這是一種常見的估算方法。優(yōu)點(diǎn)是估算各個(gè)部分的準(zhǔn)確性高。缺點(diǎn)是缺少各項(xiàng)子任務(wù)之間相互聯(lián)系所需要的工作量,還缺少許多與軟件開發(fā)有關(guān)的系統(tǒng)級(jí)工作量(配置管理、質(zhì)量管理、項(xiàng)目管理)。所以往往估算值偏低,必須用其它方法進(jìn)行檢驗(yàn)和校正。(3)相似比較估算法:把開發(fā)項(xiàng)目的工作分割到一定的程度,和過去的工作進(jìn)行比較,對(duì)其中相同的或相近的部分,用已有的數(shù)據(jù)進(jìn)行估算,對(duì)不同的部分再用其它的方法估算。優(yōu)點(diǎn)是可以提高估算的準(zhǔn)確程度,缺點(diǎn)是不容易明確“類似”的界限。(4)Delphi估算法:請(qǐng)多位項(xiàng)目經(jīng)理、系統(tǒng)分析員或其他專家,利用專家的經(jīng)驗(yàn)來評(píng)估軟件的開發(fā)成本。優(yōu)點(diǎn)是可以擯棄無根據(jù)的估算值,缺點(diǎn)是一些組員可能會(huì)受權(quán)威或政治因素的影響。軟件項(xiàng)目工作量的計(jì)算

工作量評(píng)估評(píng)估是對(duì)項(xiàng)目有關(guān)工作的、以人時(shí)、人月、人年為單位進(jìn)行的計(jì)算,它是成本和預(yù)算的依據(jù)。工作量估計(jì)的結(jié)果,一般是多少個(gè)人的多少工作時(shí)間。項(xiàng)目工作量估算的來源,是項(xiàng)目任務(wù)的WBS分解。因此,在獲得工作量的度量值之前,首先是對(duì)任務(wù)的分解。當(dāng)然,在項(xiàng)目的不同階段,對(duì)任務(wù)的認(rèn)識(shí)和理解的程度不同,所能分解的“粒度”不同,獲得的工作量估算的準(zhǔn)確性也會(huì)不同,這是不用再說明的。在前面,我們已經(jīng)介紹了WBS分解方法。有了任務(wù)分解(暫時(shí)不考慮集成的相關(guān)工作),就可以對(duì)分解后獲得的任務(wù)單元的性質(zhì),進(jìn)行定義。例如:是概要設(shè)計(jì)、架構(gòu)設(shè)計(jì),還是接口設(shè)計(jì)等。定義的目的是分配不同級(jí)別的人力資源,并估計(jì)在這樣(或不是這樣)的人力資源條件下的任務(wù)歷時(shí)時(shí)間。軟件項(xiàng)目工作量估算的案例

經(jīng)過測(cè)算,開發(fā)電信綜合營業(yè)系統(tǒng)的工作量估計(jì)是122個(gè)人月。任務(wù)名稱人力資源名稱工作量(人月)資源數(shù)量(人)工期(月)項(xiàng)目管理項(xiàng)目經(jīng)理10110系統(tǒng)需求分析系統(tǒng)設(shè)計(jì)師422系統(tǒng)概要設(shè)計(jì)系統(tǒng)設(shè)計(jì)師221系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)設(shè)計(jì)師632系統(tǒng)架構(gòu)設(shè)計(jì)系統(tǒng)架構(gòu)師111核心模塊編碼高級(jí)程序員1243業(yè)務(wù)模塊編碼高級(jí)程序員1553一般模塊編碼初級(jí)程序員3284單元測(cè)試測(cè)試工程師1628集成測(cè)試高級(jí)測(cè)試師422文檔編寫文檔編輯20210合計(jì)

122

軟件項(xiàng)目工作量估算的案例

下圖是該項(xiàng)目的人力資源分布(按月)曲線。根據(jù)公司的人力資源情況,可以分析這個(gè)分布是否可以得到滿足。軟件項(xiàng)目工作量的其他影響因素

在做軟件項(xiàng)目工作量的估計(jì)時(shí),應(yīng)考慮到以下幾個(gè)其他因素:項(xiàng)目復(fù)雜度、人為因素和工程因素、以外因素:復(fù)雜度包括:問題領(lǐng)域、算法復(fù)雜性、程序設(shè)計(jì)語言、軟件復(fù)用量、可靠性等性能要求、系統(tǒng)平臺(tái)復(fù)雜性、資源的限制等。人為因素包括:開發(fā)人員的能力、經(jīng)驗(yàn)、穩(wěn)定性,開發(fā)的組織管理能力、用戶的配合等。工程因素:包括開發(fā)技術(shù)的難度、進(jìn)度的緊迫度、項(xiàng)目團(tuán)隊(duì)的凝聚力、多地點(diǎn)開發(fā)等。意外事件也是一個(gè)影響因素,意外事件可以有以下幾種:工程師的事假、產(chǎn)假和病假天數(shù);工程師參加與項(xiàng)目無關(guān)的培訓(xùn)的天數(shù);工程師需要為其它項(xiàng)目做軟件質(zhì)量保證工作的時(shí)間;工程師需要做非項(xiàng)目有關(guān)的工作,例如參加員工會(huì)議,軟件工程過程小組的工作等;軟件項(xiàng)目工作量的其他構(gòu)成因素

在我們進(jìn)行軟件項(xiàng)目工作量估算的時(shí)候,我們可能會(huì)比較集中地考慮需求分析、設(shè)計(jì)、編碼、測(cè)試等的工作量,但往往會(huì)忽略以下的一些工作量:用于各模塊、子系統(tǒng)、軟件系統(tǒng)與硬件/網(wǎng)絡(luò)系統(tǒng)等之間集成的測(cè)試、調(diào)試等的工作量;用于編寫用戶文檔和設(shè)計(jì)文檔的工作量;用于需求管理、配置管理、質(zhì)量管理、風(fēng)險(xiǎn)管理等支持過程的工作量;用于項(xiàng)目管理的工作量。有關(guān)這些部分工作量的度量,目前還沒有看到比較系統(tǒng)地、適用的度量和估算方法的介紹。因?yàn)樽鳛轫?xiàng)目管理,本身就是全過程、隨時(shí)性和零碎的,因此,對(duì)于它們的工作度量,確實(shí)更為困難。但是,這部分的工作又是非常關(guān)鍵和不可或缺,工作量也是比較大的。因此,如何規(guī)范地測(cè)量,是項(xiàng)目管理的一個(gè)新課題。軟件項(xiàng)目工作量的其他估算

軟件項(xiàng)目的成本估算,是一個(gè)非常重大的課題。在CMM2軟件項(xiàng)目計(jì)劃管理活動(dòng)的第7項(xiàng),是對(duì)關(guān)鍵計(jì)算機(jī)資源的評(píng)估。所有項(xiàng)目必須進(jìn)行關(guān)鍵計(jì)算機(jī)資源評(píng)估,并且必須將填寫完成的關(guān)鍵計(jì)算機(jī)資源評(píng)估調(diào)查表存入項(xiàng)目文件夾中。對(duì)計(jì)算機(jī)資源的評(píng)估,可以借助一些軟件工具。在CMM2的計(jì)劃管理活動(dòng)中,第9個(gè)活動(dòng)是對(duì)軟件項(xiàng)目的風(fēng)險(xiǎn),進(jìn)行識(shí)別和評(píng)估。在制定軟件項(xiàng)目計(jì)劃的時(shí)候,對(duì)所有項(xiàng)目都必須進(jìn)行風(fēng)險(xiǎn)評(píng)估,并且必須將填寫完成的風(fēng)險(xiǎn)評(píng)估調(diào)查表存入項(xiàng)目文件夾中。為了便于對(duì)軟件風(fēng)險(xiǎn)管理能有一個(gè)系統(tǒng)的認(rèn)識(shí)和理解,我們把軟件風(fēng)險(xiǎn)的識(shí)別、評(píng)估,統(tǒng)一放在《軟件項(xiàng)目的風(fēng)險(xiǎn)管理》中集中討論。軟件項(xiàng)目的進(jìn)度估算

在前面的介紹中,我們已經(jīng)討論了軟件項(xiàng)目工作量估算中的時(shí)間和軟件項(xiàng)目進(jìn)度估算中時(shí)間概念的不同。在進(jìn)行項(xiàng)目的進(jìn)度估算時(shí),我們要做的工作是:估算要完成的單位任務(wù)(系統(tǒng)、子系統(tǒng)、模塊、單元)的時(shí)間長度;確定標(biāo)志階段任務(wù)完成的里程碑事件;確定重要階段點(diǎn)的評(píng)審日期。這些工作的結(jié)果,一般表現(xiàn)在一張項(xiàng)目進(jìn)度表里。軟件項(xiàng)目的項(xiàng)目進(jìn)度表

軟件項(xiàng)目進(jìn)度表是組織規(guī)范項(xiàng)目組進(jìn)度計(jì)劃管理最基本的工具,除非在客戶需求中有特殊指明,否則,組織應(yīng)要求組織內(nèi)的所有項(xiàng)目,都應(yīng)該采用公司所建議使用的工具和項(xiàng)目進(jìn)度表模板,來制定進(jìn)度表。作為一個(gè)大型的綜合性項(xiàng)目,計(jì)劃可能涉及到許多方面,例如:供貨計(jì)劃、硬件和網(wǎng)絡(luò)安裝調(diào)試計(jì)劃、軟件開發(fā)計(jì)劃、項(xiàng)目管理計(jì)劃等。它們時(shí)間又是相互配合、相互銜接的。我們的計(jì)劃模板,包括以下內(nèi)容: (1)

項(xiàng)目實(shí)施總計(jì)劃 (2)

項(xiàng)目管理計(jì)劃 (3)

交貨計(jì)劃 (4)

軟件技術(shù)實(shí)施計(jì)劃 (5)

硬件技術(shù)實(shí)施計(jì)劃 下表是一個(gè)硬件實(shí)施進(jìn)度計(jì)劃的例子:

項(xiàng)目名稱

編號(hào)

項(xiàng)目技術(shù)實(shí)施(硬件)計(jì)劃

制訂日期

版本:1.0序號(hào)工作內(nèi)容里程碑描述開始完成責(zé)任配合備注1項(xiàng)目正式啟動(dòng)

1.1提交系統(tǒng)解決方案

1.2系統(tǒng)解決方案修改、確認(rèn)

1.3詳細(xì)設(shè)計(jì)(路由/IP地址規(guī)劃)

2環(huán)境平臺(tái)

2.1提交《機(jī)房環(huán)境安裝條件表》

2.2準(zhǔn)備機(jī)房安裝環(huán)境

3系統(tǒng)安裝

3.1交貨驗(yàn)收

3.2設(shè)備安裝調(diào)試

3.3系統(tǒng)調(diào)試

3.4提交測(cè)試大綱

3.5系統(tǒng)測(cè)試

審批擬制

4系統(tǒng)割接

4.1提交割接計(jì)劃

4.2割接計(jì)劃確認(rèn)、修改

4.3割接

5系統(tǒng)驗(yàn)收

5.1提交竣工文檔

5.2系統(tǒng)驗(yàn)收

5.3簽署系統(tǒng)驗(yàn)收?qǐng)?bào)告

6培訓(xùn)

6.1制定培訓(xùn)計(jì)劃

6.2編制培訓(xùn)材料

6.3使用人員培訓(xùn)

6.4維護(hù)人員培訓(xùn)

對(duì)每一項(xiàng)任務(wù)估算時(shí)間進(jìn)度

模板實(shí)際上已經(jīng)為我們分解和定義了項(xiàng)目任務(wù)。按照模板,項(xiàng)目進(jìn)度的估算可以按以下步驟進(jìn)行:(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論