国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

SVN在設(shè)備軟件開發(fā)管理中的應(yīng)用

2016-12-12 08:18:24張金環(huán)張為強田洪濤
電子工業(yè)專用設(shè)備 2016年11期
關(guān)鍵詞:開發(fā)人員服務(wù)器端代碼

張金環(huán),張為強,田洪濤

(中國電子科技集團公司第四十五研究所,北京,100176)

SVN在設(shè)備軟件開發(fā)管理中的應(yīng)用

張金環(huán),張為強,田洪濤

(中國電子科技集團公司第四十五研究所,北京,100176)

介紹了軟件版本控制的基本概念和SVN版本控制系統(tǒng)在設(shè)備軟件開發(fā)中的應(yīng)用,研究解決目前設(shè)備軟件開發(fā)過程中的諸多問題,從而提高設(shè)備軟件開發(fā)效率和質(zhì)量。

版本控制;設(shè)備軟件;軟件管理;SVN系統(tǒng)搭建和應(yīng)用

隨著設(shè)備軟件越來越復(fù)雜,軟件開發(fā)團隊越來越壯大,每次軟件源程序匯總出現(xiàn)的問題就會越來越多,處理這些匯總問題導(dǎo)致了時間的大量浪費和代碼的混亂。那么,一個軟件版本控制系統(tǒng)的使用就顯得尤為迫切。

1 目前設(shè)備軟件開發(fā)管理中存在的問題

在沒有進行版本控制的設(shè)備軟件開發(fā)過程中,當(dāng)多個開發(fā)人員共同開發(fā)一個設(shè)備軟件時,每個人在各自的機器上都有整個軟件的備份,并對自己本地硬盤上的代碼進行修改、添加、刪除等開發(fā)工作,分別完成各自任務(wù)之后,再通過文本比對工具將各自機器上的不同版本的程序整合到一臺機器上。然而如此經(jīng)常會出現(xiàn)如下問題:

(1)開發(fā)人員忘記備份,而無法找回某一天或?qū)崿F(xiàn)某些功能的代碼;

(2)在合并代碼時,開發(fā)人員A的修改把B的修改覆蓋掉了;

(3)在合并后,有些開發(fā)人員的某些文件不知何時被人修改了,且不知還有哪些部分被改動過;

(4)開發(fā)人員沒有及時將自己最新修改的代碼合并到其他開發(fā)人員的程序中,而在后期合并后,原本沒問題的程序出現(xiàn)了各種各樣的BUG。

(5)軟件管理人員,無法準(zhǔn)確掌握軟件整體和每個開發(fā)人員的工作進度。

當(dāng)一個設(shè)備有多個用戶,每個用戶有不同需求時,每個開發(fā)人員針對自己的用戶需求,各自基于某個相似機型軟件進行修改添加等后續(xù)開發(fā)工作,完成任務(wù)后在電腦本地各自保存自己開發(fā)過的版本。然而經(jīng)常會有如下問題:

(1)有開發(fā)人員在備份時沒有備注設(shè)備或軟件修改說明,而忘記程序基于哪個版本開發(fā),或基于某個型號的設(shè)備軟件做了哪些改動;

(2)有開發(fā)人員辭職忘記移交軟件源程序,而使管理人員找不到設(shè)備軟件源碼,或者源碼的開發(fā)文檔。

沒有進行版本控制或者版本控制本身缺乏正確的流程管理,在設(shè)備軟件開發(fā)過程中,將會引發(fā)一系列問題,如軟件代碼的一致性、軟件內(nèi)容的冗余、軟件過程的事物性、軟件開發(fā)過程中的并發(fā)性、軟件源代碼的安全性,以及軟件的整合等諸多問題。

2 軟件版本控制的基本概念

版本控制是指按照一定的規(guī)則管理配置項的所有版本,避免發(fā)生版本丟失或混淆等現(xiàn)象,并且保證任何時候都能取到正確的版本以及版本的組合,它是在軟件開發(fā)過程中保證技術(shù)狀態(tài)一致的一種手段,是開發(fā)過程中進行全面管理的基礎(chǔ)。

版本控制的目的一方面在于實現(xiàn)開發(fā)團隊并行開發(fā)、提高開發(fā)效率;另一方面在于對軟件開發(fā)進程中文件或目錄的發(fā)展過程提供有效的追蹤手段,保證在需要時可回到舊的版本,避免文件的丟失、修改的丟失和相互覆蓋,通過對版本庫的訪問控制避免未經(jīng)授權(quán)的訪問和修改,達到有效保護企業(yè)軟件資產(chǎn)和知識產(chǎn)權(quán)的目的。

版本控制的功能在于跟蹤記錄整個軟件的開發(fā)過程,包括軟件本身和相關(guān)文檔,以便對不同階段的軟件及相關(guān)文檔進行表示并進行差別分析,對軟件代碼進行可撤消的修改,便于匯總不同開發(fā)人員所做的修改,輔助協(xié)調(diào)和管理軟件開發(fā)團隊。

有人形容沒有使用版本控制工具的開發(fā)工作就如同生活在“黑暗時代”。版本控制工具是項目開發(fā)中必不可少的,進行版本控制可以確保在軟件項目開發(fā)中,不同的開發(fā)人員所涉及的同一文檔都得到更新。

常用版本控制軟件有很多,比如:Microsoft提供的VSS(Visual Source Safe),Collab.Net提供的CVS(Concurrent Versions System)和SVN(CollabNet Subversion),IBMRationalSoftware提供的ClearCase,Borland公司的StarTeam,Serena公司提供的PVCS,BitMover公司提供的BitKeeper等等。

其中,SVN是在CVS的基礎(chǔ)上,由CollabNet提供開發(fā)的開源工具,目前越來越受到大家的歡迎,估計將來可能會成為使用最廣泛的工具。它是一個跨平臺的軟件,支持大多數(shù)常見的操作系統(tǒng)。作為一個開源的版本控制系統(tǒng),Subversion管理著隨時間改變的數(shù)據(jù)。這些數(shù)據(jù)放置在一個中央版本庫中。這個版本庫很像一個普通的文件服務(wù)器,不過它會記住每一次文件的變動。這樣你就可以把文檔恢復(fù)到舊的版本,或是瀏覽文件的變動歷史。Subversion是一個通用的系統(tǒng),可用來管理任何類型的文件,其中包括了程序源碼。

SVN修正CVS的一些局限性,目前有一些基于SVN的第三方工具,如TortoiseSVN,是其客戶端程序,使用的也相當(dāng)廣泛。這里我們選擇了SVN作為我們的版本控制軟件。

3 SVN的工作原理和功能特點

3.1工作原理

SVN是一種開源的版本控制系統(tǒng),全稱是Subversion。它擁有自己的版本資料庫,允許用戶在不同空間和時間上修改和管理同一組數(shù)據(jù),可以忠實的記錄下來文件的所有歷史修改版本,用戶在本地更新(update)后就能看到其他用戶提交到SVN上的最新代碼,見圖1所示。

圖1 SVN工作原理圖

SVN版本管理系統(tǒng)是C/S架構(gòu),即大家熟知的客戶機(Client)和服務(wù)器(Server)結(jié)構(gòu)。

在一臺服務(wù)器上建立一個版本庫,所有項目代碼(一個或多個項目)上傳到服務(wù)器版本庫統(tǒng)一管理。每個開發(fā)人員可以從服務(wù)器端隨時拿到任意版本的代碼(能拿到哪些代碼受權(quán)限控制),但在使用源代碼之前,首先要把指定版本的源代碼下載(check out,update)到本地,然后開發(fā)人員可以在本地客戶端修改,添加,刪除等后續(xù)開發(fā)操作,然后再上傳(commit)到服務(wù)器端,形成新的最新版本。

3.2功能特點

(1)支持多級管理員。系統(tǒng)支持三種角色權(quán)限:超級管理員、目錄級管理員、普通用戶。超級管理員對所有配置庫具有完全權(quán)限;目錄管理員可對指定的目錄進行權(quán)限管理,包括:對該目錄/庫的用戶進行刪除、寫權(quán)限變更、讀權(quán)限變更及為子目錄設(shè)置管理員等;普通用戶可以查看用戶名、查看權(quán)限設(shè)置、修改自己密碼。

(2)目錄版本控制。實現(xiàn)了一個“虛擬”文件系統(tǒng),可以追蹤整個目錄樹的修改,文件和目錄都是版本控制的,可以在客戶端對文件和目錄執(zhí)行移動和復(fù)制命令。

(3)全局版本號。SVN的版本號針對整個目錄樹,而非單個文件。每一個版本號代表了一次提交后版本庫整個目錄樹的特定狀態(tài)。

(4)原子提交。提交要么完全進入版本庫,要么一點都沒有,這允許開發(fā)者以一個邏輯塊提交修改。

(5)高效的分支和標(biāo)簽。分支與標(biāo)簽的大小與工程的大小不成比例,SVN建立分支與標(biāo)簽時使用了一種類似于硬鏈接的機制,因而這類操作通常只會花費很少并且相對固定的時間,以及很小的版本庫空間。

(6)版本緩存。在本地維護一個原始的版本緩存,可使本地直接查看區(qū)別和恢復(fù)修改而不必訪問網(wǎng)絡(luò),并且可使提交只傳遞修改的部分而非整個文件。

(7)一致的數(shù)據(jù)處理。使用二進制文件差異算法展現(xiàn)文件的區(qū)別,對于文本(可讀)和二進制(不可讀)文件具備一致的操作方式,兩種類型的文件都壓縮存放在版本庫中,差異在網(wǎng)絡(luò)上雙向傳遞。

(8)重載圖標(biāo)。每個版本控制的文件和目錄的狀態(tài)使用小的重載圖標(biāo)表示,可以讓你立刻看出工作副本的狀態(tài)。

(9)圖形用戶界面。當(dāng)你列出文件或文件夾的更改時,你可以點擊任意版本查看提交注釋。也可以看到更改過的文件列表,只要雙擊文件就可以查看更改內(nèi)容。提交對話框列出了本次提交將要包括的條目,每一個條目有一個復(fù)選框,所以你可以選擇包括哪些條目。未版本控制的文件也會被列出,以防你忘記添加新文件。

4 系統(tǒng)搭建與應(yīng)用

4.1系統(tǒng)搭建

首先到SVN官方網(wǎng)站免費下載開源軟件SVN的安裝程序,SVN分為服務(wù)器端軟件和客戶端軟件,服務(wù)器端軟件有 Subversion和 VisualSVN-Server;客戶端有TortoiseSVN、VisualSVN、SmartSVN。我們服務(wù)器端選用VisualSVN-Server,客戶端TortoiseSVN。

其次選擇一臺電腦作為服務(wù)器并安裝SVN服務(wù)器端程序VisualSVN-Server,每個開發(fā)人員的電腦作為客戶端分別安裝SVN客戶端程序TortoiseSVN,并使客戶端與服務(wù)器互聯(lián)。

最后,選定一個系統(tǒng)管理員,負責(zé)建立版本庫、建立用戶、分配權(quán)限、為版本庫配置用戶、版本庫定期備份等。

4.2應(yīng)用

SVN版本控制系統(tǒng)是集中式的數(shù)據(jù)管理,集中式代碼管理的核心是服務(wù)器,所有開發(fā)者以及管理者在開始新一天的工作之前必須從服務(wù)器獲取代碼或日志信息,軟件按所有的版本信息都放在服務(wù)器上。如果脫離了服務(wù)器,開發(fā)者基本上可以說是無法工作的。

對于設(shè)備軟件開發(fā)人員開始新一天的工作:

(1)從SVN服務(wù)器版本庫上下載(check out)或者更新(update)本地工作目錄,確保代碼為版本庫的最新代碼。

(2)進入本地工作目錄,進行工作,每隔一段時間向服務(wù)器提交一次代碼。(很多人都有這個習(xí)慣。因為有時候自己對代碼改來改去,最后又想還原到前一個小時的版本,或者看看前一個小時自己修改了哪些代碼,就需要這樣做了。)

(3)在快下班的時候,更新(update)本地代碼然后再提交。(更新時,如果一段代碼同時被別人修改就會出現(xiàn)沖突,那么就需要與另一個改此代碼的開發(fā)人員討論,將代碼合并,解決好沖突后,再進行提交。)

(4)將編譯且測試通過的代碼提交(commit)到服務(wù)器。一天的工作完成,并反映給服務(wù)器。對于設(shè)備調(diào)試人員:

(1)調(diào)試設(shè)備之前,從服務(wù)器上下載(check out)該設(shè)備軟件最新代碼或者更新(update)本地代碼,使本地代碼始終為SVN中的最新版本。

(2)在調(diào)試中發(fā)現(xiàn)問題后,修改本地代碼,確保代碼編譯測試通過后,提交(commit)給SVN服務(wù)器。

對于設(shè)備軟件管理人員:

(1)如果想查看現(xiàn)在軟件開發(fā)進度,掌握最新軟件情況,可以從服務(wù)器上下載(check out)該設(shè)備軟件最新代碼或者更新(update)本地代碼,運行并查看目前軟件開發(fā)情況。

(2)如果想查看軟件人員每天的工作內(nèi)容或者工作量,可查看SVN變更日志文件,該文件詳細記錄了每個更新過SVN服務(wù)器的人的名字、時間、修改刪除或添加過的源代碼,以及更新內(nèi)容描述。

5 總 結(jié)

在設(shè)備軟件開發(fā)過程中,SVN版本管理系統(tǒng)的使用,可以有效解決軟件一致性、并發(fā)性、安全性等問題,保證了在空間上集中統(tǒng)一管理。開發(fā)人員在提交軟件代碼的時候一般采用服務(wù)器/客戶端方式,盡管開發(fā)人員可以在自己的本地留有備份,但最終唯一有效的只有服務(wù)器端的程序代碼;在時間上全程跟蹤記錄工具將會自動記錄開發(fā)過程中的每個更改細節(jié),和不同時期的不同版本。這在一定程度上可以解決冗余、事務(wù)性處理并發(fā)性問題。項目管理人員可以通過版本控制對團隊中的不同人員,實施操作權(quán)限的控制。對于不同角色的開發(fā)人員,對軟件的不同部分可以定義不同的訪問權(quán)限。這在一定程度可以解決軟件安全性問題。版本控制工具的使用,可以減輕開發(fā)人員以及管理人員的負擔(dān),節(jié)省時間,同時降低人為錯誤。

[1]C.Micbael Pilato.使用Subversion進行版本控制[M]. (第2版).北京:開明出版社,2009.

[2]孟顯英.淺談軟件配置管理[J].電腦知識與技術(shù),2010,06(18):5092.

[3]隋新.基于SVN的軟件工程團隊協(xié)作模式[J].中國現(xiàn)代教育裝備,2014,(3):59-61.

[4]賀自軍.基于SVN的統(tǒng)一協(xié)作平臺設(shè)計與實現(xiàn)[M].北京:北京郵電大學(xué),2009.

The Application of SVN in the Management of Equipment Software Development

ZHANG Jinhuan,ZHANG Weiqiang,TIAN Hongtao
(The 45thResearch Institute of CETC,Beijing 100176,China)

This paper introduces the basic concepts of software version control and application of SVN version control system in software development of equipment,research and solve the problems in the process of software development,so as to improve the efficiency and quality of software development. Keywords:Version control;Equipment software;Software management;Construction and application of SVN system

TP311.11

B

1004-4507(2016)11-0038-05

2016-11-04

猜你喜歡
開發(fā)人員服務(wù)器端代碼
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
在Windows中安裝OpenVPN
讓W(xué)indows 10進入開發(fā)者模式
電腦迷(2015年12期)2015-04-29 23:22:51
后悔了?教你隱藏開發(fā)人員選項
電腦愛好者(2015年6期)2015-04-03 01:20:56
網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
玛沁县| 玛纳斯县| 蓬安县| 丘北县| 搜索| 清原| 平昌县| 英德市| 安化县| 巨野县| 和龙市| 利川市| 北宁市| 曲周县| 武鸣县| 潞城市| 福海县| 紫金县| 成安县| 全椒县| 阆中市| 阿拉尔市| 阳谷县| 云浮市| 南郑县| 新和县| 泗洪县| 永城市| 莱芜市| 孝昌县| 建阳市| 通榆县| 长子县| 长治县| 合阳县| 荣昌县| 高密市| 延吉市| 博白县| 大宁县| 察雅县|