第16章軟件項(xiàng)目管理與過(guò)程改進(jìn)課件_第1頁(yè)
第16章軟件項(xiàng)目管理與過(guò)程改進(jìn)課件_第2頁(yè)
第16章軟件項(xiàng)目管理與過(guò)程改進(jìn)課件_第3頁(yè)
第16章軟件項(xiàng)目管理與過(guò)程改進(jìn)課件_第4頁(yè)
第16章軟件項(xiàng)目管理與過(guò)程改進(jìn)課件_第5頁(yè)
已閱讀5頁(yè),還剩310頁(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)介

第十六章

軟件項(xiàng)目管理與過(guò)程改進(jìn)軟件工程(第三版)

齊治昌譚慶平寧洪2012年8月第十六章

軟件項(xiàng)目管理與過(guò)程改進(jìn)軟件工程(第十六章

軟件項(xiàng)目管理與過(guò)程改進(jìn)16.1軟件項(xiàng)目管理與過(guò)程模型16.2軟件項(xiàng)目度量與估算16.3風(fēng)險(xiǎn)分析16.4軟件項(xiàng)目計(jì)劃16.5軟件項(xiàng)目人員和組織16.6軟件質(zhì)量保證16.7軟件配置管理16.8軟件過(guò)程改進(jìn)2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院2第十六章

軟件項(xiàng)目管理與過(guò)程改進(jìn)16.1軟件項(xiàng)目管軟件項(xiàng)目管理與過(guò)程改進(jìn)軟件管理是軟件工程學(xué)科的重要組成部分,在軟件生存周期中發(fā)揮著重要的作用。軟件開(kāi)發(fā)過(guò)程中的軟件管理稱軟件項(xiàng)目管理,直接關(guān)系到軟件項(xiàng)目的成敗。軟件配置管理貫穿整個(gè)軟件生存周期,在軟件開(kāi)發(fā)過(guò)程中是軟件項(xiàng)目管理的重要組成部分,在軟件交付后是軟件有效運(yùn)行和維護(hù)的保障。軟件開(kāi)發(fā)組織建設(shè)和過(guò)程改進(jìn)是不斷推出高質(zhì)量軟件制品的關(guān)鍵。本章主要介紹軟件項(xiàng)目管理、軟件配置管理、軟件過(guò)程改進(jìn)。軟件項(xiàng)目管理與過(guò)程改進(jìn)軟件管理是軟件工程學(xué)科的重要組成部分,16.1軟件項(xiàng)目管理與過(guò)程模型本節(jié)主要介紹軟件項(xiàng)目管理的概念軟件項(xiàng)目管理的過(guò)程模型軟件項(xiàng)目管理的原則軟件項(xiàng)目制品16.1軟件項(xiàng)目管理與過(guò)程模型本節(jié)主要介紹16.1.1軟件項(xiàng)目管理的概念軟件項(xiàng)目管理是軟件工程的重要組成部分。軟件項(xiàng)目已通過(guò)軟件項(xiàng)目的可行性論證和立項(xiàng)的法定程序。軟件項(xiàng)目可能是基于計(jì)算機(jī)的系統(tǒng)工程的一部分,也可能是獨(dú)立的實(shí)體。按照合同要求,軟件項(xiàng)目應(yīng)具有明確的目標(biāo)、任務(wù)、責(zé)任人、技術(shù)途徑、資金投入、交付時(shí)間、客戶實(shí)體、利益相關(guān)方。在面向領(lǐng)域的應(yīng)用軟件開(kāi)發(fā)項(xiàng)目中,領(lǐng)域?qū)<液涂蛻粼敢夂蛙浖_(kāi)發(fā)團(tuán)隊(duì)密切合作,這是項(xiàng)目成功的關(guān)鍵。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院516.1.1軟件項(xiàng)目管理的概念軟件項(xiàng)目管理是軟件工程的重要組軟件項(xiàng)目管理的概念軟件工程是人的智力密集型勞動(dòng),軟件是邏輯制品,軟件項(xiàng)目管理更要強(qiáng)調(diào)工作的計(jì)劃性,人員、進(jìn)度、制品的可控性,要及時(shí)進(jìn)行軟件項(xiàng)目的風(fēng)險(xiǎn)分析和管理??蛻襞c開(kāi)發(fā)者必須在項(xiàng)目開(kāi)發(fā)早期、軟件需求工程的初始階段完成下列六項(xiàng)任務(wù)。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6軟件項(xiàng)目管理的概念軟件工程是人的智力密集型勞動(dòng),軟件是邏輯制軟件項(xiàng)目管理的概念①確定制品目標(biāo)、范圍,主要技術(shù)指標(biāo)、功能

和行為特性;②確定管理者和開(kāi)發(fā)人員;③進(jìn)行成本估算;④進(jìn)行有效的風(fēng)險(xiǎn)分析、驗(yàn)證與確認(rèn);⑤給出恰當(dāng)?shù)捻?xiàng)目任務(wù)劃分;⑥根據(jù)約束條件,如制品交付期限、預(yù)算、可

用人員、技術(shù)接口等因素,選擇“最佳”方

案,制定可管理的項(xiàng)目進(jìn)度計(jì)劃,給出明確

的項(xiàng)目進(jìn)展標(biāo)志,并將任務(wù)、責(zé)任落實(shí)到人。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院7軟件項(xiàng)目管理的概念①確定制品目標(biāo)、范圍,主要技術(shù)指標(biāo)、功能軟件項(xiàng)目管理的概念1999年,軟件產(chǎn)業(yè)界的統(tǒng)計(jì)數(shù)據(jù)表明,26%的軟件項(xiàng)目徹底失敗,46%的項(xiàng)目成本和進(jìn)度超出預(yù)定計(jì)劃。軟件項(xiàng)目失敗率仍然很高。實(shí)踐表明,良好的軟件開(kāi)發(fā)過(guò)程孕育著好的軟件制品,而好的軟件制品一般隱含良好的軟件開(kāi)發(fā)過(guò)程。本節(jié)的其余部分介紹軟件項(xiàng)目管理原則、軟件項(xiàng)目的管理模型、生存周期各階段的軟件制品。軟件項(xiàng)目管理的概念1999年,軟件產(chǎn)業(yè)界的統(tǒng)計(jì)數(shù)據(jù)表明,2616.1.2軟件項(xiàng)目管理的過(guò)程模型第一章討論了軟件生存周期和軟件開(kāi)發(fā)的幾種模型。生存周期及其劃分涉及軟件開(kāi)發(fā)過(guò)程和過(guò)程生成的制品。軟件開(kāi)發(fā)過(guò)程分為線性過(guò)程和非線性過(guò)程兩類。瀑布模型是典型的線性過(guò)程模型。增量模型、螺旋模型雖是迭代模型,但本質(zhì)上是瀑布模型的應(yīng)用。統(tǒng)一過(guò)程RUP是迭代的非線性模型,與瀑布模型存在本質(zhì)的區(qū)別。這些模型既用于軟件開(kāi)發(fā)的技術(shù)過(guò)程,也用于軟件開(kāi)發(fā)的管理過(guò)程。16.1.2軟件項(xiàng)目管理的過(guò)程模型第一章討論了軟件生存周期軟件項(xiàng)目管理的過(guò)程模型軟件開(kāi)發(fā)的技術(shù)人員和管理人員在軟件開(kāi)發(fā)過(guò)程中分工明確,他們?cè)谀P椭袇⑴c相應(yīng)的活動(dòng),開(kāi)發(fā)相應(yīng)的制品。軟件過(guò)程的活動(dòng)序列按任務(wù)分類,組成軟件開(kāi)發(fā)人員開(kāi)發(fā)軟件制品的“工作流”?!肮ぷ髁鳌睆?qiáng)調(diào)“人的活動(dòng)”,目標(biāo)是開(kāi)發(fā)軟件制品,其中蘊(yùn)含開(kāi)發(fā)人員使用的技術(shù)、工具和必須遵循的約束條件。第二章介紹了RUP的九個(gè)工作流,及在軟件生存周期各階段的工作量分布。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院10軟件項(xiàng)目管理的過(guò)程模型軟件開(kāi)發(fā)的技術(shù)人員和管理人員在軟件開(kāi)發(fā)軟件項(xiàng)目管理的過(guò)程模型啟動(dòng)每個(gè)工作流都要完成某項(xiàng)任務(wù),產(chǎn)生某些制品,都要使用一定的資源,必須滿足一定的約束條件。如,需求工作流將系統(tǒng)工程師或用戶以某種方式提供的系統(tǒng)功能和特征作為前置條件,通過(guò)需求獲取、分析、建?;顒?dòng)生成用軟件建模語(yǔ)言(如,UML)描述的軟件需求規(guī)約。需求階段的約束是需求文檔的標(biāo)準(zhǔn)、表示法、需求預(yù)算、進(jìn)度等。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院11軟件項(xiàng)目管理的過(guò)程模型啟動(dòng)每個(gè)工作流都要完成某項(xiàng)任務(wù),產(chǎn)生某軟件項(xiàng)目管理的過(guò)程模型軟件團(tuán)隊(duì)選擇軟件過(guò)程模型時(shí),有很大的靈活性,應(yīng)根據(jù)項(xiàng)目需要確定過(guò)程模型。如果問(wèn)題能很好地劃分,時(shí)間緊,不可能完成所有功能,可采用增量模型,分期交付。如果項(xiàng)目需求不能完全確定、需求變更頻繁可采用RUP迭代過(guò)程模型等。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院12軟件項(xiàng)目管理的過(guò)程模型軟件團(tuán)隊(duì)選擇軟件過(guò)程模型時(shí),有很大的靈16.1.3軟件項(xiàng)目管理的原則W.Royce總結(jié)了現(xiàn)代軟件項(xiàng)目管理應(yīng)該遵循的十條重要原則。⑴體系結(jié)構(gòu)優(yōu)先的過(guò)程軟件體系結(jié)構(gòu)是軟件需求、軟件設(shè)計(jì)活動(dòng)的關(guān)鍵制品。軟件體系結(jié)構(gòu)過(guò)程涉及軟件項(xiàng)目全局,包括:軟件項(xiàng)目計(jì)劃、需求獲取、描述、風(fēng)險(xiǎn)分析、軟件體系結(jié)構(gòu)設(shè)計(jì)等。軟件體系結(jié)構(gòu)過(guò)程與軟件實(shí)現(xiàn)、交付、維護(hù)相比,涉及的人較少,工作量較小。16.1.3軟件項(xiàng)目管理的原則W.Royce總結(jié)了現(xiàn)代軟軟件項(xiàng)目管理的原則穩(wěn)定、優(yōu)質(zhì)的體系結(jié)構(gòu)是軟件實(shí)現(xiàn)和交付的基礎(chǔ),可以避免軟件上游缺陷蔓延到下游,減少軟件制品返工和報(bào)廢,避免時(shí)間和資源的浪費(fèi)。軟件體系結(jié)構(gòu)基線是軟件初始、軟件細(xì)化階段成熟的標(biāo)志。體系結(jié)構(gòu)優(yōu)先的過(guò)程體現(xiàn)了軟件體系結(jié)構(gòu)在現(xiàn)代軟件開(kāi)發(fā)過(guò)程中的重要地位。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院14軟件項(xiàng)目管理的原則穩(wěn)定、優(yōu)質(zhì)的體系結(jié)構(gòu)是軟件實(shí)現(xiàn)和交付的基礎(chǔ)軟件項(xiàng)目管理的原則⑵風(fēng)險(xiǎn)驅(qū)動(dòng)的迭代過(guò)程軟件開(kāi)發(fā)存在許多不確定因素,存在許多風(fēng)險(xiǎn)。適時(shí)進(jìn)行風(fēng)險(xiǎn)分析,提出化解風(fēng)險(xiǎn)的措施,驅(qū)動(dòng)迭代過(guò)程,是保證軟件開(kāi)發(fā)過(guò)程按計(jì)劃前行,軟件制品隨軟件開(kāi)發(fā)的迭代過(guò)程不斷進(jìn)化的有效途徑。⑶基于構(gòu)件的設(shè)計(jì)基于構(gòu)件的軟件設(shè)計(jì)可以降低軟件復(fù)雜性,有效實(shí)施軟件復(fù)用,提高軟件質(zhì)量,降低軟件開(kāi)發(fā)成本,縮短交付期限,提高軟件項(xiàng)目計(jì)劃和成本估算的準(zhǔn)確性。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院15軟件項(xiàng)目管理的原則⑵風(fēng)險(xiǎn)驅(qū)動(dòng)的迭代過(guò)程2023/7/31國(guó)軟件項(xiàng)目管理的原則⑷建立配置和變更管理環(huán)境軟件開(kāi)發(fā)過(guò)程中變更不可避免,需求不能完全確定的項(xiàng)目只能在探索中前進(jìn)。軟件開(kāi)發(fā)文檔、中間制品很多,某一文檔的變更通常會(huì)涉及相關(guān)文檔,必須對(duì)這些文檔進(jìn)行相應(yīng)的維護(hù),保持軟件制品的一致性。采用迭代、增量開(kāi)發(fā)模型,面對(duì)不同的用戶需求,項(xiàng)目團(tuán)隊(duì)將持續(xù)發(fā)布多種版本的軟件制品。復(fù)雜多變的軟件項(xiàng)目和制品,需要變更管理工具、配置數(shù)據(jù)庫(kù)和配置管理系統(tǒng)的支持,人工不能完成這一任務(wù)。軟件項(xiàng)目管理的原則⑷建立配置和變更管理環(huán)境軟件項(xiàng)目管理的原則⑸建立支持雙向工程的工具和環(huán)境為了保持變更的一致性,軟件工具和環(huán)境要支持正向工程和逆向工程。詳細(xì)設(shè)計(jì)、代碼的修改確定后,利用逆向工程工具和環(huán)境自動(dòng)生成軟件開(kāi)發(fā)上游的體系結(jié)構(gòu)和需求文檔。正向和逆向工程的工具和環(huán)境相互配合,為可變更的迭代開(kāi)發(fā)過(guò)程提供了靈活性,提高了軟件開(kāi)發(fā)的效率和軟件制品的質(zhì)量。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院17軟件項(xiàng)目管理的原則⑸建立支持雙向工程的工具和環(huán)境2023/軟件項(xiàng)目管理的原則⑹用嚴(yán)格的、基于模型的符號(hào)描述設(shè)計(jì)制品程序設(shè)計(jì)語(yǔ)言是描述程序的工具,用于人與人、人與機(jī)器的交流,控制計(jì)算機(jī)的運(yùn)行。程序設(shè)計(jì)語(yǔ)言是用一組符號(hào)按照嚴(yán)格的語(yǔ)法、語(yǔ)義、語(yǔ)用定義的。目前廣泛使用統(tǒng)一建模語(yǔ)言UML,支持軟件需求、設(shè)計(jì)和實(shí)現(xiàn)的全過(guò)程(實(shí)現(xiàn)過(guò)程需要Java、C++等程序設(shè)計(jì)語(yǔ)言的支持)。UML標(biāo)準(zhǔn)提供用例圖、結(jié)構(gòu)圖(類圖、對(duì)象圖、包圖)、行為圖(交互圖、狀態(tài)圖、順序圖、通信圖)、構(gòu)件圖、部署圖五類共十種圖形建模表示法和OCL約束語(yǔ)言。軟件項(xiàng)目管理的原則⑹用嚴(yán)格的、基于模型的符號(hào)描述設(shè)計(jì)制品軟件項(xiàng)目管理的原則⑺為客觀的質(zhì)量控制插裝驗(yàn)證和確認(rèn)過(guò)程客觀的軟件質(zhì)量強(qiáng)調(diào)軟件制品的實(shí)際質(zhì)量。在初始和細(xì)化階段,只能通過(guò)檢查、審查方式評(píng)估軟件制品,軟件的質(zhì)量評(píng)估往往帶有主觀色彩。在軟件開(kāi)發(fā)過(guò)程中,設(shè)置關(guān)鍵點(diǎn)插裝評(píng)估過(guò)程,對(duì)軟件制品和過(guò)程進(jìn)行嚴(yán)格檢查和V&V可防止缺陷蔓延、減少制品報(bào)廢和返工,提高軟件制品質(zhì)量。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院19軟件項(xiàng)目管理的原則⑺為客觀的質(zhì)量控制插裝驗(yàn)證和確認(rèn)過(guò)程20軟件項(xiàng)目管理的原則⑻借助演示評(píng)估中間制品現(xiàn)代軟件開(kāi)發(fā)過(guò)程借助場(chǎng)景、用例描述需求。場(chǎng)景、用例具有直觀、便捷、容易理解的優(yōu)點(diǎn)。軟件開(kāi)發(fā)過(guò)程中借助演示,驗(yàn)證確認(rèn)基于場(chǎng)景、用例的中間制品的演化過(guò)程,有利于團(tuán)隊(duì)成員的溝通,及時(shí)統(tǒng)一軟件開(kāi)發(fā)人員對(duì)軟件制品的認(rèn)識(shí),減少因理解過(guò)失導(dǎo)致的軟件制品缺陷,提高軟件制品的評(píng)審質(zhì)量和軟件開(kāi)發(fā)效率。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院20軟件項(xiàng)目管理的原則⑻借助演示評(píng)估中間制品2023/7/31軟件項(xiàng)目管理的原則⑼大量使用場(chǎng)景。按照?qǐng)鼍凹?xì)化等級(jí),在軟件生存周期的前期就開(kāi)始持續(xù)的發(fā)布有用的軟件版本。保持需求、設(shè)計(jì)和計(jì)劃均衡進(jìn)化。⑽爭(zhēng)取更多的投資回報(bào)。推廣項(xiàng)目團(tuán)隊(duì)掌握的方法、技術(shù)、工具和經(jīng)驗(yàn),建立靈活的配置過(guò)程,在經(jīng)濟(jì)上爭(zhēng)取更多的回報(bào)。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院21軟件項(xiàng)目管理的原則⑼大量使用場(chǎng)景。2023/7/31國(guó)防科軟件項(xiàng)目管理的原則現(xiàn)代軟件項(xiàng)目管理要素是,人員、環(huán)境、質(zhì)量、規(guī)模和過(guò)程。上述十項(xiàng)原則符合軟件經(jīng)濟(jì)學(xué)基本規(guī)律:成本=(人員)×(環(huán)境)×(質(zhì)量)×(規(guī)模)(過(guò)程)

人員:用演示方式進(jìn)行溝通、不斷發(fā)布用例進(jìn)化細(xì)節(jié),提高人員對(duì)項(xiàng)目、軟件制品的理解和認(rèn)識(shí),避免誤解和無(wú)效勞動(dòng)。環(huán)境:建立軟件雙向工程的工具和環(huán)境,采用過(guò)程插裝,進(jìn)行客觀的質(zhì)量度量和控制,提高軟件開(kāi)發(fā)質(zhì)量和效率。軟件項(xiàng)目管理的原則現(xiàn)代軟件項(xiàng)目管理要素是,人員、環(huán)境、質(zhì)量、軟件項(xiàng)目管理的原則質(zhì)量:貫徹體系結(jié)構(gòu)優(yōu)先的原則,統(tǒng)一開(kāi)發(fā)過(guò)程和語(yǔ)言,實(shí)施變更管理,加強(qiáng)環(huán)境基礎(chǔ)建設(shè),重視對(duì)項(xiàng)目和軟件制品的V&V,提高軟件制品的質(zhì)量。規(guī)模:采用構(gòu)件開(kāi)發(fā),統(tǒng)一開(kāi)發(fā)過(guò)程的語(yǔ)言描述,利用多種途徑降低復(fù)雜性,化解規(guī)模帶來(lái)的壓力。過(guò)程:采用迭代開(kāi)發(fā)模型,實(shí)施可配置的過(guò)程改進(jìn),進(jìn)行風(fēng)險(xiǎn)分析和管理,重視項(xiàng)目的過(guò)程復(fù)用,優(yōu)化軟件開(kāi)發(fā)過(guò)程。成本和規(guī)模、過(guò)程的指數(shù)關(guān)系表明,減少規(guī)模,改進(jìn)過(guò)程對(duì)降低成本的特殊重要性。人員、環(huán)境、質(zhì)量、規(guī)模、過(guò)程的改進(jìn)可減少大量文檔,降低軟件開(kāi)發(fā)成本。軟件項(xiàng)目管理的原則質(zhì)量:貫徹體系結(jié)構(gòu)優(yōu)先的原則,統(tǒng)一開(kāi)發(fā)過(guò)程軟件項(xiàng)目管理的原則按照上述原則進(jìn)行軟件項(xiàng)目管理是現(xiàn)代軟件開(kāi)發(fā)實(shí)踐經(jīng)驗(yàn)的總結(jié),也是軟件項(xiàng)目取得成功的關(guān)鍵。軟件項(xiàng)目團(tuán)隊(duì)?wèi)?yīng)根據(jù)自身的實(shí)際,在軟件項(xiàng)目開(kāi)發(fā)過(guò)程中靈活運(yùn)用,并不斷創(chuàng)造新的實(shí)踐經(jīng)驗(yàn)和原則。

軟件項(xiàng)目管理的原則按照上述原則進(jìn)行軟件項(xiàng)目管理是現(xiàn)代軟件開(kāi)發(fā)16.1.4軟件項(xiàng)目制品現(xiàn)代軟件項(xiàng)目的管理過(guò)程與開(kāi)發(fā)過(guò)程配套,多采用迭代方式。軟件制品不是在生存周期的階段內(nèi)按照線性方式開(kāi)發(fā),而是采用迭代方式一起進(jìn)化。進(jìn)化過(guò)程中不僅要不斷豐富、細(xì)化系統(tǒng)描述,還要對(duì)約束、抽象層次和自由度進(jìn)行折衷,盡量保持軟件制品細(xì)節(jié)的平衡。為了對(duì)軟件項(xiàng)目實(shí)施管理,軟件開(kāi)發(fā)活動(dòng)產(chǎn)生的制品通常劃分為若干制品集,支持軟件項(xiàng)目的開(kāi)發(fā)活動(dòng)。16.1.4軟件項(xiàng)目制品現(xiàn)代軟件項(xiàng)目的管理過(guò)程與開(kāi)發(fā)過(guò)程配軟件項(xiàng)目制品W.Royce將軟件項(xiàng)目制品劃分為:用文本語(yǔ)言描述的管理集用文本和模型描述問(wèn)題空間的需求集用解空間模型描述的設(shè)計(jì)集用程序設(shè)計(jì)語(yǔ)言及相關(guān)文檔描述的實(shí)現(xiàn)集用機(jī)器語(yǔ)言及相關(guān)文檔描述的實(shí)施集2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院26軟件項(xiàng)目制品W.Royce將軟件項(xiàng)目制品劃分為:2023/7軟件項(xiàng)目制品近年來(lái)用RUP過(guò)程開(kāi)發(fā)軟件項(xiàng)目已成為一種潮流。用強(qiáng)有力的、可視化的、具有嚴(yán)格語(yǔ)法和語(yǔ)義定義的統(tǒng)一建模語(yǔ)言UML支持體系結(jié)構(gòu)優(yōu)先策略開(kāi)發(fā)的需求制品集和設(shè)計(jì)制品集是軟件工程在技術(shù)上的重大進(jìn)步。這些制品集是軟件工程數(shù)據(jù)庫(kù)的重要組成部分。下面從管理制品和工程制品兩個(gè)方面分別介紹五類制品集。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院27軟件項(xiàng)目制品近年來(lái)用RUP過(guò)程開(kāi)發(fā)軟件項(xiàng)目已成為一種潮流。21.管理制品集管理制品集即管理集,包括:①工作分解WBS和財(cái)務(wù)追蹤制品②成本、進(jìn)度和利潤(rùn)預(yù)測(cè)、度量和統(tǒng)計(jì)業(yè)務(wù)案例制品③描述軟件制品范圍、開(kāi)發(fā)計(jì)劃和發(fā)布基線的發(fā)布版規(guī)約④軟件項(xiàng)目開(kāi)發(fā)計(jì)劃⑤基于基線的發(fā)布版說(shuō)明書⑥反映項(xiàng)目進(jìn)展?fàn)顟B(tài)的驗(yàn)證和確認(rèn)制品⑦軟件變更管理系統(tǒng)和軟件配置管理系統(tǒng)1.管理制品集管理制品集即管理集,包括:管理制品集⑧實(shí)施文檔,包括:移交計(jì)劃、用戶培訓(xùn)課程、銷售展示工具包等⑨軟件開(kāi)發(fā)環(huán)境,包括:軟件工具、文檔、人員培訓(xùn)資料等管理集制品的形式有軟件、文本、圖形、圖像、視頻等項(xiàng)目相關(guān)人員應(yīng)對(duì)管理集制品進(jìn)行評(píng)審,按照里程碑進(jìn)行展示評(píng)審管理集制品反映軟件項(xiàng)目成本、進(jìn)度、質(zhì)量、項(xiàng)目變更、軟件制品進(jìn)化的情況2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院29管理制品集⑧實(shí)施文檔,包括:移交計(jì)劃、用戶培訓(xùn)課程、銷售展示2.工程制品集工程制品集由需求集、設(shè)計(jì)集、實(shí)現(xiàn)集和實(shí)施集組成。制品集隨時(shí)間進(jìn)化,必須保證需求、設(shè)計(jì)、實(shí)現(xiàn)和實(shí)施制品之間的系統(tǒng)性、正確性和一致性。2.工程制品集工程制品集由需求集、設(shè)計(jì)集、實(shí)現(xiàn)集和實(shí)施集組成需求集用結(jié)構(gòu)化文本描述構(gòu)想、合同、管理需求、用戶原型。用UML描述需求模型,如用例模型和領(lǐng)域業(yè)務(wù)模型。需求集是評(píng)審設(shè)計(jì)集、實(shí)現(xiàn)集和實(shí)施集的主要依據(jù),也是生成測(cè)試用例的基礎(chǔ)。需求集制品用于評(píng)審需求集與管理集規(guī)約的一致性分析構(gòu)想和需求模型的一致性支持需求集、設(shè)計(jì)集、實(shí)現(xiàn)集和實(shí)施集制品描述的一致性和完整性,及版本變更等2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院31需求集用結(jié)構(gòu)化文本描述構(gòu)想、合同、管理需求、用戶原型。202設(shè)計(jì)集在不同的抽象層次上用UML描述設(shè)計(jì)模型,描述解空間的構(gòu)件和屬性,描述靜態(tài)架構(gòu)和動(dòng)態(tài)活動(dòng)等利用設(shè)計(jì)模型的結(jié)構(gòu)和行為信息可以直接或自動(dòng)轉(zhuǎn)換為實(shí)現(xiàn)集和實(shí)施集制品設(shè)計(jì)集制品

設(shè)計(jì)模型、測(cè)試模型、軟件體系結(jié)構(gòu)描述設(shè)計(jì)集制品評(píng)審

設(shè)計(jì)模型的一致性和質(zhì)量,設(shè)計(jì)模型與需求模型的一致性和完整性,向?qū)崿F(xiàn)集和實(shí)施集遷移的可追蹤性,源代碼生成、編譯和鏈接問(wèn)題,反映設(shè)計(jì)模型過(guò)程中出現(xiàn)的廢品、返工和缺陷排除趨勢(shì)的版本變更等目前設(shè)計(jì)集制品質(zhì)量主要靠人工評(píng)審。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院32設(shè)計(jì)集在不同的抽象層次上用UML描述設(shè)計(jì)模型,描述解空間的構(gòu)實(shí)現(xiàn)集實(shí)現(xiàn)集制品

用程序設(shè)計(jì)語(yǔ)言描述的源代碼,編譯腳本、數(shù)據(jù)文檔,單機(jī)環(huán)境下的構(gòu)件可執(zhí)行代碼,自文檔化的測(cè)試源代碼基線、測(cè)試用例的輸入和輸出文檔,及構(gòu)件測(cè)試驅(qū)動(dòng)程序的可執(zhí)行代碼,配置管理設(shè)施等。源代碼表示構(gòu)件、構(gòu)件接口、依賴關(guān)系及實(shí)現(xiàn)。最終制品

可執(zhí)行代碼、可復(fù)用構(gòu)件、遺留構(gòu)件、定制構(gòu)件、商業(yè)構(gòu)件及應(yīng)用程序接口(API)、程序設(shè)計(jì)語(yǔ)言(如Java、C++、VisualBasic或匯編)API組成。實(shí)現(xiàn)集制品通過(guò)編譯或鏈接轉(zhuǎn)換為實(shí)施集的可執(zhí)行代碼。實(shí)現(xiàn)集評(píng)估

測(cè)試構(gòu)件或可執(zhí)行文檔,測(cè)試源代碼與設(shè)計(jì)模型的一致性,分析實(shí)現(xiàn)集版本的一致性、完整性和變更趨勢(shì)等。

2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院33實(shí)現(xiàn)集實(shí)現(xiàn)集制品2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院33實(shí)施集實(shí)施集制品

可執(zhí)行的基線及運(yùn)行時(shí)的文檔和用戶手冊(cè)。

交付給用戶的機(jī)器語(yǔ)言的可執(zhí)行軟件、構(gòu)造文檔、安裝腳本,以及在目標(biāo)環(huán)境中使用該制品所需要的數(shù)據(jù)。

在使用環(huán)境安裝和執(zhí)行實(shí)施集的源代碼,支持最終制品的運(yùn)行并發(fā)揮全部設(shè)計(jì)功能和性能。實(shí)施集測(cè)試和度量

按需求測(cè)試使用場(chǎng)景和質(zhì)量屬性,測(cè)試一致性、完整性;

測(cè)試將實(shí)現(xiàn)集構(gòu)件映射到實(shí)施系統(tǒng)的合理性、正確性;

測(cè)試用戶手冊(cè)定義的使用場(chǎng)景;

測(cè)試安裝、面向用戶的配置、日常使用及異常管理;

分析實(shí)施集缺陷排除趨勢(shì)和性能變更等。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院34實(shí)施集實(shí)施集制品2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院34表16.1軟件項(xiàng)目制品集需求集①構(gòu)想文檔②需求模型設(shè)計(jì)集①設(shè)計(jì)模型②測(cè)試模型③體系結(jié)構(gòu)描述實(shí)現(xiàn)集①源代碼基線②編譯文檔③可執(zhí)行構(gòu)件實(shí)施集①可執(zhí)行的集成化的制品集②運(yùn)行文檔③用戶手冊(cè)管理集:計(jì)劃制品管理集:可操作制品①工作分解結(jié)構(gòu)WBS⑤發(fā)布版說(shuō)明書②業(yè)務(wù)案例⑥V&V狀態(tài)③發(fā)布版規(guī)約⑦配置和變更管理數(shù)據(jù)庫(kù)④軟件開(kāi)發(fā)計(jì)劃⑧實(shí)施文檔

⑨環(huán)境討論軟件項(xiàng)目生成的制品和制品集的目的是,進(jìn)一步了解軟件開(kāi)發(fā)過(guò)程、了解軟件開(kāi)發(fā)制品及其描述。表16.1軟件項(xiàng)目制品集需求集設(shè)計(jì)集實(shí)現(xiàn)集實(shí)施集管理集:計(jì)劃軟件項(xiàng)目制品表16.2反映軟件制品在工作流的作用下經(jīng)歷軟件生存周期各個(gè)階段的進(jìn)化過(guò)程。軟件項(xiàng)目管理的進(jìn)一步討論請(qǐng)參閱文獻(xiàn)[1][3][112][113[115][116][128][130]。軟件項(xiàng)目制品表16.2反映軟件制品在工作流的作用下經(jīng)歷軟件生16.2軟件項(xiàng)目度量與估算軟件項(xiàng)目度量和估算是軟件開(kāi)發(fā)組織量化管理的重要內(nèi)容,也是軟件開(kāi)發(fā)組織成熟度的標(biāo)志。軟件開(kāi)發(fā)過(guò)程中對(duì)軟件過(guò)程、項(xiàng)目和制品屬性進(jìn)行測(cè)量獲得數(shù)據(jù),再經(jīng)過(guò)度量計(jì)算、度量分析獲得重要的管理及技術(shù)指標(biāo)。項(xiàng)目度量能夠支持軟件項(xiàng)目的計(jì)劃、軟件項(xiàng)目跟蹤及控制,能夠評(píng)估生成軟件制品的質(zhì)量,及時(shí)改進(jìn)項(xiàng)目的工作流程和技術(shù)方法。軟件開(kāi)發(fā)組織的過(guò)程度量能夠使軟件開(kāi)發(fā)組織從戰(zhàn)略高度了解、改進(jìn)軟件過(guò)程,提升企業(yè)文化。項(xiàng)目度量和過(guò)程度量是軟件開(kāi)發(fā)組織的基礎(chǔ)性工作,相互促進(jìn)相互依存。16.2軟件項(xiàng)目度量與估算軟件項(xiàng)目度量和估算是軟件開(kāi)發(fā)組軟件項(xiàng)目度量與估算軟件規(guī)模、可靠性、軟件項(xiàng)目工作量、開(kāi)發(fā)時(shí)間和過(guò)程生產(chǎn)率是軟件和軟件項(xiàng)目度量的核心要素。上一章討論了軟件規(guī)模和可靠性度量,這一章討論軟件項(xiàng)目的度量與估算。大型復(fù)雜軟件項(xiàng)目的度量必須進(jìn)行分解,采用自頂向下、自底向上、專家判斷、經(jīng)驗(yàn)公式等方法“分而治之”。對(duì)于規(guī)模較小的軟件項(xiàng)目可參照類似項(xiàng)目或選用適宜的估算模型直接估算。軟件開(kāi)發(fā)工作量估算在軟件項(xiàng)目估算中尤其重要,直接用于項(xiàng)目進(jìn)度計(jì)劃、成本估算和人員安排等。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院38軟件項(xiàng)目度量與估算軟件規(guī)模、可靠性、軟件項(xiàng)目工作量、開(kāi)發(fā)時(shí)間16.2.1軟件項(xiàng)目分解在軟件項(xiàng)目策劃的過(guò)程中,往往對(duì)軟件項(xiàng)目的工作制品和過(guò)程進(jìn)行層次分解,分解為較小的易于管理和開(kāi)發(fā)的子系統(tǒng)或模塊。借助軟件項(xiàng)目管理的工作分解結(jié)構(gòu)可采用自頂向下和自底向上方法進(jìn)行估算。估算內(nèi)容除各子系統(tǒng)或模塊外還應(yīng)考慮各子系統(tǒng)之間關(guān)聯(lián)和系統(tǒng)級(jí)的工作量。如,軟件風(fēng)險(xiǎn)分析、軟件變更管理、軟件配置管理、軟件質(zhì)量管理等。16.2.1軟件項(xiàng)目分解在軟件項(xiàng)目策劃的過(guò)程中,往往對(duì)軟件⑴自頂向下方法步驟①根據(jù)完成的類似軟件項(xiàng)目的工作量或成本,估算待開(kāi)發(fā)軟件項(xiàng)目的工作量或成本W(wǎng)0。②估算軟件開(kāi)發(fā)各項(xiàng)任務(wù)協(xié)調(diào)、交流、管理、集成和軟件項(xiàng)目特殊要求的工作量W10③軟件開(kāi)發(fā)工作量為W20=W0-W10

2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院40⑴自頂向下方法步驟2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院自頂向下方法參照Boehm給出的軟件生存周期各階段工作量的基本分布(如表16.3所示),計(jì)算軟件生存周期各階段工作量

W2J0=pjⅹW20

pj是W2j在W20中所占的百分比,j=1,2,…k,于是W20=W210+W220+…

+W2K02023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院41自頂向下方法參照Boehm給出的軟件生存周期各階段工作量的基表16.3Boehm統(tǒng)計(jì)的工作量分布階段制品規(guī)模2KDSI8KDSI32KDSI128KDSI計(jì)劃與需求+6%+6%+6%+6%概要設(shè)計(jì)16%16%16%16%詳細(xì)設(shè)計(jì)26%25%24%23%編碼與單元測(cè)試42%40%38%36%集成與測(cè)試16%19%22%25%表16.3中“計(jì)劃與需求”預(yù)置6%的附加工作量,用于團(tuán)隊(duì)獲取領(lǐng)域知識(shí)和經(jīng)驗(yàn)、與客戶合作、處理知識(shí)產(chǎn)權(quán)等問(wèn)題,DSI表示項(xiàng)目開(kāi)發(fā)的有效的不含注釋的源指令行。表16.3Boehm統(tǒng)計(jì)的工作量分布軟件項(xiàng)目分解Boehm給出的軟件生存周期各階段工作量的基本分布可根據(jù)今天的軟件開(kāi)發(fā)方法、環(huán)境和問(wèn)題,軟件開(kāi)發(fā)組織的實(shí)際進(jìn)行必要的調(diào)整。估算的各個(gè)部分的工作量帶有主觀成分,應(yīng)根據(jù)項(xiàng)目的實(shí)際情況進(jìn)行修改。⑤軟件開(kāi)發(fā)過(guò)程中,及時(shí)統(tǒng)計(jì)實(shí)際工作量W2J,并與初始估算W2J0進(jìn)行比較,以此為參考對(duì)尚無(wú)實(shí)際工作量的初始估算進(jìn)行修正。自頂向下方法適用于軟件開(kāi)發(fā)早期,但不精確,需要在軟件開(kāi)發(fā)過(guò)程中不斷調(diào)整、修正。軟件項(xiàng)目分解Boehm給出的軟件生存周期各階段工作量的基本分⑵自底向上方法利用軟件項(xiàng)目管理的工作分解結(jié)構(gòu),自底向上估算各項(xiàng)任務(wù)的工作量(或成本),再逐步相加,得到待開(kāi)發(fā)軟件的總工作量(或成本)。Boehm給出了用自底向上方法進(jìn)行軟件估算的示例(如表16.4所示)。該方法的成效取決于工作分解結(jié)構(gòu)的質(zhì)量和穩(wěn)定性。如果分解結(jié)構(gòu)在軟件開(kāi)發(fā)過(guò)程中很少變更,估算的準(zhǔn)確性較高。⑵自底向上方法利用軟件項(xiàng)目管理的工作分解結(jié)構(gòu),自底向上估算各表16.4a自底向上方法進(jìn)行軟件估算示例1構(gòu)件:人機(jī)交互開(kāi)發(fā)者:王平日期:階段任務(wù)人天總計(jì)計(jì)劃與需求組件需求開(kāi)發(fā)計(jì)劃718概要設(shè)計(jì)概要設(shè)計(jì)用戶手冊(cè)初稿測(cè)試計(jì)劃84113詳細(xì)設(shè)計(jì)用PDL描述的詳細(xì)設(shè)計(jì)定義數(shù)據(jù)測(cè)試用例設(shè)計(jì)64515總計(jì)(人天)36表16.4a自底向上方法進(jìn)行軟件估算示例1構(gòu)件:人機(jī)交互開(kāi)表16.4b自底向上方法進(jìn)行軟件估算示例2構(gòu)件:人機(jī)交互開(kāi)發(fā)者:張潔日期:階段任務(wù)人天總計(jì)詳細(xì)設(shè)計(jì)生成測(cè)試數(shù)據(jù)編寫完整的用戶手冊(cè)6814編碼與單元測(cè)試編碼單元測(cè)試101222集成與集成測(cè)試集成集成測(cè)試編寫文檔57517總計(jì)(人天)532023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院46將各階段工作量數(shù)據(jù)相加,得w=36+53=89.表16.4b自底向上方法進(jìn)行軟件估算示例2構(gòu)件:人機(jī)交互開(kāi)(3)根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)給出軟件項(xiàng)目工作量或成本的經(jīng)驗(yàn)估算公式。上述三種方法可以同時(shí)、單獨(dú)或組合使用,取長(zhǎng)補(bǔ)短、互相參考,提高項(xiàng)目估算的精度和可靠性。采用分解技術(shù)估算軟件項(xiàng)目應(yīng)考慮各項(xiàng)任務(wù)之間協(xié)調(diào)、系統(tǒng)集成時(shí)需要的工作量。為了實(shí)現(xiàn)軟件項(xiàng)目估算,實(shí)踐中開(kāi)發(fā)了大量的軟件項(xiàng)目自動(dòng)估算工具,支持軟件工作量或成本估算。(3)根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)給出軟件項(xiàng)目工作量軟件項(xiàng)目分解傳統(tǒng)軟件工程的軟件項(xiàng)目按照瀑布模型分解,分別估算出軟件項(xiàng)目在軟件開(kāi)發(fā)各個(gè)階段的工作量和成本,再進(jìn)行匯總,估算出整個(gè)項(xiàng)目的工作量和成本。現(xiàn)代軟件工程的軟件項(xiàng)目采用RUP過(guò)程,迭代模型,可按照初始、細(xì)化、構(gòu)造階段分解,分別估算工作量,也可以按照各個(gè)工作流統(tǒng)計(jì)工作量。積累軟件開(kāi)發(fā)組織和團(tuán)隊(duì)開(kāi)發(fā)軟件項(xiàng)目的歷史數(shù)據(jù),對(duì)開(kāi)發(fā)組織的軟件項(xiàng)目估算和管理十分必要。軟件項(xiàng)目分解傳統(tǒng)軟件工程的軟件項(xiàng)目按照瀑布模型分解,分別估算16.2.2采用代碼行、功能點(diǎn)度量的工作量估算軟件項(xiàng)目的規(guī)模是影響軟件項(xiàng)目成本和工作量的重要因素。較小的軟件項(xiàng)目或模塊可采用代碼行和功能點(diǎn)估算,然后根據(jù)類似項(xiàng)目的專家經(jīng)驗(yàn)換算成工作量和成本。采用上述估算方法可以估算出LOC或FP的樂(lè)觀值a,悲觀值b和一般值m,然后根據(jù)下列加權(quán)公式計(jì)算出期望值。E=(a+4m+b)/616.2.2采用代碼行、功能點(diǎn)度量的工作量估算軟件項(xiàng)目的規(guī)采用代碼行、功能點(diǎn)度量的工作量估算我們希望LOC或FP的值落在區(qū)間[a,b]之外的概率極小。當(dāng)LOC或FP的期望值估算出來(lái)之后,根據(jù)以前軟件項(xiàng)目開(kāi)發(fā)的平均生產(chǎn)率,每人月代碼行(LOC/PM),或每人月功能點(diǎn)(FP/PM)就可以計(jì)算出工作量。如,軟件項(xiàng)目的規(guī)模估算為310FP,以前完成類似軟件項(xiàng)目的生產(chǎn)率為5.5FP/PM,于是工作量估算為E=310/5.5=56PM。如果當(dāng)前估算的軟件子項(xiàng)目比以前完成的項(xiàng)目復(fù)雜,所用的生產(chǎn)率值可以低于平均生產(chǎn)率,反之高于平均生產(chǎn)率。采用代碼行、功能點(diǎn)度量的工作量估算我們希望LOC或FP的值落例16.1估算計(jì)算機(jī)輔助設(shè)計(jì)(CAD)軟件項(xiàng)目將CAD項(xiàng)目按功能分解為七個(gè)子項(xiàng)目:

①用戶界面和控制;②二維幾何分析;

③三維幾何分析;④數(shù)據(jù)庫(kù)管理;

⑤計(jì)算機(jī)圖形顯示;

⑥外設(shè)控制;

⑦設(shè)計(jì)分析。表16.5給出七個(gè)子項(xiàng)目代碼行的樂(lè)觀估計(jì)、悲觀估計(jì)和一般估算值,然后計(jì)算出加權(quán)平均值。分析七個(gè)子項(xiàng)目的規(guī)模、復(fù)雜性和難度,參照以前開(kāi)發(fā)類似項(xiàng)目的經(jīng)驗(yàn)給出開(kāi)發(fā)每行代碼的平均成本,每月開(kāi)發(fā)的代碼行數(shù)。用這兩組數(shù)據(jù)計(jì)算出七個(gè)子項(xiàng)目的開(kāi)發(fā)成本和工作量。最后匯總的CAD軟件開(kāi)發(fā)項(xiàng)目

規(guī)模為33360LOC,

成本為656680$,工作量為144.5PM2023/7/3151國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院例16.1估算計(jì)算機(jī)輔助設(shè)計(jì)(CAD)軟件項(xiàng)目將CAD項(xiàng)目估算計(jì)算機(jī)輔助設(shè)計(jì)(CAD)軟件項(xiàng)目再用第二種方法分別估算軟件開(kāi)發(fā)子項(xiàng)目在軟件工程各個(gè)階段的工作量,估算結(jié)果列入表16.6。兩種方法估算的工作量分別為144.5PM和152.5PM,相差5%左右。估算的成本分別為656680$和708075$,相差7%左右。兩種方法估算的工作量和成本基本一致。這個(gè)例子只給出估算方法的步驟和說(shuō)明,具體數(shù)據(jù)不一定符合今天軟件開(kāi)發(fā)的實(shí)際狀況。2023/7/3152國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院估算計(jì)算機(jī)輔助設(shè)計(jì)(CAD)軟件項(xiàng)目再用第二種方法分別估算軟表16.5基于功能分解的代碼行、成本、工作量估算2023/7/3153國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院表16.5基于功能分解的代碼行、成本、工作量估算2023/表16.6功能和過(guò)程分解的工作量估2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院54表16.6功能和過(guò)程分解的工作量估2023/7/31國(guó)防16.2.3軟件項(xiàng)目的生產(chǎn)率度量管理人員希望在不同的軟件過(guò)程和不同的環(huán)境中評(píng)估軟件開(kāi)發(fā)人員的生產(chǎn)率。傳統(tǒng)模型的生產(chǎn)率度量是,用規(guī)模除以工作量。直接用于軟件生產(chǎn)率度量是

代碼行數(shù)/人月

功能點(diǎn)數(shù)/人月

對(duì)象點(diǎn)數(shù)/人月這些度量沒(méi)有反映影響生產(chǎn)率的許多其他重要因素,如代碼質(zhì)量,軟硬件環(huán)境,復(fù)雜性等。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院5516.2.3軟件項(xiàng)目的生產(chǎn)率度量管理人員希望在不同的軟件過(guò)軟件項(xiàng)目的生產(chǎn)率度量圖16.1的生產(chǎn)率模型從經(jīng)濟(jì)學(xué)的角度出發(fā),用軟件的價(jià)值和投入成本的比值度量生產(chǎn)率,并對(duì)軟件的市場(chǎng)價(jià)值和成本進(jìn)行了分解。

生產(chǎn)率=軟件制品價(jià)值/軟件成本從經(jīng)濟(jì)學(xué)的角度定義生產(chǎn)率比較全面的反映了生產(chǎn)率和生產(chǎn)要素的關(guān)系。適用于軟件組織和軟件項(xiàng)目的生產(chǎn)率度量。模型沒(méi)有指明各種要素對(duì)生產(chǎn)率的具體影響。只從管理的角度要求軟件開(kāi)發(fā)過(guò)程要降低成本、提高質(zhì)量,開(kāi)拓軟件制品市場(chǎng)、增加發(fā)行數(shù)量,沒(méi)有對(duì)軟件開(kāi)發(fā)人員提出提高生產(chǎn)率的具體技術(shù)措施。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院56軟件項(xiàng)目的生產(chǎn)率度量圖16.1的生產(chǎn)率模型從經(jīng)濟(jì)學(xué)的角度出發(fā)圖16.1軟件生產(chǎn)率模型2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院57圖16.1軟件生產(chǎn)率模型2023/7/31國(guó)防科技大學(xué)計(jì)16.2.4一般經(jīng)驗(yàn)估算模型軟件工作量估算模型是根據(jù)以前完成項(xiàng)目的實(shí)際數(shù)據(jù)導(dǎo)出的,用于新軟件項(xiàng)目的計(jì)劃階段。導(dǎo)出的模型參數(shù)是“從前的”、“局部的”,估算模型不可能適用于當(dāng)前所有的軟件項(xiàng)目和全部開(kāi)發(fā)環(huán)境,僅有一定的參考價(jià)值。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院5816.2.4一般經(jīng)驗(yàn)估算模型軟件工作量估算模型是根據(jù)以前完一般經(jīng)驗(yàn)估算模型估算工作量、進(jìn)度和成本的一般算法模型:

其中:E是以人月為單位的工作量ev是以KLOC或FP為單位的規(guī)模估算變量A,B,C是大量軟件項(xiàng)目數(shù)據(jù)通過(guò)回歸分析得出的經(jīng)驗(yàn)常數(shù)m(X)是項(xiàng)目調(diào)整因子,取值依賴于項(xiàng)目屬性向量X2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院59一般經(jīng)驗(yàn)估算模型估算工作量、進(jìn)度和成本的一般算法模型:202一般經(jīng)驗(yàn)估算模型如,X=(項(xiàng)目復(fù)雜性,可靠性,人員經(jīng)驗(yàn),環(huán)境,…)為向量X各元素定值是由定性到定量的估算過(guò)程。如,將項(xiàng)目復(fù)雜性為(高,較高,一般,較低,低)的屬性量化為(1.0,0.9,0.8,0.7,0.6)形式。當(dāng)某軟件項(xiàng)目復(fù)雜性評(píng)估為“較高”時(shí),向量元素“項(xiàng)目復(fù)雜性”取值為0.9.其余向量元素的定值如法炮制。得到向量X各元素的值后,可按各元素的重要程度加權(quán)求和,最后得m(X)的值。

2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院60一般經(jīng)驗(yàn)估算模型如,2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院一般經(jīng)驗(yàn)估算模型表16.7給出幾個(gè)基于代碼行和功能點(diǎn)的估算模型,這些模型都是針對(duì)特定軟件開(kāi)發(fā)環(huán)境和項(xiàng)目數(shù)據(jù)庫(kù)的數(shù)據(jù)得出的,應(yīng)用時(shí)必須和具體的項(xiàng)目環(huán)境相結(jié)合,對(duì)參數(shù)進(jìn)行修正,或修改項(xiàng)目調(diào)整因子中的向量元素。本節(jié)的其余部分介紹兩個(gè)常用的估算模型:COCOMO模型、Putnam模型。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院61一般經(jīng)驗(yàn)估算模型表16.7給出幾個(gè)基于代碼行和功能點(diǎn)的估算表16.7基于代碼行和功能點(diǎn)的

工作量估算模型基于代碼行的模型

E=a(KLOC)b+cWalston-Felixa=5.200b=0.910c=0Bailey-Basilia=0.730b=1.160c=5.5Doty(KLOC>9)a=5.288b=1.047c=0基于功能點(diǎn)的模型

E=a+bⅹFPAlbrecht-Gaffneya=-91.40b=0.355Kemerera=-37.00b=0.960小型項(xiàng)目回歸模型

a=-12.88b=0.4052023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院62表16.7基于代碼行和功能點(diǎn)的

工作量估算模型基于代碼行的16.2.5COCOMO模型1981年Boehm提出“構(gòu)造性成本模型”,簡(jiǎn)稱COCOMO模型(ConstructiveCostModel)1989年COCOMO模型用于Ada軟件開(kāi)發(fā)2000年經(jīng)進(jìn)一步加工推出COCOMOⅡCOCOMO模型被廣泛應(yīng)用,經(jīng)歷了三十年的進(jìn)化取得了較好的效果。原始的COCOMO模型是在軟件工程的結(jié)構(gòu)化時(shí)代,廣泛采用瀑布模型的歷史背景下產(chǎn)生的,是1980年代軟件工程的一項(xiàng)重要成果。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院6316.2.5COCOMO模型1981年Boehm提出“構(gòu)造COCOMO模型原始的COCOMO模型是一個(gè)靜態(tài)、單變量經(jīng)驗(yàn)?zāi)P?。模型將?guī)模作為工作量(或成本)估算的主要因素,根據(jù)多個(gè)領(lǐng)域的56個(gè)軟件項(xiàng)目數(shù)據(jù)庫(kù),從工程和經(jīng)濟(jì)兩個(gè)方面的大量測(cè)量數(shù)據(jù),提取調(diào)節(jié)因子得出經(jīng)驗(yàn)公式。公式描述了開(kāi)發(fā)系統(tǒng)的工作量或時(shí)間與系統(tǒng)規(guī)模、制品、過(guò)程、項(xiàng)目和團(tuán)隊(duì)之間的關(guān)系。Boehm把軟件生存周期劃分為:

計(jì)劃需求、制品設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、集成和系統(tǒng)測(cè)試

五個(gè)階段。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院64COCOMO模型原始的COCOMO模型是一個(gè)靜態(tài)、單變量經(jīng)驗(yàn)COCOMO模型COCOMO模型假設(shè)①軟件項(xiàng)目管理、設(shè)施、保障滿足軟件項(xiàng)目過(guò)程需要,這部分工作量不列入COCOMO模型的工作量估算范圍;②源代碼行數(shù)不包括注釋;③開(kāi)發(fā)過(guò)程的工作量估算從設(shè)計(jì)開(kāi)始,計(jì)劃和需求獲取額外處理;④一個(gè)人月包括152個(gè)小時(shí)。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院65COCOMO模型COCOMO模型假設(shè)2023/7/31國(guó)防科COCOMO模型COCOMO模型分為基本、中間、詳細(xì)三個(gè)層次?;綜OCOMO模型用于系統(tǒng)開(kāi)發(fā)初期,軟件制品設(shè)計(jì)階段,估算整個(gè)系統(tǒng)的工作量(包括軟件維護(hù))和軟件開(kāi)發(fā)所需要的時(shí)間。中間COCOMO模型用于軟件的詳細(xì)設(shè)計(jì)階段,估算各子系統(tǒng)的工作量和開(kāi)發(fā)時(shí)間。詳細(xì)COCOMO模型用于估算獨(dú)立的軟構(gòu)件,如子系統(tǒng)內(nèi)部各模塊,軟件的集成和測(cè)試。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院66COCOMO模型COCOMO模型分為基本、中間、詳細(xì)三個(gè)層次圖16.2軟件項(xiàng)目工作量估算趨勢(shì)隨著軟件開(kāi)發(fā)的進(jìn)展,能夠提供的影響參數(shù)估算的消息逐步增多,精度越來(lái)越高,工作量的估算也趨于實(shí)際,但估算的預(yù)報(bào)功能也逐漸喪失軟件開(kāi)發(fā)過(guò)程終止時(shí),軟件開(kāi)發(fā)工作量的估算值應(yīng)收斂到核算值(如圖

所示)。詳細(xì)COCOMO請(qǐng)見(jiàn)[133][135]。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院67圖16.2軟件項(xiàng)目工作量估算趨勢(shì)隨著軟件開(kāi)發(fā)的進(jìn)展,能夠1.基本COCOMO模型基本COCOMO模型具有下列形式:E=a(L)b(16-6)D=c(E)d(16-7)其中:E表示工作量,單位是人月(PM)D表示開(kāi)發(fā)時(shí)間,單位是月(M)L是項(xiàng)目的代碼行估算值,單位是千行代碼(KLOC)a,b,c,d是常數(shù),取值如表16.8所示2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院681.基本COCOMO模型基本COCOMO模型具有下列形式:表16.8基本COCOMO模型參數(shù)軟件類型abcd適用范圍組織型2.41.052.50.38各類應(yīng)用程序半獨(dú)立型3.01.122.50.35各類實(shí)用程序、編譯程序等

嵌入型3.61.202.50.32實(shí)時(shí)程序、控制程序、操作系統(tǒng)

公式給出了軟件代碼行數(shù)與工作量、工作量與開(kāi)發(fā)時(shí)間的函數(shù)關(guān)系。Boehm把軟件劃分為組織型、半獨(dú)立型和嵌入型三類,允許不同應(yīng)用領(lǐng)域和復(fù)雜程度的軟件按照上述三類軟件的適用范圍選取相應(yīng)的參數(shù)a,b,c,d。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院69表16.8基本COCOMO模型參數(shù)軟件類型2.中間COCOMO模型軟件類型ab組織型3.21.05半獨(dú)立型3.01.12嵌入型2.81.20中間COCOMO模型以基本COCOMO模型為基礎(chǔ)工作量估算公式中乘以工作量調(diào)節(jié)因子EAF,充分利用軟件開(kāi)發(fā)進(jìn)入詳細(xì)設(shè)計(jì)階段的信息。中間COCOMO模型具有下列形式:E=a(L)bEAF(16-8)其中:L是項(xiàng)目的代碼行估算值,

單位是千行代碼。a,b是常數(shù),取值如表所示。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院702.中間COCOMO模型軟件類型ab組織型3.21.05半中間COCOMO模型工作量調(diào)節(jié)因子EAF是軟件項(xiàng)目15個(gè)要素的函數(shù):①軟件制品屬性(軟件可靠性、軟件復(fù)雜性、數(shù)據(jù)庫(kù)的規(guī)模)②計(jì)算機(jī)屬性(程序執(zhí)行時(shí)間、程序占用內(nèi)存的大小、軟件開(kāi)發(fā)環(huán)境的變化、軟件開(kāi)發(fā)環(huán)境的響應(yīng)速度)③人員屬性(分析員的能力、程序員的能力、有關(guān)應(yīng)用領(lǐng)域的經(jīng)驗(yàn)、開(kāi)發(fā)環(huán)境的經(jīng)驗(yàn)、程序設(shè)計(jì)語(yǔ)言的經(jīng)驗(yàn))④軟件項(xiàng)目屬性(軟件開(kāi)發(fā)方法的能力,軟件工具的質(zhì)量和數(shù)量、軟件開(kāi)發(fā)的進(jìn)度要求)。COCOMO模型要求為上述四種屬性15個(gè)要素賦予要素調(diào)節(jié)因子Fi,i=1,2,...,15,Fi的值對(duì)應(yīng)的屬性狀態(tài)可能是:很低、低、正常、高、很高、極高,共六級(jí)。Boehm推薦的Fi的取值范圍如表16-10所示。正常情況下Fi=1。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院71中間COCOMO模型工作量調(diào)節(jié)因子EAF是軟件項(xiàng)目15個(gè)要表16.10COCOMO模型調(diào)節(jié)要素和

調(diào)節(jié)因子的范圍調(diào)節(jié)要素i調(diào)節(jié)因子Fi的范圍調(diào)節(jié)要素i調(diào)節(jié)因子Fi的范圍制品屬性可靠性

0.75-1.40數(shù)據(jù)庫(kù)規(guī)模

0.94-1.16軟件復(fù)雜性

0.70-1.65人員屬性分析員能力

1.46-0.71應(yīng)用經(jīng)驗(yàn)

1.29-0.82程序員能力

1.42-0.70虛擬機(jī)經(jīng)驗(yàn)

1.21-0.90語(yǔ)言經(jīng)驗(yàn)

1.14-0.95計(jì)算屬性執(zhí)行時(shí)間限制

1.00-1.66主存限制

1.00-1.56虛擬機(jī)的變更

0.87-1.30計(jì)算等待時(shí)間

0.87-1.15項(xiàng)目屬性現(xiàn)代實(shí)踐的使用

1.24-0.82軟件工具的使用

1.24-0.83開(kāi)發(fā)進(jìn)度約束

1.23-1.102023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院72表16.10COCOMO模型調(diào)節(jié)要素和

中間COCOMO模型當(dāng)15個(gè)Fi的值選定后,EAF的計(jì)算如下:(16-9)調(diào)節(jié)因子集的定義和調(diào)節(jié)因子定值是由統(tǒng)計(jì)結(jié)果和經(jīng)驗(yàn)決定的。不同的軟件開(kāi)發(fā)組織,在不同的歷史時(shí)期,隨著環(huán)境的變化,軟件開(kāi)發(fā)的進(jìn)展這些數(shù)據(jù)可能變化。顯然,越到軟件開(kāi)發(fā)的中、后期調(diào)節(jié)因子的定值效果越好。使用中間COCOMO模型可以估算開(kāi)發(fā)軟件制品的工作量,比較各種開(kāi)發(fā)方案對(duì)工作量的影響。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院73中間COCOMO模型當(dāng)15個(gè)Fi的值選定后,EAF的計(jì)算如例16.2用基本COCOMO模型估算例16.1的工作量、開(kāi)發(fā)時(shí)間和參加項(xiàng)目開(kāi)發(fā)的人數(shù)。在例16.1中,目標(biāo)代碼行數(shù)為33.3KLOC,CAD軟件開(kāi)發(fā)屬于中等規(guī)模、半獨(dú)立型從表16.9中查到a=3.0,b=1.12。代入公式E=3.0(L)1.12=3.0(33.3)1.12=152PM將E的估算值代入公式,并取C=2.5,d=0.35D=2.5(E)0.35=2.5(152)0.35=14.5MN=E/D=152/14.5≈11(人)

2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院74例16.2用基本COCOMO模型估算例16.1的工作量、中間COCOMO模型例16.2中計(jì)算出來(lái)的11人是粗略估計(jì)。在軟件項(xiàng)目開(kāi)發(fā)過(guò)程中,需要的11個(gè)人不可能都有相同的能力和個(gè)性,相同的經(jīng)驗(yàn)和知識(shí)結(jié)構(gòu),并且在軟件開(kāi)發(fā)的各個(gè)階段對(duì)人的要求也不同。若干人共同開(kāi)發(fā)一個(gè)軟件項(xiàng)目還應(yīng)該增加他們之間相互通信和交換意見(jiàn)的額外工作量。N個(gè)程序員組成的小組,實(shí)現(xiàn)相同規(guī)模的程序,相互通信數(shù)為C2N=N(N-1)/2,設(shè)每次通信和交換意見(jiàn)的平均工作量為μ則增加的通信開(kāi)銷為:Ec=μN(yùn)(N-1)/2(16-10)2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院75中間COCOMO模型例16.2中計(jì)算出來(lái)的11人是粗略估計(jì)例16.3計(jì)算3人和5人開(kāi)發(fā)一個(gè)程序的通信開(kāi)銷3人和5人開(kāi)發(fā)一個(gè)程序相互通信和交換意見(jiàn)的關(guān)系如圖16.3所示。將N=3和N=5分別代入公式Ec(3)=μ3(3-1)/2=3μEc(5)=μ5(5-1)/2=10μ2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院76

圖16.3N=3和N=5時(shí)的相互通信關(guān)系

例16.3計(jì)算3人和5人開(kāi)發(fā)一個(gè)程序的通信開(kāi)銷3人和5人中間COCOMO模型由N個(gè)程序員組成的小組共同開(kāi)發(fā)一個(gè)程序總的工作量ET滿足:ET=E+Ec于是,程序員小組的生產(chǎn)率是PG=LOC/(E+Ec)程序員小組生產(chǎn)率和單個(gè)程序員生產(chǎn)率的比為:Rp=E/(E+Ec)隨著程序員小組人數(shù)的增加Ec≈μN(yùn)2/2,程序員小組的生產(chǎn)率將會(huì)下降。模型說(shuō)明,盲目增加程序員人數(shù)會(huì)推遲軟件完成的日期.2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院77中間COCOMO模型由N個(gè)程序員組成的小組共同開(kāi)發(fā)一個(gè)程序中間COCOMO模型以靜態(tài)單變量COCOMO模型為基礎(chǔ),還可以定義估算資源R的靜態(tài)多變量模型:其中:ei表示軟件第i個(gè)特性,ai,bi是與軟件第i個(gè)特性有關(guān)的常數(shù),由實(shí)驗(yàn)數(shù)據(jù)的回歸分析確定。Boehm給出一個(gè)大型嵌入式軟件項(xiàng)目的工作量和進(jìn)度分布,如表16.11所示。一般軟件項(xiàng)目COCOMO工作分解默認(rèn)的工作量分配如表16.12所示。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院78中間COCOMO模型以靜態(tài)單變量COCOMO模型為基礎(chǔ),還表16.11大型嵌入式軟件項(xiàng)目的工作量和進(jìn)度分布

活動(dòng)工作量%時(shí)間%計(jì)劃和需求

+8+36制品設(shè)計(jì)

1836詳細(xì)設(shè)計(jì)

2518代碼和單元測(cè)試

2618集成和集成測(cè)試

31282023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院79表16.11大型嵌入式軟件項(xiàng)目的工作量和進(jìn)度分布表16.12一般軟件項(xiàng)目COCOMO工作分解默認(rèn)的工作量分配活動(dòng)工作量%

需求分析

4制品設(shè)計(jì)

12實(shí)現(xiàn)

44測(cè)試計(jì)劃

6V&V14項(xiàng)目管理

7配置管理和質(zhì)量保證

7編寫使用手冊(cè)

62023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院80表16.12一般軟件項(xiàng)目COCOMO工作分解默認(rèn)的工作量16.2.6COCOMOII模型二十世紀(jì)九十年代,迭代式軟件開(kāi)發(fā)過(guò)程、面向?qū)ο?、基于?gòu)件、軟件復(fù)用、使用四代語(yǔ)言4GL等方法應(yīng)用廣泛,網(wǎng)絡(luò)軟件逐步興起,軟件開(kāi)發(fā)的制品、過(guò)程、方法、工具和環(huán)境有了很大變化系統(tǒng)中有些軟件是自主開(kāi)發(fā)的,有些是現(xiàn)成的,而另一些是經(jīng)過(guò)維護(hù)后采用的。傳統(tǒng)的COCOMO模型己不適應(yīng)現(xiàn)代軟件開(kāi)發(fā)方法1995年Boehm對(duì)COCOMO模型進(jìn)行了擴(kuò)充,稱COCOMOII,估算工作量的公式是

E=a(L)bEAF+ER2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院8116.2.6COCOMOII模型二十世紀(jì)九十年代,迭代式COCOMOII模型公式的第一項(xiàng)與公式(16-8)形式相同第二項(xiàng)ER表示復(fù)用構(gòu)件、代碼自動(dòng)生成需要的工作量,單位以人月計(jì)參數(shù)a,b,EAF的選擇依賴于軟件開(kāi)發(fā)的時(shí)間結(jié)點(diǎn)。對(duì)于COCOMOII模型Boehm認(rèn)為,應(yīng)在三個(gè)時(shí)間點(diǎn)上根據(jù)軟件過(guò)程的特點(diǎn)及軟件開(kāi)發(fā)信息庫(kù)提供的信息分別進(jìn)行工作量估算。這三個(gè)時(shí)間點(diǎn)是,①系統(tǒng)需求確定后;②概要設(shè)計(jì)、設(shè)計(jì)原則、環(huán)境、復(fù)用構(gòu)件確定后;③軟件體系結(jié)構(gòu)細(xì)節(jié)基本確定時(shí)。如圖16.4所示。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院82COCOMOII模型公式的第一項(xiàng)與公式(16-8)形式圖16.4迭代模型軟件項(xiàng)目估算的

精度趨勢(shì)2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院83圖16.4迭代模型軟件項(xiàng)目估算的

精度趨勢(shì)2023/7/3COCOMOII模型對(duì)于RUP迭代模型可將系統(tǒng)需求分解,軟件項(xiàng)目估算要與需求分解相對(duì)應(yīng)。對(duì)確定的需求和增量逐個(gè)進(jìn)行估算后,將所有需求和增量的估算相加,得到整個(gè)項(xiàng)目的估算。在對(duì)確定的需求和增量進(jìn)行估算時(shí),需求工作流和設(shè)計(jì)工作流在初始階段和細(xì)化階段需要多次交互。初始階段結(jié)束時(shí),軟件需求獲取基本完成,這次迭代系統(tǒng)的需求場(chǎng)景基本確定。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院84COCOMOII模型對(duì)于RUP迭代模型可將系統(tǒng)需求分解,軟COCOMOII模型但軟件開(kāi)發(fā)信息庫(kù)還不具備采用功能點(diǎn)和代碼行估算這次迭代軟件開(kāi)發(fā)規(guī)模的條件。為此,COCOMOII估算模型采用對(duì)象點(diǎn)估算開(kāi)發(fā)軟件的規(guī)模。對(duì)象點(diǎn)開(kāi)發(fā)軟件的屏幕數(shù)、報(bào)告數(shù)、第三代語(yǔ)言構(gòu)件數(shù)等要素估算軟件項(xiàng)目規(guī)模。要素由計(jì)算機(jī)輔助軟件工程環(huán)境定義,可借助高層工作量生成器進(jìn)行統(tǒng)計(jì)。每個(gè)要素分為簡(jiǎn)單、適中或難3個(gè)級(jí)別,分別賦予三個(gè)不同的權(quán)值(1,2,3)。利用15.2節(jié)介紹的對(duì)象點(diǎn)度量方法估算對(duì)象點(diǎn)數(shù)。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院85COCOMOII模型但軟件開(kāi)發(fā)信息庫(kù)還不具備采用功能點(diǎn)和代COCOMOII模型統(tǒng)計(jì)出所有對(duì)象點(diǎn)OPi(i=1,2,…,k)后,可根據(jù)開(kāi)發(fā)人員的經(jīng)驗(yàn)和能力、CASE成熟度確定生產(chǎn)率因子pi(表16.13給出pi的統(tǒng)計(jì)值)。生產(chǎn)率因子pi是對(duì)大量軟件項(xiàng)目和團(tuán)隊(duì)在通常的軟件開(kāi)發(fā)環(huán)境支持下,對(duì)完成各類對(duì)象點(diǎn)所需工作量的統(tǒng)計(jì)結(jié)果,應(yīng)存放在COCOMOII的支持工具中。第i類生產(chǎn)率因子PiPi=OPi/PMii=1,2,…,k(16-16)其中OPi表示第i類要素對(duì)象點(diǎn)個(gè)數(shù)PMi表示完成OPi個(gè)對(duì)象點(diǎn)所需的人月數(shù)2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院86COCOMOII模型統(tǒng)計(jì)出所有對(duì)象點(diǎn)OPi(i=1,2COCOMOII模型如果開(kāi)發(fā)人員經(jīng)驗(yàn)和能力被認(rèn)為“低”,CASE成熟度和能力也是“低”,那么從表16.13查出生產(chǎn)率的值是每人月7個(gè)對(duì)象點(diǎn)。所需人月數(shù)是對(duì)象點(diǎn)數(shù)除以7。當(dāng)開(kāi)發(fā)人員的經(jīng)驗(yàn)“低”,但CASE成熟度“高”時(shí),生產(chǎn)率估算是兩個(gè)值的平均p=(7+25)/2=16。表16.13選擇生產(chǎn)率因子開(kāi)發(fā)人員的經(jīng)驗(yàn)和能力非常低低一般高非常高CASE成熟度和能力非常低低一般高非常高生產(chǎn)率因子(對(duì)象點(diǎn)/人月)pj471325502023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院87COCOMOII模型如果開(kāi)發(fā)人員經(jīng)驗(yàn)和能力被認(rèn)為“低”,CCOCOMOII模型于是,估算工作量

EPM=PMi=OPi/piCOCOMOII的支持工具應(yīng)不斷收集、充實(shí)各類對(duì)象點(diǎn)度量及完成工作量的數(shù)據(jù)(OPi,PMi),適時(shí)增加或調(diào)整生產(chǎn)率因子Pi的類型,提高統(tǒng)計(jì)精度和置信度。為提高初始階段工作量估算精度打下基礎(chǔ)。細(xì)化階段結(jié)束后,軟件系統(tǒng)的功能、體系結(jié)構(gòu)基本確定、與對(duì)象點(diǎn)相比,這時(shí)的軟件開(kāi)發(fā)信息庫(kù)可以提供更多的軟件描述細(xì)節(jié),可以使用功能點(diǎn)對(duì)軟件系統(tǒng)規(guī)模進(jìn)行估算,估算的精度會(huì)有較大提高。細(xì)化階段的工作量估算采用COCOMOII的計(jì)算公式2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院88COCOMOII模型于是,估算工作量2023/7/31COCOMOII模型指數(shù)b的取值范圍是[1.01,1.26],取決于開(kāi)發(fā)組織在應(yīng)用領(lǐng)域的經(jīng)驗(yàn)、軟件開(kāi)發(fā)過(guò)程的靈活性、風(fēng)險(xiǎn)預(yù)測(cè)和解決情況、開(kāi)發(fā)團(tuán)隊(duì)的凝聚力、過(guò)程成熟度5個(gè)要素。調(diào)節(jié)因子EAF取決于制品可靠性和復(fù)雜性、可復(fù)用構(gòu)件數(shù)、平臺(tái)困難程度、個(gè)人能力、個(gè)人經(jīng)驗(yàn)、項(xiàng)目進(jìn)度、支持設(shè)施7個(gè)要素。在構(gòu)造階段,軟件詳細(xì)設(shè)計(jì)、編碼、測(cè)試全面展開(kāi),軟件開(kāi)發(fā)信息庫(kù)有更多的詳細(xì)信息可以利用,采用功能點(diǎn)或代碼行進(jìn)行規(guī)模估算可以獲得較為準(zhǔn)確的結(jié)果。指數(shù)b的取值與細(xì)化階段相同,調(diào)節(jié)因子EAF取決于制品可靠性、復(fù)雜性、執(zhí)行時(shí)間、主存限制、平臺(tái)經(jīng)驗(yàn)、平臺(tái)變更、應(yīng)用經(jīng)驗(yàn)、語(yǔ)言/工具經(jīng)驗(yàn)、文檔、復(fù)用、程序員能力等17個(gè)要素。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院89COCOMOII模型指數(shù)b的取值范圍是[1.01,1.26COCOMOII模型常用的COCOMOII模型估算工具:Costar()EstimateProfessional()COCOMOII的詳細(xì)討論請(qǐng)參考[133][135]2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院90COCOMOII模型常用的COCOMOII模型估算工具:16.2.7Putnam模型1978年,Putnam提出了大型軟件項(xiàng)目(一般在30人年以上)的工作量估算模型。它是動(dòng)態(tài)多變量模型,適用于軟件開(kāi)發(fā)的各個(gè)階段,估算模型以大型軟件項(xiàng)目的實(shí)測(cè)數(shù)據(jù)為基礎(chǔ),導(dǎo)出如圖16.5所示的工作量分布曲線。該曲線與著名的Rayleigh-Norden(R-N)曲線的形狀相似它描述了開(kāi)發(fā)工作量,開(kāi)發(fā)時(shí)間和軟件代碼行數(shù)之間的關(guān)系。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院9116.2.7Putnam模型1978年,Putnam提圖16.5大型軟件項(xiàng)目的工作量分布2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院92圖16.5大型軟件項(xiàng)目的工作量分布2023/7/31國(guó)防科技Putnam模型方程L=CkE1/3td4/3

(16-18)其中:

L表示源程序代碼行數(shù)

E表示工作量(以人年記,包括維護(hù))

td表示開(kāi)發(fā)時(shí)間

Ck表示軟件開(kāi)發(fā)環(huán)境

的常數(shù),取值如表

所示。軟件開(kāi)發(fā)環(huán)境

CK的值比較差

2000一般

8000比較好

110002023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院93Putnam模型方程軟件開(kāi)發(fā)環(huán)境差的軟件開(kāi)發(fā)環(huán)境指,軟件開(kāi)發(fā)沒(méi)有方法學(xué)的支持,缺乏對(duì)文檔的評(píng)審,采用批處理方式。一般的軟件開(kāi)發(fā)環(huán)境應(yīng)有軟件開(kāi)發(fā)方法學(xué)的支持,有適宜的文檔和評(píng)審,采用交互處理方式。好的軟件開(kāi)發(fā)環(huán)境應(yīng)采用CASE工具和集成化CASE環(huán)境。由(16-18)有

E=L3/(CK3td4)

(16-19)td對(duì)應(yīng)于Rayleigh-Norden曲線的最大值,表示軟件交付時(shí)工作量最大,參與軟件項(xiàng)目的人最多。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院94Putnam模型差的軟件開(kāi)發(fā)環(huán)境指,軟件開(kāi)發(fā)沒(méi)有方法學(xué)的支持,缺乏對(duì)文檔的評(píng)Putnam模型當(dāng)工作量估算出來(lái)之后,利用每人年的開(kāi)銷($/PY)可以估算成本。公式(16-19)表明,開(kāi)發(fā)軟件項(xiàng)目的工作量與交貨時(shí)間的4次方成反比,將0.9td代入(16-19)式的td計(jì)算E,我們發(fā)現(xiàn),提前10%的時(shí)間要增加52%的工作量,降低了軟件開(kāi)發(fā)生產(chǎn)率。軟件開(kāi)發(fā)過(guò)程中,人員與時(shí)間的折衷十分重要。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院95Putnam模型當(dāng)工作量估算出來(lái)之后,利用每人年的開(kāi)銷($圖16.6軟件開(kāi)發(fā)時(shí)間與人力投入的關(guān)系圖16.6(a)所示曲線表明,軟件開(kāi)發(fā)項(xiàng)目每年所需要的人年數(shù)與開(kāi)發(fā)時(shí)間t的關(guān)系滿足Rayleigh-Norden分布,相應(yīng)的累計(jì)人年數(shù)與開(kāi)發(fā)時(shí)間t的關(guān)系如圖16.6(b)所示。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院96圖16.6軟件開(kāi)發(fā)時(shí)間與人力投入的關(guān)系圖16.6(a)所示Putnam模型曲線表明:軟件開(kāi)發(fā)項(xiàng)目的工作量隨著時(shí)間t的增長(zhǎng)并不呈線性增長(zhǎng)趨勢(shì)。參加軟件項(xiàng)目開(kāi)發(fā)的人員數(shù)目不應(yīng)該是一成不變的。圖16.6表明,如果按照線性分布方案配備人員,即每年的人數(shù)是常數(shù)。這樣初始段將有部分人力是多余的,而峰值段人力又不夠,到項(xiàng)目后期再增加人力為時(shí)已晚,造成浪費(fèi)。由于人力調(diào)度的不合理,不得不延長(zhǎng)項(xiàng)目開(kāi)發(fā)時(shí)間,增加一部分額外工作量。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院97Putnam模型曲線表明:軟件開(kāi)發(fā)項(xiàng)目的工作量隨著時(shí)間t的Putnam模型Putnam模型雖然揭示了軟件項(xiàng)目的工作量、軟件開(kāi)發(fā)時(shí)間和程序代碼長(zhǎng)度三者之間的關(guān)系,但它沒(méi)有反映軟件制品、軟件項(xiàng)目、軟件開(kāi)發(fā)人員、計(jì)算機(jī)軟硬件資源等屬性。用Putnam模型進(jìn)行軟件項(xiàng)目的成本估算是十分粗糙的。軟件項(xiàng)目度量的進(jìn)一步討論請(qǐng)參閱[1][3][113][114][115][116][133][134][135]PriceS(WWW.)CostXpert()SLIM-Estimate(WWW.)2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院98Putnam模型Putnam模型雖然揭示了軟件項(xiàng)目的工作量16.3風(fēng)險(xiǎn)分析與任何其他工程項(xiàng)目一樣,軟件工程項(xiàng)目的開(kāi)發(fā)也存在各種各樣的風(fēng)險(xiǎn),有些風(fēng)險(xiǎn)甚至是災(zāi)難性的。R.Charette認(rèn)為,風(fēng)險(xiǎn)與將要發(fā)生的事情有關(guān),它涉及諸如思想、觀念、行為、地點(diǎn)、時(shí)間等多種因素;風(fēng)險(xiǎn)隨條件的變化而改變,人們改變、選擇、控制與風(fēng)險(xiǎn)密切相關(guān)的條件可以減少風(fēng)險(xiǎn),但改變、選擇、控制條件的策略往往是不確定的。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院9916.3風(fēng)險(xiǎn)分析與任何其他工程項(xiàng)目一樣,軟件工程項(xiàng)目的開(kāi)發(fā)風(fēng)險(xiǎn)分析軟件開(kāi)發(fā)過(guò)程中,人們關(guān)心的問(wèn)題是,什么風(fēng)險(xiǎn)會(huì)導(dǎo)致軟件項(xiàng)目的徹底失敗?顧客需求、開(kāi)發(fā)環(huán)境、目標(biāo)機(jī)、時(shí)間、成本的改變對(duì)軟件項(xiàng)目的風(fēng)險(xiǎn)會(huì)產(chǎn)生什么影響?必須抓住什么機(jī)會(huì)、采取什么措施才能有效地減少風(fēng)險(xiǎn)、順利完成任務(wù)?所有這些問(wèn)題都是軟件開(kāi)發(fā)過(guò)程中不可避免并需要妥善處理的。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院100風(fēng)險(xiǎn)分析軟件開(kāi)發(fā)過(guò)程中,人們關(guān)心的問(wèn)題是,2023/7/31風(fēng)險(xiǎn)分析軟件工程風(fēng)險(xiǎn)分析的任務(wù)

找出并標(biāo)識(shí)對(duì)項(xiàng)目構(gòu)成威脅的各類風(fēng)險(xiǎn),通過(guò)風(fēng)險(xiǎn)估算量化風(fēng)險(xiǎn)的不確定性和可能帶來(lái)的損失程度,在此基礎(chǔ)上制定風(fēng)險(xiǎn)管理和監(jiān)控計(jì)劃,實(shí)施風(fēng)險(xiǎn)管理。本節(jié)將分別介紹風(fēng)險(xiǎn)標(biāo)識(shí)、風(fēng)險(xiǎn)估算、風(fēng)險(xiǎn)評(píng)價(jià)和風(fēng)險(xiǎn)管理。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院101風(fēng)險(xiǎn)分析軟件工程風(fēng)險(xiǎn)分析的任務(wù)2023/7/31國(guó)防科技大學(xué)16.3.1風(fēng)險(xiǎn)標(biāo)識(shí)宏觀上,風(fēng)險(xiǎn)可以分為項(xiàng)目風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)和商業(yè)風(fēng)險(xiǎn)三類。由于項(xiàng)目在預(yù)算、進(jìn)度、人力、資源、顧客和需求等方面的原因?qū)浖?xiàng)目產(chǎn)生的不良影響稱為項(xiàng)目風(fēng)險(xiǎn)。軟件在設(shè)計(jì)、實(shí)現(xiàn)、接口、驗(yàn)證和維護(hù)過(guò)程中可能發(fā)生的潛在問(wèn)題,如規(guī)約的二義性、采用陳舊或尚不成熟的技術(shù)等等,對(duì)軟件項(xiàng)目帶來(lái)的危害稱技術(shù)風(fēng)險(xiǎn)。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院10216.3.1風(fēng)險(xiǎn)標(biāo)識(shí)宏觀上,風(fēng)險(xiǎn)可以分為項(xiàng)目風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)風(fēng)險(xiǎn)標(biāo)識(shí)開(kāi)發(fā)了一個(gè)沒(méi)人需要的優(yōu)質(zhì)軟件,或銷售部門不知如何推銷這一軟件產(chǎn)品,或開(kāi)發(fā)的產(chǎn)品不符合公司的產(chǎn)品銷售戰(zhàn)略等等稱為商業(yè)風(fēng)險(xiǎn)。這些風(fēng)險(xiǎn)有些是可以預(yù)料的,有些是很難預(yù)料的。為了幫助項(xiàng)目管理人員、項(xiàng)目規(guī)劃人員全面了解軟件開(kāi)發(fā)過(guò)程存在的風(fēng)險(xiǎn),Boehm建議設(shè)計(jì)并使用各類風(fēng)險(xiǎn)檢測(cè)表標(biāo)識(shí)各種風(fēng)險(xiǎn)。例16.4給出一個(gè)參考性的“人員配備風(fēng)險(xiǎn)檢測(cè)表”。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院103風(fēng)險(xiǎn)標(biāo)識(shí)開(kāi)發(fā)了一個(gè)沒(méi)人需要的優(yōu)質(zhì)軟件,或銷售部門不知如何推銷例16.4人員配備風(fēng)險(xiǎn)檢測(cè)表(1)開(kāi)發(fā)人員的水平如何。(2)開(kāi)發(fā)人員在技術(shù)上是否配套。(3)開(kāi)發(fā)人員的數(shù)量如何。(4)開(kāi)發(fā)人員是否能夠自始至終地參加軟件開(kāi)發(fā)

工作。(5)開(kāi)發(fā)人員是否能夠集中全部精力投入到軟件

開(kāi)發(fā)工作。(6)開(kāi)發(fā)人員對(duì)自己的工作是否有正確的期望。(7)開(kāi)發(fā)人員是否接受過(guò)必要的培訓(xùn)。(8)開(kāi)發(fā)人員的流動(dòng)是否能夠保證工作的連續(xù)性。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院104例16.4人員配備風(fēng)險(xiǎn)檢測(cè)表(1)開(kāi)發(fā)人員的水平如何。2人員配備風(fēng)險(xiǎn)檢測(cè)表上述問(wèn)題可以選用0,1,2,3,4,5來(lái)回答。完全肯定取值為0,反之為5,中間情況分別取值1,2,3,4,值越大表示風(fēng)險(xiǎn)越大。人員配備風(fēng)險(xiǎn)檢測(cè)表反映了人的因素對(duì)軟件項(xiàng)目的影響,可以用它來(lái)估算人的因素對(duì)軟件項(xiàng)目帶來(lái)的風(fēng)險(xiǎn)。2023/7/31國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院105人員配備風(fēng)險(xiǎn)檢測(cè)表上述問(wèn)題可以選用0,1,2,3,4,5來(lái)回16.3.2風(fēng)險(xiǎn)估算軟件項(xiàng)目管理人員可以從影響風(fēng)險(xiǎn)的因素和風(fēng)險(xiǎn)發(fā)生后帶來(lái)的損失兩方面來(lái)度量風(fēng)險(xiǎn)。為了對(duì)各種風(fēng)險(xiǎn)進(jìn)行估算,必須建立風(fēng)險(xiǎn)度量指標(biāo)體系;必須指明各種風(fēng)險(xiǎn)帶來(lái)的后果和損失;必須估算風(fēng)險(xiǎn)對(duì)軟件項(xiàng)目及軟件產(chǎn)品的影響;必須給出風(fēng)險(xiǎn)估算的定量結(jié)果

溫馨提示

  • 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)論