軟件配置管理
軟件配置管理 (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 軟件管理
- 圖書管理的事圖書資產(chǎn),軟件配置管理管理的是軟件資產(chǎn)或南。其實這兩種管的都是信息資產(chǎn)孩等。
- 圖書管理,需要把圖書進(jìn)行分類采够,以便檢索肄方;需要將圖書存放在合適的地方,以便存取蹬癌。還要防止蟲吃鼠咬权她。軟件配置管理也類似,需要把軟件資產(chǎn)放在合適的目錄結(jié)構(gòu)里逝薪。防止丟失或者錯亂隅要。
- 在圖書館,要記錄圖書的借閱情況董济,為了保證圖書不丟失步清;在軟件配置管理中也類似,需要記錄哪位程序員借出了哪個文件,什么時候還廓啊。如果程序員修改了它欢搜,還需要記錄下來這些修改。
- 圖書需要更新谴轮,軟件也需要更新炒瘟。
為什么是配置管理
- 汽車配置:底盤(傳動系、轉(zhuǎn)向系书聚、制動系和行駛系)唧领、發(fā)動機(jī)、車身雌续、電氣設(shè)備
- 電腦配置:主板(內(nèi)存斩个、CPU、顯卡)驯杜、硬盤受啥、機(jī)箱、顯示器鸽心、外設(shè)
- 手機(jī)配置:屏幕滚局、CPU、GPU顽频、內(nèi)存藤肢、閃存、主板糯景、按鍵
- 軟件配置:代碼嘁圈、文檔、安裝程序蟀淮、引用類庫最住、資源文件
從機(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)的對策。
- 負(fù)責(zé)指導(dǎo)和控制配置管理的各項具體活動的進(jìn)行怕品,為項目經(jīng)理的決策提供建議妇垢。其具體職責(zé)為以下幾項:
- 軟件配置工程師 CMO: Configuration Management Officer
- 根據(jù)配置管理計劃執(zhí)行各項管理任務(wù)炫乓,定期向CCB提交報告刚夺,并列席CCB的例會。其具體職責(zé)為以下幾項:
- 軟件配置管理工具的日常管理與維護(hù)末捣;
- 提交配置管理計劃侠姑;
- 各配置項的管理與維護(hù);
- 執(zhí)行版本控制和變更控制方案箩做;
- 完成配置審計并提交報告莽红;
- 對開發(fā)人員進(jìn)行相關(guān)的培訓(xùn);
- 識別軟件開發(fā)過程中存在的問題并擬就解決方案卒茬。
- 根據(jù)配置管理計劃執(zhí)行各項管理任務(wù)炫乓,定期向CCB提交報告刚夺,并列席CCB的例會。其具體職責(zé)為以下幾項:
- 系統(tǒng)集成工程師 SIO: System Integration Engineer
- 系統(tǒng)集成員負(fù)責(zé)生成和管理項目的內(nèi)部和外部發(fā)布版本船老,其具體職責(zé)為以下幾項:
- 集成修改;
- 構(gòu)建系統(tǒng)圃酵;
- 完成對版本的日常維護(hù)柳畔;
- 建立外部發(fā)布版本。
- 系統(tǒng)集成員負(fù)責(zé)生成和管理項目的內(nèi)部和外部發(fā)布版本船老,其具體職責(zé)為以下幾項:
- 軟件開發(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)大的功能驾诈。
-
面向整個團(tuán)隊的協(xié)作工具
Team Foundation Server 提供了一系列可與您的現(xiàn)有 IDE 或編輯器結(jié)合使用的協(xié)作工具,以便您的團(tuán)隊可以有效地處理各種形態(tài)和規(guī)模的軟件項目溶浴。
-
面向敏捷團(tuán)隊的工具
看板乍迄、Scrum、儀表板
根據(jù)自身情況敏捷處理士败。通過積壓工作和可自定義的看板闯两,捕獲和跟蹤工作情況,并確定工作優(yōu)先級。 工作項直接鏈接到代碼以確保透明性生蚁,并可用于生成豐富的儀表板噩翠,方便您輕松生成報告。
-
持續(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
- Git是一款免費(fèi)缸废、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目驶社。
- Git的讀音為/g?t/企量。
- Git是一個開源的分布式版本控制系統(tǒng),用以有效亡电、高速的處理從很小到非常大的項目版本管理届巩。
- 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ù)端的搭建缺谴。
- 下載VisualSVN Server (注意操作系統(tǒng)是32位或64位)
- 雙擊安裝但惶,全部默認(rèn)并且下一步,最后選擇“Standard Edition”(標(biāo)準(zhǔn)版)
- 安裝完以后啟動VisualSVN Server Manager
- 創(chuàng)建新的代碼庫湿蛔, Create New Repository
- 創(chuàng)建新的用戶膀曾, Create User, 基本的用戶權(quán)限是讀寫權(quán)限阳啥。
客戶端使用TortoiseSVN將文件簽出進(jìn)行使用添谊。
- 下載TortoiseSVN
- 雙擊安裝,全部下一步察迟,直至完成斩狱。
- 在任意地方新建SVN文件夾,建議在D:\根目錄
- 雙擊進(jìn)入SVN文件夾扎瓶,右鍵選擇“TortoiseSVN”->"Repo-Browser" 或者 “SVN Checkout”
- 選擇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的高級實踐
沖突的解決
分支的合并