999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

版本管理與代碼走查系統設計與實現

2014-05-25 00:28:33李嵩泉劉陟升
計算機與網絡 2014年6期
關鍵詞:系統管理

李嵩泉 劉陟升

(1 中國電子科技集團公司第五十四研究所河北石家莊 050081)

(2 沈陽水務集團大東營業分公司遼寧沈陽 110042)

版本管理與代碼走查系統設計與實現

李嵩泉1劉陟升2

(1 中國電子科技集團公司第五十四研究所河北石家莊 050081)

(2 沈陽水務集團大東營業分公司遼寧沈陽 110042)

為優化軟件項目管理,解決軟件版本管理混亂、人工代碼走查過程負責和結果難于控制的問題,研究了軟件版本管理工具和代碼走查工具,介紹了版本管理工具和代碼走查工具在軟件項目管理中應用。根據實踐中軟件項目管理的需求,提供了一種版本管理工具Subversion與代碼走查工具Reviewboard相結合的系統的實現方法,介紹了版本管理工具和代碼走查工具的安裝部署,給出了一種基于該系統的軟件開發應用流程。

版本管理 代碼走查 SVN Reviewboard

1 引言

軟件開發項目一般要經過需求分析、軟件設計、軟件編碼和測試等過程。在軟件交付后發現的軟件缺陷和用戶提出的軟件改進將重新進行上述流程。不同的用戶對軟件的功能需求可能有差別,這樣一個軟件將出現若干版本給不同的用戶,而且軟件開發過程中,開發團隊共同協作,需要高效有序的存放、查找和共享文件代碼,因此版本管理的引入成為軟件團隊開發的必然選項[1,2]。軟件團隊開發合作,相互走查代碼(Code Inspection)是將軟件缺陷提前發現的良好手段,如何有效地進行人工代碼走查,管理走查結果也是團隊開發需要考慮的問題。

2 版本管理

版本管理的作用主要有以下幾個。

①能夠滿足軟件開發基本需求:每個程序員都有備份程序的需要,引入版本管理工具,可以省去手工備份的麻煩;歷史改動不會丟失,可以快速恢復到任何一個版本;方便查看某個版本的代碼改動(例如:上次的那個bug是怎么解決的)。這些要求即便是一個人獨立開發也需要的;

②能夠滿足團隊協同開發的需要:團隊開發會有多個程序員需要改動同一個文件,需要一種工具配合開發流程能夠簡化這一問題,記錄同一個文件中所有人的更改,并盡可能的自動進行代碼合并,而且能夠提供方法查詢每行代碼的改動者,可以確定開發人員的責任;

③能夠滿足工程管理需要:能夠進行多產品多版本的發布管理,當一個軟件面向多個用戶時,會發布多個版本,這些版本又不是完全獨立的,一些BUG的修改和公共的功能,可能要應用到各個版本,而一些客戶特殊需求指在個別版本中實現,需要有效的途徑管理這些版本,如圖1所示。

圖1 軟件版本管理示意圖

版本控制能夠在代碼庫中標識各個發布版本,能夠進行不同版本間的代碼的融合,例如rel1.1.0中修復的bug能夠融入rel2.1.0。在Rel1.0.1上發現一個bug,這bug在軟件主干及Rel2.0上也有。這時可以將R1.0.1上解決的bug,合并到軟件主干上,再從軟件主干合并到Rel2.0的分支上,這樣bug在Rel2.0.1中將解決,而且隨著軟件開發的演進,BUG管理集成及持續集成都需要利用到版本的管理。

3 代碼走查

在軟件開發過程中,測試作為一個開發階段的存在,對于整個軟件的開發過程起著重要作用,規范的軟件項目引入多個測試環節,典型的有單元測試、軟件配置項測試、集成測試和系統測試。其中單元測試在實踐中一般由代碼人員自己進行,包括白盒測試和黑盒測試,白盒測試又分為靜態測試和動態測試。靜態測試不執行程序,通過人工或工具對代碼進行檢查,又稱為代碼走查[3],主要介紹人工的代碼走查方式。

人工代碼走查是指請開發團隊中的專家和同事對一個開發人員的編寫的代碼進行人工閱讀評審,對有關技術、代碼風格、可能的錯誤和是否違背標準等方面進行討論,指出代碼存在的缺陷和需要改進之處。開發人員對這些問題進行整改,直至沒有人再有異議。有時也稱為代碼走讀和代碼審查。

代碼走查相比其他測試方法,具有以下優點:①能夠定位問題而非觀察測試現象;②盡早發現軟件缺陷,開發人員修改問題代價比較小;③能找出其他測試難以發現或隔離的軟件缺陷,當然這也取決走查組成員的經驗[4,5]。

代碼走查主要包括3個步驟;

①走查代碼生成分發:開發人員將自己的代碼改動生成閱讀材料,一般標識自己改動的部分,并包含邏輯上的上下文,將代碼分發給走查組成員;

②執行走查:走查形式可以分為2種,電子方式和會議方式,電子方式中走查組成員分別審查代碼,提出問題建議,并通過電子郵件方式通知走查組組長;會議方式中走查組與開發人員在一起以開會的形式進行代碼審查,每個人的意見建議都被直接記錄;

③代碼修改:開發人員根據走查組形成的問題建議記錄,進行代碼修改。在修改完畢后,將修改后的代碼再次提交走查,由問題提出者確認問題已經解決。

4 系統設計

目前常用的版本控制軟件主要有IBM Rational ClearCase、Telologic Synergy、Microsoft Visual SourceSafe、GNU Arch、CVS、Subversion和Git等。前3個都是商業化的軟件比較昂貴,后4個是開源的免費軟件,更適合中小團隊應用。Subversion,即SVN,是目前最為流行的版本管理軟件之一,是CVS的替代軟件,支持CVS的幾乎所有功能,支持Window和Linux多種操作系統。支持本地、SVN服務和HTTP服務等多種訪問方式,與Apache的HTTP服務能夠緊密結合。

在代碼走查方面各個公司的做法有很大差異性,有直接看代碼的,也有使用工具生成pdf格式代碼審查文件的,也有自己開發代碼走查系統的。在開源軟件領域值得一提的有Trac[6]和Reviewboard。相對與Trac,Reviewboard更專注與代碼走查,提供從走查代碼生成,到方便周全的代碼審查界面,到最后意見建議總結,而且可以與SVN和Apache的HTTP服務緊密結合。

設計提供一種基于Windows平臺的SVN與Reviewboard相結合的軟件版本管理和代碼走查系統,主要描述了系統的部署和使用流程。系統部署的一個難點是確定要使用的軟件和各個軟件的版本,因為用到眾多開源軟件的,其版本的兼容性不是很好,當確定一套軟件組成后,盡可能維護住這些軟件的版本。后面章節中給出了的軟件組成和其版本已經在實際環境下使用,其中用到的軟件都是免費軟件,在互聯網都能夠下載。

4.1 SVN系統部署

設計選擇SVN最流行的HTTP服務方式,便于后續擴展。需要使用到的軟件包括:Subversion 1.6.5、TortoiseSVN 1.6.5和Apache 2.2.14。搭建流程如下:

4.2 Reviewboard系統部署

在安裝了SVN的基礎上,再部署Reviewboard服務,可以在同一臺機器上進行,比較方便。Reviewboard的安裝依賴較多的第三方軟件,大部分是Python的,如果在連接互連網的機器上安裝可以通過easy_install工具自動下載安裝。設計實現,整理了其所依賴的第三方軟件,即便是沒有鏈接互聯網的計算機也可以進行安裝。這些軟件包括:Python 2.5、GNU patch 2.5.9、mod_Python 3.3.1、Pysvn 1.7.0、Python Imaging Library 1.1.7、PyCrypto2.3、Setup-Tools0.6c11、flup1.0.2、paramiko 1.7.6、Django1.3、Djblets0.6.7、recaptcha-client1.0.6、pytz-2009g、python-memcached 1.47、python-dateutil 1.5、Pygments1.4、django_evolution、ReviewBoard1.5.5、diffutils 2.8.7、simplejson 2.1.6和RBTools 0.3.2。

(1)在運行Reviewboard機器上,安裝Python 2.5,并將Python的目錄及腳本目錄加入到系統PATH環境變量。

(2)安裝其他依賴軟件:

①patch、mod_Python、Pysvn、PythonImagingLibrary、PyCrypto、Setup-Tools都是可執行安裝包,直接運行安裝;

②flup、paramiko、Django、Djblets、recaptcha-client、pytz、python-memcache、python-dateutil、Pygments、django_evolution、都是Python的包,使用easy_install安裝;

(3)安裝Reviewboard:easy_installReviewBoard-1. 5.5-py2.5.egg。

(4)為Reviewboard創建網站:運行rb-site install c: www eviews.my.com,在這一步通過交互式的安裝腳本界面,確定域名、數據庫類型(sqlite3)、緩存機制(memcached)、web服務(apache)、Python的接口模塊(modpython)、管理員賬戶(admin),即可安裝完畢。

(5)修改Apache的配置文件httpd.conf:

①將c:www eviews.my.comconfapache-modpython. conf中的內容添加httpd.conf;

②修改Directory c:/www/reviews.my.com/htdocs一節,訪問控制選項為Allow from all;

③添加一行“Listen 8091”允許使用8091端口訪問Reviewboard;

④添加對mod_python.so的支持:LoadModule python_module modules/mod_python.so。

(6)重新啟動Apache服務,以管理員身份(admin)登錄Reviewboard網頁(http://192.168.0.100:8091/)對Reviewboard進行進一步配置:

①從Admin鏈接進入管理的Dashboard頁面,再進入Repositories頁面,通過Add repository添加需要支持的項目版本庫(例如:上一節建立的http://192. 168.0.100/svn/myproject);

②進入Users頁面添加用戶,包括走查的提交者以及審查者,用戶名和密碼最好與SVN系統保持一致,方便記憶。

(7)客戶端安裝

在Windows系統下,需要使用Python、Setup-Tools、diff工具以及simplejson和RBTools,前三者直接運行安裝程序,后2個軟件需要通過easy_install進行安裝。如果使用Linux系統做為開發環境,一般系統自帶了Python和diff,只需要安裝其他3個軟件。

4.3 應用流程

以修改一個軟件發行版本上的bug為例,說明本系統的使用流程。當一個問題反饋到研發團隊,項目管理者指定一個開發人員解決,開發人員遵循流程如圖2所示。

圖2 軟件問題修改流程

①開發人員將發行版本對應代碼從SVN服務器(192.168.0.100)檢出到本地:svncheckouthttp://192. 168.0.100/svn/myproject/branches/r1.0.1/;

②分析問題修改對應的代碼,解決問題;

③生成代碼走查文件:在代碼跟目錄下運行post-review --server="http://192.168.0.100:8091/"--username=user1生成走查申請;

④登錄到Reviewboard系統,在Outgoing Reviews中可以看到有一個名為[Draft]的走查申請,對它進行編輯,編寫題目,描述和分支等信息,選擇走查人員Reviewers,最后選擇Publish提交申請,發送給走查組成員;

⑤走查組成員登錄Reviewboard系統,在Incoming Reviews中可以看到所有發送給自己的走查申請,選擇一個申請,選擇View Diff,可以查看申請者對代碼的改動,所有修改的地方會以高亮的方式表示,如果發現問題,點擊問題行的最左邊,可以在You comment對話框添加你的意見建議。在走查完畢通過Edit Review按鈕,可以添加對這次走查的整體意見,并通過Publish Review提交走查建議;

⑥開發者在Reviewboard系統,查看代碼走查中審查人員提出的問題和建議,并根據問題和建議修改代碼,提交第二次修改的走查;post-review--server="http://127.0.0.1:8091/"username=user1-r2(-r2是上次提交的申請號,如果忘記了可以通過網頁的URL獲得,例如http://192.168.0.100: 8091/r/2/的申請號就是2)

⑦如果走查組沒有什么異議,那么這次走查完畢,開發者可以在Reviewboard中結束(Close)走查任務;

⑧開發者將走查過的代碼提交到SVN代碼服務器;

⑨當若干bug修改完畢后,并經過后續測試工作,根據工作計劃發布一個新的版本。

5 結束語

進行版本管理是團隊軟件開發的必然選擇,也是持續集成的基礎,代碼走查是團隊合作的一個優勢體現。通過使用由SVN和Reviewboard軟件搭建的版本管理與代碼走查系統以及對代碼提交流程設計,能夠使開發人員代碼維護更加簡單,代碼走查更加方便,研發流程更加規范,軟件產品管理維護更加便利,提高了軟件開發發的效率。該系統已經在幾個中小規模的項目中的開始應用。

[1]戴楠,閆明星.用SVN實現軟件的版本控制[J].電腦知識與技術,2009,5(16):4289-4290.

[2]羅雅麗.版本控制在開發項目中的應用[J].電腦編程技巧與維護,2011(14):39-40.

[3]高如莎.一種軟件單元測試策略[J].無線電工程,2007,37(8): 54-57.

[4]孫衛紅.代碼走查的研究與實踐[J].計算機與網絡,2007,33 (22):41-42.

[5]李燕.軟件質量保證方法的研究及在同行評審改進項目的應用[D].北京:北京郵電大學,2011:40-53.

[6]胡爭輝.從SVN Trac開始中小團隊項目管理之路[J].程序員,2008(4):129-131.

Design and Implementation of Version Management and Code Walkthrough System

LI Song-quan1,LIU Xi-sheng2
(1 The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
(2 Dadong Branch,Shenyang Water Group Co.Ltd.,Shenyang Liaoning 110042,China)

In order to optimize the software project management and solve the problems such as orderless software version management,complicated artificial code walkthrough process and difficult control of results,this paper studies the software version management tool and the code walkthrough tool,introduces their application in the software project management.Based on the requirements of software project management in practice,this paper provides an implementation method of combination system of Subversion version management tool and Reviewboard code walkthrough tool,introduces the installation and deployment of version management tool and code walkthrough tool and proposes a software development and application process based on this system.

version management;code walkthrough;SVN;Reviewboard

TP391.4

A

1008-1739(2013)06-53-4

定稿日期:2014-2-26

猜你喜歡
系統管理
棗前期管理再好,后期管不好,前功盡棄
今日農業(2022年15期)2022-09-20 06:56:20
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
加強土木工程造價的控制與管理
如何加強土木工程造價的控制與管理
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
“這下管理創新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
主站蜘蛛池模板: 国产精品人成在线播放| 人妻精品全国免费视频| 久久婷婷六月| 香蕉eeww99国产精选播放| 国产精品亚洲五月天高清| 久久综合伊人77777| 久久国产黑丝袜视频| 欧美高清国产| 日韩毛片免费| 一级毛片高清| 韩日无码在线不卡| 在线国产91| 在线国产你懂的| 亚洲人成网站观看在线观看| 漂亮人妻被中出中文字幕久久 | 综合色区亚洲熟妇在线| 日韩A∨精品日韩精品无码| 精品無碼一區在線觀看 | 天天操精品| 内射人妻无套中出无码| 午夜欧美理论2019理论| 91亚洲精品第一| 亚洲精品无码不卡在线播放| 黄色片中文字幕| 亚洲香蕉伊综合在人在线| 91亚洲精选| 亚洲三级成人| 国产精品开放后亚洲| 欧美一区二区三区国产精品| 制服丝袜一区二区三区在线| 伊人久久大香线蕉aⅴ色| 欧美一级一级做性视频| 毛片手机在线看| 40岁成熟女人牲交片免费| www.亚洲一区| 伊人国产无码高清视频| 全部无卡免费的毛片在线看| 国产高清无码麻豆精品| 偷拍久久网| 国产精品男人的天堂| 无码专区国产精品第一页| 国产无码高清视频不卡| 亚洲经典在线中文字幕| 日韩 欧美 小说 综合网 另类 | 国产精品 欧美激情 在线播放| 91亚洲精品第一| 91亚洲国产视频| 国产精品吹潮在线观看中文| 亚洲男人在线| 国产v精品成人免费视频71pao| 99精品一区二区免费视频| 国产精品刺激对白在线| 99精品一区二区免费视频| 日韩精品久久无码中文字幕色欲| 欧美97色| 欧美日韩另类在线| 成人一级免费视频| 先锋资源久久| 亚洲天堂在线视频| 国产91久久久久久| 永久天堂网Av| 狠狠久久综合伊人不卡| 永久天堂网Av| 久久9966精品国产免费| 亚洲伊人久久精品影院| 一级毛片在线免费视频| 欧美亚洲另类在线观看| 色综合a怡红院怡红院首页| 欧美亚洲另类在线观看| 亚洲成人在线免费观看| 国产无码性爱一区二区三区| 国产簧片免费在线播放| 超清无码一区二区三区| 精品国产欧美精品v| 亚洲一级无毛片无码在线免费视频| 国产综合欧美| 视频二区亚洲精品| 成人噜噜噜视频在线观看| 18黑白丝水手服自慰喷水网站| 麻豆国产在线不卡一区二区| 国产高清不卡视频| 国产成人精品18|