SCM軟件配置管理

軟件配置管理

軟件配置管理 (Software Configuration Management, SCM)

問題引出

IEEE 定義

A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements.

一套應(yīng)用技術(shù)上和管理上的指導(dǎo)和監(jiān)督的方法澎灸,用來:識別和記錄配置項的功能特征和物理特征陆赋;控制這些特征的變更奔坟;記錄和報告變更的處理和執(zhí)行的狀態(tài)形耗,以及驗證起是否符合特定的需求推掸。

有那么一類管理

軟件配置管理,是關(guān)于軟件資產(chǎn)的管理宫屠。

軟件 = 源代碼 + 文檔匪煌。

源代碼豹爹、設(shè)計文檔、可以運(yùn)行的程序等在軟件研發(fā)過程中產(chǎn)生的有價值的東西矛纹,都是軟件資產(chǎn)臂聋。

圖書管理 VS 軟件管理

  1. 圖書管理的事圖書資產(chǎn),軟件配置管理管理的是軟件資產(chǎn)或南。其實這兩種管的都是信息資產(chǎn)孩等。
  2. 圖書管理,需要把圖書進(jìn)行分類采够,以便檢索肄方;需要將圖書存放在合適的地方,以便存取蹬癌。還要防止蟲吃鼠咬权她。軟件配置管理也類似,需要把軟件資產(chǎn)放在合適的目錄結(jié)構(gòu)里逝薪。防止丟失或者錯亂隅要。
  3. 在圖書館,要記錄圖書的借閱情況董济,為了保證圖書不丟失步清;在軟件配置管理中也類似,需要記錄哪位程序員借出了哪個文件,什么時候還廓啊。如果程序員修改了它欢搜,還需要記錄下來這些修改。
  4. 圖書需要更新谴轮,軟件也需要更新炒瘟。

為什么是配置管理

  1. 汽車配置:底盤(傳動系、轉(zhuǎn)向系书聚、制動系和行駛系)唧领、發(fā)動機(jī)、車身雌续、電氣設(shè)備
  2. 電腦配置:主板(內(nèi)存斩个、CPU、顯卡)驯杜、硬盤受啥、機(jī)箱、顯示器鸽心、外設(shè)
  3. 手機(jī)配置:屏幕滚局、CPU、GPU顽频、內(nèi)存藤肢、閃存、主板糯景、按鍵
  4. 軟件配置:代碼嘁圈、文檔、安裝程序蟀淮、引用類庫最住、資源文件

從機(jī)器的視角,每個零件都有型號怠惶、編號涨缚。很容易想到,應(yīng)該有某種列表或者文檔來表明各個零部件型號和組成關(guān)系(Bill of Material, BOM)策治。當(dāng)配置有變動的時候脓魏,要跟新這樣的清單。而且這樣的變動不能隨隨便便的览妖,應(yīng)該先讓總工程師批準(zhǔn)轧拄,做相應(yīng)的測試。

從軟件的視角讽膏,軟件也是配置起來的檩电。各個源文件、源代碼和正確的文檔搭配起來,編譯產(chǎn)生正確的可以運(yùn)行的程序俐末。

另外軟件配置管理更有自己的特點(diǎn):

1.軟件更容易發(fā)生變化料按,是向前演進(jìn)的。

2.軟件的相關(guān)性(耦合)更高卓箫,一旦需要改動载矿,通常不是只更改一個文件。

其他的比喻

  • 結(jié)繩記事
  • 攀巖巖釘
  • 保險柜
  • 腳印
  • ……

最終定義

是一種應(yīng)用于整個軟件工程過程的標(biāo)識烹卒、組織和控制修改的圍繞軟件資產(chǎn)的管理技術(shù)闷盔。

軟件配置管理,又稱軟件形態(tài)管理旅急、或軟件建構(gòu)管理逢勾,簡稱軟件形管。界定軟件的組成項目藐吮,對每個項目的變更進(jìn)行管控(版本控制)溺拱,并維護(hù)不同項目之間的版本關(guān)聯(lián),以使軟件在開發(fā)過程中任一時間的內(nèi)容都可以被追溯谣辞,包括某幾個具有重要意義的數(shù)個組合迫摔。

在軟件建立時變更是不可避免的,而變更加劇了項目中軟件開發(fā)者之間的混亂泥从。SCM活動的目標(biāo)就是為了標(biāo)識變更句占、控制變更、確保變更正確實現(xiàn)并向其他有關(guān)人員報告變更躯嫉。從某種角度講辖众,SCM是一種標(biāo)識、組織和控制修改的技術(shù)和敬,目的是使錯誤降為最小并最有效地提高生產(chǎn)效率。

從流程角度看戏阅,軟件配置管理是整個軟件開發(fā)生命周期中一個非常核心的管理過程昼弟。配置管理實際貫穿了從需求分析、架構(gòu)設(shè)計奕筐、項目管理舱痘、開發(fā)、集成構(gòu)建离赫、測試以及上線的全過程芭逝。這一過程不僅涉及宏觀的項目進(jìn)度控制、配置管理規(guī)范及計劃渊胸、多地點(diǎn)開發(fā)規(guī)劃等旬盯,也包括更細(xì)粒度的分支模型、構(gòu)建及集成方式、變更處理流程胖翰,還包括微觀的與開發(fā)人員直接相關(guān)的版本控制接剩、差異比較和歸并等。

Version Control-版本控制

Change Control-變更控制

Process Support-過程支持

關(guān)鍵活動包括:配置項萨咳、版本庫管理懊缺、版本控制、變更控制培他、狀態(tài)報告鹃两、配置審計等。

術(shù)語解釋

配置

“配置”是在技術(shù)文檔中明確說明并最終組成軟件產(chǎn)品的功能或物理屬性舀凛。因此“配置”包括了即將受控的所有產(chǎn)品特性俊扳,及其內(nèi)容及相關(guān)文檔,軟件版本腾降,變更文檔拣度,軟件運(yùn)行的支持?jǐn)?shù)據(jù),以及其他一切保證軟件一致性的組成要素螃壤。

配置項

為了方便對“配置”進(jìn)行管理抗果,“配置”經(jīng)常被劃分為各類配置項,這類劃分是進(jìn)行軟件配置管理的基礎(chǔ)和前提奸晴。 配置項是一組軟件功能或者物理屬性的組合冤馏,在配置管理過程中,配置項被作為一個單一的實體對待寄啼。 一個系統(tǒng)包括的配置項的數(shù)目是一個與設(shè)計密切相關(guān)的問題逮光。

  • 文檔:一篇文檔就是一個配置項
  • 代碼:推薦將整個項目組的所有代碼當(dāng)做一個配置項。如果項目組內(nèi)不同模塊之間的進(jìn)度相差很大的時候墩划,將每一個模塊的代碼劃分為一個配置項更加方便管理涕刚。

基線

在配置管理系統(tǒng)中,基線就是配置項在其生命周期的不同時間點(diǎn)上通過評審而進(jìn)入正式受控的一種狀態(tài)乙帮,而這個過程被稱為“基線化”杜漠。

每一個基線都是其下一步開發(fā)的基準(zhǔn)。

基線具有以下屬性:

  • 通過正式的評審過程建立察净。
  • 基線存在于配置庫中驾茴,基線的變更由變更控制委員會(CCB-Change Control Board)控制。
  • 基線是進(jìn)一步開發(fā)和修改的基準(zhǔn)氢卡。

版本

版本是表示一個配置項具有一組定義的功能的一種標(biāo)識锈至。隨著功能的增加,修改或刪除译秦,配置項的版本隨之演變峡捡。

版本以版本號進(jìn)行標(biāo)識击碗。

  • 版本號 Version Number:為簡略的表達(dá)特定版本的目的和意義,為方便區(qū)分不同的版本棋返,我們需要版本號這個概念延都。又稱作版本標(biāo)識。
  • 版本庫:也叫存儲庫睛竣,Repository晰房。在版本庫里,存儲源代碼的各個版本射沟。當(dāng)然存儲的是不同版本見有差異的部分殊者,增量存儲。
  • 簽入:檢入验夯,check in. 代碼修改完了以后猖吴,需要告知版本控制工具,將新的代碼保存到版本庫中挥转。
  • 簽出:檢出海蔽,chekc out。代碼修改前绑谣,需要先告知版本控制工具党窜,講版本庫中的代碼復(fù)制到本地。

玄妙的學(xué)院派

配置計劃

配置管理計劃是開展所有配置管理活動的基礎(chǔ)借宵。

計劃中應(yīng)該明確以下要素:

  • 配置管理人員的組織和職責(zé)
  • 配置項的命名規(guī)則
  • 配置管理工具以及配置庫結(jié)構(gòu)
  • 標(biāo)識的配置項和位置
  • 權(quán)限分配和管理方法
  • 配置庫備份的周期幌衣、方法
  • 變更控制的流程和操作方法
  • 版本發(fā)布的計劃和策略
  • 基線審計計劃
  • 集成策略
  • 軟件配置管理的場景

配置標(biāo)識 Configuration Identification

是配置管理的一個組成部分,包括:選擇產(chǎn)品的配置項壤玫、為他們制定唯一的標(biāo)識豁护,并在技術(shù)文檔中記錄其功能和屋里的特性。

配置標(biāo)識是對軟件配置進(jìn)行管理的前提和基礎(chǔ)欲间。配置標(biāo)識包括了軟件配置項的選擇楚里、劃分和對配置項的功能物理屬性進(jìn)行描述的過程。

每個配置項都必需被唯一地標(biāo)識猎贴,這個唯一的標(biāo)識被用于與其它配置項進(jìn)行區(qū)分腻豌,跟蹤和報告該配置項的狀態(tài)。一般地嘱能,每個配置項被賦予一個標(biāo)識符。

  • 文檔:對所有文檔而言虱疏,文件名就作為配置項的命名
  • 代碼:使用“項目名-模塊名+代碼”或者“項目名+代碼”的方式進(jìn)行命名
  • 工具:以工具本身的名稱命名

定義配置項的版本

單個配置項在每一次修改后都會發(fā)生變化惹骂,為了標(biāo)識配置項在兩次修改之間的不同,需要對配置項的版本進(jìn)行標(biāo)識做瞪。

配置項版本命名原則

配置項的版本標(biāo)識建議采用的形式為:xx.yy的十進(jìn)制標(biāo)識符对粪,其中xx起始為“1”右冻,yy起始為“0”。

所有數(shù)字均是阿拉伯?dāng)?shù)字著拭,并且單調(diào)遞增纱扭。如果發(fā)生了重大的修改,xx遞增儡遮;如果只有小修改乳蛾,遞增yy。

已基線化

成為基線的配置項是指已完成該配置項的審核鄙币、批準(zhǔn)和簽發(fā)并且成為創(chuàng)建或修改其他配置項的輸入肃叶。

受管理和受控的

受管理和受控的配置項是指已提交審核,但還沒有批準(zhǔn)通過的配置項十嘿。

配置控制 Configuration Control

是配置管理的一個組成部分因惭,包含評估、協(xié)調(diào)绩衷、批準(zhǔn)/拒絕蹦魔、實施對配置項的變更。

這發(fā)生在正式的配置標(biāo)識之后咳燕。

配置控制包括配置項在完成基線化后所產(chǎn)生的變更的評估勿决、協(xié)調(diào)、批準(zhǔn)迟郎、駁回以及實現(xiàn)過程剥险。

  • 變更請求的管理
  • 變更的協(xié)調(diào)工作

在項目開始時,由項目負(fù)責(zé)人根據(jù)項目的情況確定變更控制委員會(Change Control Board, CCB)宪肖,并記錄在配置管理計劃中表制。CCB組長也可以根據(jù)更改請求的情況事件驅(qū)動地召集CCB會議。CCB也可以批量處理更改請求或采用定期的方式進(jìn)行處理控乾。

如有必要么介,可以設(shè)立不同級別的CCB,他們具有不同的授權(quán)蜕衡,對不同層次的變更申請進(jìn)行控制根據(jù)修改的影響范圍壤短,CCB召開相應(yīng)的評估會議,并邀請相關(guān)人員參加

配置狀態(tài)報告 Configuration Status Report

是配置管理的一個組成部分慨仿,記錄和報告用來有效管理配置所需要的必要信息久脯。這些信息包括一個已批準(zhǔn)的配置標(biāo)識清單,變更請求當(dāng)前的處理狀態(tài)镰吆,以及一品準(zhǔn)的變更的實現(xiàn)情況帘撰。

配置狀態(tài)報告是跟蹤對軟件的更改的過程,它保證對正在進(jìn)行和已完成的變更進(jìn)行記錄万皿、監(jiān)視并通報給項目組和相關(guān)組成員摧找。

一旦配置項基線化后核行,應(yīng)該通知項目組, 內(nèi)容應(yīng)該包括基線化配置項的名稱以及位置蹬耘。另外應(yīng)該周期或事件驅(qū)動地將更新后的培植狀態(tài)發(fā)給項目組成員以及相關(guān)組芝雪,以確保配置項的狀態(tài)能被相關(guān)人員所了解,根據(jù)需要一周或者兩周發(fā)布一次

  • 版本庫相關(guān)的信息:名字综苔、存儲位置惩系、編號、管理員休里、主要用途描述
  • 版本庫中產(chǎn)品的相關(guān)信息
  • 文件相關(guān)的信息
  • 變更請求蛆挫、基線、發(fā)布妙黍、版本庫的備份等

配置審計 Configuration Audit

執(zhí)行審計以驗證配置項符合特定的標(biāo)準(zhǔn)或需求

對配置管理的獨(dú)立的查檢過程悴侵,確認(rèn)受控軟件配置項滿足需求并就緒。

  • 功能審計:配置項的變更控制是否和配置管理計劃中的描述相一致
  • 物理審計:配置項的完整性拭嫁、正確性, 一致性和可跟蹤性

軟件配置管理的組織

角色

  • 項目經(jīng)理 PM: Project Manager
    • 制定和修改項目的組織結(jié)構(gòu)和配置管理策略可免;
    • 批準(zhǔn)、發(fā)布配置管理計劃做粤;
    • 決定項目起始基線和開發(fā)里程碑浇借;
    • 接受并審閱配置控制委員會的報告。
  • 變更控制委員會 CCB: Change Control Board
    • 負(fù)責(zé)指導(dǎo)和控制配置管理的各項具體活動的進(jìn)行怕品,為項目經(jīng)理的決策提供建議妇垢。其具體職責(zé)為以下幾項:
      • 定制開發(fā)子系統(tǒng);
      • 定制訪問控制肉康;
      • 制定常用策略闯估;
      • 建立、更改基線的設(shè)置吼和,審核變更申請涨薪;
      • 根據(jù)配置管理員的報告決定相應(yīng)的對策。
  • 軟件配置工程師 CMO: Configuration Management Officer
    • 根據(jù)配置管理計劃執(zhí)行各項管理任務(wù)炫乓,定期向CCB提交報告刚夺,并列席CCB的例會。其具體職責(zé)為以下幾項:
      • 軟件配置管理工具的日常管理與維護(hù)末捣;
      • 提交配置管理計劃侠姑;
      • 各配置項的管理與維護(hù);
      • 執(zhí)行版本控制和變更控制方案箩做;
      • 完成配置審計并提交報告莽红;
      • 對開發(fā)人員進(jìn)行相關(guān)的培訓(xùn);
      • 識別軟件開發(fā)過程中存在的問題并擬就解決方案卒茬。
  • 系統(tǒng)集成工程師 SIO: System Integration Engineer
    • 系統(tǒng)集成員負(fù)責(zé)生成和管理項目的內(nèi)部和外部發(fā)布版本船老,其具體職責(zé)為以下幾項:
      • 集成修改;
      • 構(gòu)建系統(tǒng)圃酵;
      • 完成對版本的日常維護(hù)柳畔;
      • 建立外部發(fā)布版本。
  • 軟件開發(fā)工程師 DEV: Software Engineer
  • 軟件測試工程師 QA: QA Engineer / Tester

制定配置管理流程

配置管理實施的一個重要階段郭赐,主要目的是根據(jù)項目開發(fā)的需要薪韩,制定相應(yīng)的配置管理流程,以更好地支持開發(fā)捌锭,主要活動包括:

  • 定制并行開發(fā)策略俘陷。合理的并行開發(fā)策略應(yīng)該具有以下特點(diǎn):協(xié)調(diào)項目的復(fù)雜性和需求,統(tǒng)一創(chuàng)建分支類型和元數(shù)據(jù)观谦,為開發(fā)過程中的變更集成制定有效的規(guī)范拉盾,適時反映開發(fā)過程中方法和需求的變化。
  • 發(fā)布版本管理豁状。軟件開發(fā)過程中的一個關(guān)鍵活動是提取工件的相關(guān)版本捉偏,以形成軟件系統(tǒng)的階段版本或發(fā)布版本,一般將其稱為穩(wěn)定基線泻红。一個穩(wěn)定基線代表新開發(fā)活動的開始夭禽,而一系列定制良好的活動之后又會產(chǎn)生一個新的穩(wěn)定基線。有效地利用此項功能谊路,在項目開發(fā)過程中可以至始至終管理讹躯、跟蹤部件版本間的關(guān)聯(lián)。

軟件配置管理 in CMMI

能力成熟度集成模型(Capability Maturity Model Integration, CMMI)是由美國卡耐基·梅隆大學(xué)的軟件工程研究所組織開發(fā)缠劝,并于2002年發(fā)布的一種規(guī)范潮梯、實用的途徑來管理軟件過程的模型。CMMI通過指導(dǎo)軟件開發(fā)人員的活動來改進(jìn)軟件過程剩彬,以達(dá)到軟件過程可復(fù)用性酷麦、可定量管理、可有效控制的目的喉恋。

軟件配置管理是CMMI可重復(fù)級的一個關(guān)鍵過程域(Key Process Area沃饶,KPA),其目的是在整個項目的軟件生命周期中轻黑,保持軟件產(chǎn)品的完整性和可追蹤性糊肤,這包含了對改變的控制和所有能影響到改變的軟件因素的管理。作為過程實現(xiàn)氓鄙、過程優(yōu)化的一部分馆揉,配置管理是實現(xiàn)軟件過程的基本保證,它還是基于重用的軟件開發(fā)的管理手段抖拦,所以成為軟件過程管理的核心升酣。CMMI模型清晰地描述了SCM舷暮,并說明了SCM 的目的和所要達(dá)到的目標(biāo),具體描述了某級成熟度下軟件過程在該方面所應(yīng)達(dá)到的一組目標(biāo)和實現(xiàn)這些目標(biāo)的一組關(guān)鍵實踐(Key Pradice)噩茄。這些關(guān)鍵實踐被劃分為5類下面,分別為完成該組目標(biāo)所需的承諾、執(zhí)行能力绩聘、執(zhí)行的活動沥割、度量分析以及驗證.使企業(yè)在實施軟件配置管理時能知道到底要做什么,團(tuán)隊的配置管理現(xiàn)狀如何評估凿菩,在哪些方面還可以進(jìn)行改進(jìn)等問題能得到具體的答案机杜。

在CMMI中,對包括軟件配置管理在內(nèi)的配置管理工作衅谷,從如下角度進(jìn)行了劃分:

  • 建立基線

首先椒拗,識別配置項;接著会喝,建立配置管理系統(tǒng)陡叠,用來存放配置項;最厚肢执,通過評審或測試后枉阵,由配置項組成基線,作為未來開發(fā)的基礎(chǔ)预茄。

  • 建立并控制變更

要追蹤變更請求兴溜,這包括新功能、功能增強(qiáng)耻陕,也包括缺陷拙徽。要評估它們,分配給合適的人去處理它們诗宣,還要檢查以確保它們確實被處理了膘怕。要控制對配置項的變更,如果要改它召庞,需要合適的人同意岛心。改好后,要適當(dāng)檢查篮灼,才能入庫忘古。

  • 建立完整性

首先,要對配置管理活動做足夠的記錄诅诱。比如髓堪,對配置項的修訂歷史,對變更請求的狀態(tài)轉(zhuǎn)換過程,對不同基線的差異干旁,等等驶沼;其次,要進(jìn)行配置審計争群。確定配置項的內(nèi)容是否合適商乎,并出現(xiàn)在合適的地方,確定基線的內(nèi)容正確祭阀。

  • 制度化已管理過程

在一個軟件研發(fā)項目中做配置管理,首先要建立配置管理計劃鲜戒,然后確保有足夠的資源专控,包括工具、環(huán)境遏餐,也包括人員伦腐。在配置管理系統(tǒng)運(yùn)轉(zhuǎn)過程中,要適當(dāng)監(jiān)控失都。

  • 制度化已定義過程

要形成可以指導(dǎo)現(xiàn)在和未來多個軟件研發(fā)項目的配置管理過程規(guī)范柏蘑。這樣的規(guī)范不是一成不變的。要手機(jī)相關(guān)的信息粹庞、數(shù)據(jù)和反饋咳焚。并基于此進(jìn)行軟件配置管理的持續(xù)的改進(jìn)。

配置管理的實踐

  • 版本控制
    • 古老做法:文件夾目錄共享庞溜,建立公共存儲區(qū)
    • 現(xiàn)代做法一:文件加鎖革半、修改、提交更新流码、解鎖
    • 現(xiàn)代做法二:并行修改又官。由版本控制工具記錄每個人修改前的版本和修改后的版本,然后再合并漫试。
    • 即使只有一個程序員:程序員需要備份六敬、回滾源代碼、分支代碼驾荣。
    • 多個程序員:多個程序員可能需要修改同一份源代碼窃躲、需要等待測試團(tuán)隊的測試等。
    • 測試人員:需要統(tǒng)一需求文檔斩芭、測試用例桅锄、測試計劃等文檔。
  • 代碼構(gòu)建
    • 構(gòu)建:編譯叮趴、鏈接和打安裝包用來測試和發(fā)布的過程割笙。
    • 及早和經(jīng)常的集成,持續(xù)集成 Continuous Integration,必須充分借助于自動化工具的程度伤溉。
    • 構(gòu)建的日志必須記錄和保存
    • 每日構(gòu)建:每天將最新的源代碼進(jìn)行編譯般码,打包并通過冒煙測試。
  • 持續(xù)集成
    • 系統(tǒng)集成:簡稱集成乱顾,System Integration板祝,其基本的使命,就是把產(chǎn)品的各個部分捏合在一起走净,并且保證產(chǎn)品作為整體是可以轉(zhuǎn)的券时。并且運(yùn)轉(zhuǎn)沒有問題。
    • 集成不一定發(fā)生在各個模塊都開發(fā)完以后伏伯,而開始于設(shè)計階段橘洞。
    • 作為改進(jìn),集成可以逐步進(jìn)行说搅。每完成一個模塊炸枣,就加入到整體環(huán)境中來,發(fā)現(xiàn)問題并解決弄唧。
    • 适肠。
  • 并行開發(fā)
    • 版本標(biāo)簽:在當(dāng)前分支通過標(biāo)簽的方式整體記錄版本。
    • 版本分支:通過分支產(chǎn)生并行的版本進(jìn)行新功能開發(fā)或者長期持續(xù)維護(hù)
    • 適當(dāng)隔離與適當(dāng)共享
  • 管理文檔
    • 文檔和源代碼:源代碼是人編寫出來候引,給機(jī)器運(yùn)行侯养;文檔是給人閱讀。
    • 文檔必須帶有版本號和作者
    • 對修改有簡單的描述澄干,版本需要有最終狀態(tài)
    • 趨勢:Wiki 來源于夏威夷語(wee kee wee kee)沸毁,中文是“快點(diǎn)快點(diǎn)”的意思。修改和展示都是基于網(wǎng)絡(luò)的傻寂,在瀏覽器中完成息尺。
  • 跟蹤缺陷
    • 軟件資產(chǎn)的改動會不可避免的產(chǎn)生缺陷,或者潛在的bug疾掰。
    • 通過缺陷跟蹤系統(tǒng)搂誉,以及bug的狀態(tài)轉(zhuǎn)換,使得bug得以修復(fù)静檬。
    • 分析統(tǒng)計缺陷相關(guān)數(shù)據(jù)炭懊,尤其注意漏測率。
  • 管理變更
    • 比缺陷更廣闊的的話題拂檩,是變更請求侮腹。
    • 功能增強(qiáng)。
    • 在瀑布模型中管理變更

主流工具

  • Borland StarTeam

StarTeam是Borland公司的配置管理工具稻励,是收費(fèi)工具父阻。

通過連接多個應(yīng)用程序生命周期管理 (ALM) 庫愈涩,優(yōu)化您的軟件開發(fā)生命周期 (SDLC)。通過跟蹤對源代碼加矛、缺陷和功能的變更履婉,獲取對團(tuán)隊、項目和工具的控制斟览。

StarTeam 的軟件配置管理功能可用于在整個 軟件開發(fā)生命周期SDLC 中管理和跟蹤源代碼變更毁腿,包括變更請求、缺陷苛茂、任務(wù)已烤、需求用戶案例和討論。它提供了跨各種工具和存儲庫的更改妓羊。StarTeam 的軟件配置管理功能同時適用于集中和異地軟件開發(fā)團(tuán)隊草戈,同時還可在您的所有軟件資產(chǎn)中保持可見性和可追溯性,可用作您的單一事實來源侍瑟。

  • IBM Rational ClearCase

Rational ClearCase 作為一款功能強(qiáng)大的軟件配置管理( SCM )工具,在國內(nèi)已經(jīng)得到許多企業(yè)用戶的認(rèn)可并被廣泛采納丙猬。

IBM Rational ClearCase 通過自動化涨颜、集成和最佳經(jīng)驗簡化了變更過程。ClearCase 幫助您更好地管理變更和資源茧球,控制開發(fā)過程中發(fā)展演化的一切內(nèi)容庭瑰,包括需求、設(shè)計模型抢埋、源代碼弹灭、變更請求以及測試腳本等。

  • VSS (Microsoft Visual SourceSafe)

VSS 的全稱為 Visual SourceSafe 揪垄。作為 Microsoft Visual Studio 的一名成員穷吮,它主要任務(wù)就是負(fù)責(zé)項目文件的管理,幾乎可以適用任何軟件項目饥努。管理軟件開發(fā)中各個不同版本的源代碼和文檔捡鱼,占用空間小并且方便各個版本代碼和文檔的獲取,對開發(fā)小組中對源代碼的訪問進(jìn)行有效的協(xié)調(diào)。

  • TFS (Microsoft Team Foundation Server)

    TFS作為VSS的替代者酷愧,具有十分強(qiáng)大的功能驾诈。

    1. 面向整個團(tuán)隊的協(xié)作工具

      Team Foundation Server 提供了一系列可與您的現(xiàn)有 IDE 或編輯器結(jié)合使用的協(xié)作工具,以便您的團(tuán)隊可以有效地處理各種形態(tài)和規(guī)模的軟件項目溶浴。

    2. 面向敏捷團(tuán)隊的工具

      看板乍迄、Scrum、儀表板

      根據(jù)自身情況敏捷處理士败。通過積壓工作和可自定義的看板闯两,捕獲和跟蹤工作情況,并確定工作優(yōu)先級。 工作項直接鏈接到代碼以確保透明性生蚁,并可用于生成豐富的儀表板噩翠,方便您輕松生成報告。

    3. 持續(xù)集成

      生成邦投、驗證伤锚、部署

      使用持續(xù)集成 (CI) 生成盡早捕獲質(zhì)量問題,此類生成可以在代碼發(fā)生變化后自動編譯和測試您的應(yīng)用程序志衣。 使用持續(xù)交付自動部署應(yīng)用程序或網(wǎng)站屯援,這些應(yīng)用程序或網(wǎng)站通過測試或?qū)Πl(fā)布管道進(jìn)行建模以匹配您現(xiàn)有的發(fā)布流程。

  • CVS (Concurrent Versions System)

CVS是一個C/S系統(tǒng)念脯,是一個常用的代碼版本控制軟件狞洋。主要在開源軟件管理中使用。與它相類似的代碼版本控制軟件有subversion绿店。多個開發(fā)人員通過一個中心版本控制系統(tǒng)來記錄文件版本吉懊,從而達(dá)到保證文件同步的目的。CVS版本控制系統(tǒng)是一種GNU軟件包假勿,主要用于在多人開發(fā)環(huán)境下的源碼的維護(hù)

  • SVN (Subversion)

Subversion是一個自由借嗽,開源的版本控制系統(tǒng)。在Subversion管理下转培,文件和目錄可以超越時空恶导。Subversion將文件存放在中心版本庫里。這個版本庫很像一個普通的文件服務(wù)器浸须,不同的是惨寿,它可以記錄每一次文件和目錄的修改情況。這樣就可以籍此將數(shù)據(jù)恢復(fù)到以前的版本删窒,并可以查看數(shù)據(jù)的更改細(xì)節(jié)裂垦。正因為如此,許多人將版本控制系統(tǒng)當(dāng)作一種神奇的“時間機(jī)器”肌索。

  • Git
    1. Git是一款免費(fèi)缸废、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目驶社。
    2. Git的讀音為/g?t/企量。
    3. Git是一個開源的分布式版本控制系統(tǒng),用以有效亡电、高速的處理從很小到非常大的項目版本管理届巩。
    4. Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。

Torvalds 開始著手開發(fā) Git 是為了作為一種過渡方案來替代 BitKeeper份乒,后者之前一直是 Linux 內(nèi)核開發(fā)人員在全球使用的主要源代碼工具恕汇。開放源碼社區(qū)中的有些人覺得 BitKeeper 的許可證并不適合開放源碼社區(qū)的工作腕唧,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統(tǒng)。盡管最初 Git 的開發(fā)是為了輔助 Linux 內(nèi)核開發(fā)的過程瘾英,但是我們已經(jīng)發(fā)現(xiàn)在很多其他自由軟件項目中也使用了 Git枣接。

SVN的搭建和使用

SVN的搭建

Windows操作系統(tǒng)搭建,只需要安裝VisualSVN server變完成了服務(wù)端的搭建缺谴。

  1. 下載VisualSVN Server (注意操作系統(tǒng)是32位或64位)
  2. 雙擊安裝但惶,全部默認(rèn)并且下一步,最后選擇“Standard Edition”(標(biāo)準(zhǔn)版)
  3. 安裝完以后啟動VisualSVN Server Manager
  4. 創(chuàng)建新的代碼庫湿蛔, Create New Repository
  5. 創(chuàng)建新的用戶膀曾, Create User, 基本的用戶權(quán)限是讀寫權(quán)限阳啥。

客戶端使用TortoiseSVN將文件簽出進(jìn)行使用添谊。

  1. 下載TortoiseSVN
  2. 雙擊安裝,全部下一步察迟,直至完成斩狱。
  3. 在任意地方新建SVN文件夾,建議在D:\根目錄
  4. 雙擊進(jìn)入SVN文件夾扎瓶,右鍵選擇“TortoiseSVN”->"Repo-Browser" 或者 “SVN Checkout”
  5. 選擇SVN COmmit提交所踊。

SVN的使用

  • SVN Checkout
  • Add
  • Delete
  • Rename
  • Revert
  • Check for modifications
  • SVN Update
  • SVN Commit
  • Show log
  • Branch/tag
  • Get lock
  • Release lock
  • Clean up

SVN的高級實踐

沖突的解決

分支的合并

SVN和Git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市栗弟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌工闺,老刑警劉巖乍赫,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陆蟆,居然都是意外死亡雷厂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門叠殷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來改鲫,“玉大人,你說我怎么就攤上這事林束∠窦” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵壶冒,是天一觀的道長缕题。 經(jīng)常有香客問我,道長胖腾,這世上最難降的妖魔是什么烟零? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任瘪松,我火速辦了婚禮,結(jié)果婚禮上锨阿,老公的妹妹穿的比我還像新娘宵睦。我一直安慰自己,他們只是感情好墅诡,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布壳嚎。 她就那樣靜靜地躺著,像睡著了一般书斜。 火紅的嫁衣襯著肌膚如雪诬辈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天荐吉,我揣著相機(jī)與錄音焙糟,去河邊找鬼。 笑死样屠,一個胖子當(dāng)著我的面吹牛穿撮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痪欲,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼悦穿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了业踢?” 一聲冷哼從身側(cè)響起栗柒,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎知举,沒想到半個月后瞬沦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雇锡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年逛钻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锰提。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡曙痘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出立肘,到底是詐尸還是另有隱情边坤,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布谅年,位于F島的核電站惩嘉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏踢故。R本人自食惡果不足惜文黎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一惹苗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耸峭,春花似錦桩蓉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至本涕,卻和暖如春业汰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菩颖。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工样漆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晦闰。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓放祟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呻右。 傳聞我的和親對象是個殘疾皇子跪妥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,280評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)声滥,斷路器眉撵,智...
    卡卡羅2017閱讀 134,696評論 18 139
  • 專用目標(biāo)1 建立基線 專用實踐1.1 標(biāo)識配置項 標(biāo)識配置項要求把所有應(yīng)納入配置管理的配置項標(biāo)識出來。為此: 1)...
    王小雙閱讀 825評論 0 2
  • 非常遺憾,徐州之行醞釀了幾個月終是沒有成行芜赌,孩子小仰挣,沒人照看伴逸;老公單位事多缠沈,隔三差五地出去;我突發(fā)支氣管炎半...
    癡行人閱讀 1,100評論 0 1
  • 周六至今错蝴,經(jīng)歷了一場莫名其妙的身體意外洲愤,分享一下個中奇妙的感受。 下午6點(diǎn)半顷锰,夢中剛在家喝完一碗媽媽煲...
    kylin0602閱讀 410評論 0 1