軟件工程經(jīng)濟(jì)學(xué)_第1頁(yè)
軟件工程經(jīng)濟(jì)學(xué)_第2頁(yè)
軟件工程經(jīng)濟(jì)學(xué)_第3頁(yè)
軟件工程經(jīng)濟(jì)學(xué)_第4頁(yè)
軟件工程經(jīng)濟(jì)學(xué)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程經(jīng)濟(jì)學(xué)蔡堅(jiān)勇第1章 為什么需要軟件工程經(jīng)濟(jì)學(xué)兩個(gè)案例的主要結(jié)論是:好的軟件工程不僅關(guān)注編程,而且還要協(xié)調(diào)人與經(jīng)濟(jì)的因素。第一個(gè)案例得到的經(jīng)驗(yàn)當(dāng)我們開(kāi)始面臨實(shí)際的軟件工程情況時(shí),就會(huì)發(fā)現(xiàn)它們不僅包括編程問(wèn)題,也包括非編程問(wèn)題如操作問(wèn)題、預(yù)算問(wèn)題、進(jìn)度問(wèn)題,還有在決定用戶需求的相對(duì)優(yōu)先級(jí)時(shí)遇到的問(wèn)題。繞過(guò)非編程問(wèn)題,只關(guān)注編程,通常會(huì)導(dǎo)致隨后的諸多麻煩經(jīng)濟(jì)學(xué)編程方案的主要價(jià)值在于,它使系統(tǒng)分析員能夠從多個(gè)方面看問(wèn)題從經(jīng)濟(jì)學(xué)角度分析軟件工程的各種情況,能夠得到更加令人滿意的編程方案第二個(gè)案例得到的經(jīng)驗(yàn)運(yùn)用經(jīng)濟(jì)學(xué)原理時(shí),不僅要從材料經(jīng)濟(jì)學(xué)角度考慮問(wèn)題,還要從人類經(jīng)濟(jì)學(xué)(即社會(huì)經(jīng)濟(jì)學(xué))角度考慮問(wèn)

2、題。根據(jù)材料經(jīng)濟(jì)學(xué)方法做出的決策,將會(huì)帶來(lái)諸如對(duì)有限自然資源的損耗等危險(xiǎn)的長(zhǎng)期后果,或者迫使人們從事的毫無(wú)意義的重復(fù)工作,如流水線之類的工作。軟件工程經(jīng)濟(jì)學(xué)強(qiáng)調(diào)人類經(jīng)濟(jì)學(xué)方法,這是很重要的,將純定量的面向貨幣的材料經(jīng)濟(jì)學(xué)方法進(jìn)行擴(kuò)展,從而使人們?cè)谧鼋?jīng)濟(jì)決策時(shí),將對(duì)人際關(guān)系的定性考慮包括進(jìn)去。材料經(jīng)濟(jì)學(xué)材料經(jīng)濟(jì)學(xué)是純粹的定量經(jīng)濟(jì)學(xué)決策方法最初是在18、19世紀(jì)由Adam Smith等人提出,在20世紀(jì)由John Keynes等人精煉為高度形式化的學(xué)科材料經(jīng)濟(jì)學(xué)的主要指導(dǎo)原則所有的決策標(biāo)準(zhǔn)都可由貨幣等價(jià)物來(lái)表示機(jī)構(gòu)應(yīng)該根據(jù)利潤(rùn)最大化的原則做出決策材料經(jīng)濟(jì)學(xué)基于這樣一個(gè)假設(shè)如果人與機(jī)構(gòu)都遵循材料經(jīng)濟(jì)

3、學(xué)的指導(dǎo)原則行事,那么最大多數(shù)的人將受益主要優(yōu)點(diǎn)使決策問(wèn)題分析與解決起來(lái)相對(duì)簡(jiǎn)單,能相對(duì)方便地執(zhí)行定量計(jì)劃和控制活動(dòng)對(duì)材料經(jīng)濟(jì)學(xué)的質(zhì)疑近年來(lái),很多人開(kāi)始質(zhì)疑這個(gè)假設(shè)的有效性有證據(jù)顯示:根據(jù)材料經(jīng)濟(jì)學(xué)方法做出的決策,將會(huì)帶來(lái)諸如對(duì)有限自然資源的損耗等危險(xiǎn)的長(zhǎng)期后果,或者迫使人們從事的毫無(wú)意義的重復(fù)工作,如流水線之類的工作。另一個(gè)破壞傳統(tǒng)的材料經(jīng)濟(jì)學(xué)假設(shè)有效性的趨勢(shì)是:從面向生產(chǎn)為主的經(jīng)濟(jì),正在向以面向服務(wù)為主的經(jīng)濟(jì)轉(zhuǎn)變的全球趨勢(shì)。服務(wù)的基本目標(biāo)是滿足人們的需求,很顯然,材料經(jīng)濟(jì)學(xué)方法需要進(jìn)行擴(kuò)展,應(yīng)該考慮到評(píng)價(jià)服務(wù)有效性時(shí)所涉及的更為定性的人際關(guān)系方面。軟件工程的核心作用軟件工程在向面向服務(wù)經(jīng)濟(jì)

4、的過(guò)渡中起著核心作用軟件工程經(jīng)濟(jì)學(xué)強(qiáng)調(diào)人類經(jīng)濟(jì)學(xué)方法,這是很重要的,將純定量的面向貨幣的材料經(jīng)濟(jì)學(xué)方法進(jìn)行擴(kuò)展,從而使人們?cè)谧鼋?jīng)濟(jì)決策時(shí),將對(duì)人際關(guān)系的定性考慮包括進(jìn)去第2章 軟件工程目標(biāo) 編程專家總是將較大的系統(tǒng)進(jìn)行簡(jiǎn)化或者分而治之,這樣做能夠使大多數(shù)編程問(wèn)題易于處理。如果這樣做是正確的(實(shí)際上也的確如此),那么我們?nèi)绾巫C明:再在力求系統(tǒng)簡(jiǎn)單的同時(shí)考慮會(huì)使軟件工程工作變得更復(fù)雜的人與經(jīng)濟(jì)因素是正確的?答案是雙重的:不考慮人與經(jīng)濟(jì)因素,結(jié)果是我們負(fù)擔(dān)不起的。前面的兩個(gè)例子已經(jīng)揭示了因?yàn)樵谲浖こ讨泻鲆暳巳伺c經(jīng)濟(jì)因素而帶來(lái)的典型的令人不滿的結(jié)果。通過(guò)在軟件工程控制循環(huán)中嵌入分而治之的編程活動(dòng),并

5、在控制循環(huán)中包括根據(jù)一個(gè)更為全面的目標(biāo)結(jié)構(gòu)對(duì)編程產(chǎn)品進(jìn)行定期的評(píng)審與迭代,能在很大程度上保留兩種方法的優(yōu)勢(shì)。軟件工程定義軟件:是與系統(tǒng),特別是計(jì)算機(jī)系統(tǒng)相關(guān)的一整套程序、過(guò)程、數(shù)據(jù)和相關(guān)文檔。工程:是科學(xué)與數(shù)學(xué)的應(yīng)用,通過(guò)這種應(yīng)用使自然界中物質(zhì)屬性和能源在結(jié)構(gòu)、機(jī)械、產(chǎn)品、系統(tǒng)和過(guò)程方面變得對(duì)人類有用。軟件工程:軟件工程是科學(xué)與數(shù)學(xué)的應(yīng)用,通過(guò)這種應(yīng)用,借助計(jì)算機(jī)程序、過(guò)程和相關(guān)文檔,發(fā)揮計(jì)算機(jī)設(shè)備的能力,對(duì)人類有用。定義中包含的兩個(gè)關(guān)鍵概念一是我們對(duì)軟件的定義中,除了計(jì)算機(jī)程序之外,還包括很多東西因而,要成為一個(gè)好的軟件工程師意味著除了學(xué)會(huì)如何編寫計(jì)算機(jī)程序之外,還要學(xué)會(huì)很多其他技能。如學(xué)習(xí)

6、為計(jì)算機(jī)系統(tǒng)編制好的文檔、數(shù)據(jù)庫(kù)、運(yùn)行過(guò)程等所需的技巧。二是“對(duì)人類有用”從實(shí)踐的觀點(diǎn)來(lái)看,這個(gè)短語(yǔ)說(shuō)明作為軟件工程師,應(yīng)承擔(dān)起責(zé)任以確保軟件產(chǎn)品真正對(duì)人類有用。軟件趨勢(shì)軟件是一個(gè)巨大的而且越來(lái)越昂貴的產(chǎn)品。軟件對(duì)人類福利產(chǎn)生巨大的而且日益增長(zhǎng)的影響。軟件需求的增長(zhǎng)很大程度上是源于這樣一個(gè)事實(shí):計(jì)算機(jī)硬件變得越來(lái)越便宜、可靠和種類繁多,人們發(fā)現(xiàn)對(duì)于機(jī)械性工作自動(dòng)化能夠帶來(lái)越來(lái)越多的優(yōu)點(diǎn)。軟件工程目標(biāo)結(jié)構(gòu)兩個(gè)子目標(biāo)要在軟件工程中獲得完全成功,必須注意兩個(gè)主要的子目標(biāo):實(shí)現(xiàn)一套成功的軟件產(chǎn)品。執(zhí)行一個(gè)成功的軟件開(kāi)發(fā)與維護(hù)過(guò)程。每個(gè)子目標(biāo)都有三個(gè)相似的組成部分:人際關(guān)系資源工程程序工程成功的軟件工程

7、是在這些子目標(biāo)間實(shí)現(xiàn)適當(dāng)平衡的結(jié)果,即軟件產(chǎn)品和軟件過(guò)程之間的平衡。GOALS方法軟件工程的GOALS方法(生命周期軟件面向目標(biāo)方法)是一個(gè)過(guò)程,通過(guò)它,軟件工程目標(biāo)結(jié)構(gòu)能用于指導(dǎo)我們?nèi)绾卧敿?xì)說(shuō)明、開(kāi)發(fā)和維護(hù)軟件GOALS是一種目標(biāo)管理方法,其中的目標(biāo)軟件工作目標(biāo)結(jié)構(gòu)中的多元目標(biāo)構(gòu)成這樣一來(lái),GOALS方法的好處就與其他目標(biāo)管理方法的好處相類似GOALS的主要好處為產(chǎn)品和過(guò)程目標(biāo)建立明確的個(gè)人承諾為檢查目標(biāo)的完備性提供一個(gè)框架為達(dá)成目標(biāo)建立起經(jīng)過(guò)良好描述的子目標(biāo)順序如果某些子目標(biāo)沒(méi)有達(dá)成,能提供較早的警告為調(diào)和定量與定性目標(biāo)提供檢查點(diǎn)GOALS生命周期軟件的面向目標(biāo)方法Goal-Oriente

8、d Approach to Life-cycle Software定義:軟件工程的GOALS方法是一個(gè)過(guò)程,通過(guò)它,軟件工程目標(biāo)結(jié)構(gòu)能用于指導(dǎo)我們?nèi)绾卧敿?xì)說(shuō)明、開(kāi)發(fā)和維護(hù)軟件第3章 軟件生命周期中的階段及其活動(dòng)軟件生命周期的瀑布模型瀑布模型主要特點(diǎn)瀑布模型主要有如下的全局性特點(diǎn):每一階段都以驗(yàn)證與確認(rèn)(V&V)活動(dòng)作為結(jié)束,其目的是盡可能多地消除本階段產(chǎn)品中存在的問(wèn)題。在隨后階段里,盡可能對(duì)前面階段的產(chǎn)品進(jìn)行迭代。子目標(biāo)的定義(1/3)瀑布模型生命周期中一個(gè)階段的成功完成,與軟件過(guò)程的程序工程目標(biāo)序列中對(duì)應(yīng)目標(biāo)的實(shí)現(xiàn)相一致。這些子目標(biāo)定義為以下活動(dòng)的實(shí)現(xiàn):1.可行性 定義軟件產(chǎn)品的首選概念,并

9、確定其生命周期可行性以及與其它可選概念相比較的優(yōu)勢(shì)。2.需求 對(duì)軟件產(chǎn)品所需功能、接口和性能要求的完整并經(jīng)確認(rèn)的說(shuō)明書。3.產(chǎn)品設(shè)計(jì) 產(chǎn)品的整體軟硬件體系結(jié)構(gòu)、控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及其他必要成分(如用戶手冊(cè)草稿和測(cè)試計(jì)劃等)的完整并經(jīng)確認(rèn)的說(shuō)明書。4.詳細(xì)設(shè)計(jì) 每一個(gè)程序組件(100行源指令的例行程序)的控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、界面關(guān)系、規(guī)模、關(guān)鍵算法、假設(shè)等的完整并經(jīng)過(guò)確認(rèn)的說(shuō)明書。子目標(biāo)的定義(2/3)5.編碼 完整的并經(jīng)過(guò)驗(yàn)證的程序組件集6.集成 由各軟件組件組成的能完成適當(dāng)功能的軟件產(chǎn)品7.實(shí)施 全功能的可運(yùn)行的軟硬件系統(tǒng),包括如程序、數(shù)據(jù)轉(zhuǎn)換、安裝和培訓(xùn)之類的目標(biāo)8.維護(hù) 軟硬件系統(tǒng)全部功

10、能的不斷更新。每次更新都重復(fù)這個(gè)子目標(biāo)9.淘汰 產(chǎn)品執(zhí)行的功能清晰地過(guò)渡給繼任者(如果有的話)子目標(biāo)的定義(3/3)實(shí)現(xiàn)上述這些有序子目標(biāo)的過(guò)程,一定會(huì)涉及到兩個(gè)額外的程序工程子目標(biāo)驗(yàn)證與確認(rèn)(V&V)和配置管理(CM)在軟件生命周期的每個(gè)階段中都要使用到它們。對(duì)其作用描述如下:驗(yàn)證與確認(rèn)(Verification and Validation)實(shí)現(xiàn)每一個(gè)程序工程生命周期子目標(biāo)的一個(gè)重要組成部分,就是對(duì)它的中間軟件產(chǎn)品能否確實(shí)滿足目標(biāo)的驗(yàn)證與確認(rèn)。我們分別如下定義驗(yàn)證與確認(rèn):驗(yàn)證:確定軟件產(chǎn)品與其說(shuō)明書之間對(duì)應(yīng)的真實(shí)性。確認(rèn):確定軟件產(chǎn)品對(duì)于其操作任務(wù)是否適合或者是否有價(jià)值。瀑布模型經(jīng)濟(jì)學(xué)的兩

11、個(gè)前提實(shí)現(xiàn)子目標(biāo)瀑布模型的經(jīng)濟(jì)學(xué)基本原理是基于如下兩個(gè)前提的:為了得到成功的軟件產(chǎn)品,我們無(wú)論如何必須實(shí)現(xiàn)每個(gè)階段所有的子目標(biāo)。任何與模型不同的子目標(biāo)實(shí)現(xiàn)順序,都會(huì)使所構(gòu)造的軟件產(chǎn)品沒(méi)那么成功。WBS為達(dá)到項(xiàng)目預(yù)算的計(jì)劃和控制目的,把項(xiàng)目活動(dòng)元素組成成一定的層次結(jié)構(gòu)是非常有用的,這種層次結(jié)構(gòu)被稱之為工作分解結(jié)構(gòu)(WBS)分層體系軟件WBS包括兩個(gè)分層體系,項(xiàng)目能以最適當(dāng)?shù)姆绞綄蓚€(gè)分層體系關(guān)聯(lián)起來(lái)。這兩個(gè)分層體系是:產(chǎn)品分層體系,它表示各種軟件組成部分(例程、模塊、子系統(tǒng)等)如何協(xié)調(diào)地構(gòu)成整個(gè)軟件系統(tǒng)?;顒?dòng)分層體系,它表示處理軟件組件的各項(xiàng)活動(dòng)。產(chǎn)品分層體系活動(dòng)分層體系軟件工作分解結(jié)構(gòu)實(shí)例第4

12、章 基本COCOMO模型根據(jù)軟件產(chǎn)品中交付的源指令千行數(shù)(KDSI),來(lái)估算最普通軟件產(chǎn)品開(kāi)發(fā)所需人月(MM)的公式:MM=2.4(KDSI)1.05以月為單位來(lái)估算開(kāi)發(fā)進(jìn)度(TDEV)的公式TDEV=2.5(MM)0.38COCOMO模型的版本一般將COCOMO模型分為三個(gè)層次的模型:基本COCOMO模型:用于系統(tǒng)開(kāi)發(fā)的初期,估算整個(gè)系統(tǒng)的工作量(包括軟件維護(hù))和軟件開(kāi)發(fā)所需要的時(shí)間;中間COCOMO模型:用于估算各個(gè)子系統(tǒng)的工作量和開(kāi)發(fā)時(shí)間;詳細(xì)COCOMO模型:用于估算獨(dú)立的軟部件,如子系統(tǒng)內(nèi)部的各個(gè)模塊。COCOMO模型的應(yīng)用基礎(chǔ)軟件生命周期階段和活動(dòng)的定義附加的定義和假設(shè)附加的定義和

13、假設(shè)1基本的成本驅(qū)動(dòng)因子是項(xiàng)目開(kāi)發(fā)中交付的源指令(DSI)數(shù)。其定義如下:交付 這個(gè)術(shù)語(yǔ)通常意味著必須排除不可交付的支持軟件,如測(cè)試驅(qū)動(dòng)程序。然而,如果這些軟件的開(kāi)發(fā)需要付出與交付軟件相同的努力,有其自身的評(píng)審、測(cè)試計(jì)劃、文檔等等,那么它們也應(yīng)該計(jì)算在內(nèi)。源指令 該術(shù)語(yǔ)包括由項(xiàng)目組成員編寫的、并能又預(yù)處理程序、編譯程序和匯編程序聯(lián)合轉(zhuǎn)換為機(jī)器人代碼的所有程序指令。它不包括注釋卡片和未經(jīng)修改的公用軟件。它包括作業(yè)控制語(yǔ)言、格式語(yǔ)句和數(shù)據(jù)申明。指令被定義為多行代碼或卡片穿孔碼。因此,一行中包含兩條或更多條的源語(yǔ)句,應(yīng)該算作一條指令附加的定義和假設(shè)2COCOMO成本估算所涵蓋的開(kāi)發(fā)期,開(kāi)始于產(chǎn)品設(shè)計(jì)

14、階段之初(對(duì)軟件需求評(píng)審的成功完成;見(jiàn)表3-1),并且結(jié)束于集成與測(cè)試階段之末(軟件驗(yàn)收評(píng)審的成功完成)。其他階段的成本和進(jìn)度單獨(dú)進(jìn)行估算。3COCOMO模型成本估算包含并且僅僅包含圖3-6b所示的那些軟件工作分解結(jié)構(gòu)(WBS)所顯示的活動(dòng)。因此,開(kāi)發(fā)估算包括管理和文檔編制的工作量,但不包括在開(kāi)發(fā)期間發(fā)生的一些工作量,如用戶培訓(xùn)、安裝計(jì)劃和移植計(jì)劃。4COCOMO估算包括了上述假設(shè)3中說(shuō)明的在項(xiàng)目里所有直接計(jì)費(fèi)勞動(dòng)力的活動(dòng)。因此,它們應(yīng)包括項(xiàng)目管理員和程序庫(kù)管理員,但不包括計(jì)算機(jī)中心操作員、人事部門職員、秘書、高層管理人員、房屋管理員等等。附加的定義和假設(shè)5一個(gè)COCOMO人月由152小時(shí)的工

15、作時(shí)間組成。我們可以發(fā)現(xiàn)這與除去節(jié)日、假期和病假外余下的實(shí)際月平均工作時(shí)間是一致的。為了將以人月為單位的COCOMO估算轉(zhuǎn)換成其他單位,使用如下方法:人時(shí):乘以152人日:乘以19人年:除以126COCOMO估算假設(shè)項(xiàng)目能夠得到開(kāi)發(fā)人員和客戶兩方面的良好管理。例如,非生產(chǎn)性的閑散時(shí)間由管理員和用戶控制得很小。附加的定義和假設(shè)7COCOMO假設(shè)需求說(shuō)明書在計(jì)劃與需求階段完成之后不需要很大的改變。某些改進(jìn)和重新說(shuō)明是不可避免的,但任何重大的修改或新增的性能應(yīng)該由修訂的成本估算來(lái)反映。8詳細(xì)COCOMO模型假設(shè)軟件成本驅(qū)動(dòng)因子的影響是依賴于階段的?;綜OCOMO模型和中間COCOMO模型除了區(qū)分開(kāi)

16、發(fā)和維護(hù)階段之外不作該假設(shè)。9階段成本包括在該階段發(fā)生的所有成本。因此,更新集成與測(cè)試計(jì)劃、以及完成驗(yàn)收測(cè)試計(jì)劃的成本,都包含在詳細(xì)設(shè)計(jì)的階段成本中。COCOMO軟件開(kāi)發(fā)過(guò)程特征COCOMO所假設(shè)的基礎(chǔ)軟件開(kāi)發(fā)過(guò)程強(qiáng)調(diào)以下主要特征:1在整個(gè)系統(tǒng)設(shè)計(jì)的重要工作開(kāi)始之前,先讓相對(duì)較少的人員對(duì)軟件需求說(shuō)明書進(jìn)行仔細(xì)的定義和確認(rèn)。2在詳細(xì)設(shè)計(jì)和編碼的重要工作開(kāi)始之前,由稍多一些但仍相對(duì)較少的一組人員對(duì)軟件系統(tǒng)設(shè)計(jì)進(jìn)行直至單元級(jí)別的仔細(xì)定義和確認(rèn)。3由較多的一組程序員并行地執(zhí)行詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試,在一個(gè)基線穩(wěn)定的系統(tǒng)設(shè)計(jì)框架內(nèi),通常依據(jù)計(jì)劃好的增量開(kāi)發(fā)過(guò)程來(lái)進(jìn)行。4每個(gè)增量的集成及測(cè)試都是基于大量

17、的早期測(cè)試計(jì)劃而進(jìn)行的,并且?guī)缀跛械腻e(cuò)誤排除都要經(jīng)過(guò)走查和單元測(cè)試的過(guò)程。5為了給用戶和開(kāi)發(fā)人員提供產(chǎn)品運(yùn)行性能的某些早期反饋,大量的文檔編制工作在早期就開(kāi)始進(jìn)行。軟件項(xiàng)目階段、活動(dòng)與里程碑人月估算與貨幣估算COCOMO模型避免以具體的一種貨幣為單位估算勞動(dòng)力成本,因?yàn)樵趧趧?dòng)力成本中應(yīng)該包括哪些項(xiàng)(不承擔(dān)管理費(fèi)用?還是承擔(dān)?包括退休金計(jì)劃?辦公室租金?利潤(rùn)?)的問(wèn)題上,各機(jī)構(gòu)之間存在巨大差異,而且,比起具體的貨幣、考慮到現(xiàn)行通貨膨脹率和國(guó)際貨幣波動(dòng),人月是一個(gè)更加穩(wěn)定的量。為了把COCOMO模型人月估算轉(zhuǎn)換為貨幣估算,在簡(jiǎn)單性和準(zhǔn)確性之間的最佳折衷方案是對(duì)每一主要階段采用不同的每人月平均貨幣

18、數(shù),以便說(shuō)明通貨膨脹和每一階段中員工的薪金水平間的差異?;綜OCOMO模型的工作量和進(jìn)度公式組織型模式的軟件項(xiàng)目,其基本工作量公式為:MM=2.4(KDSI)1.05對(duì)于組織型開(kāi)發(fā)模式的軟件項(xiàng)目,其基本進(jìn)度公式為:TDEV=2.5(MM)0.38MM:人月TDEV:以月為單位來(lái)估算開(kāi)發(fā)進(jìn)度FSP:編碼階段所需的人員規(guī)模不經(jīng)濟(jì)經(jīng)濟(jì)學(xué)術(shù)語(yǔ)中,把在更大項(xiàng)目中生產(chǎn)率的降低稱為規(guī)模不經(jīng)濟(jì)較大的軟件產(chǎn)品出現(xiàn)規(guī)模不經(jīng)濟(jì)的主要原因如下:1為了編制能支持更多程序員并行工作所需的單元級(jí)的完整說(shuō)明書,相對(duì)需要進(jìn)行更多的產(chǎn)品設(shè)計(jì)。2驗(yàn)證與確認(rèn)更多的需求和設(shè)計(jì)說(shuō)明書相對(duì)需要更多的工作量。3即使有徹底定義的說(shuō)明書,在較

19、大型項(xiàng)目中,程序員仍然需要花相對(duì)較多的時(shí)間進(jìn)行交流和解決接口問(wèn)題。4為集成單元模塊,需要相對(duì)較多的集成活動(dòng)。5一般來(lái)說(shuō),驗(yàn)證與確認(rèn)軟件產(chǎn)品相對(duì)需要較多的廣泛測(cè)試。6管理項(xiàng)目需要相對(duì)較多的工作量年變化量(ACT):在一年時(shí)間里(典型的),軟件產(chǎn)品的小部分源指令所發(fā)生的變化通過(guò)增加或修改。給定估算的開(kāi)發(fā)工作量(MM)D,則估算基本年維護(hù)量(MM)AM的COCOMO模型公式是:(MM)AM=1.0(ACT)(MM)D第5章 基本COCOMO模型的開(kāi)發(fā)模式基本COCOMO模型,它只用1個(gè)預(yù)測(cè)變量(用交付源指令數(shù)所表示的規(guī)模)和3種軟件開(kāi)發(fā)模式來(lái)估算開(kāi)發(fā)軟件產(chǎn)品所需的工作量軟件開(kāi)發(fā)的三種COCOMO模式

20、組織型模式半獨(dú)立模式嵌入模式組織型模式組織型模式是相對(duì)較小的軟件團(tuán)隊(duì)在非常熟悉的內(nèi)部環(huán)境中開(kāi)發(fā)軟件。與項(xiàng)目有關(guān)的大多數(shù)人在機(jī)構(gòu)中有著相關(guān)系統(tǒng)的廣泛開(kāi)發(fā)經(jīng)驗(yàn),并且十分了解所開(kāi)發(fā)的系統(tǒng)會(huì)對(duì)機(jī)構(gòu)的目標(biāo)產(chǎn)生怎樣的影響。大多數(shù)項(xiàng)目人員能夠在早期就對(duì)項(xiàng)目做出有益的貢獻(xiàn),在了解項(xiàng)目整體上是關(guān)于什么的、和其他每個(gè)人在做什么這些問(wèn)題時(shí),并不會(huì)產(chǎn)生大量的項(xiàng)目通訊費(fèi)用。組織型模式組織型模式的項(xiàng)目對(duì)軟件滿足其需求和接口規(guī)格說(shuō)明書的要求是相對(duì)比較寬松的。如果出現(xiàn)這樣一種情況:要求軟件產(chǎn)品與初始需求或接口說(shuō)明書嚴(yán)格一致,將會(huì)引起大量返工,那么項(xiàng)目團(tuán)隊(duì)一般可以協(xié)商適當(dāng)修改說(shuō)明書,從而使開(kāi)發(fā)更容易一些,而且對(duì)該說(shuō)明書的修改用

21、戶也比較容易接受。組織型模式這是組織型模式項(xiàng)目的生產(chǎn)率較高、而且規(guī)模不經(jīng)濟(jì)效應(yīng)較小的另一個(gè)原因。組織型模式軟件項(xiàng)目的其他因素特征是:一個(gè)總的來(lái)說(shuō)還算穩(wěn)定的開(kāi)發(fā)環(huán)境,很少需要相關(guān)新硬件和操作系統(tǒng)程序的同時(shí)開(kāi)發(fā)。對(duì)創(chuàng)新的數(shù)據(jù)處理體系與算法的需要最小。對(duì)項(xiàng)目提前完成的額外費(fèi)用相對(duì)較低。相對(duì)較小的規(guī)模。幾乎不存在組織型模式的項(xiàng)目開(kāi)發(fā)出大于50 KDSI的新軟件產(chǎn)品(較大 的組織型模式產(chǎn)品通常通過(guò)現(xiàn)有軟件來(lái)開(kāi)發(fā)的)。這些因素還趨向于與較高的項(xiàng)目生產(chǎn)率和較小的項(xiàng)目規(guī)模不經(jīng)濟(jì)效應(yīng)相關(guān)聯(lián)。三種模式之間的差別在生產(chǎn)率和規(guī)模效應(yīng)上三種模式之間的差別是很顯著的。半獨(dú)立型模式的數(shù)據(jù)在這一點(diǎn)上還有所爭(zhēng)議,但在組織型模式

22、和嵌入型模式之間的差別則是非常明顯的。第6章 基本COCOMO模型的活動(dòng)分布基本COCOMO模型包括按階段的總體人員分布,它與雷利曲線模型十分相似。主要的區(qū)別如下:基本COCOMO模型直到產(chǎn)品設(shè)計(jì)全部完成并通過(guò)V&V之后,才給項(xiàng)目增加大量編程人員;這樣,它向最多人員安排的接近比雷利曲線明顯要晚,并且更為陡峭。COCOMO模型反映出在計(jì)劃與需求階段人員連續(xù)而緩慢的增加,而雷利曲線在產(chǎn)品設(shè)計(jì)階段開(kāi)始時(shí)是以零個(gè)人員作為起點(diǎn)的,然后迅速建起一個(gè)大型組織在前端增加了另外一個(gè)小雷利曲線以說(shuō)明這一結(jié)果。第7章 中間COCOMO模型的產(chǎn)品級(jí)估算中間COCOMO模型,是對(duì)基本COCOMO模型的相兼容擴(kuò)展,它所具

23、有的較高的精確性和詳細(xì)程度使其更適于作為軟件產(chǎn)品定義的更詳細(xì)階段中的成本估算。中間COCOMO模型包含15個(gè)附加的預(yù)測(cè)變量,它們說(shuō)明了基本COCOMO模型未解釋到的其余大量的軟件項(xiàng)目成本變化因素。影響軟件開(kāi)發(fā)成本的因素類型應(yīng)用類型;輸入和輸出的類型數(shù);程序中輸入輸出指令、控制指令和算術(shù)指令的百分比;分析員和程序員的平均經(jīng)驗(yàn);所用的計(jì)算機(jī)配置和所使用的程序設(shè)計(jì)語(yǔ)言;產(chǎn)品決策中需要協(xié)同工作的人員數(shù);項(xiàng)目活動(dòng)中所需的人員出差次數(shù)。其他額外因素,如程序流的復(fù)雜性,分類的安全約束,以及對(duì)結(jié)構(gòu)化編程技術(shù)、審查技術(shù)、自頂向下開(kāi)發(fā)技術(shù)和主程序員組這些技術(shù)的使用等為了將大量的候選因素減少到相對(duì)便于管理的程度,從

24、而能用于實(shí)際的軟件成本估算,對(duì)這些候選因素進(jìn)行了兩大類考察:通用性。這將排除那些在特定情況下,相對(duì)較小范圍內(nèi)才有意義的因素:如出差次數(shù),分類的安全約束。獨(dú)立性。在這一類考察中將排除那些與產(chǎn)品規(guī)模密切相關(guān)的因素(例如,輸入輸出的類型數(shù)),并將項(xiàng)目中那些高度相關(guān)的因素壓縮成一個(gè)因素(例如,使用結(jié)構(gòu)化程序設(shè)計(jì)和審查等技術(shù),壓縮成一個(gè)單一的“使用現(xiàn)代編程規(guī)范”因素)。中間COCOMO成本驅(qū)動(dòng)因子屬性中間COCOMO模型最終采用的15個(gè)因素的集合,或者說(shuō)成本驅(qū)動(dòng)因子屬性被分為四類:軟件產(chǎn)品屬性計(jì)算機(jī)屬性人員屬性項(xiàng)目屬性屬性參數(shù)描述產(chǎn)品屬性RELY所需的軟件可靠性DATA數(shù)據(jù)庫(kù)規(guī)模CPLX產(chǎn)品復(fù)雜性計(jì)算機(jī)

25、屬性TIME執(zhí)行時(shí)間約束STOR主存儲(chǔ)器約束VIRT虛擬機(jī)的易變性TURN計(jì)算機(jī)周轉(zhuǎn)時(shí)間人員屬性ACAP分析員能力AEXP應(yīng)用經(jīng)驗(yàn)PCAP程序員能力VEXP虛擬機(jī)經(jīng)驗(yàn)LEXP編程語(yǔ)言經(jīng)驗(yàn)項(xiàng)目屬性MODP現(xiàn)代編程規(guī)范TOOL軟件工具的使用SCED所需的開(kāi)發(fā)進(jìn)度每個(gè)成本驅(qū)動(dòng)因子屬性確定一個(gè)因子,用于估算該屬性對(duì)軟件開(kāi)發(fā)工作量的影響。將這些因子應(yīng)用到一個(gè)標(biāo)稱COCOMO開(kāi)發(fā)工作量估算,就可以得到對(duì)軟件開(kāi)發(fā)工作量的精確估算。采用同樣的方法可以確定對(duì)軟件維護(hù)工作量的精確估算。工作量因子中間COCOMO模型中工作量因子可用于維護(hù)階段和開(kāi)發(fā)階段。對(duì)于大多數(shù)成本驅(qū)動(dòng)因子屬性,我們可以很安全地假設(shè)工作量因子對(duì)于維護(hù)階段和開(kāi)發(fā)階段都是一樣的。對(duì)于這些成本驅(qū)動(dòng)因子,我們能簡(jiǎn)單地計(jì)算出成本驅(qū)動(dòng)等級(jí)差別帶來(lái)的調(diào)整:維護(hù)人員比開(kāi)發(fā)人員具有更多(更少)經(jīng)驗(yàn);維護(hù)階段較好(較差)的計(jì)算機(jī)響應(yīng)時(shí)間等。SCED不能用于維護(hù)階段的成本驅(qū)動(dòng)因子:SCED開(kāi)發(fā)成本驅(qū)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論