版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第22章個(gè)人軟件過(guò)程(PSP)22.1PSP的基本概念22.2PSP過(guò)程簡(jiǎn)介22.3PSP的數(shù)據(jù)收集與度量22.4PSP質(zhì)量管理22.5PSP與設(shè)計(jì)22.6PSP的發(fā)展22.7小結(jié)
第22章個(gè)人軟件過(guò)程(PSP)
個(gè)人軟件過(guò)程(PSP,PersonalSoftwareProcess)是一種可用于控制、管理和改進(jìn)個(gè)人工作方式的自我持續(xù)改進(jìn)過(guò)程。
第二次世界大戰(zhàn)以前,絕大多數(shù)的工業(yè)組織幾乎完全以測(cè)試作為質(zhì)量保證策略。各個(gè)組織專(zhuān)門(mén)成立質(zhì)檢部門(mén),在產(chǎn)品生產(chǎn)出來(lái)以后進(jìn)行測(cè)試、發(fā)現(xiàn)和解決問(wèn)題。直到20世紀(jì)七八十年代,W.EdwardsDeming和J.M.Juran才指引美國(guó)工業(yè)界集中注意改善人們的工作方式這一問(wèn)題。在隨后的幾年里,對(duì)于工作過(guò)程的重視帶動(dòng)了汽車(chē)、電子產(chǎn)品甚至其他各種產(chǎn)品的質(zhì)量的提高。對(duì)現(xiàn)在的工程性和制作性工作來(lái)說(shuō),傳統(tǒng)的“測(cè)試+維護(hù)”的策略無(wú)疑是費(fèi)錢(qián)、費(fèi)時(shí)且低效的。盡管絕大多數(shù)的工業(yè)組織現(xiàn)在都采用了現(xiàn)代質(zhì)量標(biāo)準(zhǔn),通過(guò)對(duì)整個(gè)生產(chǎn)過(guò)程的控制來(lái)保證質(zhì)量,但是一些軟件團(tuán)體仍然以測(cè)試作為主要的質(zhì)量管理方法。當(dāng)MichaelFagan在1976年引入軟件檢驗(yàn)概念時(shí),Deming和Juran所開(kāi)拓的軟件過(guò)程管理也邁開(kāi)了重要的第一步。通過(guò)使用過(guò)程檢查條例,軟件質(zhì)量從實(shí)質(zhì)上得到了改善。
在軟件質(zhì)量改善的過(guò)程中,另一個(gè)重要的階段就是1987年CMM模型的首次引入。CMM模型主要針對(duì)管理系統(tǒng),支持和協(xié)助開(kāi)發(fā)工程師,對(duì)改善軟件團(tuán)體的過(guò)程性能有著十分積極的影響。軟件質(zhì)量改善過(guò)程中再進(jìn)一步的發(fā)展就是個(gè)人軟件過(guò)程PSP的引入與應(yīng)用。PSP將改善過(guò)程擴(kuò)展到從事實(shí)際工作的工程師個(gè)人。PSP著重于單個(gè)工程師的工作實(shí)踐。其原則就是要建立優(yōu)質(zhì)的軟件系統(tǒng),而且每一個(gè)在該系統(tǒng)中工作的工程師必須做出優(yōu)質(zhì)的工作來(lái)。
PSP有助于軟件專(zhuān)業(yè)人員一致使用健全的工程規(guī)范。它告訴軟件工程師應(yīng)當(dāng)如何計(jì)劃和跟蹤他們個(gè)人的工作,如何使用已定義好的測(cè)量過(guò)程,如何建立測(cè)量目標(biāo),以及如何跟蹤那些與目標(biāo)不符的工作。它還指導(dǎo)工程師如何從工作一開(kāi)始起就進(jìn)行質(zhì)量管理,如何分析每一份工作的結(jié)果,以及如何利用這些結(jié)果來(lái)改善下一個(gè)工程項(xiàng)目的開(kāi)發(fā)過(guò)程。針對(duì)軟件行業(yè)的現(xiàn)狀,推行PSP是十分必要的。
當(dāng)軟件工程師第一次學(xué)習(xí)編程時(shí),他們就養(yǎng)成了個(gè)人的工作習(xí)慣。由于他們很少甚至沒(méi)有接受過(guò)關(guān)于如何有效工作的專(zhuān)業(yè)指導(dǎo),久而久之就可能會(huì)養(yǎng)成了不好的個(gè)人工作習(xí)慣。當(dāng)他們積累了一定的工作經(jīng)驗(yàn)后,有些工程師可能改變或提升了自己的習(xí)慣,而大多數(shù)則一直保持了下去。而在單位的績(jī)效考核中,往往大多看重工作結(jié)果,而忽視工作過(guò)程的考核,這使他們更加大膽地將壞習(xí)慣一直保持下去。即使當(dāng)公司進(jìn)行這方面的規(guī)范化培訓(xùn)時(shí),他們也不愿意改變,沒(méi)有將高效的工作方法進(jìn)行切實(shí)認(rèn)真的實(shí)踐,從而導(dǎo)致公司整體管理水平低下。這有點(diǎn)像雞和蛋的因果關(guān)系問(wèn)題,工程師只有當(dāng)他們親自實(shí)踐了軟件開(kāi)發(fā)過(guò)程規(guī)范化的好處時(shí)才會(huì)相信軟件開(kāi)發(fā)規(guī)范化,但他們?cè)诓幌嘈跑浖_(kāi)發(fā)規(guī)范化的好處前又不會(huì)去實(shí)踐。
PSP建立了一套工作計(jì)劃和績(jī)效考評(píng)體系,在培訓(xùn)實(shí)踐的各個(gè)階段分別進(jìn)行度量,最后進(jìn)行分析比較,最后工程師們(甚至包括公司領(lǐng)導(dǎo))將會(huì)直接地感受到軟件開(kāi)發(fā)規(guī)范化帶來(lái)的好處。
22.1PSP的基本概念
在WattsHumphrey最初倡導(dǎo)將CMM應(yīng)用于軟件之后,他打算將CMM應(yīng)用到編寫(xiě)小程序的過(guò)程當(dāng)中。許多人都想知道如何將CMM應(yīng)用到小團(tuán)體或者小的軟件開(kāi)發(fā)小組的工作當(dāng)中。當(dāng)CMM應(yīng)用到這樣的團(tuán)體時(shí),在明確該干什么這一點(diǎn)上,需要更多的指導(dǎo)。
在開(kāi)發(fā)模塊化程序時(shí),Humphrey親自使用了CMM五個(gè)等級(jí)的所有慣例。在1989年4月他開(kāi)始這一項(xiàng)目后不久,軟件工程學(xué)會(huì)吸收他為其中的一員,專(zhuān)門(mén)從事PSP研究。在隨后的三年里,他開(kāi)發(fā)了62個(gè)程序并定義了15個(gè)PSP過(guò)程版本。他使用Pascal、ObjectPascal以及C++?編程語(yǔ)言開(kāi)發(fā)了將近25000行代碼。據(jù)經(jīng)驗(yàn),他認(rèn)為Deming和Juran過(guò)程管理原則可以像應(yīng)用到其他技術(shù)領(lǐng)域一樣,應(yīng)用到各個(gè)軟件工程師的工作中。
軟件工程師采用PSP,能夠改變現(xiàn)在手工作坊式的軟件開(kāi)發(fā)習(xí)慣,提高自己的工作質(zhì)量和工作效率;提高個(gè)人的工作性能,保證能夠按時(shí)完成任務(wù),逐步使工作失誤不斷減少,工作不用經(jīng)常加班加點(diǎn),與別人合作愉快;能夠不斷提高項(xiàng)目估算的準(zhǔn)確性,有助于把握資源能力,進(jìn)行更好的計(jì)劃和跟蹤;有助于建立個(gè)人軟件過(guò)程能力的度量指標(biāo):規(guī)模估計(jì)、工作量估計(jì)、工作質(zhì)量估計(jì)、工作效率估計(jì)、工作量階段分配等,不斷地提高個(gè)人的過(guò)程能力。軟件工程師采用PSP,能夠推動(dòng)個(gè)人能力指標(biāo)的量化,包括每小時(shí)的編碼行數(shù)、每千行代碼的缺陷數(shù)量、每小時(shí)的排除缺陷數(shù)目、每小時(shí)編寫(xiě)文檔的頁(yè)數(shù)、每小時(shí)閱讀量、每小時(shí)出現(xiàn)錯(cuò)誤的數(shù)量、每小時(shí)的工作成本、每小時(shí)創(chuàng)造的價(jià)值、每個(gè)人的創(chuàng)造價(jià)值與無(wú)效工作的時(shí)間的比例等等。
推行PSP,能夠在大量數(shù)據(jù)積累與分析的基礎(chǔ)上,尋求對(duì)于提高軟件質(zhì)量來(lái)說(shuō)最恰當(dāng)?shù)碾A段工作比例分配,例如,根據(jù)PSP相關(guān)資料介紹,詳細(xì)設(shè)計(jì)與編碼的時(shí)間比例大于100%、設(shè)計(jì)審查與設(shè)計(jì)的時(shí)間比例大于50%、編碼審查與編碼的時(shí)間比例大于50%?將是保證軟件質(zhì)量的必需。22.1.1PSP的基本原則
PSP的設(shè)計(jì)基于下列一些計(jì)劃和質(zhì)量原則:
(1)每一個(gè)工程師都是不同的,所以要想工作效率最高,必須在工作一開(kāi)始就對(duì)工作進(jìn)行估算并且依照自己積累的歷史數(shù)據(jù)制定適合于個(gè)人的工作計(jì)劃。
(2)工程師必須使用明確定義和度量的過(guò)程。在按照計(jì)劃開(kāi)展工作的同時(shí),對(duì)工作數(shù)據(jù)(時(shí)間、缺陷等)進(jìn)行度量,并根據(jù)度量結(jié)果進(jìn)行分析,不斷改進(jìn)工作。
(3)工程師們必須意識(shí)到要對(duì)產(chǎn)品質(zhì)量負(fù)責(zé)。優(yōu)良的產(chǎn)品不是由錯(cuò)誤生產(chǎn)出來(lái)的,因此工程師們必須做好他們的工作。
(4)在開(kāi)發(fā)工程中發(fā)現(xiàn)和改正錯(cuò)誤越早,整體成本就越低。
(5)預(yù)防錯(cuò)誤比發(fā)現(xiàn)和改正錯(cuò)誤更有效。
(6)正確的也是最快的、最便宜的。22.1.2PSP的結(jié)構(gòu)
圖22.1從概念上描述了PSP過(guò)程的結(jié)構(gòu)。從需求陳述開(kāi)始,PSP過(guò)程的第一步就是計(jì)劃,使用計(jì)劃腳本來(lái)指導(dǎo)工作,使用計(jì)劃總結(jié)來(lái)記錄計(jì)劃數(shù)據(jù)。當(dāng)工程師們按照腳本開(kāi)展工作時(shí),他們將同時(shí)記錄每一項(xiàng)工作所花費(fèi)的時(shí)間和工作中出現(xiàn)的缺陷數(shù)據(jù),記入工作日志。在工作的最后階段,他們從日志中讀出時(shí)間以及缺陷數(shù)據(jù),再一次計(jì)算所開(kāi)發(fā)程序的實(shí)際大小,并且在計(jì)劃總結(jié)表中輸入所有的實(shí)際總結(jié)數(shù)據(jù)。當(dāng)這些工作完成之后,提交最終產(chǎn)品以及一份完整的計(jì)劃與跟蹤總結(jié)表。圖22.1基于PSP的工作流程圖
PSP過(guò)程當(dāng)中包含許多方法,這些方法是在一系列的過(guò)程版本中講述的。每一個(gè)過(guò)程版本中都含有類(lèi)似的日志文件、表單、腳本以及規(guī)程標(biāo)準(zhǔn)元素,如圖22.2所示。過(guò)程腳本定義了每個(gè)階段所包含的步驟;日志文件和表單提供了記錄和存儲(chǔ)計(jì)劃數(shù)據(jù)和測(cè)量數(shù)據(jù)的模板;規(guī)程則是用來(lái)指導(dǎo)工程師們?nèi)绾喂ぷ鞯摹?/p>
PSP腳本是一個(gè)設(shè)計(jì)好的以備使用的過(guò)程方法,由一些簡(jiǎn)單且精確的指令步驟以簡(jiǎn)單而便于使用的方式組織起來(lái)的。腳本中原則性地描述了工程師應(yīng)當(dāng)做什么,但不包含那些未經(jīng)培訓(xùn)的用戶(hù)所需要的詳細(xì)的指導(dǎo)性資料。編寫(xiě)腳本的目的是引導(dǎo)工程師們一致使用他們所了解的過(guò)程或方法。此外,PSP還涉及到在工作計(jì)劃、評(píng)估、數(shù)據(jù)收集、質(zhì)量管理以及設(shè)計(jì)過(guò)程中所使用到的各種方法。圖22.2PSP元素
22.2PSP過(guò)程簡(jiǎn)介
圖22.3PSP過(guò)程示意圖22.2.1需求定義與概念設(shè)計(jì)
在開(kāi)始PSP的計(jì)劃過(guò)程時(shí),應(yīng)盡可能詳細(xì)地定義需要完成的工作。如果使用了需求陳述,那么該陳述應(yīng)該是計(jì)劃的依據(jù)。在需求被定義之后,要做出估算,再根據(jù)估算結(jié)果制定出計(jì)劃。
首先要明確如何設(shè)計(jì)和實(shí)現(xiàn)最終的產(chǎn)品。然而,因?yàn)橛?jì)劃階段位于最前期而不能實(shí)現(xiàn)一個(gè)完整的產(chǎn)品設(shè)計(jì),所以這個(gè)階段的設(shè)計(jì)被稱(chēng)為概念設(shè)計(jì)。如果工程師們僅根據(jù)目前所了解的信息來(lái)開(kāi)發(fā)產(chǎn)品的話(huà),對(duì)于最終產(chǎn)品是什么樣子只能是一個(gè)粗略的猜測(cè)而已。到后來(lái)的設(shè)計(jì)階段,工程師們可以不斷檢驗(yàn)可供選擇的方案,并且進(jìn)行優(yōu)化并確定最終的設(shè)計(jì)方案。22.2.2產(chǎn)品規(guī)模與資源估算
對(duì)開(kāi)發(fā)人員個(gè)體而言,產(chǎn)品的規(guī)模(程序大小是其最直觀的表現(xiàn))與開(kāi)發(fā)時(shí)間之間的相關(guān)性一般都是很高的。因此,PSP計(jì)劃制定從估計(jì)個(gè)人所要開(kāi)發(fā)的產(chǎn)品規(guī)模大小開(kāi)始,然后根據(jù)個(gè)人要完成的程序規(guī)模及歷史生產(chǎn)率數(shù)據(jù),可以估計(jì)本人完成該項(xiàng)工作所需要的時(shí)間資源。估算的結(jié)果可以用作制定個(gè)人工作計(jì)劃的依據(jù)。在進(jìn)行產(chǎn)品規(guī)模估算時(shí),經(jīng)常采用PROBE方法。PROBE的全稱(chēng)是“PROxyBasedEstimating”,它用對(duì)象作為估算產(chǎn)品規(guī)模的基礎(chǔ),依靠歷史數(shù)據(jù)與經(jīng)驗(yàn)進(jìn)行基于產(chǎn)品規(guī)模的工作量估算。使用PROBE方法時(shí),首先定義要構(gòu)建概念設(shè)計(jì)階段所描述的產(chǎn)品所需要的對(duì)象,然后為每個(gè)對(duì)象定義某些屬性和一定數(shù)量的方法,參考以前曾開(kāi)發(fā)過(guò)的類(lèi)似對(duì)象的原始規(guī)模數(shù)據(jù),使用線(xiàn)性回歸方法來(lái)估算當(dāng)前最終產(chǎn)品的規(guī)模大小。表22.1中有關(guān)的對(duì)象規(guī)模數(shù)據(jù)說(shuō)明了PSP所使用的五類(lèi)基本對(duì)象的平均規(guī)模(每個(gè)方法的代碼行)。對(duì)象規(guī)模是編程風(fēng)格的函數(shù),PROBE方法告訴工程師們?nèi)绾问褂盟麄円酝e累的有關(guān)個(gè)人工作的數(shù)據(jù)資料,得出供他們個(gè)人使用的產(chǎn)品規(guī)模估算結(jié)果,并結(jié)合歷史生產(chǎn)率數(shù)據(jù),估算出將要開(kāi)發(fā)的代碼數(shù)量。PROBE同樣也使用線(xiàn)性回歸來(lái)估算為完成當(dāng)前任務(wù)所需要的開(kāi)發(fā)資源(時(shí)間、設(shè)備資源等等)。22.2.3制定進(jìn)度表
一旦工程師們估計(jì)出完成工作所需要的總時(shí)間數(shù),他們就可以根據(jù)歷史數(shù)據(jù)進(jìn)行階段時(shí)間分配。也就是估計(jì)每個(gè)工作階段所需要的時(shí)間,為項(xiàng)目計(jì)劃工作、設(shè)計(jì)工作、設(shè)計(jì)審查、編碼、編碼審查、單元測(cè)試以及收尾工作等分別分配時(shí)間資源,制定整個(gè)項(xiàng)目的進(jìn)
度表。
一旦工程師們知道過(guò)程的每一步所需要的時(shí)間,他們就可以估計(jì)每天或每個(gè)星期應(yīng)當(dāng)花在這項(xiàng)工作上的時(shí)間了。根據(jù)這些信息,就可以為完成每項(xiàng)任務(wù)計(jì)劃所需要的時(shí)間,形成詳細(xì)的進(jìn)度表。對(duì)于較大型的項(xiàng)目,PSP也使用“完成量”的方法來(lái)安排日程與跟蹤工作。22.2.4開(kāi)發(fā)產(chǎn)品階段
進(jìn)度表制定完成之后,計(jì)劃階段告一段落,進(jìn)入產(chǎn)品開(kāi)發(fā)階段。在這一過(guò)程中,工程師們開(kāi)始進(jìn)行實(shí)際的設(shè)計(jì)與編程工作。這一階段的工作應(yīng)當(dāng)按照計(jì)劃劃分的時(shí)間段進(jìn)行。對(duì)于工作進(jìn)展的跟蹤和信息收集是這一階段必須要注意的問(wèn)題。
PSP要求對(duì)工作計(jì)劃的執(zhí)行情況要進(jìn)行跟蹤分析。每完成一項(xiàng)工作過(guò)后,工程師們將進(jìn)行事后分析,并將實(shí)際使用的時(shí)間、出現(xiàn)的問(wèn)題及其解決方法等必要信息進(jìn)行記錄。在最后提交階段,他們將跟蹤所得的實(shí)際數(shù)據(jù)添加到項(xiàng)目計(jì)劃總結(jié)表中,包括所有需要的質(zhì)量或其他性能方面的數(shù)據(jù),并應(yīng)當(dāng)討論在實(shí)際工作進(jìn)展與計(jì)劃不符的情況下是否進(jìn)行了必要的調(diào)控以保證工作的正常執(zhí)行。最后工程師們用實(shí)際數(shù)據(jù)更新原始的規(guī)模估算和生產(chǎn)率數(shù)據(jù)庫(kù)。與此同時(shí),他們將檢查所有的過(guò)程改進(jìn)建議,校正過(guò)程方法;檢查在編譯和測(cè)試中所發(fā)現(xiàn)的缺陷,更新他們的個(gè)人檢查校驗(yàn)表,提高個(gè)人歷史數(shù)據(jù)的準(zhǔn)確性,以便于他們將來(lái)更好地發(fā)現(xiàn)和矯正錯(cuò)誤。
22.3PSP的數(shù)據(jù)收集與度量
22.3.1時(shí)間數(shù)據(jù)的收集與度量
在PSP中,工程師們使用時(shí)間記錄日志來(lái)衡量在每個(gè)過(guò)程階段中所花費(fèi)的時(shí)間。在日志文件中,他們標(biāo)明任務(wù)的開(kāi)始時(shí)間、結(jié)束時(shí)間以及所有中斷時(shí)間。例如,一個(gè)電話(huà),一個(gè)簡(jiǎn)短的休息甚至是某人問(wèn)一個(gè)問(wèn)題所造成的中斷。精確跟蹤時(shí)間,工程師們可以掌握在項(xiàng)目任務(wù)上所付出的實(shí)際勞動(dòng)。由于中斷時(shí)間本來(lái)就是隨機(jī)的,因此忽略這些時(shí)間將給時(shí)間數(shù)據(jù)帶來(lái)很大的隨機(jī)誤差,從而降低了估計(jì)的精確性。22.3.2產(chǎn)品規(guī)模數(shù)據(jù)的收集與度量
產(chǎn)品的開(kāi)發(fā)周期在很大程度上是由其規(guī)模決定的,所以當(dāng)使用PSP時(shí),工程師們首先要估算出待開(kāi)發(fā)產(chǎn)品的規(guī)模。當(dāng)開(kāi)發(fā)工作完成之后,工程師們應(yīng)當(dāng)再次衡量所開(kāi)發(fā)產(chǎn)品的實(shí)際規(guī)模,找出實(shí)際規(guī)模和估算規(guī)模之間的偏差值,充實(shí)歷史數(shù)據(jù)庫(kù)并校正用于規(guī)模估算的回歸算法。進(jìn)行產(chǎn)品規(guī)模衡量的方法必須與產(chǎn)品的開(kāi)發(fā)時(shí)間相關(guān)。雖然代碼行方法是主要的PSP規(guī)模衡量方法,但是任何可以在開(kāi)發(fā)時(shí)間與產(chǎn)品規(guī)模之間建立合理關(guān)聯(lián)關(guān)系的規(guī)模衡量方法都是可用的(例如功能點(diǎn)方法、特征點(diǎn)方法),而且對(duì)實(shí)際的產(chǎn)品規(guī)模采用自動(dòng)化的衡量方法應(yīng)該也是允許的。
PSP中的“LogicalLOC”術(shù)語(yǔ)是指所用的編程語(yǔ)言中的一種邏輯結(jié)構(gòu)。因?yàn)橛卸喾N方式來(lái)定義“邏輯代碼行”,所以工程師們必須明確聲明他們是如何衡量代碼行的。如果工程師是在一個(gè)開(kāi)發(fā)團(tuán)體或組織中工作的,那就應(yīng)該使用團(tuán)隊(duì)或組織所規(guī)定的代碼行衡量標(biāo)準(zhǔn)。如果沒(méi)有,工程師們可以參考PSP來(lái)制定自己的標(biāo)準(zhǔn)。由于PSP要求工程師們衡量所開(kāi)發(fā)產(chǎn)品的規(guī)模,而且手工計(jì)算程序大小既費(fèi)時(shí)間又不準(zhǔn)確,因此希望使用有效的“自動(dòng)化計(jì)算工具”來(lái)計(jì)算實(shí)際代碼行數(shù)。
要想跟蹤程序的規(guī)模在開(kāi)發(fā)過(guò)程中是如何變化的,則了解產(chǎn)品代碼行方法中的各種代碼行的類(lèi)別是很重要的。
(1)基礎(chǔ)的:擴(kuò)充現(xiàn)有軟件產(chǎn)品時(shí),“基礎(chǔ)LOC”指改動(dòng)之前原有產(chǎn)品的大小。
(2)添加的:附加代碼是指為一個(gè)新程序編寫(xiě)的代碼或者是添加到現(xiàn)有程序的代碼。
(3)修改的:修正LOC是指現(xiàn)有程序中被修改的基礎(chǔ)代碼。
(4)刪除的:刪除型LOC是指現(xiàn)有程序中被刪除的基礎(chǔ)代碼。
(5)新的或修改的:在工程師們開(kāi)發(fā)軟件的過(guò)程中,他們將花費(fèi)掉更多的時(shí)間來(lái)添加或修改程序,因此,在PSP中,工程師們?cè)谶M(jìn)行規(guī)模和資源估計(jì)時(shí)可以?xún)H僅考慮添加的或修改的代碼。這些代碼通常被稱(chēng)作是“新的和修改的LOC”。
(6)重用的:在PSP中,重用型LOC是指從重用代碼庫(kù)取出后不加修改地應(yīng)用到新的軟件或新軟件版本中的代碼。其中包括舊的版本中保留下來(lái)的沒(méi)有修改的代碼,而不包括那些重用后又作以修改的代碼。
開(kāi)發(fā)與維護(hù)程序時(shí),有必要跟蹤一下在源程序中所發(fā)生的變化。這些數(shù)據(jù)可以用來(lái)度量所開(kāi)發(fā)產(chǎn)品的大小、工程師的生產(chǎn)率以及產(chǎn)品質(zhì)量。為獲得這些數(shù)據(jù),PSP中使用規(guī)模計(jì)算方法來(lái)跟蹤所有的增加部分、刪除部分以及源程序的變化。要使用規(guī)模計(jì)算,需要有關(guān)各類(lèi)代碼數(shù)量的數(shù)據(jù)。例如,為一個(gè)具有100000行代碼的程序開(kāi)發(fā)新的版本,需要?jiǎng)h除12000行、添加23000行、修改5000行、重用3000行,則最終的N&CLOC=Added+Modified9,即為28000行。如果要衡量整個(gè)產(chǎn)品的大小,則應(yīng)該采用下列算式:
代碼行總數(shù)=基礎(chǔ)型-刪除量+添加量+重用量
其中,修改部分和更新重用部分都不在總數(shù)中。這主要是因?yàn)樾薷牧靠梢杂脛h除量和添加量來(lái)代替;更新重用部分則已經(jīng)被算入添加量中了。利用這個(gè)公式,上例的產(chǎn)品總量則應(yīng)是:
Total=100000-12000+23000+3000=114000LOC
亦即114kLOC。22.3.3質(zhì)量數(shù)據(jù)的收集與測(cè)量
PSP中質(zhì)量的度量主要集中在缺陷測(cè)量上。要管理所存在的缺陷,工程師們需要有關(guān)被引入缺陷的數(shù)據(jù)、引入缺陷的階段數(shù)據(jù)、發(fā)現(xiàn)和修改缺陷的階段數(shù)據(jù)以及需要花費(fèi)多長(zhǎng)時(shí)間修改缺陷的數(shù)據(jù)等。利用PSP,工程師們記錄在每個(gè)階段(包括評(píng)審、檢查、編譯及測(cè)試)發(fā)現(xiàn)的所有缺陷的相關(guān)數(shù)據(jù)。這些數(shù)據(jù)被存放在缺陷記錄日志文件中。術(shù)語(yǔ)“defect”是指程序中存在的錯(cuò)誤。它可能是拼寫(xiě)錯(cuò)誤、標(biāo)點(diǎn)錯(cuò)誤或者是錯(cuò)誤的程序聲明。錯(cuò)誤可以出現(xiàn)在程序代碼和設(shè)計(jì)方案中,甚至也可以在需求說(shuō)明、規(guī)格說(shuō)明或者其他文檔中。在過(guò)程的任何階段都可能發(fā)現(xiàn)錯(cuò)誤,它們可能是多余的或附加的陳述、錯(cuò)誤的陳述或者是被遺漏的程序片斷。事實(shí)上,一個(gè)缺陷就可能導(dǎo)致程序不能完全和高效地滿(mǎn)足用戶(hù)的需求。它具有客觀性,工程師們可以識(shí)別、描述和衡量它。根據(jù)規(guī)模、時(shí)間以及缺陷數(shù)據(jù),工程師們可以采用多種方式來(lái)衡量、估計(jì)和管理程序的質(zhì)量。PSP提供了一系列的方法來(lái)指導(dǎo)工程師們從多種角度檢查程序的質(zhì)量,盡管沒(méi)有一種方法能夠充分全面地反映一個(gè)程序的質(zhì)量。用以衡量質(zhì)量的幾種主要方法如下:
(1)錯(cuò)誤密度。
(2)評(píng)審率。
(3)開(kāi)發(fā)時(shí)間比。
(4)階段缺陷率
(5)合格率。
(6)每小時(shí)的缺陷數(shù)。
(7)缺陷清除比。
(8)失敗率評(píng)價(jià)。
1.錯(cuò)誤密度
錯(cuò)誤密度是指在新加入或修改的代碼中每kLOC中存在的缺陷數(shù)。
如果150行中存在18個(gè)錯(cuò)誤,那么錯(cuò)誤密度就是1000×18/150=120defects/kLOC。一般在整個(gè)開(kāi)發(fā)過(guò)程或者個(gè)別開(kāi)發(fā)階段中衡量錯(cuò)誤密度。因?yàn)闇y(cè)試階段只能清除產(chǎn)品中所存在的部分錯(cuò)誤,所以如果在進(jìn)入測(cè)試階段時(shí)程序中有更多的錯(cuò)誤,那就意味著在測(cè)試結(jié)束后也將會(huì)有更多的錯(cuò)誤遺留。因此,在測(cè)試階段所發(fā)現(xiàn)的錯(cuò)誤量可以很好地反映在測(cè)試階段結(jié)束后遺留在程序中的錯(cuò)誤量。如果工程師們?cè)趩卧獪y(cè)試中竭盡所能地進(jìn)行了測(cè)試,若發(fā)現(xiàn)的錯(cuò)誤量相對(duì)越少,則他們的程序質(zhì)量相對(duì)越高。在PSP中,如果每千行代碼中至多有5個(gè)錯(cuò)誤,則認(rèn)為該程序是高質(zhì)量的。對(duì)那些沒(méi)有經(jīng)過(guò)PSP培訓(xùn)的工程師們來(lái)說(shuō),單元測(cè)試中錯(cuò)誤率一般是20~40個(gè)/kLOC或更高。
2.評(píng)審率
在PSP設(shè)計(jì)和代碼評(píng)審中,工程師們都必須對(duì)自己所作的工作做出評(píng)審。PSP數(shù)據(jù)表明,如果工程師們?cè)u(píng)審設(shè)計(jì)或代碼的速度超過(guò)200行每小時(shí)的話(huà),將會(huì)有很多缺陷被遺漏。如果在PSP中使用評(píng)審率方法來(lái)評(píng)價(jià)質(zhì)量,工程師們就必須收集有關(guān)評(píng)審的數(shù)據(jù),然后估算出個(gè)人評(píng)審進(jìn)度,以便間接地確定在概率意義上被遺漏的缺陷數(shù)量。
3.開(kāi)發(fā)時(shí)間比
它是指單個(gè)工程師在任何兩個(gè)開(kāi)發(fā)階段所花費(fèi)的時(shí)間比。在PSP中,三種用于過(guò)程估計(jì)的開(kāi)發(fā)時(shí)間比分別是設(shè)計(jì)時(shí)間/編碼時(shí)間、設(shè)計(jì)評(píng)審時(shí)間/設(shè)計(jì)時(shí)間以及編碼評(píng)審時(shí)間/編碼時(shí)間。
設(shè)計(jì)時(shí)間/編碼時(shí)間度量方法在決定單個(gè)工程師設(shè)計(jì)工作質(zhì)量中是最有效的。如果設(shè)計(jì)時(shí)間少于編碼時(shí)間,他們就在編碼的同時(shí)進(jìn)行大部分的設(shè)計(jì)工作。這就意味著設(shè)計(jì)可能不備有文檔,不能進(jìn)行評(píng)審和檢查,這種設(shè)計(jì)質(zhì)量也就很差。PSP的指導(dǎo)方針就是設(shè)計(jì)時(shí)間至少應(yīng)該與編碼實(shí)現(xiàn)時(shí)間相同。設(shè)計(jì)評(píng)審時(shí)間與設(shè)計(jì)時(shí)間的比率是基于表22.2中所列的數(shù)據(jù)的。在PSP過(guò)程中,工程師們?cè)谠敿?xì)設(shè)計(jì)時(shí)平均每小時(shí)引入1.76個(gè)錯(cuò)誤,在設(shè)計(jì)評(píng)審時(shí)平均每小時(shí)發(fā)現(xiàn)2.96個(gè)錯(cuò)誤。因此,要發(fā)現(xiàn)在設(shè)計(jì)階段引入的所有錯(cuò)誤,工程師們必須花費(fèi)相當(dāng)于設(shè)計(jì)時(shí)間59%的時(shí)間用于設(shè)計(jì)評(píng)審。PSP原則就是至少應(yīng)花費(fèi)50%的設(shè)計(jì)時(shí)間用于設(shè)計(jì)評(píng)審。編碼評(píng)審時(shí)間與編碼時(shí)間比也是度量過(guò)程質(zhì)量的有效方法。在編碼過(guò)程中,工程師們平均每小時(shí)引入4.2個(gè)錯(cuò)誤;在編碼評(píng)審中平均每小時(shí)發(fā)現(xiàn)6.52個(gè)錯(cuò)誤。因此,基于表22.2中的數(shù)據(jù),工程師們必須花費(fèi)相當(dāng)于編碼時(shí)間的65%的時(shí)間用于編碼評(píng)審。PSP原則就是至少應(yīng)花費(fèi)50%的編碼時(shí)間用于編碼評(píng)審。
4.階段缺陷率
階段缺陷率是指在一個(gè)階段發(fā)現(xiàn)的錯(cuò)誤量同其他階段所發(fā)現(xiàn)錯(cuò)誤量之比。主要的缺陷率是編碼評(píng)審錯(cuò)誤量與編譯階段錯(cuò)誤量之比以及設(shè)計(jì)評(píng)審錯(cuò)誤量與單元測(cè)試錯(cuò)誤量之比。PSP認(rèn)為,在合理情況下,在編碼評(píng)審中發(fā)現(xiàn)的錯(cuò)誤量應(yīng)至少是編譯時(shí)發(fā)現(xiàn)錯(cuò)誤量的兩倍。編譯發(fā)現(xiàn)錯(cuò)誤量是編碼質(zhì)量的客觀度量尺度。如果上面的倍數(shù)大于兩倍,就可以說(shuō)明他們進(jìn)行了較深入的編碼評(píng)審,或者是沒(méi)有記錄所有的編譯缺陷量。PSP也建議設(shè)計(jì)評(píng)審錯(cuò)誤量是單元測(cè)試錯(cuò)誤量的兩倍或更多。如果倍數(shù)剛好為2,則說(shuō)明他們已經(jīng)進(jìn)行了足夠的設(shè)計(jì)評(píng)審了。
PSP綜合使用時(shí)間比和缺陷密度兩種衡量方法來(lái)判斷是否可以進(jìn)行綜合測(cè)試和系統(tǒng)測(cè)試。編碼評(píng)審與編譯缺陷量之比能夠反映編碼質(zhì)量;設(shè)計(jì)評(píng)審與單元測(cè)試缺陷量之比能夠反映設(shè)計(jì)質(zhì)量。如果有一種衡量方法的結(jié)果不好,則根據(jù)PSP質(zhì)量標(biāo)準(zhǔn)可知,該程序在測(cè)試或者投入使用后可能會(huì)存在許多問(wèn)題。
5.合格率(有效工作比率)
PSP中采用兩種途徑來(lái)度量合格率。根據(jù)某階段所發(fā)現(xiàn)和清除的缺陷比率可以度量出該階段的合格率。如果單元測(cè)試前程序中含有20個(gè)錯(cuò)誤,單元測(cè)試中發(fā)現(xiàn)9個(gè),那么單元測(cè)試階段的合格率將是45%。同樣地,編碼評(píng)審時(shí)程序中有50個(gè)錯(cuò)誤,評(píng)審中發(fā)現(xiàn)28個(gè),則編碼評(píng)審階段合格率為56%。過(guò)程合格率是指首次編譯與單元測(cè)試之前清除的錯(cuò)誤比率。因?yàn)镻SP的目標(biāo)就是開(kāi)發(fā)高質(zhì)量的程序,所以原則上過(guò)程合格率以不低于70%為宜。只有到一個(gè)程序生命周期結(jié)束后才能精確計(jì)算合格率。到那時(shí),大概所有的缺陷都將被發(fā)現(xiàn)。如果程序的質(zhì)量很高,通常也可以在概率含義上作出相當(dāng)好的早期合格率估計(jì)。PSP中針對(duì)合格率估計(jì)的指導(dǎo)方針是假設(shè)殘留在程序中的缺陷量與在最后測(cè)試階段發(fā)現(xiàn)的缺陷量相同。如果程序中缺陷數(shù)據(jù)如表22.3中所示,則單元測(cè)試后可能有7個(gè)錯(cuò)誤遺漏。
如表22.4所示,引入的所有缺陷數(shù)(包括估計(jì)遺留的缺陷)總共是65個(gè)。在設(shè)計(jì)評(píng)審初期,缺陷數(shù)是26個(gè),所以設(shè)計(jì)評(píng)審的合格率是100?×?11/26=42.3%。在代碼評(píng)審初期,缺陷數(shù)是54個(gè),少于設(shè)計(jì)評(píng)審中清除的缺陷數(shù),所以代碼評(píng)審合格率是100?×?28/54=51.9%。類(lèi)似地,編譯合格率是100?×?12/(65-11-28)=46.2%。過(guò)程合格率是過(guò)程質(zhì)量最好的度量尺度。根據(jù)表中數(shù)據(jù),過(guò)程合格率是100?×?39/65=60.0%。6.每小時(shí)的缺陷數(shù)
根據(jù)PSP數(shù)據(jù),可以計(jì)算出工程師每小時(shí)引入和清除的缺陷數(shù)。然后利用這些結(jié)果數(shù)據(jù)來(lái)指導(dǎo)修訂個(gè)人計(jì)劃。例如,如果工程師在編碼階段每小時(shí)引入4個(gè)錯(cuò)誤,在編碼評(píng)審階段每小時(shí)修正8個(gè)錯(cuò)誤,那么對(duì)應(yīng)于每小時(shí)編碼時(shí)間,將花費(fèi)30分鐘的時(shí)間用于編碼評(píng)審。要想發(fā)現(xiàn)絕大多數(shù)錯(cuò)誤,就要花費(fèi)更長(zhǎng)的時(shí)間了。根據(jù)某工程師項(xiàng)目計(jì)劃總結(jié)表中的數(shù)據(jù)可以計(jì)算出他每小時(shí)的缺陷數(shù)。
7.缺陷清除比(DRL)
缺陷清除比主要是用來(lái)衡量?jī)蓚€(gè)缺陷清除階段之間的對(duì)比效率的。假如在樣例數(shù)據(jù)中,設(shè)計(jì)評(píng)審對(duì)整個(gè)單元測(cè)試的缺陷清除比是3.06/1.71=1.79。這也就意味著工程師在設(shè)計(jì)階段發(fā)現(xiàn)缺陷的效率要比在單元測(cè)試階段發(fā)現(xiàn)缺陷的效率高1.79倍。DRL方法可以幫助工程師們制定最高效的缺陷清除計(jì)劃。
8.失敗率評(píng)價(jià)
失敗率評(píng)價(jià)方法用質(zhì)檢/過(guò)失(A/FR)參數(shù)來(lái)衡量開(kāi)發(fā)過(guò)程的質(zhì)量。其中“A”代表質(zhì)量檢測(cè)費(fèi)用,或者是用于質(zhì)量鑒定事宜上的開(kāi)發(fā)時(shí)間比重,在PSP中,鑒定費(fèi)用是指用于設(shè)計(jì)和編碼評(píng)審的時(shí)間,包括在評(píng)審中修改錯(cuò)誤所用的時(shí)間;“F”是指疏漏所造成的時(shí)間浪費(fèi),即用于修復(fù)和補(bǔ)救疏漏的時(shí)間,通常是指用于編譯和單元測(cè)試的時(shí)間,包括在這些階段發(fā)現(xiàn)、修改、重復(fù)編譯和重復(fù)測(cè)試所花費(fèi)的時(shí)間。A/FR為評(píng)定單個(gè)程序質(zhì)量和比較多個(gè)程序開(kāi)發(fā)過(guò)程的質(zhì)量都提供了一個(gè)很好的途徑。它也能夠反映出在開(kāi)發(fā)工程中工程師發(fā)現(xiàn)和修改錯(cuò)誤的努力程度。PSP中一般建議工程師們將A/FR的值定為2.0或更高。這可以確保有足夠的時(shí)間用于設(shè)計(jì)和代碼評(píng)審。 22.4PSP質(zhì)量管理
22.4.1缺陷與質(zhì)量
高質(zhì)量的軟件產(chǎn)品必須滿(mǎn)足用戶(hù)的功能需求,并且能夠一貫可靠的運(yùn)行。雖然軟件功能對(duì)用戶(hù)而言是最重要的,但是只有軟件運(yùn)行之后功能才是可用的。要想讓軟件運(yùn)行,工程師們必須清除幾乎所有存在的缺陷。因此,雖然影響軟件質(zhì)量的因素有多方面,但是工程師們對(duì)質(zhì)量的重視在發(fā)現(xiàn)和清除缺陷方面是很必要的。PSP數(shù)據(jù)表明,即使是經(jīng)驗(yàn)豐富的編程人員,每7~10行代碼也會(huì)出現(xiàn)一個(gè)錯(cuò)誤。雖然工程師們能夠在編譯和單元測(cè)試時(shí)發(fā)現(xiàn)大多數(shù)錯(cuò)誤,但是傳統(tǒng)的軟件方法常常導(dǎo)致在最終的成品中仍然遺留了許多錯(cuò)誤。簡(jiǎn)單的編碼錯(cuò)誤將會(huì)導(dǎo)致具有破壞性的或者很難發(fā)現(xiàn)的錯(cuò)誤。相反,許多復(fù)雜的設(shè)計(jì)錯(cuò)誤卻是很容易發(fā)現(xiàn)的。錯(cuò)誤和結(jié)果在很大程度上是獨(dú)立的。甚至細(xì)小的操作錯(cuò)誤也可以導(dǎo)致嚴(yán)重的系統(tǒng)問(wèn)題。既然絕大多數(shù)的錯(cuò)誤都來(lái)源于編程人員的疏忽,認(rèn)識(shí)到這一點(diǎn)就變得尤其重要了。為了改善軟件質(zhì)量,PSP指導(dǎo)工程師們?nèi)绾胃櫤涂刂扑l(fā)現(xiàn)的缺陷。22.4.2工程師的質(zhì)量職責(zé)
PSP第一條質(zhì)量原則是“工程師們對(duì)他們所開(kāi)發(fā)的產(chǎn)品負(fù)責(zé)”。因?yàn)榫帉?xiě)該程序的軟件人員對(duì)程序是最熟悉的,他能夠高效地發(fā)現(xiàn)和修正錯(cuò)誤。PSP中提供了一系列的實(shí)例和方法來(lái)幫助工程師檢查他所開(kāi)發(fā)的產(chǎn)品的質(zhì)量,以及指導(dǎo)他們盡可能快地發(fā)現(xiàn)和修正所有的錯(cuò)誤。除了對(duì)質(zhì)量進(jìn)行度量與跟蹤之外,PSP質(zhì)量管理方法還包括缺陷清除和缺陷預(yù)防。22.4.3盡可能早地清除缺陷
PSP質(zhì)量管理的主要目的就是在首次編譯和單元測(cè)試之前發(fā)現(xiàn)和修正錯(cuò)誤。PSP過(guò)程中包含設(shè)計(jì)評(píng)審和編碼評(píng)審階段,在這些階段里,工程師們可以在檢查、編譯和測(cè)試程序之前,人為地對(duì)他們的勞動(dòng)產(chǎn)品進(jìn)行評(píng)審。隱藏在PSP評(píng)審過(guò)程背后的事實(shí)就是人們都趨于重復(fù)地犯同樣的錯(cuò)誤。因此,通過(guò)分析有關(guān)缺陷數(shù)據(jù)、分析用于發(fā)現(xiàn)那些缺陷所做的工作列表,工程師們可以更高效地發(fā)現(xiàn)和修正缺陷。在樣例數(shù)據(jù)中,經(jīng)過(guò)PSP培訓(xùn)的工程師在個(gè)人編碼評(píng)審中每小時(shí)平均發(fā)現(xiàn)6.52個(gè)錯(cuò)誤,在設(shè)計(jì)評(píng)審中平均發(fā)現(xiàn)2.96個(gè)錯(cuò)誤。與此相比較,單元測(cè)試中每小時(shí)發(fā)現(xiàn)2.21個(gè)錯(cuò)誤。利用PSP數(shù)據(jù),工程師們既可以節(jié)省時(shí)間,又可以改善產(chǎn)品質(zhì)量。例如,從PSP的平均數(shù)據(jù)來(lái)看,單元測(cè)試中清除100個(gè)錯(cuò)誤要花費(fèi)45個(gè)小時(shí),而在編碼評(píng)審中發(fā)現(xiàn)相同數(shù)量的錯(cuò)誤則只用15個(gè)小時(shí)。22.4.4缺陷預(yù)防
控制缺陷數(shù)量最有效的方法就是預(yù)防它們的引入。在PSP中,有三種不同且相互支持的方法來(lái)預(yù)防缺陷。
第一種就是讓工程師們記錄有關(guān)他們所發(fā)現(xiàn)和修正缺陷的數(shù)據(jù),然后再評(píng)審這些數(shù)據(jù)以決定錯(cuò)誤原因,并改變開(kāi)發(fā)過(guò)程以排除這些因素。通過(guò)衡量這些缺陷,工程師們就會(huì)更加意識(shí)到他們的錯(cuò)誤,對(duì)最終的結(jié)果就會(huì)更加敏感,而且也會(huì)得出一些數(shù)據(jù)以防止將來(lái)出現(xiàn)同樣的缺陷。經(jīng)過(guò)PSP過(guò)程的前幾個(gè)階段,總?cè)毕輸?shù)快速下降,這也反映了預(yù)防方法的有效性。第二個(gè)預(yù)防措施就是采用一種有效的設(shè)計(jì)方法和形式來(lái)實(shí)現(xiàn)全部的設(shè)計(jì)。要想詳細(xì)、完整地記錄設(shè)計(jì)過(guò)程,工程師們必須徹底地理解它。這樣一來(lái),工程師們不但可以實(shí)現(xiàn)更好的設(shè)計(jì),而且設(shè)計(jì)錯(cuò)誤也會(huì)更少。
第三個(gè)預(yù)防方法就是第二種方法的直接結(jié)果:設(shè)計(jì)更徹底,編碼時(shí)間縮短,因此也減少了缺陷引入量。PSP對(duì)298位開(kāi)發(fā)專(zhuān)家研究的實(shí)驗(yàn)數(shù)據(jù)表明了好的設(shè)計(jì)對(duì)質(zhì)量的潛在影響。這些數(shù)據(jù)表明,在設(shè)計(jì)階段工程師們平均每小時(shí)引入1.76個(gè)錯(cuò)誤,而在編碼階段平均每小時(shí)引入4.2個(gè)錯(cuò)誤。既然對(duì)一個(gè)完全文檔化的設(shè)計(jì)實(shí)現(xiàn)編碼將花費(fèi)更少的時(shí)間,那么在實(shí)現(xiàn)了徹底設(shè)計(jì)之后,工程師們相對(duì)而言就縮短了編碼時(shí)間。因此,有了一個(gè)徹底的設(shè)計(jì),工程師們?cè)诰幋a過(guò)程中引入的編碼缺陷也將更少。 22.5PSP與設(shè)計(jì)
雖然PSP可以和任何設(shè)計(jì)方法綜合使用,但是它要求設(shè)計(jì)必須是完整的。當(dāng)一個(gè)設(shè)計(jì)詳細(xì)說(shuō)明了表22.5中所列出的所有內(nèi)容時(shí),PSP就認(rèn)為該設(shè)計(jì)是完全的。(1)操作場(chǎng)景模板:定義了用戶(hù)如何與系統(tǒng)交互。
(2)功能說(shuō)明模板:詳細(xì)說(shuō)明了程序中對(duì)象、類(lèi)以及繼承的類(lèi)結(jié)構(gòu)的會(huì)話(huà)行為。
(3)狀態(tài)描述模板:定義了程序狀態(tài)及行為。
(4)邏輯說(shuō)明模板:詳細(xì)說(shuō)明了程序內(nèi)部邏輯,通常是用一種偽代碼語(yǔ)言來(lái)描述。 22.6PSP的發(fā)展
22.6.1個(gè)體度量過(guò)程PSP0和PSP0.1
PSP0的目的是建立個(gè)體過(guò)程基線(xiàn),并通過(guò)這一步,學(xué)會(huì)使用PSP的各種表格、采集過(guò)程的有關(guān)數(shù)據(jù)。此時(shí)執(zhí)行的過(guò)程是該軟件開(kāi)發(fā)組織的當(dāng)前過(guò)程,通常包括計(jì)劃、開(kāi)發(fā)(包括設(shè)計(jì)、編碼、編譯和測(cè)試)以及后置處理三個(gè)階段,并要作一些必要的數(shù)據(jù)采集,如測(cè)定軟件開(kāi)發(fā)時(shí)間,按照選定的缺陷類(lèi)型標(biāo)準(zhǔn)度量引入的缺陷個(gè)數(shù)和排除的缺陷個(gè)數(shù)等,用作為測(cè)量在PSP的過(guò)程中進(jìn)步的基準(zhǔn)。
PSP0.1增加了編碼標(biāo)準(zhǔn)、程序規(guī)模度量和過(guò)程改善建議等三個(gè)關(guān)鍵過(guò)程域。其中,過(guò)程改善建議表格用于隨時(shí)記錄過(guò)程中存在的問(wèn)題、解決問(wèn)題的措施以及改進(jìn)過(guò)程的建議方法,以提高軟件開(kāi)發(fā)人員的質(zhì)量意識(shí)和過(guò)程意識(shí)。22.6.2個(gè)體規(guī)劃過(guò)程PSP1和PSP1.1
PSP1的重點(diǎn)是個(gè)體計(jì)劃,引入了基于估算的計(jì)劃方法PROBE(PROxyBasedEstimating),運(yùn)用自己的歷史數(shù)據(jù)來(lái)預(yù)測(cè)新程序的大小和需要的開(kāi)發(fā)時(shí)間,并使用線(xiàn)性回歸方法計(jì)算或估計(jì)參數(shù),確定置信區(qū)間以評(píng)價(jià)預(yù)測(cè)的可信程度。PSP1.1增加了對(duì)任務(wù)和進(jìn)度的規(guī)劃。
在PSP1階段應(yīng)該學(xué)會(huì)編制項(xiàng)目開(kāi)發(fā)計(jì)劃,這不僅對(duì)承擔(dān)大型軟件的開(kāi)發(fā)十分重要,即使是開(kāi)發(fā)小型軟件也必不可少。因?yàn)?,只有?duì)自己的能力有客觀的評(píng)價(jià),才能作出更加準(zhǔn)確的計(jì)劃,才能實(shí)事求是地接受和完成客戶(hù)(顧客)委托的任務(wù)。22.6.3個(gè)體質(zhì)量管理過(guò)程PSP2和PSP2.1
PSP2的重點(diǎn)是個(gè)體質(zhì)量管理,根據(jù)程序的缺陷情況建立檢測(cè)表,按照檢測(cè)表進(jìn)行設(shè)計(jì)復(fù)查和代碼復(fù)查(有時(shí)也稱(chēng)“代碼走查”),以便及早發(fā)現(xiàn)缺陷,使修復(fù)缺陷的代價(jià)最小。隨著個(gè)人經(jīng)驗(yàn)和技術(shù)的積累,還應(yīng)學(xué)會(huì)怎樣改進(jìn)檢測(cè)表以適應(yīng)自己的要求。PSP2.1則論述設(shè)計(jì)過(guò)程和設(shè)計(jì)模板,介紹設(shè)計(jì)方法,并提供了設(shè)計(jì)模板,但PSP并不強(qiáng)調(diào)選用什么設(shè)計(jì)方法,而強(qiáng)調(diào)設(shè)計(jì)完備性準(zhǔn)則和設(shè)計(jì)驗(yàn)證技術(shù)。實(shí)施PSP的一個(gè)重要目標(biāo)就是學(xué)會(huì)在開(kāi)發(fā)軟件的早期實(shí)際地、客觀地處理由于人們的疏忽所造成的程序缺陷問(wèn)題。人們都期盼獲得高質(zhì)量的軟件,但是只有高素質(zhì)的軟件開(kāi)發(fā)人員并遵循合適的軟件過(guò)程,才能開(kāi)發(fā)出高質(zhì)量的軟件,因此,PSP2引入并著重強(qiáng)調(diào)設(shè)計(jì)復(fù)查和代碼復(fù)查技術(shù),一個(gè)合格的軟件開(kāi)發(fā)人員必須掌握這兩項(xiàng)基本技術(shù)。22.6.4個(gè)體循環(huán)過(guò)程PSP3
PSP3的目標(biāo)是把個(gè)體開(kāi)發(fā)小程序所能達(dá)到的生產(chǎn)效率和生產(chǎn)質(zhì)量延伸到大型程序,其方法是采用螺旋式上升過(guò)程,即迭代增量式開(kāi)發(fā)方法,首先把大型程序分解成小的模塊,然后
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年瓊中黎族苗族自治縣幼兒園教師招教考試備考題庫(kù)含答案解析(必刷)
- 2025年孟連縣招教考試備考題庫(kù)帶答案解析(必刷)
- 2025年上海工會(huì)管理職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(奪冠)
- 2025年維西縣招教考試備考題庫(kù)附答案解析(必刷)
- 2025年銅鼓縣幼兒園教師招教考試備考題庫(kù)及答案解析(必刷)
- 2026年酒店管理高級(jí)專(zhuān)業(yè)知識(shí)筆試題
- 醫(yī)院醫(yī)療廢物登記制度制度
- 2026年政府公務(wù)員考試行測(cè)題集公共政策與行政管理
- 醫(yī)院臨床教學(xué)管理制度
- 2026年高層建筑工程師職業(yè)技能鑒定考試題
- 研發(fā)資料規(guī)范管理制度(3篇)
- GB/T 16770.1-2025整體硬質(zhì)合金直柄立銑刀第1部分:型式與尺寸
- 工業(yè)產(chǎn)品銷(xiāo)售單位質(zhì)量安全日管控周排查月調(diào)度檢查記錄表
- 2025年風(fēng)險(xiǎn)管理自查報(bào)告
- 2026年中國(guó)煤炭資源行業(yè)投資前景分析研究報(bào)告
- 項(xiàng)目成本控制動(dòng)態(tài)監(jiān)測(cè)表模板
- DBJ46-074-2025 海南省市政道路瀝青路面建設(shè)技術(shù)標(biāo)準(zhǔn)
- 幼兒園小班語(yǔ)言《大一歲了》課件
- GB/T 14071-2025林木品種審定規(guī)范
- en590居間合同范本
- 移風(fēng)易俗問(wèn)答題目及答案
評(píng)論
0/150
提交評(píng)論