為了彌補這個(gè)欠缺,Humphrey又主持開(kāi)發(fā)了個(gè)體軟件過(guò)程(Personal Software Process,PSP)。PSP是一種可用于控制、管理和改進(jìn)個(gè)人工作方式的自我持續改進(jìn)過(guò)程,是一個(gè)包括軟件開(kāi)發(fā)表格、指南和規程的結構化框架。 PSP與具體的技術(shù)(程序設計語(yǔ)言、工具或者設計方法)相對獨立,其原則能夠應用到幾乎任何的軟件工程任務(wù)之中。PSP能夠說(shuō)明個(gè)體軟件過(guò)程的原則;幫助軟件工程師作出準確的計劃;確定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟;建立度量個(gè)體軟件過(guò)程改善的基準;確定過(guò)程的改變對軟件工程師能力的影響。
在CMM1.1版本的18個(gè)關(guān)鍵過(guò)程域中有12個(gè)與PSP有關(guān),據統計,軟件項目開(kāi)發(fā)成本的70%取決于軟件開(kāi)發(fā)人員個(gè)人的技能、經(jīng)驗和工作習慣。因此,一個(gè)單位的軟件開(kāi)發(fā)人員如能接受PSP培訓,對該單位軟件能力成熟度的升級是一個(gè)有力的保證。CMM側重于軟件企業(yè)中有關(guān)軟件過(guò)程的宏觀(guān)管理,面向軟件開(kāi)發(fā)單位,PSP則側重于企業(yè)中有關(guān)軟件過(guò)程的微觀(guān)優(yōu)化,面向軟件開(kāi)發(fā)人員。二者互相支持,互相補充,缺一不可。
按照PSP規程,首先需要明確質(zhì)量目標,也就是軟件將要在功能和性能上滿(mǎn)足的要求和用戶(hù)潛在的需求。接著(zhù)就是度量產(chǎn)品質(zhì)量,有了目標還不行,目標只是一個(gè)原則性的東西,還不便于實(shí)際操作和判斷,因此,必須對目標進(jìn)行分解和度量,使軟件質(zhì)量能夠"測量"。然后就是理解當前過(guò)程,查找問(wèn)題,并對過(guò)程進(jìn)行調整。最后應用調整后的過(guò)程,度量實(shí)踐結果,將結果與目標做比較,找出差距,分析原因,對軟件過(guò)程進(jìn)行持續改進(jìn)。
就象CMM為軟件企業(yè)的能力提供一個(gè)階梯式的進(jìn)化框架一樣,PSP為個(gè)體的能力也提供了一個(gè)階梯式的進(jìn)化框架,以循序漸進(jìn)的方法介紹過(guò)程的概念,每一級別都包含了更低一級別中的所有元素,并增加了新的元素。這個(gè)進(jìn)化框架是學(xué)習PSP過(guò)程基本概念的好方法,它賦予軟件人員度量和分析工具,使其清楚地認識到自己的表現和潛力,從而可以提高自己的技能和水平。
PSP進(jìn)化框架共有四級。
個(gè)體度量過(guò)程PSP0和PSP0.1
PSP0的目的是建立個(gè)體過(guò)程基線(xiàn),通過(guò)這一步,學(xué)會(huì )使用PSP的各種表格采集過(guò)程的有關(guān)數據,此時(shí)執行的是該軟件開(kāi)發(fā)單位的當前過(guò)程,通常包括計劃、開(kāi)發(fā)(包括設計、編碼、編譯和測試)以及后置處理三個(gè)階段,并要作一些必要的試題,如測定軟件開(kāi)發(fā)時(shí)間,按照選定的缺陷類(lèi)型標準、度量引入的缺陷個(gè)數和排除的缺陷個(gè)數等,用作為測量在PSP的過(guò)程中進(jìn)步的基準。
PSP0.1增加了編碼標準、程序規模度量和過(guò)程改善建議等三個(gè)關(guān)鍵過(guò)程域,其中過(guò)程改善建議表格用于隨時(shí)記錄過(guò)程中存在的問(wèn)題、解決問(wèn)題的措施以及改進(jìn)過(guò)程的方法,以提高軟件開(kāi)發(fā)人員的質(zhì)量意識和過(guò)程意識。
應該強調指出,在PSP0階段必須理解和學(xué)會(huì )使用不合格進(jìn)行規劃和度量的技術(shù)。設計一個(gè)好的表格并不容易,需要在實(shí)踐中積累經(jīng)驗,以準確地滿(mǎn)足期望的需求,其中最重要的是要保持數據的一致性、有用性和簡(jiǎn)潔性。
個(gè)體規劃過(guò)程PSP1和PSP1.1
PSP1的重點(diǎn)是個(gè)體計劃,引入了基于估計的計劃方法PROBE(PROxy Based Estimating),用自己的歷史數據來(lái)預測新程序的大小和需要的開(kāi)發(fā)時(shí)間,并使用線(xiàn)性回歸方法計算估計參數,確定置信區間以評價(jià)預測的可信程度。 PSP1.1增加了對任務(wù)和進(jìn)度的規劃。
在PSP1階段應該學(xué)會(huì )編制項目開(kāi)發(fā)計劃,這不僅對承擔大型軟件的開(kāi)發(fā)十分重要,即使是開(kāi)發(fā)小型軟件也必不可少。因為,只有對自己的能力有客觀(guān)的評價(jià),才能作出更加準確的計劃,才能實(shí)事求是地接受和完成客戶(hù)(顧客)委托的任務(wù)。
個(gè)體質(zhì)量管理過(guò)程PSP2和PSP2.1
PSP2的重點(diǎn)是個(gè)體質(zhì)量管理,根據程序的缺陷善建立檢測表,按照檢測表進(jìn)行設計復查和代碼復查(有時(shí)也稱(chēng)"代碼走查"),以便及早發(fā)現缺陷,使修復缺陷的代價(jià)最小。隨著(zhù)個(gè)人經(jīng)驗和技術(shù)的積累,還應學(xué)會(huì )怎樣改進(jìn)檢測表以適應自己的要求。PSP2.1則論述設計過(guò)程和設計模板,介紹設計方法,并提供了設計模板、但PSP并不強調選用什么設計方法,而強調設計完備性準則和設計驗證技術(shù)。
實(shí)施PSP的一個(gè)重要目標就是學(xué)會(huì )在開(kāi)發(fā)軟件的早期實(shí)際地、客觀(guān)地處理由于人們的疏忽所造成的程序缺陷問(wèn)題。人們都期盼獲得高質(zhì)量的軟件,但是只有高素質(zhì)的軟件開(kāi)發(fā)人員并遵循合適的軟件過(guò)程,才能開(kāi)發(fā)出高質(zhì)量的軟件,因此,PSP2引入并著(zhù)重強調設計復查和代碼復查技術(shù),一個(gè)合格的軟件開(kāi)發(fā)人員必須掌握這兩項基本技術(shù)。
個(gè)體循環(huán)過(guò)程PSP3
PSP3的目標是把個(gè)體開(kāi)發(fā)小程序所能達到的生產(chǎn)效率和生產(chǎn)質(zhì)量,延伸到大型程序;其方法是采用螺旋式上升過(guò)程,即迭代增量式開(kāi)發(fā)方法,首先把大型程序分解成小的模塊,然后對每個(gè)模塊按照PSP2.1所描述的過(guò)程進(jìn)行開(kāi)發(fā),最后把這些模塊逐步集成為完整的軟件產(chǎn)品。
應用PSP3開(kāi)發(fā)大型軟件系統,必須采用增量式開(kāi)發(fā)方法,并要求每一個(gè)增量都具有很高的質(zhì)量。在這樣的前提下,在新一輪開(kāi)發(fā)循環(huán)中,可以采用回歸測試的方法,集中力量考察新增加的這個(gè)(這些)增量是否符合要求。因此,要求在PSP2中進(jìn)行嚴格的設計復查和代碼復查,并在PSP2.1中努力遵循設計結束準則。
從對個(gè)體軟件過(guò)程框架的概要描述中,可以清楚地看到,如何作好項目規劃和如何保證產(chǎn)品質(zhì)量,是任何軟件開(kāi)發(fā)過(guò)程中最基本的問(wèn)題。
PSP可以幫助軟件工程師在個(gè)人的基礎上運用過(guò)程的原則,借助于PSP提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的評估、計劃和預測更加準確、更加有效,進(jìn)而改進(jìn)個(gè)人的工作表現,提高個(gè)人的工作質(zhì)量和產(chǎn)量,積極而有效地參與高級管理人員和過(guò)程人員推動(dòng)的組織范圍的軟件工程過(guò)程改進(jìn)。
PSP軟件工程規程為軟件工程師提供了發(fā)展個(gè)人技能的結構化框架和必須掌握的方法。在軟件行業(yè),開(kāi)發(fā)人員如果不經(jīng)過(guò)PSP培訓,就只能靠在開(kāi)發(fā)中通過(guò)實(shí)踐逐步掌握這些技能和方法,這不僅周期很長(cháng),要付出很大的代價(jià),而且有越來(lái)越大的風(fēng)險。 培訓的方式有很多,既可以到專(zhuān)門(mén)的學(xué)校進(jìn)修,也可以進(jìn)行自學(xué)和參加培訓班,例如:CMM網(wǎng)校中就有個(gè)體軟件過(guò)程的課程。
本文引用通告地址: http://blog.csdn.net/dingx/services/trackbacks/355411.aspx
聯(lián)系客服