一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法
【專利摘要】本發(fā)明涉及一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,用到一種包括客戶端和安裝有PLMS、SVN及Jenkins的三臺(tái)服務(wù)器的全生命周期管理系統(tǒng),客戶端和服務(wù)器間以及各服務(wù)器之間采用網(wǎng)絡(luò)互聯(lián);PLMS記錄和跟蹤項(xiàng)目狀態(tài)、任務(wù)和缺陷等;SVN以PLMS記錄的條目為觸發(fā)源進(jìn)行開發(fā)維護(hù),并在版本管控的同時(shí)主動(dòng)關(guān)聯(lián)PLMS的相關(guān)條目;Jenkins全時(shí)監(jiān)控SVN的更新狀態(tài),并按照配置內(nèi)容定時(shí)自動(dòng)提取版本、集成、測試和生成軟件包以及相關(guān)測試報(bào)告;PLMS反向根據(jù)Jenkins提供的報(bào)告修改相關(guān)條目的狀態(tài)。本方法將PLMS、SVN和Jenkins結(jié)合在一起使用,有效地對(duì)項(xiàng)目進(jìn)行全方位全過程全生命周期的管理,確保項(xiàng)目開發(fā)的所有步驟、階段都有據(jù)可依,有源可溯,進(jìn)而實(shí)現(xiàn)項(xiàng)目數(shù)據(jù)的可視化協(xié)同瀏覽。
【專利說明】
一種基于PLMS、SVN和Jenk i ns進(jìn)行軟件項(xiàng)目全生命周期管理的方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及軟件項(xiàng)目管理、版本控制和版本集成發(fā)布技術(shù)領(lǐng)域,具體涉及一種基于PLMS作為觸發(fā)源下發(fā)任務(wù),引發(fā)SVN進(jìn)行版本控制,再由Jenkins監(jiān)測SVN更新進(jìn)行自動(dòng)集成、測試,最終發(fā)布軟件包的管理方法。
【背景技術(shù)】
[0002]目前,有基于項(xiàng)目狀態(tài)跟蹤管理工具結(jié)合配置管理工具使用來進(jìn)行軟件項(xiàng)目管理的方法;也有基于配置管理工具結(jié)合集成管理工具來進(jìn)行軟件自動(dòng)集成的方法。這些方法都有一定的局限性,即未從全局的角度來考慮軟件項(xiàng)目的全生命周期管理,以致存在如下的問題:如果僅以項(xiàng)目狀態(tài)跟蹤管理工具和配置管理工具結(jié)合使用,那么在項(xiàng)目狀態(tài)跟蹤管理工具跟蹤配置管理工具進(jìn)行版本控制后沒有最后一個(gè)環(huán)節(jié)產(chǎn)出最終的軟件包;如果僅以配置管理工具和集成管理工具結(jié)合使用,那么缺少對(duì)任務(wù)以及缺陷的登記和跟蹤,后續(xù)的開發(fā)集成等動(dòng)作都缺少觸發(fā)源。因此,有必要將項(xiàng)目狀態(tài)跟蹤管理工具、配置管理工具和集成管理工具結(jié)合在一起進(jìn)行軟件項(xiàng)目的全生命周期管理。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,對(duì)軟件項(xiàng)目進(jìn)行閉環(huán)管理,并防止在管理過程中某些環(huán)節(jié)管理缺失或問題跟蹤丟失,確保在整個(gè)軟件項(xiàng)目生命周期內(nèi),所有項(xiàng)目相關(guān)活動(dòng)都是在可控可監(jiān)測且在有反饋的狀態(tài)下進(jìn)行的。其中,PLMS是Pro ject Lifecycle Management System的縮寫,是使用ruby語言對(duì)開源軟件Redmine進(jìn)行二次開發(fā)產(chǎn)生,符合CMMI(CapabiIity Maturity ModelIntegrat1n,軟件能力成熟度集成模型),作為項(xiàng)目狀態(tài)跟蹤管理工具使用;SVN是Subvers1n的簡稱,作為配置管理工具使用,對(duì)軟件開發(fā)過程中的各個(gè)域的產(chǎn)物進(jìn)行版本控制;Jenkins作為集成管理工具使用,對(duì)SVN變更進(jìn)行監(jiān)測,自動(dòng)持續(xù)集成、測試和生成軟件包以及相關(guān)測試報(bào)告。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為,一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,需要用到一種包括客戶端和安裝有PLMS、SVN及Jenkins的三臺(tái)服務(wù)器的全生命周期管理系統(tǒng),所述客戶端和服務(wù)器之間以及各服務(wù)器之間采用網(wǎng)絡(luò)互聯(lián);
所述PLMS服務(wù)器記錄和跟蹤項(xiàng)目狀態(tài)、任務(wù)和缺陷等;
所述SVN服務(wù)器以PLMS記錄的條目為觸發(fā)源進(jìn)行開發(fā)維護(hù),并在版本管控的同時(shí)主動(dòng)關(guān)聯(lián)PLMS的相關(guān)條目;
所述Jenkins服務(wù)器全時(shí)監(jiān)控SVN的更新狀態(tài),并按照配置信息定時(shí)自動(dòng)提取版本、集成、測試和生成軟件包以及相關(guān)測試報(bào)告;
并且所述PLMS服務(wù)器反向根據(jù)Jenkins提供的報(bào)告修改相關(guān)條目的狀態(tài)。
[0005]進(jìn)一步地,上述方法具體包括如下步驟:
(1)a、項(xiàng)目立項(xiàng)的開發(fā)階段,項(xiàng)目負(fù)責(zé)人在客戶端將項(xiàng)目開發(fā)內(nèi)容分割為若干個(gè)任務(wù)記錄到PLMS中,在PLMS中再分配到相關(guān)子系統(tǒng)負(fù)責(zé)人,由子系統(tǒng)負(fù)責(zé)人指定對(duì)應(yīng)責(zé)任人(SP對(duì)應(yīng)的開發(fā)人員);
b、項(xiàng)目開發(fā)階段,項(xiàng)目的相關(guān)人員都能將發(fā)現(xiàn)的缺陷(Defect)、不符合項(xiàng)(NCs)以及客戶的變更請(qǐng)求作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人;
c、項(xiàng)目發(fā)布測試階段,測試人員將發(fā)現(xiàn)的缺陷作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人;
(2)開發(fā)人員以PLMS中記錄的條目作為觸發(fā)源進(jìn)行軟件產(chǎn)品開發(fā);
(3)開發(fā)人員完成階段性開發(fā)后,將開發(fā)的包括文檔、代碼及報(bào)告等輸出產(chǎn)物上傳到SVN中進(jìn)行版本控制,并在上傳時(shí),選擇PLMS中對(duì)應(yīng)的開發(fā)任務(wù)或缺陷的ID號(hào)作為上傳comment的一部分;
(4)完成輸出產(chǎn)物上傳至SVN后,Jenkins根據(jù)自身的配置信息對(duì)SVN中相應(yīng)的項(xiàng)目庫進(jìn)行監(jiān)控,并調(diào)用配置信息中的相關(guān)腳本進(jìn)行版本收集和/或版本編譯;其中,在只是上傳文檔的情況,Jenkins不會(huì)進(jìn)行版本編譯;
(5)在具有版本編譯的情況,若版本編譯成功,則Jenkins根據(jù)配置信息進(jìn)行下一步的自動(dòng)測試,測試完成后生成測試報(bào)告;若版本編譯不成功,則Jenkins將自動(dòng)發(fā)送郵件給相關(guān)責(zé)任人,責(zé)任人修改完編譯錯(cuò)誤后繼續(xù)從步驟(3)向下執(zhí)行,直到編譯成功;
(6)Jenkins完成自動(dòng)測試后,繼續(xù)調(diào)用腳本進(jìn)行軟件包生成,生成軟件包后系統(tǒng)自動(dòng)發(fā)送郵件通知項(xiàng)目相關(guān)人員;
(7)PLMS根據(jù)Jenkins提供的測試報(bào)告修改相關(guān)條目的狀態(tài)。
[0006]作為本發(fā)明的一種改進(jìn),所述的軟件項(xiàng)目是一個(gè)循環(huán)疊加的動(dòng)態(tài)實(shí)施過程,項(xiàng)目的產(chǎn)出是可以交付的產(chǎn)品。
[0007]作為本發(fā)明的一種改進(jìn),所述客戶端和安裝有PLMS、SVN和Jenkins的三臺(tái)服務(wù)器之間采用局域網(wǎng)或虛擬專用網(wǎng)(VPN,Virtual Private Network)進(jìn)行互聯(lián),三臺(tái)服務(wù)器之間采用局域網(wǎng)進(jìn)行互聯(lián)。
[0008]作為本發(fā)明的一種改進(jìn),所述PLMS服務(wù)器中記錄的任務(wù)、缺陷及客戶的變更請(qǐng)求等相關(guān)條目的處理階段包括打開階段、處理中階段和關(guān)閉階段,其中打開階段包括新建狀態(tài)、重新打開狀態(tài)和延期解決狀態(tài),處理中階段包括正在進(jìn)行中狀態(tài),關(guān)閉階段包括已解決狀態(tài)和關(guān)閉狀態(tài)。
[0009]相對(duì)于現(xiàn)有技術(shù),本發(fā)明將PLMS作為項(xiàng)目狀態(tài)跟蹤管理工具、SVN作為配置管理工具以及Jenkins作為集成管理工具結(jié)合在一起使用,從而能夠有效地對(duì)軟件項(xiàng)目進(jìn)行全方位全過程全生命周期的管理,確保項(xiàng)目開發(fā)的所有步驟、階段都有據(jù)可依,有源可溯,進(jìn)而實(shí)現(xiàn)項(xiàng)目數(shù)據(jù)的可視化協(xié)同瀏覽,異地團(tuán)隊(duì)也可以參與評(píng)審,大大提高了軟件項(xiàng)目的開發(fā)質(zhì)量和效率,提高了軟件產(chǎn)品的競爭力;PLMS作為項(xiàng)目狀態(tài)跟蹤管理工具經(jīng)過二次開發(fā)后更適合軟件項(xiàng)目管理使用,能生成更加完善的報(bào)表,SVN作為配置管理工具能有效控制開發(fā)人員的權(quán)限,大大提升了數(shù)據(jù)安全,并能較好地對(duì)開發(fā)過程中的輸出產(chǎn)物進(jìn)行強(qiáng)有力管控,Jenkins作為集成管理工具大大減少配置管理員的工作量且有效避免人為引入的問題,使得整個(gè)軟件編譯、測試和生成報(bào)告的過程更加流暢。
【附圖說明】
[0010]圖1為本發(fā)明由PLMS、SVN和Jenkins組成的全生命周期管理系統(tǒng)的結(jié)構(gòu)示意圖。
[0011]圖2為本發(fā)明的配置管理工具SVN的工作流程圖。
[0012]圖3為本發(fā)明的項(xiàng)目狀態(tài)跟蹤管理工具PLMS中條目狀態(tài)流轉(zhuǎn)后關(guān)系圖。
[0013]圖4為本發(fā)明的集成管理工具Jenkins的工作流程圖。
【具體實(shí)施方式】
[0014]為了加深對(duì)本發(fā)明的理解和認(rèn)識(shí),下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述和介紹。
[0015]一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,所述的軟件項(xiàng)目是一個(gè)循環(huán)疊加的動(dòng)態(tài)實(shí)施過程,項(xiàng)目的產(chǎn)出是可以交付的產(chǎn)品。
[0016]其中,PLMS是ProjectLifecycle Management System的縮寫,是使用ruby語言對(duì)開源軟件Redmine進(jìn)行二次開發(fā)產(chǎn)生,原本的Redmine只有簡單的對(duì)issue(問題)和task(任務(wù))進(jìn)行常規(guī)的跟蹤管理,通過開發(fā)添加了適用于對(duì)Defect (缺陷)、Task(任務(wù))、PeerReview(同行評(píng)審)、Change Request(變更請(qǐng)求)和NCs(不符合項(xiàng))跟蹤標(biāo)簽的管理,并且增加了一些對(duì)于適合于公司組織架構(gòu)的組和角色的權(quán)限控制,讓其適合公司的開發(fā)流程以及符合CMMI(CapabiIity Maturity Model Integrat1n,軟件能力成熟度集成模型)111的開發(fā)模型,作為跟蹤項(xiàng)目狀態(tài)工具使用。
[0017]該方法需要用到如圖1所示的全生命周期管理系統(tǒng),包括多個(gè)客戶端(Client或Slave)和安裝有PLMS的服務(wù)器、安裝有SVN的服務(wù)器以及安裝有Jenkins的服務(wù)器,所述客戶端與三臺(tái)服務(wù)器之間采用局域網(wǎng)或虛擬專用網(wǎng)VPN進(jìn)行互聯(lián),三臺(tái)服務(wù)器之間采用局域網(wǎng)進(jìn)行互聯(lián)。所述PLMS服務(wù)器(PLMS Server)記錄和跟蹤項(xiàng)目狀態(tài)、任務(wù)和缺陷等,所述SVN服務(wù)器(SVN Server)以PLMS記錄的條目為觸發(fā)源進(jìn)行開發(fā)維護(hù),并在版本管控的同時(shí)主動(dòng)關(guān)聯(lián)PLMS的相關(guān)條目;所述如111^118服務(wù)器(Jenkins Server)全時(shí)監(jiān)控SVN的更新狀態(tài),并按照自身的配置信息定時(shí)自動(dòng)提取版本、集成、測試和生成軟件包以及相關(guān)測試報(bào)告;并且所述PLMS服務(wù)器反向根據(jù)SVN和Jenkins提供的報(bào)告修改相關(guān)條目的狀態(tài)。
[0018]具體在圖1中反映出來的三臺(tái)服務(wù)器及客戶端之間的關(guān)系如下:
101: PLMS記錄的條目作為觸發(fā)源推動(dòng)SVN進(jìn)行版本更新;
102:根據(jù)SVN中相關(guān)文件的上傳版本內(nèi)容更新PLMS中記錄的相對(duì)應(yīng)的任務(wù)、變更請(qǐng)求、同行評(píng)審或不符合項(xiàng)的狀態(tài);
103: SVN配置庫更新觸發(fā)Jenkins服務(wù)器進(jìn)行編譯等工作;
104: Jenkins將生成的產(chǎn)物上傳到SVN服務(wù)器進(jìn)行版本控制;
105:根據(jù)Jenkins輸出的測試結(jié)果更新PLMS相對(duì)應(yīng)的缺陷或變更請(qǐng)求的狀態(tài);
106:根據(jù)PLMS的任務(wù)觸發(fā)Jenkins任務(wù)的新建和運(yùn)行;
107:客戶端連接PLMS服務(wù)器,對(duì)項(xiàng)目狀態(tài)進(jìn)行跟蹤處理;
108:客戶端連接SVN服務(wù)器,對(duì)項(xiàng)目的輸出產(chǎn)物進(jìn)行版本控制;
109:客戶端連接Jenkins服務(wù)器,查看或編輯項(xiàng)目持續(xù)集成配置、狀態(tài)和結(jié)果。
[0019]因此,上述方法具體可包括如下步驟: (1)a、項(xiàng)目立項(xiàng)的開發(fā)階段,項(xiàng)目負(fù)責(zé)人在客戶端將項(xiàng)目開發(fā)內(nèi)容分割為若干個(gè)任務(wù)記錄到PLMS中,在PLMS中再分配到相關(guān)子系統(tǒng)負(fù)責(zé)人,由子系統(tǒng)負(fù)責(zé)人指定對(duì)應(yīng)責(zé)任人;
b、項(xiàng)目開發(fā)階段,項(xiàng)目相關(guān)人員都能將發(fā)現(xiàn)的缺陷作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人;
c、項(xiàng)目開發(fā)階段,系統(tǒng)工程師(或項(xiàng)目管理工程師)將客戶的變更請(qǐng)求作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人;
d、項(xiàng)目開發(fā)階段,質(zhì)量管理工程師將發(fā)現(xiàn)的不符合項(xiàng)作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人;
e、項(xiàng)目發(fā)布測試階段,測試人員將發(fā)現(xiàn)的缺陷作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人;
(2)開發(fā)人員以PLMS中記錄的條目作為觸發(fā)源進(jìn)行軟件產(chǎn)品開發(fā);
(3)開發(fā)人員完成階段性開發(fā)后,將開發(fā)的包括文檔、代碼及報(bào)告等輸出產(chǎn)物上傳到SVN中進(jìn)行版本控制,并在上傳時(shí),選擇PLMS中對(duì)應(yīng)的開發(fā)任務(wù)或缺陷的ID號(hào)作為上傳comment的一部分;
(4)完成輸出產(chǎn)物上傳至SVN后,Jenkins根據(jù)自身的配置信息對(duì)SVN中相應(yīng)的項(xiàng)目庫進(jìn)行監(jiān)控,并調(diào)用配置信息中的相關(guān)腳本進(jìn)行版本收集和/或版本編譯;其中,在只是上傳文檔的情況,Jenkins不會(huì)進(jìn)行版本編譯;
(5)在具有版本編譯的情況,若版本編譯成功,則Jenkins根據(jù)配置信息進(jìn)行下一步的自動(dòng)測試,測試完成后生成測試報(bào)告;若版本編譯不成功,則Jenkins將自動(dòng)發(fā)送郵件給相關(guān)責(zé)任人,責(zé)任人修改完編譯錯(cuò)誤后繼續(xù)從步驟(3)向下執(zhí)行,直到編譯成功;
(6)Jenkins完成自動(dòng)測試后,繼續(xù)調(diào)用腳本進(jìn)行軟件包生成,生成軟件包后系統(tǒng)自動(dòng)發(fā)送郵件通知項(xiàng)目相關(guān)人員;
(7)PLMS根據(jù)Jenkins提供的測試報(bào)告修改相關(guān)條目的狀態(tài)。
[0020]其中,所述PLMS服務(wù)器中記錄的任務(wù)、缺陷及客戶的變更請(qǐng)求等相關(guān)條目的狀態(tài)包括打開狀態(tài)、正在進(jìn)行中狀態(tài)和總關(guān)閉狀態(tài),其中打開狀態(tài)包括新建狀態(tài)、重新打開狀態(tài)和延期解決狀態(tài),總關(guān)閉狀態(tài)包括已解決狀態(tài)和關(guān)閉狀態(tài)。這幾種狀態(tài)間的切換關(guān)系如圖3所示。由圖3可知,將新記錄到PLMS中的任務(wù)、缺陷或變更請(qǐng)求等條目的狀態(tài)設(shè)為新建狀態(tài)(New),對(duì)于處于新建狀態(tài)的條目的狀態(tài)可切換為延期解決狀態(tài)(Deferred)、正在進(jìn)行中狀態(tài)(In Progress)或已解決狀態(tài)(Resolved);對(duì)于處于延期解決狀態(tài)的且準(zhǔn)備著手解決的條目的狀態(tài)可設(shè)置為正在進(jìn)行中狀態(tài),對(duì)于處于正在進(jìn)行中狀態(tài)的條目的狀態(tài)可設(shè)置為延期解決狀態(tài)或已解決狀態(tài);對(duì)于處于已解決狀態(tài)的條目的狀態(tài)可設(shè)置為關(guān)閉狀態(tài)(Closed)或重新打開狀態(tài)(Reopened),對(duì)于處于關(guān)閉狀態(tài)的條目的狀態(tài)可切換為重新打開狀態(tài),對(duì)于處于重新打開狀態(tài)的條目的狀態(tài)可切換為正在進(jìn)行中狀態(tài)或已解決狀態(tài)。具體關(guān)系可表示如下:
301:將新錄入PLMS的任務(wù)、缺陷或變更請(qǐng)求等設(shè)置為延期解決狀態(tài);
302:將延期解決的問題設(shè)置為正在進(jìn)行中狀態(tài);
303:將正在進(jìn)行中的條目設(shè)置為延期解決狀態(tài);
304:將新建狀態(tài)的條目設(shè)置為已解決狀態(tài);
305:將新建狀態(tài)的條目設(shè)置為正在進(jìn)行中狀態(tài); 306:將重新打開的條目設(shè)置為正在進(jìn)行中狀態(tài);
307:將正在進(jìn)行中的條目設(shè)置為已解決狀態(tài);
308:將已解決的問題設(shè)置為重新打開狀態(tài);
309:將重新打開的條目設(shè)置為已解決狀態(tài);
310:將已關(guān)閉的問題設(shè)置為重新打開狀態(tài);
311:將已解決的問題設(shè)置為關(guān)閉狀態(tài)。
[0021]在配置管理工具SVN中包含有項(xiàng)目庫(Repository),SVN的工作流程如圖2所示,具體如下:
201:在客戶端本地創(chuàng)建工作空間(Working Copy);
202:更新當(dāng)前工作空間;
203:在最新的工作空間進(jìn)行任務(wù)開發(fā);
204:開發(fā)過程中需要和項(xiàng)目庫進(jìn)行同步(Sync Repos);
205:完成開發(fā)后進(jìn)行提交文檔、代碼及報(bào)告等輸出產(chǎn)物,并判斷是否有沖突(Conf Iict)發(fā)生沖突的情況是:多名開發(fā)人員同時(shí)開發(fā)同一文件,且上傳前都沒有將Working Copy和服務(wù)器進(jìn)行同步更新;
206:如果存在沖突,則需要先解決沖突,沖突解決后進(jìn)入步驟209;
207:如果不產(chǎn)生沖突,還需要判斷是否有需要合并的內(nèi)容(Merge),其中,此處的合并指的是對(duì)多個(gè)文件或一個(gè)文件的不同修改處的操作,如果需要選擇性的上傳就需要合并,如果全覆蓋上傳就不需要合并,直接全部上傳;
208:如果有需要合并的內(nèi)容,要先合并再進(jìn)入步驟209;
209:沖突已解決或內(nèi)容已合并后,準(zhǔn)備提交開發(fā)輸出的產(chǎn)物;
210:提交更新(即步驟209中的開發(fā)輸出的產(chǎn)物)到項(xiàng)目庫(Repository)。
[0022]所述集成管理工具Jenkins主要包括持續(xù)集成服務(wù)器(Jenkins)和編譯服務(wù)器(Build Server),該工具的工作流程如圖4所示,具體如下:
401:開發(fā)人員將更新(即開發(fā)輸出的產(chǎn)物)提交到SVN上的項(xiàng)目庫(Repository);
402:編譯服務(wù)器接受項(xiàng)目庫的變更;
403:編譯服務(wù)器將編譯成功后的內(nèi)容上傳到項(xiàng)目庫;
404:編譯服務(wù)器將編譯報(bào)告返回給持續(xù)集成服務(wù)器;
405:如果項(xiàng)目庫有更新,持續(xù)集成服務(wù)器觸發(fā)編譯服務(wù)器進(jìn)行相關(guān)任務(wù)的運(yùn)行,如編譯、測試、靜態(tài)監(jiān)測等;
406:持續(xù)集成服務(wù)器對(duì)項(xiàng)目庫的更新進(jìn)行同行評(píng)審,同行評(píng)審時(shí)需要根據(jù)105流向PLMS新建同行評(píng)審條目,再繼續(xù)按照相關(guān)流程執(zhí)行;
407:配置管理員對(duì)項(xiàng)目任務(wù)進(jìn)行配置和控制;
408:持續(xù)集成服務(wù)器發(fā)送集成狀態(tài)報(bào)告以及相關(guān)測試報(bào)告(包括功能測試、性能測試QAC等)給配置管理員等。
[0023]需要說明的是上述實(shí)施例,并非用來限定本發(fā)明的保護(hù)范圍,在上述技術(shù)方案的基礎(chǔ)上所作出的等同變換或替代均落入本發(fā)明權(quán)利要求所保護(hù)的范圍。
【主權(quán)項(xiàng)】
1.一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,其特征在于:該方法需要用到一種包括客戶端和安裝有PLMS、SVN及Jenkins的三臺(tái)服務(wù)器的全生命周期管理系統(tǒng),所述客戶端和服務(wù)器之間以及各服務(wù)器之間采用網(wǎng)絡(luò)互聯(lián); 所述PLMS服務(wù)器記錄和跟蹤項(xiàng)目狀態(tài)、任務(wù)和缺陷; 所述SVN服務(wù)器以PLMS記錄的條目為觸發(fā)源進(jìn)行開發(fā)維護(hù),并在版本管控的同時(shí)主動(dòng)關(guān)聯(lián)PLMS的相關(guān)條目; 所述Jenkins服務(wù)器全時(shí)監(jiān)控SVN的更新狀態(tài),并按照配置信息定時(shí)自動(dòng)提取版本、集成、測試和生成軟件包以及相關(guān)測試報(bào)告; 并且所述PLMS服務(wù)器反向根據(jù)Jenkins提供的報(bào)告修改相關(guān)條目的狀態(tài)。2.如權(quán)利要求1所述的一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,其特征在于,方法具體包括如下步驟: (1)a、項(xiàng)目立項(xiàng)的開發(fā)階段,項(xiàng)目負(fù)責(zé)人在客戶端將項(xiàng)目開發(fā)內(nèi)容分割為若干個(gè)任務(wù)記錄到PLMS中,在PLMS中再分配到相關(guān)子系統(tǒng)負(fù)責(zé)人,由子系統(tǒng)負(fù)責(zé)人指定對(duì)應(yīng)責(zé)任人; b、項(xiàng)目開發(fā)階段,項(xiàng)目的相關(guān)人員都能將發(fā)現(xiàn)的缺陷、不符合項(xiàng)以及客戶的變更請(qǐng)求作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人; c、項(xiàng)目發(fā)布測試階段,測試人員將發(fā)現(xiàn)的缺陷作為條目記錄到PLMS,并指派給項(xiàng)目負(fù)責(zé)人,由項(xiàng)目負(fù)責(zé)人直接指定對(duì)應(yīng)責(zé)任人; (2)開發(fā)人員以PLMS中記錄的條目作為觸發(fā)源進(jìn)行軟件產(chǎn)品開發(fā); (3)開發(fā)人員完成階段性開發(fā)后,將開發(fā)的包括文檔、代碼及報(bào)告的輸出產(chǎn)物上傳到SVN中進(jìn)行版本控制,并在上傳時(shí),選擇PLMS中對(duì)應(yīng)的開發(fā)任務(wù)或缺陷的ID號(hào)作為上傳comment的一部分; (4)完成輸出產(chǎn)物上傳至SVN后,Jenkins根據(jù)配置信息對(duì)SVN中相應(yīng)的項(xiàng)目庫進(jìn)行監(jiān)控,并調(diào)用配置信息中的相關(guān)腳本進(jìn)行版本收集和/或版本編譯; (5)在具有版本編譯的情況,若版本編譯成功,則Jenkins根據(jù)配置信息進(jìn)行下一步的自動(dòng)測試,測試完成后生成測試報(bào)告;若版本編譯不成功,則Jenkins將自動(dòng)發(fā)送郵件給相關(guān)責(zé)任人,責(zé)任人修改完編譯錯(cuò)誤后繼續(xù)從步驟(3)向下執(zhí)行,直到編譯成功; (6)Jenkins完成自動(dòng)測試后,繼續(xù)調(diào)用腳本進(jìn)行軟件包生成,生成軟件包后系統(tǒng)自動(dòng)發(fā)送郵件通知項(xiàng)目相關(guān)人員; (7)PLMS根據(jù)Jenkins提供的測試報(bào)告修改相關(guān)條目的狀態(tài)。3.如權(quán)利要求1所述的一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,其特征在于,所述客戶端和安裝有PLMS、SVN和Jenkins的三臺(tái)服務(wù)器之間采用局域網(wǎng)或虛擬專用網(wǎng)進(jìn)行互聯(lián),三臺(tái)服務(wù)器之間采用局域網(wǎng)進(jìn)行互聯(lián)。4.如權(quán)利要求2所述的一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,其特征在于,所述PLMS服務(wù)器中記錄的包括任務(wù)、缺陷及客戶的變更請(qǐng)求的相關(guān)條目的處理階段包括打開階段、處理中階段和關(guān)閉階段,其中打開階段包括新建狀態(tài)、重新打開狀態(tài)和延期解決狀態(tài),處理中階段包括正在進(jìn)行中狀態(tài),關(guān)閉階段包括已解決狀態(tài)和關(guān)閉狀態(tài)。5.如權(quán)利要求4所述的一種基于PLMS、SVN和Jenkins進(jìn)行軟件項(xiàng)目全生命周期管理的方法,其特征在于,所述的軟件項(xiàng)目是一個(gè)循環(huán)疊加的動(dòng)態(tài)實(shí)施過程,項(xiàng)目的產(chǎn)出是可以交 付的廣品。
【文檔編號(hào)】G06F9/44GK105893050SQ201610205461
【公開日】2016年8月24日
【申請(qǐng)日】2016年4月5日
【發(fā)明人】王實(shí)
【申請(qǐng)人】延鋒偉世通電子科技(南京)有限公司