馮 駿
談軟件過程管理中實(shí)施的PSP和TSP
馮 駿
(天津機(jī)電職業(yè)技術(shù)學(xué)院,天津市 300131)
軟件過程管理可按照一些成熟的過程模型來進(jìn)行,CMMI就是在軟件界應(yīng)用最為廣泛的過程模型。但是它僅提供了一個(gè)有力的框架,而未能明確實(shí)現(xiàn)過程所需要的具體知識(shí)和技能。國(guó)外很多軟件企業(yè)為此推行了PSP和TSP,這一方法體系已日漸成熟。PSP/TSP不僅是卡耐基-梅?。⊿EI)等國(guó)際知名大學(xué)或軟件學(xué)院中學(xué)生的必修課程,同時(shí)在各行業(yè)中也有廣泛的應(yīng)用。我國(guó)也有越來越多的企業(yè)實(shí)施了PSP/TSP來增強(qiáng)企業(yè)的競(jìng)爭(zhēng)力。
軟件過程管理;個(gè)體軟件過程;群體軟件過程;軟件能力成熟度模型
從1968年軟件工程概念的正式提出到現(xiàn)在,軟件工程已有40多年的發(fā)展,出現(xiàn)了大量的研究成果,也進(jìn)行了大量的技術(shù)實(shí)踐。正是由于學(xué)術(shù)界和產(chǎn)業(yè)界的共同努力,軟件工程正在逐步發(fā)展為一門成熟的專業(yè)學(xué)科。目前,由SEI開發(fā)的軟件能力成熟度模型(CMM)被世界公認(rèn)是當(dāng)前最好的軟件過程,為軟件開發(fā)總結(jié)了開發(fā)項(xiàng)目的最佳實(shí)踐,并且CMM已經(jīng)成為軟件過程工業(yè)標(biāo)準(zhǔn)。CMM提供了一個(gè)軟件能力成熟度模型的框架,它將軟件過程改進(jìn)的進(jìn)化步驟組織成五個(gè)成熟度等級(jí),為軟件過程不斷改進(jìn)奠定了一個(gè)循序漸進(jìn)的基礎(chǔ)。但是,就實(shí)現(xiàn)關(guān)鍵過程所需要的具體知識(shí)和技能卻未具體指明,為了彌補(bǔ)這個(gè)欠缺,SEI特別會(huì)員Watts Humphrey決定將單個(gè)開發(fā)人員的軟件開發(fā)實(shí)踐中應(yīng)用CMM的基本原理。PSP(個(gè)體軟件過程)就是他努力的成果,為軟件開發(fā)人員設(shè)計(jì)的CMM五級(jí)過程。
PSP(Personal Software Process)是一種可用于控制、管理和改進(jìn)個(gè)人工作方式的自我持續(xù)改進(jìn)過程,是一個(gè)包括軟件開發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。美國(guó)Carnegie Mellon大學(xué)軟件工程研究所(CMU/SEl)的Watts S.Humphrey帶領(lǐng)團(tuán)隊(duì)于1995年開發(fā)并推出個(gè)體軟件過程,在軟件工程界引起了極大的轟動(dòng),是軟件開發(fā)過程改進(jìn)的里程碑,是由定向軟件工程走向定量軟件工程的一個(gè)標(biāo)志。PSP與具體的技術(shù)(程序設(shè)計(jì)語(yǔ)言、工具或者設(shè)計(jì)方法)相對(duì)獨(dú)立,其原則能夠應(yīng)用到幾乎任何的軟件工程任務(wù)之中。PSP能夠說明個(gè)體軟件過程的原則;幫助軟件工程師做出準(zhǔn)確的計(jì)劃;確定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟;建立度量個(gè)體軟件過程改善的基準(zhǔn);確定過程的改變對(duì)軟件工程師能力的影響。
個(gè)體軟件過程注重個(gè)人的技能,能夠指導(dǎo)軟件工程師為保證自己的工作質(zhì)量而采取相應(yīng)措施,估計(jì)和規(guī)劃自身的工作,度量和追蹤個(gè)人的工作表現(xiàn),管理自身的軟件過程和軟件產(chǎn)品質(zhì)量。通過學(xué)習(xí)PSP的正規(guī)訓(xùn)練及實(shí)踐,軟件工程師們能夠在他們參與的項(xiàng)目工作之中充分利用PSP,從而保證了項(xiàng)目整體的進(jìn)度和質(zhì)量。
PSP可以被應(yīng)用于軟件開發(fā)過程的許多方面,包括:
·小型程序開發(fā)
·需求分析定義
·文檔編寫
·系統(tǒng)測(cè)試
·系統(tǒng)維護(hù)
·大型軟件系統(tǒng)的加強(qiáng)
基于CMM中發(fā)現(xiàn)的實(shí)踐,PSP可以指導(dǎo)工程師,幫助他建立開發(fā)軟件的一套結(jié)構(gòu)化和規(guī)范的方法,在軟件項(xiàng)目開發(fā)的總體成本中往往人員成本占70%,所以工程師的技能與工作習(xí)慣很大程度決定了軟件開發(fā)過程的結(jié)果。當(dāng)軟件開發(fā)人員在項(xiàng)目中面臨各種各樣的實(shí)際問題并尋求有效的解決問題方案時(shí),就會(huì)更深刻地體會(huì)到PSP的作用。
TSP(Personal Software Process)是由“軟件質(zhì)量之父”Watts s.Humphrey提出的一種采用廣泛的團(tuán)隊(duì)過程。TSP即群體軟件過程,是為開發(fā)軟件產(chǎn)品的開發(fā)團(tuán)隊(duì)提供指導(dǎo),TSP的側(cè)重于幫助軟件項(xiàng)目開發(fā)團(tuán)隊(duì)改善軟件質(zhì)量和生產(chǎn)率,并使其更好的滿足成本及進(jìn)度的目標(biāo)。在群體軟件過程中,指明了如何創(chuàng)建高效且具有自我管理能力的工程小組,工程人員怎樣才能成為合格的項(xiàng)目團(tuán)隊(duì)成員,管理人員如何對(duì)群組提供指導(dǎo)和支持,如何保持良好的工程環(huán)境使項(xiàng)目組能充分發(fā)揮自己的水平等軟件工程管理問題
Watts s.Humphrey對(duì)群體軟件過程的改革提出了一整套原則、策略和方法,將CMM要求實(shí)施的管理和PSP要求開發(fā)人員具有的技巧結(jié)合在一起,按時(shí)交付高質(zhì)量的軟件,把成本控制在預(yù)算的范圍之內(nèi)。
群體軟件過程注重團(tuán)隊(duì)的高效工作和軟件產(chǎn)品交付能力,結(jié)合PSP的工程技能,指導(dǎo)軟件工程師怎樣將個(gè)體過程結(jié)合到群體軟件過程中,并正確引導(dǎo)管理層如何支持和授權(quán)項(xiàng)目小組,堅(jiān)持高質(zhì)量的工作,依據(jù)數(shù)據(jù)進(jìn)行項(xiàng)目的管理,確保生產(chǎn)出高質(zhì)量的軟件產(chǎn)品。TSP的根本好處是它指導(dǎo)工程師在成本控制和大膽的進(jìn)度計(jì)劃下如何生產(chǎn)高質(zhì)量的軟件產(chǎn)品。
全球最大的軟件供應(yīng)商之一Microsoft,有一個(gè)項(xiàng)目試運(yùn)行了SEI個(gè)人軟件過程和群體軟件過程,使一個(gè)軟件開發(fā)團(tuán)隊(duì)改變工作行為、改進(jìn)開發(fā)過程、進(jìn)而交付更好的軟件。按照TSP打造高績(jī)效團(tuán)隊(duì),在使用TSP之前,該團(tuán)隊(duì)有10個(gè)開發(fā)人員,他們對(duì)項(xiàng)目工作懈怠,因?yàn)樵搱F(tuán)隊(duì)的成員各自為戰(zhàn),而不是作為一個(gè)整體。在使用了4天后,這組人成為一個(gè)真正的團(tuán)隊(duì),很大程度上提高了凝聚力。
2011年11月,白瑪群宗勇挑重責(zé),把年幼的孩子送到父母身邊,主動(dòng)擔(dān)負(fù)起駐村任務(wù),在海拔4580米的小村莊,積極為駐村點(diǎn)謀發(fā)展、找出路,帶動(dòng)群眾擺脫貧窮落后現(xiàn)狀。這期間,她爭(zhēng)取到資金150萬元,為駐村點(diǎn)修建了道路橋梁,添置了村委會(huì)設(shè)備,并邀請(qǐng)醫(yī)療專家為群眾進(jìn)行免費(fèi)義診。
在軟件開發(fā)(或維護(hù))過程中,首先需要按照群體軟件過程框架定義一個(gè)過程。在設(shè)計(jì)TSP過程時(shí),需要按照以下原則:
·循序漸進(jìn)的原則,首先在PSP的基礎(chǔ)上提出一個(gè)簡(jiǎn)單的過程框架,然后逐步完善;
·迭代開發(fā)的原則,選用增量式迭代開發(fā)方法,通過幾個(gè)循環(huán)開發(fā)一個(gè)產(chǎn)品;
·定期評(píng)審的原則,在TSP的實(shí)施過程中,對(duì)角色和群組進(jìn)行定期的評(píng)價(jià);
·過程規(guī)范的原則,對(duì)每一個(gè)項(xiàng)目的TSP規(guī)定明確的過程規(guī)范;
·指令明確的原則,對(duì)實(shí)施TSP中可能遇到的問題提供解決問題的指南;
·質(zhì)量?jī)?yōu)先的原則,對(duì)按TSP開發(fā)的軟件產(chǎn)品,建立質(zhì)量和性能的度量標(biāo)準(zhǔn);
TSP一般將一個(gè)軟件項(xiàng)目的開發(fā)工作分為4個(gè)階段。任何一個(gè)應(yīng)用TSP的項(xiàng)目即可以包含其中的一個(gè)階段,也可以包含幾個(gè)連續(xù)的階段。應(yīng)該遵循一個(gè)確定的、可重復(fù)的過程并迅速獲得反饋,這樣才能使軟件項(xiàng)目開發(fā)的改革具有成效;一個(gè)群組是否高效,是由明確的目標(biāo)、有效的工作環(huán)境、有能力的領(lǐng)導(dǎo)層等四方面因素的綜合作用所確定的。例如一個(gè)項(xiàng)目開發(fā)群體分配人力資源的可選方案如下,該項(xiàng)目需要n個(gè)人工作k年:
1.n個(gè)人被分配負(fù)責(zé)完成不同的m個(gè)功能任務(wù),而且?guī)缀鯖]有合作的情況發(fā)生;協(xié)調(diào)是軟件管理者的責(zé)任,而他可能同時(shí)還有六個(gè)其他項(xiàng)目要管。
2.n個(gè)人被分配負(fù)責(zé)完成不同的m個(gè)功能任務(wù)(m<n),建立非正式的“小組”;指定一個(gè)專門的小組負(fù)責(zé)人;小組之間的協(xié)調(diào)由軟件管理者負(fù)責(zé)。
3.n個(gè)人被分成t個(gè)軟件開發(fā)小組;每一個(gè)小組完成一個(gè)或多個(gè)功能任務(wù);每一個(gè)小組有一個(gè)特定的結(jié)構(gòu),該結(jié)構(gòu)是為同一個(gè)項(xiàng)目的所有小組定義的;軟件開發(fā)小組成員和軟件項(xiàng)目管理者共同承擔(dān)協(xié)調(diào)工作。
雖然對(duì)于本例的每一種方法都可以找到其優(yōu)點(diǎn)和缺點(diǎn),但越來越多的證據(jù)表明群體軟件過程是生產(chǎn)率最高的。
美國(guó)Carnegie Mellon大學(xué)軟件工程研究所(CMU/SEI)主持研究與開發(fā)的CMM/PSP/TSP技術(shù),為軟件項(xiàng)目管理開辟了一條新的途經(jīng)。CMM是英文Capability Maturity Model的簡(jiǎn)稱,即軟件能力成熟度模型.CMM的本質(zhì)是項(xiàng)目管理工程的一個(gè)部分。迄今為止,產(chǎn)業(yè)界和學(xué)術(shù)界公認(rèn)CMM是當(dāng)前最好的軟件過程,然而它的成功與否和軟件研發(fā)機(jī)構(gòu)內(nèi)部有關(guān)人員的積極參加和創(chuàng)造性活動(dòng)密不可分。因?yàn)镃MM中并未提供關(guān)于實(shí)現(xiàn)子過程域所需的具體知識(shí)和技能,所以進(jìn)行個(gè)體軟件過程PSP的研究與實(shí)踐可以填補(bǔ)這一領(lǐng)域的空白,而且為基于個(gè)體軟件過程和群體軟件過程的優(yōu)化提供了具體、有效的途徑。群體軟件過程TSP結(jié)合了CMM的管理方法和PSP的工程技能,建立、管理、授權(quán)并且指導(dǎo)項(xiàng)目小組在不超過計(jì)劃成本的前提下,在承諾的期限范圍內(nèi),不斷生產(chǎn)并交付高質(zhì)量的產(chǎn)品。從公布的TSP實(shí)驗(yàn)數(shù)據(jù)來看,結(jié)果是令人滿意的。近兩年來,CMM在我國(guó)獲得了各界越來越多關(guān)注,業(yè)內(nèi)有過多次關(guān)于CMM的討論,2000年6月國(guó)務(wù)院頒發(fā)的《鼓勵(lì)軟件產(chǎn)業(yè)和集成電路產(chǎn)業(yè)發(fā)展的若干政策》對(duì)中國(guó)軟件企業(yè)申請(qǐng)CMM認(rèn)證給予了積極的支持和推動(dòng)作用,第17條規(guī)定“對(duì)軟件出口型企業(yè)CMM認(rèn)證費(fèi)用予以適當(dāng)支持?!?000年中國(guó)村電腦節(jié)上開設(shè)CMM專題論壇,吸引了眾多業(yè)內(nèi)人士參與。華為是典型的CMM成功案例,1999年年初,華為技術(shù)公司研究管理部副總裁陳青開始了華為的CMM之路,到2001年12月,華為技術(shù)的印度研究所已成為中國(guó)第一個(gè)獲得CMM4國(guó)際認(rèn)證的軟件研發(fā)機(jī)構(gòu)。
群體軟件過程(TSP)和個(gè)體軟件過程(PSP)結(jié)合在一起,能夠指導(dǎo)工程師做到:
·確保高質(zhì)量交付軟件
·生產(chǎn)高安全性的軟件產(chǎn)品
·改進(jìn)組織的軟件項(xiàng)目過程管理·建立正確目標(biāo)
·定義團(tuán)隊(duì)角色
·進(jìn)行風(fēng)險(xiǎn)評(píng)估
·訂制團(tuán)隊(duì)計(jì)劃
圖一 PSP/TSP/CMM 關(guān)系圖
CMM/CMMI和PSP/TSP的創(chuàng)始人都是Humphrey,CMM/CMMI用于建立管理框架,設(shè)立過程改進(jìn)的先后順序,定義改進(jìn)的內(nèi)容等。PSP、TSP和CMM為軟件產(chǎn)業(yè)提供了一個(gè)集成化的、三維的軟件過程改革框架,如圖一所示。正確指導(dǎo)工程師開發(fā)和維護(hù)團(tuán)隊(duì)的工作。它表明如何建立一個(gè)自我導(dǎo)向的團(tuán)隊(duì)、具有強(qiáng)大凝聚力的團(tuán)隊(duì)及如何扮演一個(gè)有效團(tuán)隊(duì)成員的角色。它還能引領(lǐng)管理層如何正確指導(dǎo)和支持這些團(tuán)隊(duì),如何維護(hù)一個(gè)不斷提高團(tuán)隊(duì)績(jī)效的環(huán)境;PSP/TSP指導(dǎo)工程師如何才能完成高質(zhì)量的工作;如何打造一個(gè)配合默契的團(tuán)隊(duì);如何去實(shí)現(xiàn)CMMI所定義的目標(biāo)等。他們相輔相成,互相補(bǔ)充,構(gòu)成一個(gè)有機(jī)的整體。從軟件企業(yè)角度來看,所有經(jīng)驗(yàn)證明PSP、TSP能加速CMMI在企業(yè)范圍內(nèi)的實(shí)施,同時(shí)也是維持改進(jìn)的需要。在眾多世界知名企業(yè)開始實(shí)施PSP、TSP的情況下,中國(guó)的軟件組織要提高自身的國(guó)際競(jìng)爭(zhēng)力,PSP,TSP是必由之路,不僅幫助提升了企業(yè)的對(duì)外形象和國(guó)際認(rèn)知度,還能為企業(yè)帶來更大的競(jìng)爭(zhēng)優(yōu)勢(shì)。
[1]Pressman,R.S.軟件工程:實(shí)踐者的研究方法[M].北京:機(jī)械工業(yè)出版社,2008.
[2]周之英.現(xiàn)代軟件工程:基本方法篇[M].北京:科學(xué)出版社,1999.
[3]周之英.現(xiàn)代軟件工程:新技術(shù)篇[M].北京:科學(xué)出版社,1999.
[4]周之英.現(xiàn)代軟件工程:管理技術(shù)篇[M].北京:科學(xué)出版社,1999.
[5](美)Watts S.Humphrey.Introduction to the Team Software Process.[M].北京:人民郵電出版社,2001.
On Implementation of the PSP and TSP in the Software Process Management
FENG Jun
(Tianjin Vocational technology College of Mechanics and Electricity,Tianjin300131 China)
Software process management may be carried out through the maturing process model.CMMI is the most widely used process model in the software field.However,it only provides a strong framework without specific knowledge and skills needed in the process.Therefore,PSP and TSP are introduced by the foreign software companies.PSP/TSP is the compulsory course in the world's famous universities such as Carnegie - Mellon (SEI)and some software colleges.In addition,it has a wide range of applications in industries.In China,agrowing number of enterprises implement PSP/TSP to enhance the competitiveness of enterprises.
Software process management;the personal software process;group software process;software capability maturity model
TP311.5
A
1673-582X(2011)11-0096-04
2011-05-31
馮駿(1977-),女,天津市人,天津機(jī)電職業(yè)技術(shù)學(xué)院信息技術(shù)應(yīng)用系講師,從事軟件工程、網(wǎng)絡(luò)安全等理論研究。