PSP中代碼的估算、度量和錯(cuò)誤的記錄
PSP(Psrsonal Software Process,個(gè)體軟件過程)是一個(gè)過程描述、測(cè)度和方法的結(jié)構(gòu)化集合,能夠幫助軟件工程師改善其個(gè)人性能。它提供了表格、腳本和標(biāo)準(zhǔn),以幫助軟件工程師估算和計(jì)劃其工作。它顯示了如何定義過程及如何測(cè)量其質(zhì)量和生產(chǎn)率。
一個(gè)基本的PSP原則是:每個(gè)人都是不同的,對(duì)于某個(gè)工程師有效的方法不一定適合另一個(gè),這樣,PSP幫助工程師測(cè)量和跟蹤他們自己的工作,使得他們能夠找到最適合自己的方法。
軟件工程師在做項(xiàng)目的開發(fā)計(jì)劃時(shí),或是由經(jīng)驗(yàn)而來,或是由用戶需求而定,往往存在計(jì)劃與實(shí)際相差比較大的情況,或者是前松后緊,遺漏過多,造成維護(hù)量的增加。如何減少這種情況的發(fā)生?就需要把經(jīng)驗(yàn)量化并做出分析。PSP做到了這一點(diǎn),它能夠記錄項(xiàng)目的估算情況與實(shí)際情況,并進(jìn)行比較分析,既利于有經(jīng)驗(yàn)的軟件工程師提高以后項(xiàng)目的預(yù)測(cè)率,也利于新手軟件開發(fā)人員參考其他工程師的經(jīng)驗(yàn)。項(xiàng)目的開發(fā)成本是一個(gè)很重要的問題。PSP能夠記錄項(xiàng)目的估算成本與實(shí)際成本,提高軟件開發(fā)人員對(duì)項(xiàng)目成本估算的準(zhǔn)確度,這對(duì)在項(xiàng)目早期就有一個(gè)清楚的認(rèn)識(shí)大有幫助,以利于以后工作的規(guī)劃與開展。
現(xiàn)在軟件在大多數(shù)基于計(jì)算機(jī)的系統(tǒng)中已成為最昂貴的部分,如果軟件成本估算的誤差很大,就會(huì)使盈利變成虧損。軟件項(xiàng)目估算是一種解決問題的形式,在多數(shù)情況下,要解決的問題非常復(fù)雜,想一次性整體解決比較困難。因此,對(duì)問題進(jìn)行分解,把其分解成一組較小的接近于最終解決的可控的子問題,再定義它們的特性。
估算技術(shù)一般有代碼行(LOC)和功能點(diǎn)(FP)估算法,這是兩種不同的估算技術(shù),但有許多共同特性。項(xiàng)目計(jì)劃人員首先給出一個(gè)有界的軟件范圍的敘述,再由此嘗試著把軟件分解成一些小的可分別獨(dú)立進(jìn)行估算的子功能。然后對(duì)每一個(gè)子功能估算其LOC或FP(即估算變量)。接著,把基線生產(chǎn)率度量用做特定的估算變量,導(dǎo)出子功能的成本或工作量。將子功能的估算進(jìn)行綜合后就能得到整個(gè)項(xiàng)目的總估算。
LOC或FP估算技術(shù)對(duì)于分解所需要的詳細(xì)程度是不同的。當(dāng)用LOC作為估算變量時(shí),功能分解是絕對(duì)必要的且需要達(dá)到很詳細(xì)的程度。而估算功能點(diǎn)所需要的數(shù)據(jù)是宏觀的量,當(dāng)把FP當(dāng)做估算變量時(shí)所需要的分解程度可以不很詳細(xì)。LOC是直接估算的,而FP是通過估計(jì)輸入、輸出、數(shù)據(jù)文件、查詢和外部接口的數(shù)目,以及復(fù)雜性校正值間接地確定的。除去所用到的估算變量,項(xiàng)目計(jì)劃人員必須對(duì)每一個(gè)分解的功能提出一個(gè)有代表性的估算值范圍。利用歷史數(shù)據(jù)或憑實(shí)際經(jīng)驗(yàn),計(jì)劃人員對(duì)每個(gè)功能分別按樂觀的、可能的、悲觀的三種情況給出LOC或FP估計(jì)值。
為了反映開發(fā)特性的影響,應(yīng)當(dāng)隨時(shí)修正平均生產(chǎn)率。LOC和FP估算表的具體說明見目錄下。
LOC(Lines of Code,代碼行)估算代碼尺寸
把項(xiàng)目劃分為若干個(gè)功能,分別計(jì)算每個(gè)功能的代碼長(zhǎng)度,所有功能代碼行之和即項(xiàng)目的代碼長(zhǎng)度。
LOC估算表各項(xiàng)說明:
每個(gè)功能的代碼長(zhǎng)度估算值=(樂觀值+4*可能值+悲觀值)/6
估算工作量=代碼總估算長(zhǎng)度/估算生產(chǎn)率
估算總成本=日薪*估算工作量
估算行成本=估算總成本/估算代碼長(zhǎng)度
估算生產(chǎn)率由經(jīng)驗(yàn)獲得
FP(功能點(diǎn))估算代碼尺寸
項(xiàng)目的功能點(diǎn)數(shù)是幾個(gè)測(cè)量參數(shù)(用戶輸入數(shù)、用戶輸出數(shù)、用戶查詢數(shù)、文件數(shù)、外部接口數(shù))的功能點(diǎn)之和。
用戶輸入數(shù):計(jì)算每個(gè)用戶輸入,它們向軟件提供面向應(yīng)用的數(shù)據(jù)。輸入應(yīng)該與查詢區(qū)分開來,分別計(jì)算。
用戶輸出數(shù):計(jì)算每個(gè)用戶輸出,它們向軟件提供面向應(yīng)用的信息。這里,輸出是指報(bào)表、屏幕、出錯(cuò)信息,等等。一個(gè)報(bào)表中的單個(gè)數(shù)據(jù)項(xiàng)不單獨(dú)計(jì)算。
用戶查詢數(shù):一個(gè)查詢被定義為一次聯(lián)機(jī)輸入,它導(dǎo)致軟件以聯(lián)機(jī)輸出的方式產(chǎn)生實(shí)時(shí)的響應(yīng)。每一個(gè)不同的查詢都要計(jì)算。
文件數(shù):計(jì)算每個(gè)邏輯的主文件(如數(shù)據(jù)的一個(gè)邏輯組合,它可能是某個(gè)大型數(shù)據(jù)庫(kù)的一部分或是一個(gè)獨(dú)立的文件)。
外部接口數(shù):計(jì)算所有機(jī)器可讀的接口(如磁帶或磁盤上的數(shù)據(jù)文件),利用這些接口可以將信息從一個(gè)系統(tǒng)傳送到另一個(gè)系統(tǒng)。
FP估算表各項(xiàng)說明:
每個(gè)測(cè)量參數(shù)的估算FP計(jì)數(shù)=估算值*加權(quán)因子
項(xiàng)目估算FP=各參數(shù)FP計(jì)數(shù)之和*復(fù)雜度調(diào)整因子
估算生產(chǎn)率由經(jīng)驗(yàn)獲得
估算工作量=項(xiàng)目估算FP/估算生產(chǎn)率
估算總成本=日薪*估算工作量
單個(gè)FP估算成本=估算總成本/估算FP
項(xiàng)目測(cè)量
項(xiàng)目測(cè)量的目的是雙重的。首先,這些度量能夠指導(dǎo)進(jìn)行一些必要的調(diào)整以避免延遲,并減少潛在問題及風(fēng)險(xiǎn),從而使得開發(fā)時(shí)間減到最少。其次,項(xiàng)目度量可在項(xiàng)目進(jìn)行的基礎(chǔ)上評(píng)估產(chǎn)品質(zhì)量,并且可在必要時(shí)修改技術(shù)方法以改進(jìn)質(zhì)量。
隨著質(zhì)量的提高,錯(cuò)誤會(huì)減到最小,而隨著錯(cuò)誤數(shù)的減少,項(xiàng)目中所需的修改工作量也會(huì)降低,就導(dǎo)致整個(gè)項(xiàng)目成本的降低。
軟件測(cè)量可分為直接測(cè)量和間接測(cè)量。軟件工程過程的直接測(cè)量,包括花費(fèi)的成本和工作量。產(chǎn)品的直接測(cè)量,包括產(chǎn)生的代碼行、執(zhí)行速度、內(nèi)存大小及某段時(shí)間內(nèi)報(bào)告的缺陷。產(chǎn)品的間接測(cè)量,包括功能、質(zhì)量、復(fù)雜性、有效性、可靠性、可維護(hù)性及其他能力。
測(cè)量技術(shù)有LOC測(cè)量和FP測(cè)量法,LOC測(cè)量是直接測(cè)量,FP測(cè)量是間接測(cè)量。
LOC(Lines of Code,代碼行)測(cè)量代碼尺寸
把項(xiàng)目劃分為若干個(gè)功能,分別計(jì)算每個(gè)功能的代碼長(zhǎng)度,所有功能代碼行之和即項(xiàng)目的代碼長(zhǎng)度。
LOC測(cè)量表各項(xiàng)說明:
實(shí)際總成本=日薪*實(shí)際工作量
實(shí)際行成本=實(shí)際總成本/實(shí)際代碼長(zhǎng)度
實(shí)際生產(chǎn)率=實(shí)際代碼長(zhǎng)度/實(shí)際工作量
FP(功能點(diǎn))測(cè)量代碼尺寸
每個(gè)測(cè)量參數(shù)的實(shí)際FP計(jì)數(shù)=實(shí)際值*加權(quán)因子
項(xiàng)目實(shí)際FP=各參數(shù)FP計(jì)數(shù)之和*復(fù)雜度調(diào)整因子
實(shí)際總成本=日薪*實(shí)際工作量
單個(gè)FP成本=總成本/FP計(jì)數(shù)
實(shí)際生產(chǎn)率=實(shí)際FP計(jì)數(shù)/實(shí)際工作量
項(xiàng)目進(jìn)度
為了更精確地制訂計(jì)劃,可以把項(xiàng)目劃分為若干個(gè)小任務(wù),分別制定每個(gè)任務(wù)的完成計(jì)劃。
工作量的安排可參考LOC估算工作量或FP估算工作量,通過工具提供的LOC估算表或FP估算表,可以查看估算工作量的值。
錯(cuò)誤記錄
記錄項(xiàng)目各個(gè)階段的錯(cuò)誤及解決辦法。軟件工程師們都知道,缺陷排除效率(DRE)是軟件質(zhì)量度量的指標(biāo)之一。當(dāng)把一個(gè)項(xiàng)目作為一個(gè)整體來考慮時(shí),DRE按如下方式定義:
DRE=E/(E+D)
其中E=軟件交付給最終用戶之前所發(fā)現(xiàn)的錯(cuò)誤數(shù)
D=軟件交付之后所發(fā)現(xiàn)的缺陷數(shù)
最理想的DRE值是1,即軟件中沒有發(fā)現(xiàn)缺陷。但現(xiàn)實(shí)中,D會(huì)大于0,如何把錯(cuò)誤發(fā)現(xiàn)的階段盡量控制在軟件交付使用前?PSP能幫您改善這一點(diǎn)。
posted on 2012-12-18 17:10
Klarke 閱讀(304)
評(píng)論(0) 編輯 收藏 引用