《軟件項(xiàng)目管理原理與實(shí)踐》 教案 第6章-軟件項(xiàng)目配置管理_第1頁
《軟件項(xiàng)目管理原理與實(shí)踐》 教案 第6章-軟件項(xiàng)目配置管理_第2頁
《軟件項(xiàng)目管理原理與實(shí)踐》 教案 第6章-軟件項(xiàng)目配置管理_第3頁
《軟件項(xiàng)目管理原理與實(shí)踐》 教案 第6章-軟件項(xiàng)目配置管理_第4頁
《軟件項(xiàng)目管理原理與實(shí)踐》 教案 第6章-軟件項(xiàng)目配置管理_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第6章軟件項(xiàng)目配置管理

內(nèi)容提要

6.1概述

6.1.1起源與發(fā)展

6.1.2解決哪些問題

6.2軟件配置管理的任務(wù)和活動(dòng)

6.2.1軟件和配置項(xiàng)

6.2.2標(biāo)識(shí)

6.2.3變更控制

6.2.4狀態(tài)報(bào)告

6.2.5配置審計(jì)

6.3軟件配置管理的核心要素

6.3.1版本和版本樹

6.3.2軟件配置庫

6.3.3工作空間

6.3.4變更請求與變更集

6.3.5軟件配置管理工具

內(nèi)容提要

6.4軟件配置管理的主要過程

6.4.1配置項(xiàng)標(biāo)識(shí)與存儲(chǔ)過程

6.4.2版本管理過程

6.4.3變更控制過程

6.4.4基線管理過程

6.5軟件配置管理中的角色

6.5.1配置管理專職人員

6.5.2機(jī)構(gòu)運(yùn)營管理人員

6.5.3項(xiàng)目開發(fā)人員

6.6常用軟件配置管理工具

6.6.1軟件配置管理工具的發(fā)展歷程

6.6.2版本控制工具及功能

6.6.4面向開發(fā)流程的配置管理工具及功能

6.7案例研究

6.8小結(jié)

軟件配置管理

軟件配置管理(SoftwareConfigurationManagement,SCM)是軟件工程領(lǐng)域的重要課題,也

是軟件產(chǎn)品開發(fā)過程中的核心控制過程。

與傳統(tǒng)產(chǎn)品開發(fā)生產(chǎn)相比,軟件產(chǎn)品的開發(fā)生產(chǎn)具有較強(qiáng)的復(fù)雜性和不確定性。

主要體現(xiàn)在開發(fā)講度難以捽制、開發(fā)結(jié)果難以預(yù)計(jì)C

所幸的是,軟件配置管理通過一整套可視化可跟蹤和可控制管理方法為軟件開發(fā)項(xiàng)目提供了保

護(hù)傘。

軟件配置管理

軟件配置管理

軟件配置管理在開發(fā)過程中各階段,管理計(jì)算機(jī)程序演變的學(xué)科,作為軟件工程的關(guān)鍵元素,

已經(jīng)成為軟件開發(fā)和維護(hù)的重要組成部分。

軟件配置管理提供了結(jié)構(gòu)化的、有序化的、產(chǎn)品化的管理軟件工程的方法,涵蓋了軟件生命周

期的所有領(lǐng)域并影響所有數(shù)據(jù)和過程。

配置管理是對產(chǎn)品進(jìn)行標(biāo)識(shí)、存儲(chǔ)和控制,以維護(hù)其完整性、可追溯性以及正確性的學(xué)科。

軟件配置管理

計(jì)算機(jī)軟件產(chǎn)品的總體發(fā)展趨勢,就是系統(tǒng)自身的復(fù)雜化與系統(tǒng)使用的簡單化。

如何控制日益復(fù)雜化的系統(tǒng),管理系統(tǒng)開發(fā)和維護(hù)過程,始終是軟件從業(yè)者頭痛的難題。

軟件配置管理正是在軟件產(chǎn)品與軟件開發(fā)產(chǎn)業(yè)進(jìn)化過程中不斷演練出來的解決這一難題的主要

方法。

遺憾的是,由于軟件配置管理本身也是在軟件產(chǎn)業(yè)發(fā)展過程中逐步形成和完善的,即使是資深

軟件從業(yè)人員,也經(jīng)?;煜涓拍詈头椒ā?/p>

6.1軟件配置管理概覽

6.1.1什么是軟件配置管理

1.軟件配置管理

軟件配置管理(SoftwareConfigurationManagement,SCM)就是在軟件開發(fā)過程中管理軟件

的配置。

這里的配置,是指構(gòu)成軟件產(chǎn)品的各種原始部件,包括源程序、數(shù)據(jù)文件、設(shè)計(jì)文檔、用戶文

檔,及其組織關(guān)系(如目錄結(jié)構(gòu))。

相應(yīng)的管理包括管理這些部件的產(chǎn)生、修改、提取與發(fā)布,以保證整個(gè)產(chǎn)品的正確性、完整性,

產(chǎn)品部件的一致性。

軟件配置管理的正式定義,在不同的標(biāo)準(zhǔn)規(guī)范中有不同的表述。

軟件配置管理的內(nèi)容

配置(Configuration)一詞來源于拉丁語的"Com-"("與"或者"一起")和"figure"("形

成”),意為多個(gè)部件集合在一起形成一個(gè)整體。

由此,配置管理可以理解為使事物的各個(gè)部件或元素組合成整體的管理過程。

軟件部件分解圖

軟件配置管理(SoftwareConfigurationManagement,SCM)就是在軟件開發(fā)過程中管理軟件

的配置。

軟件配置管理標(biāo)準(zhǔn)的目標(biāo)

在不同的標(biāo)準(zhǔn)規(guī)范中有不同的表述

(1)<ISO/IEC12207(1995)信息技術(shù)一軟件生存周期過程標(biāo)準(zhǔn)》

配置管理過程是在整個(gè)軟件生命周期中實(shí)施管理和技術(shù)規(guī)程的過程,它標(biāo)識(shí)、定義系統(tǒng)中軟件

項(xiàng)素,并定制基線(Baseline)o

控制軟件項(xiàng)素的修改和發(fā)行,記錄和報(bào)告軟件項(xiàng)素的狀態(tài)和修改請求,保證軟件項(xiàng)素的完整性、

協(xié)調(diào)性和正確性,以及控制軟件項(xiàng)素的存儲(chǔ)、裝載和交付,

(2)《GB/T11457(1995)軟件工程術(shù)語》

軟件配置管理是標(biāo)識(shí)和確定系統(tǒng)中配置項(xiàng)的過程,在系統(tǒng)整個(gè)生命周期內(nèi)控制這些項(xiàng)的投放和

變動(dòng),記錄并報(bào)告配置的狀況和變動(dòng)要求,驗(yàn)證配置項(xiàng)的完整性和正確性。

(3)集成化成熟度模型(CMMI)

配置管理是通過配置標(biāo)識(shí)、配置控制、配置狀況統(tǒng)計(jì)與配置審計(jì)來建立與維持工作產(chǎn)品的完整

性的管理過程。

CMMI中的定義概括了軟件配置管理的主要任務(wù)和方法。

軟件工程中的軟件配置管理

6.1.1起源與發(fā)展

配置管理的概念,最早來源于制造工業(yè),尤其是在國防工業(yè)中。

這些工業(yè)產(chǎn)品往往相當(dāng)復(fù)雜,包含數(shù)萬種部件,經(jīng)歷幾代人多年的開發(fā),每種部件都在不斷地

改進(jìn)、演化。

這就需要有一套機(jī)制去管理產(chǎn)品部件的變更、版次,保存完整的產(chǎn)品開發(fā)信息,以保持不同階

段產(chǎn)品開發(fā)的連續(xù)性。

1962年,美國空軍在進(jìn)行噴氣式飛機(jī)設(shè)計(jì)時(shí),制訂了一個(gè)標(biāo)準(zhǔn)規(guī)范配置管理,這被視為第一個(gè)

配置管理標(biāo)準(zhǔn),該標(biāo)準(zhǔn)被美國國防部和軍方其他標(biāo)準(zhǔn)廣泛引用。

6.1.1起源與發(fā)展

單一產(chǎn)品需要的開發(fā)人員不斷增多,開發(fā)人員之間的信息溝通、進(jìn)度協(xié)調(diào)和交付管理等方面的

矛盾日益突出。

現(xiàn)在,軟件配置管理已經(jīng)作為一種重要的軟件開發(fā)管理環(huán)節(jié),被大多數(shù)軟件標(biāo)準(zhǔn)化組織所采納,

作為衡量軟件開發(fā)組織成熟程度的基本標(biāo)準(zhǔn)。

用于軟件配置管理的工具也在不斷地豐富和完善。

這些工具有力地幫助軟件開發(fā)機(jī)構(gòu)實(shí)現(xiàn)軟件配置管理自動(dòng)化。

6.1.2軟件配置管理的起源與發(fā)展

配置管理的概念,最早來源于制造工業(yè),尤其是在國防工業(yè)中。

1962年,美國空軍在進(jìn)行噴氣式飛機(jī)設(shè)計(jì)時(shí),制訂了一個(gè)標(biāo)準(zhǔn)規(guī)范配置管理,這被視為第一個(gè)

配置管理標(biāo)準(zhǔn),該標(biāo)準(zhǔn)被美國國防部和軍方其他標(biāo)準(zhǔn)廣泛引用。

從20世紀(jì)80年代起,美國國防部、美國電氣和電子工程師協(xié)會(huì)、美國國家標(biāo)準(zhǔn)協(xié)會(huì)和國際標(biāo)

準(zhǔn)化組織都開始關(guān)注軟件開發(fā)過程中的配置管理并陸續(xù)制訂了各自的標(biāo)準(zhǔn)

6.1.2解決哪些問題

沒有配置管理的“手工作坊”式的軟件開發(fā)項(xiàng)目,經(jīng)常會(huì)遇到許多問題。

例如,一個(gè)嚴(yán)重的錯(cuò)誤被修正了,卻在一段時(shí)間后又重現(xiàn)了;

一個(gè)己經(jīng)開發(fā)并經(jīng)過測試的功能在手工集成后完全消失了;

系統(tǒng)崩潰了,卻很難查出是什么修改造成的;用于測試的執(zhí)行程序與源代碼嚴(yán)重不一致;

新的開發(fā)人員對現(xiàn)有代碼難以理解,不知其前因后果無法判斷單個(gè)功能的實(shí)現(xiàn)進(jìn)度和整個(gè)項(xiàng)目

的完成程度;

無法確知整個(gè)產(chǎn)品的代碼修改頻度和每個(gè)版本的代碼修改量。

配置管理的原則

完善的軟件配置管理系統(tǒng)有助于規(guī)范開發(fā)人員的工作流程,明確角色分工,清楚記錄代碼的任

何修改,同時(shí)又能加強(qiáng)代碼修改時(shí)的溝通協(xié)作;

完善的配置關(guān)聯(lián)系統(tǒng)也有助于項(xiàng)目經(jīng)理更好地了解項(xiàng)目的進(jìn)度、開發(fā)人員的負(fù)荷、工作效率與

產(chǎn)品質(zhì)量狀況、交付日期等關(guān)鍵信息;

配置管理系統(tǒng)中的完整配置信息和修改歷史使新的成員可以快速實(shí)現(xiàn)任務(wù)交接,盡量減少因人

員流動(dòng)而造成的損失。

6.1.2解決哪些問題

完善的軟件配置管理系統(tǒng)有助于規(guī)范開發(fā)人員的工作流程,明確角色分工,清楚記錄代碼的任

何修改,同時(shí)又能加強(qiáng)代碼修改時(shí)的溝通協(xié)作

完善的配置關(guān)聯(lián)系統(tǒng)也有助于項(xiàng)目經(jīng)理更好地了解項(xiàng)目的進(jìn)度、開發(fā)人員的負(fù)荷、工作效率與

產(chǎn)品質(zhì)量狀況、交付日期等關(guān)鍵信息:

軟件配置管理的功能

軟件配置管理通過對軟件產(chǎn)品各個(gè)部件的管理控制,協(xié)調(diào)軟件開發(fā)項(xiàng)目中不同角色的活動(dòng),能

夠有效地幫助軟件開發(fā)團(tuán)隊(duì)避免上述問題。

6.2軟件配置管理的任務(wù)和活動(dòng)

6.2.1軟件和配置項(xiàng)

軟件的脆弱性和易變性的根源在于軟件的復(fù)雜性,大型軟件通常由數(shù)以千萬個(gè)文件組成,這些

文件包括以下內(nèi)容:

定義產(chǎn)品功能、描述設(shè)計(jì)實(shí)現(xiàn)細(xì)節(jié)的設(shè)計(jì)文檔。

規(guī)定產(chǎn)品開發(fā)過程、進(jìn)度計(jì)劃和交付合同等項(xiàng)目管理文檔。

各種語言的源程序文件,這是數(shù)量最多、最關(guān)鍵的文件。

各種格式的數(shù)據(jù)文件,包括數(shù)字、文字、圖片、視頻等。

構(gòu)造生成的中間文件、可執(zhí)行文件和可安裝文件。

實(shí)現(xiàn)源程序文件到可執(zhí)行文件和可安裝文件轉(zhuǎn)換的構(gòu)造、包裝腳本。

該軟件所依賴的其他文件:包括開發(fā)運(yùn)行工具、硬件環(huán)境說明或相關(guān)軟件說明。

軟件配置項(xiàng)(CI)樹

軟件配置是指一個(gè)軟件產(chǎn)品在軟件生命周期各階段產(chǎn)生的各種形式(機(jī)器可讀或人工可讀)和

各種版本的文檔、程序及數(shù)據(jù)的集合。

該集合中的每個(gè)元素稱為該軟件產(chǎn)品軟件配置中的一個(gè)配置項(xiàng)

軟件配置管理作為支撐平臺(tái)

軟件配置管理,是軟件項(xiàng)目運(yùn)作的一個(gè)支撐平臺(tái),將項(xiàng)目干系人的工作協(xié)同起來,實(shí)現(xiàn)高效的

團(tuán)隊(duì)溝通,使工作成果及時(shí)共享。

這種支撐,貫穿在項(xiàng)目的整個(gè)生命周期中。

6.2.2標(biāo)識(shí)

標(biāo)識(shí),指從物理上確定軟件系統(tǒng)中的每個(gè)組件。配置項(xiàng)標(biāo)識(shí)的主要任務(wù),是唯一地標(biāo)識(shí)出需要

控制的軟件配置項(xiàng),并確定它和外界,以及其他配置項(xiàng)的關(guān)系。

配置項(xiàng)標(biāo)識(shí)是所有配置管理活動(dòng)的基礎(chǔ)。在項(xiàng)目初始,將原始產(chǎn)品置于配置管理系統(tǒng)控制時(shí)就

要進(jìn)行配置項(xiàng)標(biāo)識(shí)活動(dòng)。

配置項(xiàng)標(biāo)識(shí)的結(jié)果是形成各個(gè)配置項(xiàng)的元數(shù)據(jù)記錄,包括配置項(xiàng)的名字、描述、編號(hào)、類型、

創(chuàng)建者、創(chuàng)建時(shí)間、存儲(chǔ)方式和位置等信息。

標(biāo)識(shí)任務(wù)的主要活動(dòng)

(1)定義配置項(xiàng)選取原則

根據(jù)項(xiàng)目實(shí)際情況規(guī)定產(chǎn)品開發(fā)中哪些類型的文件必須置于配置管理系統(tǒng)之中,并約定唯一標(biāo)

識(shí)的形式與格式。

一般應(yīng)將各種源程序文件和系統(tǒng)依賴的重要數(shù)據(jù)文件包含在選取原則中。

(2)選擇配置項(xiàng)

按照既定原則從項(xiàng)目文件中選出需要進(jìn)行配置管理的文件,并給每個(gè)配置項(xiàng)予以編號(hào)登記,規(guī)

定其授權(quán)和訪問約束。

在常用的自動(dòng)化配置管理系統(tǒng)中,系統(tǒng)會(huì)自動(dòng)填充編號(hào)和相關(guān)配置創(chuàng)建信息,并提供訪問控制

機(jī)制。

(3)確定存取方案

標(biāo)識(shí)好了的配置項(xiàng)必須存放到軟件配置庫中。選擇哪種工具存儲(chǔ)管理配置項(xiàng)是一件復(fù)雜的工作。

一般要考慮項(xiàng)目的規(guī)模、尸發(fā)環(huán)境、項(xiàng)目成員的使用習(xí)慣,應(yīng)兼顧存取的方便性和數(shù)據(jù)的安全

性。

軟件配置管理-重要性、活動(dòng)

軟件架構(gòu)和軟件配置管理

6.2.3變更控制

變更控制的目的,是控制對產(chǎn)品中己標(biāo)識(shí)的所有配置項(xiàng)的任何修改,從而實(shí)現(xiàn)全面控制產(chǎn)品的

更改.

事件記錄,是變更控制活旬的輸入,變更控制的輸出結(jié)果,是歸檔化的事件與變更請求以及對

相應(yīng)軟件配置項(xiàng)的修改。

變更控制的主要活動(dòng)

創(chuàng)建事件記錄:

以文字形式描述事件,并通過適當(dāng)?shù)那捞峤弧?/p>

分析事件記錄:

確定可能的需要對哪些配置項(xiàng)進(jìn)行變更,并估計(jì)這些變更的波及面。

拒絕或者接受事件記錄:

若事件記錄被接受,就為每個(gè)受影響的配置項(xiàng)創(chuàng)建一個(gè)變更請求,分配給相關(guān)的開發(fā)人員。

實(shí)施變更:

依據(jù)變更請求的描述,實(shí)施配置項(xiàng)的修改,確保修改結(jié)果在配置管理庫中得到體現(xiàn)。

關(guān)閉變更請求?

當(dāng)變更完成并被驗(yàn)證后,就可以關(guān)閉變更請求了。

關(guān)閉事件記錄:

當(dāng)同一事件所派生出的所有變更請求都關(guān)閉后,就可以關(guān)閉該事件記錄。

6.2.4狀態(tài)報(bào)告

狀態(tài)報(bào)告的任務(wù)是提取、報(bào)告整個(gè)軟件生存期中軟件各個(gè)部件的相關(guān)信息,以一種可讀的形式

呈現(xiàn)給相關(guān)人員。

報(bào)告的內(nèi)容主要是針對軟件配置項(xiàng)的狀態(tài)、事件記錄與變更請求,以及變更請求的執(zhí)行結(jié)果(即

實(shí)現(xiàn)的變更)三方面的數(shù)據(jù)

狀態(tài)報(bào)告——一個(gè)實(shí)用的模型和例子

軟件配置狀態(tài)報(bào)告

軟件配置狀態(tài)報(bào)告,通常用來回答如下問題:

配置項(xiàng)當(dāng)前有何屬性,處于什么狀態(tài)?

配置項(xiàng)的每一版本是如何生成的?

配置項(xiàng)的新舊版本有何區(qū)別?

變更請求何時(shí)被誰批準(zhǔn),如何實(shí)現(xiàn)?

近期有哪些配置項(xiàng)發(fā)生了改變?

近期批準(zhǔn)了多少變更請求,完成了多少?

哪些開發(fā)人員最近對配置項(xiàng)進(jìn)行了修改?

完成狀態(tài)報(bào)告任務(wù)的主要活動(dòng)

(1)確定報(bào)告范圍

不同組織、同一組織在不同階段關(guān)注的側(cè)重點(diǎn)不同,對狀態(tài)報(bào)告內(nèi)容的需求也不同,應(yīng)根據(jù)實(shí)

際需要選定報(bào)告的內(nèi)容范圍,有選擇性地回答上述幾個(gè)問題。

(2)定義報(bào)告模板

格式化的報(bào)告通常便于閱讀者迅速、準(zhǔn)確地抓住關(guān)鍵信息C

(3)提取配置數(shù)據(jù)

根據(jù)確定的報(bào)告范圍定期(每天、每周、每月)從配置庫中把相關(guān)配置數(shù)據(jù)提取出來,按模板

整理成便于閱讀的文檔。

(4)發(fā)布狀態(tài)報(bào)告

配置狀態(tài)報(bào)告應(yīng)該發(fā)布給項(xiàng)目的所有開發(fā)與管理人員,同時(shí)必須歸檔以備日后查考。

(5)定制特定信息查找途徑

為滿足不同用戶的專門需求,必須在周期性的報(bào)告之外定制靈活的配置數(shù)據(jù)查找方式,并提供

便捷、友好的界面。

6.2.5配置審計(jì)

軟件配置審計(jì)的任務(wù),是確認(rèn)整個(gè)軟件在生命周期中各個(gè)部件在技術(shù)上和管理上的正確性與完

整性C

審計(jì)過程通過審查軟件配置項(xiàng)的狀況和修改歷史尋求以下兩個(gè)問題的答案,軟件的演化過程是

否符合既定的流程,軟件實(shí)現(xiàn)的功能是否與需求保持一致,

配置審計(jì)的主要活動(dòng)是評(píng)審與測試-

前者,確保軟件配置變更和軟件開發(fā)流程的正確執(zhí)行,后者,確保軟件產(chǎn)品功能的正確性。

測試任務(wù)主要由軟件質(zhì)量保證人員完成,具體過程將在后續(xù)章節(jié)中詳細(xì)闡述。

配置評(píng)審活動(dòng),主要包括如下環(huán)節(jié)

(1)項(xiàng)目經(jīng)理和配置經(jīng)理確定審計(jì)的人員。

(2)配置審計(jì)人員準(zhǔn)備配置審核檢查單,并制訂審計(jì)計(jì)劃。

(3)配置審計(jì)人員按照計(jì)劃安排時(shí)間對配置數(shù)據(jù)進(jìn)行審計(jì),與相關(guān)人員面談。

(4)配置審計(jì)人員將在審計(jì)中發(fā)現(xiàn)的不符合現(xiàn)象做記錄,并發(fā)送給項(xiàng)目經(jīng)理。

(5)項(xiàng)目經(jīng)理和配置經(jīng)理對上報(bào)的問題進(jìn)行解決跟蹤。

6.3軟件配置管理的核心要素

軟件配置管理的主要任務(wù)是管理軟件產(chǎn)品的演變,確保產(chǎn)品在演變過程中仍保持正確性、完整

性與一致性。

顯然,這是一個(gè)不容易完成的任務(wù),必須借助于一些特別的機(jī)制,專門的過程才能實(shí)現(xiàn)。

下面,看看有哪些核心要素支撐配置管理活動(dòng),以實(shí)現(xiàn)配置管理任務(wù)。

6.3.1版本和版本樹

版本,是軟件配置項(xiàng)在演化過程中的每一個(gè)實(shí)例。

軟件產(chǎn)品由許多文件(即配置項(xiàng))組成,其中的每一個(gè)文件在軟件的開發(fā)、演化過程中都會(huì)不

斷地被修改,每次修改都形成不同的文件內(nèi)容。

如果檢取出同一文件任何一次修改后形成的內(nèi)容,都可看做作該文件的一個(gè)實(shí)例,即該文件的

一個(gè)版本。

對同一文件的每次修改總是有先后順序的。因此文件的每一個(gè)版本也是有先后順序的。后一版

本總是在前一版本的基礎(chǔ)上形成的0

此外,同一個(gè)版本還能根據(jù)不同的需要同時(shí)衍生出多個(gè)后續(xù)版本。

如果我們把一個(gè)文件的所有版本按衍生順序描繪出來,通常會(huì)出現(xiàn)為一種樹形圖,稱為該文件

的版本樹。

什么是版本控制,它是如何工作的?

某一文件的版本樹

版本樹中分叉處的版本大多是重要修改的開始,如新功能的開發(fā)、產(chǎn)品新發(fā)布的開始,或是新

開發(fā)小組的介入。

文件版本管理是軟件配置管理的基礎(chǔ)。

只有對每個(gè)文件的每個(gè)版本實(shí)現(xiàn)了嚴(yán)格有序的管理,保證每個(gè)文件的版本樹能自由而又穩(wěn)健地

成長。

能隨時(shí)方便地提取版本樹中任意一個(gè)版本,這才能構(gòu)建更為復(fù)雜的軟件配置管理功能

Windows家譜

Java編程語言的完整歷史

安卓各個(gè)版本

6.3.2軟件配置庫

軟件配置庫,又稱軟件受控庫,是指用來存放軟件配置項(xiàng)的存儲(chǔ)池,保存軟件產(chǎn)品配置項(xiàng)的所

有版本與每個(gè)版本相關(guān)的控制信息。

最原始的軟件配置庫,是以筆書形式登記的軟件項(xiàng)目中所有文件及其版本的手工清單。

軟件配置管理自動(dòng)化以后,軟件配置庫的存儲(chǔ)一般采用數(shù)據(jù)庫的形式,可以是通用的商業(yè)數(shù)據(jù)

庫,也有些是軟件配置管理系統(tǒng)私有數(shù)據(jù)庫。

6.3.2軟件配置庫

早期的軟件配置庫通常只在軟件生命周期的某一階段結(jié)束時(shí)存放軟件產(chǎn)品和與軟件產(chǎn)品開發(fā)工

作有關(guān)的計(jì)算機(jī)或人工可讀信息,僅用做作軟件產(chǎn)品資產(chǎn)庫,不要求實(shí)時(shí)在線存取,只要求安

全性、完整性與可維護(hù)性。

現(xiàn)代軟件配置庫是軟件開發(fā)項(xiàng)目的核心基礎(chǔ)設(shè)施,是項(xiàng)目開發(fā)人員隨時(shí)需要訪問的軟件代碼庫。

最新、常用的軟件開發(fā)工具通常都具有與軟件配置庫直接連接訪問的功能。

因此,現(xiàn)代化的軟件配置庫應(yīng)該具有較高的實(shí)時(shí)性和容錯(cuò)性,同時(shí)有較強(qiáng)的可擴(kuò)展性、可分布

性和可復(fù)制性,以滿足不斷增長的開發(fā)團(tuán)隊(duì)對配置項(xiàng)的巨大訪問量。

6.3.3工作空間

工作空間,是每個(gè)開發(fā)人員訪問軟件配置庫、存取文件版本并進(jìn)行產(chǎn)品開發(fā)的主要渠道。

它為開發(fā)人員提供了一個(gè)具有穩(wěn)定性與一致性的工作環(huán)境。

工作空間首先是一個(gè)相對穩(wěn)定的私有文件區(qū),在該區(qū)域里開發(fā)人員可以相對獨(dú)立地編碼、修改

和測試,不受其他開發(fā)人員的代碼的影響。

其次,工作空間內(nèi)的代碼本身必須是一致的,即所選取的各個(gè)文件(配置項(xiàng))的版本必須是相

互兼容的,在進(jìn)行任何修改之前工作空間內(nèi)的文件應(yīng)該是可編譯、可運(yùn)行的。

由此,工作空間一般初始化為產(chǎn)品的某一穩(wěn)定基線(Baseline)所標(biāo)識(shí)的配置項(xiàng)集合,以保證不

同開發(fā)人員可以獲得相同的工作空間。

6.3.3工作空間

同時(shí),每個(gè)開發(fā)人員的工作空間必須及時(shí)更新到最新的產(chǎn)品基線才能保證工作空間的實(shí)效性,

避免在舊版本上做無用的開發(fā)。

“刻舟求劍”的寓言在軟件開發(fā)過程中時(shí)有上演。

工作空間通常提供相應(yīng)的機(jī)制為開發(fā)人員方便進(jìn)行修改的合并和基線的刷新。

總之,軟件配置管理中的工作空間為開發(fā)人員提供了一個(gè)相對穩(wěn)定一致的開發(fā)環(huán)境.使得開發(fā)

人員既可以獨(dú)自分離地進(jìn)行開發(fā),又可以方便、快捷地合并開發(fā)結(jié)果。

軟件開發(fā)中的“分”與“合”的基本邏輯在工作空間中得以實(shí)現(xiàn)。

6.3.4變更請求與變更集

如前所述,軟件產(chǎn)品總是處在不斷變化、演進(jìn)過程中的,軟件配置管理的核心任務(wù)、就是管理

軟件產(chǎn)品的變化,使其在變化過程中保持正確性、完整性和一致性。

實(shí)現(xiàn)這一任務(wù)的關(guān)鍵,是對軟件的變更進(jìn)行管理,確保產(chǎn)品的任何變化都有憑有據(jù)。

變更請求就是開發(fā)人員對軟件產(chǎn)品進(jìn)行修改的憑據(jù),對產(chǎn)品的每一點(diǎn)改動(dòng)都應(yīng)該通過變更請求

詳細(xì)登記,并取得相關(guān)人員的批準(zhǔn)。

6.3.4變更請求與變更集

變更請求通常被分為兩大類,增強(qiáng)請求和缺陷。增強(qiáng)請求,是指系統(tǒng)的新增特征或?qū)ο到y(tǒng)現(xiàn)有

功能的有計(jì)劃的修改。

缺陷,是指存在于一個(gè)已交付產(chǎn)品中的與所設(shè)計(jì)功能不一致的異?,F(xiàn)象,這里的交付對象可以

是最終客戶。

也可以是同產(chǎn)品的開發(fā)或測試人員。

例如,每個(gè)里程碑或基線的交付。

變更集,是記錄一個(gè)變更請求實(shí)施后生成的配置項(xiàng)新版本的集合,是該變更請求完成后的結(jié)果。

6.3.5軟件配置管理工具

軟件配置管理工具是一些軟件工具,其自動(dòng)化軟件配置管理最佳實(shí)踐并提供方便的操作接口以

便于開發(fā)人員日常使用。

同編輯器、編譯器和調(diào)試一樣,軟件配置管理工具是今天的軟件工程師工具箱中必要的組成部

分。

沒有工具很難實(shí)現(xiàn)有效的軟件配置管理。

在早期軟件開發(fā)項(xiàng)目中,配置管理由配置庫管理員手工完成,記錄每個(gè)開發(fā)人員取出和生成的

每個(gè)配置項(xiàng)版本,煩瑣、緩慢而又容易出錯(cuò)。

現(xiàn)代化的軟件配置管理工具能精確、有效地管理軟件配置管理中的各種要素,盡可能地自動(dòng)化

軟件開發(fā)過程中用于配置管理相關(guān)的過程,同時(shí)保持對軟件產(chǎn)品的有力控制。

6.4軟件配置管理的主要過程

6.4.1配置項(xiàng)標(biāo)識(shí)與存儲(chǔ)過程

標(biāo)識(shí)過程的關(guān)鍵,是如何紿每個(gè)配置項(xiàng)賦予一個(gè)唯一而又有意義的標(biāo)識(shí)。

在普通的文件系統(tǒng)中,文件名及其目錄路徑可以作為一個(gè)文件的唯一標(biāo)識(shí),但在配置管理系統(tǒng)

中同一個(gè)文件(配置項(xiàng))有許多版本,必須把每個(gè)版本也標(biāo)識(shí)出來。

給版本賦予標(biāo)識(shí)首先要確定版本的命名規(guī)則,版本命名規(guī)則經(jīng)確定就在整個(gè)配置管理系統(tǒng)或過

程中保持不變(在自動(dòng)化配置管理系統(tǒng)中,版本命名規(guī)則一般是固化在配置管理工具中的)。

同一配置項(xiàng)的前后版本之間存在傳遞關(guān)系,相鄰版本之間存在分支關(guān)系。

兩種常用的版本標(biāo)識(shí)方式

版本命名規(guī)則,應(yīng)該體現(xiàn)這些關(guān)系。常用配置管理工具,通常采用兩級(jí)制版本命名規(guī)則,前一

級(jí)標(biāo)識(shí)版本分支、后一級(jí)標(biāo)識(shí)同一分支中的特定版本,多個(gè)前后級(jí)標(biāo)識(shí)串聯(lián)起來可以表示任何

復(fù)雜的版本。

不同配置管理工具可能用不同的符號(hào)連接每級(jí)標(biāo)識(shí)(常用的連接符號(hào)有和7’),而且也

可能采用字符或數(shù)字來標(biāo)識(shí)分支,但其本質(zhì)構(gòu)成是相同的。

6.4.2版本管理過程

版本管理過程,是實(shí)現(xiàn)完整的配置管理功能的基礎(chǔ)。

版本管理的主要內(nèi)容,是管理產(chǎn)品配置項(xiàng)的每一個(gè)版本的生成和使用

主要方法包括版本訪問與修改控制、版本分支和合并、版本歷史記錄,以及歷史版本檢取。

軟件開發(fā)人員不能直接訪問配置庫對源文件(配置項(xiàng))進(jìn)行修改,所有修改必須在開發(fā)人員各

自的工作空間中進(jìn)行。

6.4.2版本管理過程

一般說來,工作空間是開發(fā)人員本地文件系統(tǒng)中的一個(gè)文件夾,具有文件系統(tǒng)提供的訪問控制

機(jī)制。

開發(fā)人員可以按特定方法選取所需要的并且授予訪問權(quán)的文件版本,從配置庫中加載到工作空

間內(nèi)。

由于產(chǎn)品源代碼是產(chǎn)品開發(fā)中最重要的信息,項(xiàng)目管理人員通常會(huì)在配置庫中設(shè)置額外的訪問

權(quán)限控制,以確保只有授權(quán)的人員才可以訪問相應(yīng)產(chǎn)品或模塊的代碼版本。

6.4.2版本管理過程

盡管軟件配置項(xiàng)經(jīng)過不斷的修改、分支合并形成復(fù)雜的版本關(guān)系,版本管理系統(tǒng)總是能清晰、

完整地記錄各個(gè)配置項(xiàng)的版本歷史的“

版本歷史記錄中,通常包括每個(gè)版本的版本標(biāo)識(shí)、修改時(shí)間、修改人員、修改說明等基本信息。

這些信息可以被項(xiàng)目開發(fā)人員查找瀏覽,用于問題追溯、影響分析、版本重構(gòu)或項(xiàng)目審計(jì)等活

動(dòng)。

版本管理的另一重要功能,是歷史版本檢取。

配置管理工具大多可以根據(jù)配置項(xiàng)版本標(biāo)識(shí)或基線名稱檢取出一個(gè)或多個(gè)配置項(xiàng)的指定歷史版

本。

也可通過調(diào)整工作空間的版本選取條件,加載整個(gè)產(chǎn)品的某一歷史版本。

6.4.3變更控制過程

軟件產(chǎn)品在開發(fā)過程中進(jìn)行變更是不可避免的,但不對變更加以控制是萬萬不可的。

變更和變更控制,是矛盾的統(tǒng)一體。

變更控制過程就是通過一系列方法、手段對變更進(jìn)行引導(dǎo)約束,使變更的結(jié)果有利于改進(jìn)產(chǎn)品、

滿足客戶需要,同時(shí)使變更的實(shí)施對項(xiàng)目影響較小。

變更控制過程主要包括提出變更請求、分析變更請求、變更決策、實(shí)施變更和驗(yàn)證變更等步驟。

這些步驟需要有不同的軟件開發(fā)人員參與,每個(gè)步驟主要由不同角色負(fù)責(zé)。

基本的變更控制流程

通過自動(dòng)、手工的分配方式,提交的每一個(gè)變更請求將被分配給相關(guān)的開發(fā)人員進(jìn)行初步的分

析。

6.4.3變更控制過程

變更都是有原因的,任何人提出變更請求都是受相關(guān)事件的觸發(fā)造成的。

這些事件可以是用戶使用產(chǎn)品過程中遇到的產(chǎn)品故障或需要產(chǎn)品新功能的愿望,也可以是開發(fā)

人員在開發(fā)環(huán)節(jié)發(fā)現(xiàn)的各種錯(cuò)誤,如測試時(shí)發(fā)現(xiàn)的功能錯(cuò)誤、審查文檔時(shí)發(fā)現(xiàn)的描述與實(shí)際操

作不符、瀏覽代碼時(shí)發(fā)現(xiàn)某行代碼邏輯有誤等。

發(fā)生這些事件后,相關(guān)人員可自行提出變更請求或通過各種渠道委托項(xiàng)目開發(fā)人員提出變更請

求。

6.4.3變更控制過程

變更分析,主要從客觀的角度驗(yàn)證變更請求的正確性和合理性,提出初步的修改可行性判斷、

修改方案和工時(shí),并預(yù)測可能對項(xiàng)目和產(chǎn)品帶來的影響。

變更分析一般由開發(fā)小組負(fù)責(zé)人或有經(jīng)驗(yàn)的開發(fā)人員完成。

變更分析的結(jié)果,必須附加到該變更請求在配置管理庫的記錄中。

經(jīng)過初步分析的變更請求將被變更控制組(ChangeControlBoard,CCB)統(tǒng)一評(píng)審決策,以確

定是否實(shí)施變更

CCB根或變更請求的相關(guān)信息和變更分析的結(jié)果,結(jié)合項(xiàng)目當(dāng)前狀況決定每個(gè)變更請求實(shí)施與

否。

決:實(shí)施的變更將被分配給相應(yīng)開發(fā)人員去實(shí)施;決定實(shí)施的變更將被終止,并告知變更提交

者。CCB通常也為待實(shí)施的變更分配優(yōu)先級(jí)或重新指定其他開發(fā)人員去實(shí)施。

6.4.3變更控制過程

開發(fā)人員實(shí)施變更并提交修改后必須經(jīng)過質(zhì)量保證人員進(jìn)行變更驗(yàn)證,確保所做的修改不多不

少地實(shí)現(xiàn)了相應(yīng)的變更請求。

驗(yàn)證通過的變更將反映在產(chǎn)品的下個(gè)版本中,并告知相應(yīng)的變更請求提出者。驗(yàn)證未通過的變

更將被要求返工或回滾。

從理論上說,配置項(xiàng)的所有修改都必須經(jīng)過上述的變更控制過程。

這對許多開發(fā)人員來說或許是難以忍受的繁文維節(jié)和官僚主義。

優(yōu)秀的配置管理工具能根據(jù)項(xiàng)目的需要對變更控制流程加以定制,如小項(xiàng)目可通過合并或自動(dòng)

化某些步驟使得變更控制過程更為靈活高效。

相反,大型項(xiàng)目可通過擴(kuò)充變更控制步驟,以實(shí)現(xiàn)更嚴(yán)格的控制過程。

6.4.4基線管理過程

基線(BaseLine),是由軟件產(chǎn)品所有配置項(xiàng)的特定版本構(gòu)成的一個(gè)固定的產(chǎn)品版本,它是一定

階段變更請求實(shí)施后的累加效果。

基線標(biāo)志產(chǎn)品開發(fā)前一個(gè)階段的結(jié)果,又作為下一階段開發(fā)的基礎(chǔ)。

基線管理和產(chǎn)品開發(fā)模式、開發(fā)階段劃分,以及產(chǎn)品發(fā)布過程緊密相關(guān)。

基線管理過程

基線管理過程,主要解決基線的創(chuàng)建、發(fā)布、使用、維護(hù)等方面的問題

6.4.4基線管理過程

基線一旦創(chuàng)建,就成為整個(gè)產(chǎn)品的一個(gè)正式標(biāo)準(zhǔn),隨后的開發(fā)都基于此標(biāo)準(zhǔn)進(jìn)行,直到下一個(gè)

基線被創(chuàng)建。

因此,每一個(gè)新創(chuàng)建的基線都需要以正式的方式發(fā)布給項(xiàng)目中所有人員,發(fā)布內(nèi)容包括基線的

名稱、包含的版本、可執(zhí)行代碼,以及初步驗(yàn)證結(jié)果。

基線發(fā)布后,代碼開發(fā)人員可以將基線內(nèi)的配置項(xiàng)版本更新到他的工作空間中,使個(gè)人的工作

環(huán)境與項(xiàng)目中的整體變更保持同步。

項(xiàng)目測試人員可以取得基線對應(yīng)的可執(zhí)行代碼,進(jìn)行進(jìn)一步的測試驗(yàn)證,根據(jù)發(fā)現(xiàn)的問題提出

新的變更請求,推動(dòng)下一個(gè)基線的生成。

在項(xiàng)目的進(jìn)展過程中,也可以利用舊的基線重新建立基于某個(gè)特定發(fā)布版本的配置,用來重現(xiàn)

已報(bào)告的錯(cuò)誤或定位重復(fù)發(fā)生的問題。

6.4.4基線管理過程

此外,基線也可作為新項(xiàng)目的起點(diǎn),由此生成一個(gè)單獨(dú)的分支進(jìn)行新項(xiàng)目的開發(fā),新項(xiàng)目將與

隨后對原始項(xiàng)目(在主要分支上)所進(jìn)行的變更相互隔離,必要時(shí)再進(jìn)行臺(tái)并。

基線反映的是配置項(xiàng)已經(jīng)發(fā)生的變更.是固化的版本,因比基線的內(nèi)容本身不需要什么維護(hù)工

作?;€的維護(hù),主要是保存基線記錄,并結(jié)合產(chǎn)品開發(fā)過程標(biāo)識(shí)基線狀態(tài)。

產(chǎn)品配置項(xiàng)的不同基線

6.5軟件配置管理中的角色

軟件配置管理涉及了軟件開發(fā)過程中幾乎所有的環(huán)節(jié),需要項(xiàng)目所有人員的參與。

確實(shí),對軟件產(chǎn)品的開發(fā)和維護(hù)人員來說,配置管理是不可避免的日常工作。

不管擔(dān)任的是什么樣的開發(fā)過程中的角色,都會(huì)涉及軟件配置管理活動(dòng)。

區(qū)別在于同一種角色在軟件開發(fā)過程中和在配置管理過程中的角色主次不同。

從另一方面看,配置管理中有些任務(wù)是需要專門的配置管理人員來完成的。

如配置管理規(guī)劃、配置庫和配置管理工具的維護(hù)、配置審計(jì)。

6.5.1配置管理專職人員

1.配置管理負(fù)責(zé)人

配置管理負(fù)責(zé)人的職責(zé),是在開發(fā)機(jī)構(gòu)管理層提供的框架內(nèi)實(shí)施、維護(hù)并改進(jìn)軟件配置管理流

程與設(shè)施。

有些機(jī)構(gòu)的配置管理負(fù)責(zé)人需要全面負(fù)責(zé)整個(gè)機(jī)構(gòu)的配置管理,有些機(jī)構(gòu)按項(xiàng)目或組織單元設(shè)

置配置管理負(fù)責(zé)人。

配置管理負(fù)責(zé)人的工作,包括以下內(nèi)容。

(1)為組織機(jī)構(gòu)規(guī)劃配置管理方案,將機(jī)構(gòu)或組織對配置管理的需求轉(zhuǎn)換為實(shí)際的生產(chǎn)過程、

工具和操作規(guī)范。

(2)部署和更新配置管理工具'

(3)跟蹤機(jī)構(gòu)或組織的配置管理執(zhí)行情況,確保所定的流程被嚴(yán)格地執(zhí)行。

(4)為管理層提供配置管理狀態(tài)報(bào)告、數(shù)據(jù)分析結(jié)果和相關(guān)改進(jìn)建議。

2.配置庫管理員

配置庫管理員負(fù)責(zé)建立產(chǎn)品配置庫,并維護(hù)每個(gè)配置庫的內(nèi)部完整性與存儲(chǔ)空間的安全性。

配置庫管理員的工作范圍,主要有以下幾方面:

(1)建立配置庫。

(2)創(chuàng)建并維護(hù)組成配置庫的元數(shù)據(jù)(非配置項(xiàng)數(shù)據(jù))。

(3)對配置庫的使用者進(jìn)行日常支持。

(4)從配置庫中提取配置項(xiàng)狀態(tài)信息與其他過程度量信息,以供配置報(bào)告和審計(jì)。

3.配置控制委員會(huì)

配置控制委員會(huì)全面負(fù)責(zé)配置項(xiàng)的變更控制,因此又稱為變更控制委員會(huì)。

配置控制委員會(huì)有一位專職的主席,負(fù)責(zé)協(xié)調(diào)和決策.委員會(huì)的成員則由項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理、

客戶代表、以及質(zhì)量保證負(fù)責(zé)人等項(xiàng)目中的重要人員擔(dān)當(dāng),

配置控制委員會(huì)的主要工作,有以下幾點(diǎn):

(1)評(píng)估變更請求,批準(zhǔn)或否決所請求的變更。

(2)協(xié)調(diào)變更請求的執(zhí)行過程,安排合理的優(yōu)先級(jí)。

(3)跟蹤變更請求的執(zhí)行狀況,并向變更請求的提出者及相關(guān)人員提供反饋。

(4)決定產(chǎn)品基線的創(chuàng)建和使用策略,確定對外發(fā)布的基線。

6.5.2機(jī)構(gòu)運(yùn)營管理人員

配置管理專職人員,是一個(gè)機(jī)構(gòu)或項(xiàng)目中配置管理過程的構(gòu)造者和推廣者,但他們只有獲得了

機(jī)構(gòu)或項(xiàng)目管理層的支持與認(rèn)可后才能有效地完成其職責(zé)任務(wù)。

因此,機(jī)構(gòu)運(yùn)營和管理人員是配置管理的有力支持者。在比,我們把一個(gè)機(jī)構(gòu)的組織管理人員

和負(fù)責(zé)日常運(yùn)營工作人員都劃歸為配置管理的重要支持力量。

這些人員主要包括機(jī)構(gòu)管理層、資產(chǎn)負(fù)責(zé)人、工程管理負(fù)責(zé)人、環(huán)境與工具負(fù)責(zé)人,這些角色

對配置管理有不同的支持作用。

機(jī)構(gòu)管理層對配置管理的支持主要體現(xiàn)在兩個(gè)方面:

為配置管理的實(shí)施和改進(jìn)提供資本和對實(shí)施相關(guān)人員授予所需的特權(quán)

為配置管理專職的人員明晰崗位職責(zé),并提供職業(yè)晉升途稅。

6.5.2機(jī)構(gòu)運(yùn)營管理人員

過程管理負(fù)責(zé)人制訂組織或機(jī)構(gòu)的各種過程,保證這些過程滿足生產(chǎn)和發(fā)展的需求,能夠正確

地得到實(shí)施。

配置管理過程是其中的一和過程。

因此,過程管理負(fù)責(zé)人會(huì)參與配置管理策略和過程的編制,使其與其他過程相互銜接兼容。同

時(shí)確保同一機(jī)構(gòu)中不同項(xiàng)目的配置管理過程基本一致。

環(huán)境與工具負(fù)責(zé)人,為開發(fā)機(jī)構(gòu)提供環(huán)境和工具的支持,例如網(wǎng)絡(luò)、數(shù)據(jù)存儲(chǔ)、開發(fā)工具等方

面的支持。

配置管理活動(dòng)同樣離不開這些環(huán)境和工具。

環(huán)境與工具負(fù)責(zé)人為配置管理活動(dòng)提供所依環(huán)境和工具的安裝和培訓(xùn)支持,同時(shí)協(xié)助配置管理

負(fù)責(zé)人定制配置管理工具,以實(shí)現(xiàn)與其他開發(fā)工具的集成。

6.5.3項(xiàng)目開發(fā)人員

項(xiàng)目開發(fā)人員,是配置管理活動(dòng)中的重要參與者和執(zhí)行者,

從前面關(guān)于配置管理過程的描述中可以看出,配置管理過程和項(xiàng)目開發(fā)過程緊密相關(guān),其中的

許多步驟和開發(fā)環(huán)節(jié)緊密關(guān)聯(lián),需要相應(yīng)環(huán)節(jié)的開發(fā)人員去實(shí)施相應(yīng)的配置管理操作,下面我

們來看看項(xiàng)目中主要開發(fā)角色在配置管理中的職責(zé)。

項(xiàng)目經(jīng)理對項(xiàng)目以及項(xiàng)目生成的產(chǎn)品承擔(dān)總體責(zé)任。

在配置管理方面,項(xiàng)目經(jīng)理應(yīng)該根據(jù)項(xiàng)目需求來計(jì)劃配置管理,并在項(xiàng)目預(yù)算中包括配置管理

相關(guān)的花費(fèi),在項(xiàng)目進(jìn)行過程中提供有預(yù)算的資源。

此外,項(xiàng)目經(jīng)理參與變更控制決策、審批配置管理報(bào)告和配置審計(jì)報(bào)告等配置管理活動(dòng)。

6.5.3項(xiàng)目開發(fā)人員

設(shè)計(jì)人員生成產(chǎn)品整體結(jié)構(gòu)以及詳細(xì)設(shè)計(jì),并在產(chǎn)品整個(gè)生命周期內(nèi)維護(hù)這些設(shè)計(jì)結(jié)果。

設(shè)計(jì)人員與分析人員參與類似的配置管理活動(dòng)。

程序員完成所有的編程活動(dòng),生成并維護(hù)源代碼和相關(guān)文件。

程序員從事的配置管理操作包括:

標(biāo)識(shí)代碼和數(shù)據(jù)文件為配置項(xiàng),并存儲(chǔ)到配置庫中;

依據(jù)變更請求修改代碼,生成正確的代碼版本檢入到配置庫中:

跟蹤產(chǎn)品基線的發(fā)布,更新自己的工作空間。

資深程序員還可作為配置控制委員會(huì)成員,參與變更決策C

6.5.3項(xiàng)目開發(fā)人員6.53項(xiàng)目開發(fā)人員

集成人員將源代碼或派生文件集合成一個(gè)完整、一致的系統(tǒng),并生成系統(tǒng)的可執(zhí)行文件。

集成人員從事的配置管理活動(dòng)有:

創(chuàng)建并發(fā)布基線、維護(hù)基線狀態(tài)審查基線中配置項(xiàng)一致性、參與配置審計(jì)等。

測試人員根據(jù)測試計(jì)劃來測試驗(yàn)證產(chǎn)品的各個(gè)版本,包括內(nèi)部發(fā)行的中間版本。

測試人員需要將測試方案和相關(guān)的用例、腳本標(biāo)識(shí)為配置項(xiàng),并存儲(chǔ)在配置庫中。

測試人員還主要負(fù)責(zé)變更結(jié)果驗(yàn)證和基線狀態(tài)標(biāo)定等配置管理任務(wù),

6.6常用軟件配置管理工具

軟件配置管理是軟件開發(fā)過程中的一項(xiàng)十分繁瑣而又重要的工作,同時(shí)又和軟件的開發(fā)項(xiàng)目的

整個(gè)過程緊密地聯(lián)系在一起,所以必須要有合適的工具來協(xié)助配置管理過程。

軟件配置管理工具在軟件的整個(gè)生命周期中起著重要的支持和控制作用。

選擇合適的軟件配置管理工具,能給配置管理的實(shí)施和整個(gè)開發(fā)過程提供強(qiáng)有力的保障。

將按照配置管理工具的發(fā)展日程和功能特點(diǎn)對常用的配置管理工具進(jìn)行簡單的介紹。

6.6.1軟件配置管理工具的發(fā)展歷程

軟件配置管理工具,幾乎是伴隨著計(jì)算機(jī)軟件的出現(xiàn)而產(chǎn)生的。

當(dāng)計(jì)算機(jī)還在以打孔紙帶輸入程序時(shí),配置管理工具就形成了。

最原始的配置管理工具是以手工方式在記錄本或公示板上記錄每個(gè)紙帶的檢出狀態(tài)和使用者的

簡單數(shù)據(jù)記錄。

之后,在19世紀(jì)50年代末,主機(jī)系統(tǒng)(Mainframe)中的系統(tǒng)更新程序(UpdateSysten)就

可以通過記錄打孔帶的修改位置來生成新的程序版本了,這就是自動(dòng)化的配置管理(版本管理)

工具的雛形。

6.6.1軟件配置管理工具的發(fā)展歷程

早期的軟件配置管理工具,只是在程序文件一級(jí)進(jìn)行版本控制的,因此,可稱之為面向文件的

配置管理工具。

從功能上看,M類系統(tǒng)基本上具備了現(xiàn)有配置管理系統(tǒng)中的版本管理功能。能夠標(biāo)志和記錄每

個(gè)文件的各個(gè)修改版本;

提供檢出和檢入機(jī)制以避免版本覆蓋,

具有簡單的工作空間管理機(jī)制,用于開發(fā)人員和配置庫交互;

通過版本分支與合并機(jī)制支持并行開發(fā)(盡管操作可能很復(fù)雜);

能夠方便提取歷史版本的內(nèi)容與控制信息;

提供文件版本比較功能;

記錄重要版本信息和數(shù)據(jù)存取日志以供配置審計(jì)。

6.6.1軟件配置管理工具的發(fā)展歷程

這類系統(tǒng)一般提供簡潔的命令行操作方式,以方便其他系統(tǒng)封裝,調(diào)用相應(yīng)命令。這類配置管

理工具的主要特點(diǎn)如下。

(1)大多以單個(gè)文件為處理對象,對每個(gè)文件的改變以犯立的版本文件存儲(chǔ)在配置庫中。

(2)配置庫只是普通的文件系統(tǒng),在每個(gè)程序文件中嵌入版本控制信息,沒有復(fù)雜的配置管理

元數(shù)據(jù)(MetaData)o

(3)開發(fā)人員必須對每個(gè)要修改的文件分別進(jìn)行檢出和檢入。

(4)系統(tǒng)沒有開發(fā)任務(wù)的概念,只能由開發(fā)人員通過其他方式記錄、查找每個(gè)任務(wù)所修改的文

件。

元數(shù)據(jù)

通信元數(shù)據(jù)

6.6.2版本控制工具及功能

1.版本控制系統(tǒng)

版本控制系統(tǒng)(VersionControlSystem,VCS),是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將

來查閱特定版本修訂情況的系統(tǒng)。

版本控制系統(tǒng)不僅可以應(yīng)用于軟件源代碼的文本文件,而且可以對任何類型的文件進(jìn)行版本控

制。

版本控制是一種在開發(fā)的過程中用于管理我們對文件、目錄、工程的修改歷史,方便查看更改

歷史記錄,備份以便恢復(fù)以前的版本的軟件工程技術(shù)。

1.版本控制系統(tǒng)

版本控制的目的包括:

①實(shí)現(xiàn)跨區(qū)域多人協(xié)同開發(fā);

②追蹤、記載一個(gè)或者多個(gè)文件的歷史記錄;

③組織、保護(hù)源代碼和文檔;

④統(tǒng)計(jì)工作量;

⑤并行開發(fā)、提高開發(fā)效率;

⑥跟蹤記錄整個(gè)軟件的開發(fā)過程;

⑦減輕開發(fā)人員的負(fù)擔(dān),節(jié)省時(shí)間,同時(shí)降低人為錯(cuò)誤,簡單說,就是用于管理多人協(xié)同開發(fā)

項(xiàng)目的技術(shù)。

沒有進(jìn)行版本控制或者版本控制本身缺乏正確的流程管理軟件開發(fā)過程中,會(huì)引入很多問題,

如軟件代碼的一致性、軟件內(nèi)容的冗余、軟件過程的事物性、軟件開發(fā)過程中的并發(fā)性、軟件

源代碼的安全性,以及軟件的整合等問題。

本地版本控制

版本控制分類包括:本地版本控制、集中版本控制、分布式版本控制

1)本地版本控制

記錄文件每次的更新,可以對每個(gè)版本做一個(gè)快照,或是記錄補(bǔ)丁文件,適合個(gè)人用,如RCS

(GNURevisionControlSystem)0

集中版本控制

版本控制分類包括:本地版本控制、集中版本控制、分布式版本控制

3)分布式版本控制

分布式版本控制系統(tǒng)中,客戶端不僅僅是只提取最新版本的文件快照,而是把代碼倉庫完整的

鏡像下來。

所以,每一次提取的操作,都是對代碼倉庫的完整備份,也就不必?fù)?dān)心協(xié)同工作用的服務(wù)器發(fā)

生故障。

所有版本信息倉庫,全部同步到本地的每個(gè)用戶,這樣,就可以在本地查看所有版本歷史,可

以離線在本地提交,只需在連聯(lián)網(wǎng)時(shí)push到相應(yīng)的服務(wù)器或其它他用戶。

由于每個(gè)用戶那里保存的,都是所有的版本數(shù)據(jù),只要有一個(gè)用戶的設(shè)備沒有問題,就可以恢

復(fù)所有的數(shù)據(jù),但這增加了本地存儲(chǔ)空間的占用。

IBM筆記PNG支持-軟件配置管理

數(shù)據(jù)和元數(shù)據(jù)

2.CVS

CVS(ConcurrentVersionSystem)版本控制系統(tǒng)是一種GNU軟件包,主要用于在多人開發(fā)環(huán)

境下的源碼的維護(hù)。

實(shí)際上,CVS可以維護(hù)任意文檔的開發(fā)和使用,例如,共享文件的編輯修改,而不僅僅局限于

程序設(shè)計(jì)。

CVS維護(hù)的文件類型,可以是文本類型也可以是二進(jìn)制類型。

CVS用Copy-Modify-Merge(拷貝、修改、合并)變化表支持對文件的同時(shí)訪問、修改,明確

地將源文件的存儲(chǔ)和用戶的工作空間獨(dú)立開來,并使其并行操作。

CVS基于客戶端/服務(wù)器的行為使其可容納多個(gè)用戶,構(gòu)成網(wǎng)絡(luò)也很方便。

這一特性,使得CVS成為位于不同地點(diǎn)的人同時(shí)處理數(shù)據(jù)文件(程序源代碼)時(shí)的首選。

2.CVS

2.CVS

CVS的基本工作思路,是在一臺(tái)服務(wù)器上建立一個(gè)源代碼庫,庫里可以存放許多不同項(xiàng)目的源

程序。

由源代碼庫管理員統(tǒng)一管理這些源程序。

每個(gè)用戶在使用源代碼庫之前,首先要把源代碼庫里的項(xiàng)目文件下載到本地,然后,用戶可以

在本地任意修改,最后,用CVS命令進(jìn)行提交,由CVS源代碼庫統(tǒng)一管理修改。

這樣,就好像只有一個(gè)人在修改文件一樣,既避免了沖突,又可以做到跟蹤文件變化等。

3.VSS

VSS(VisualSourceSafe)是微軟VisualStudio的成員,主要任務(wù)是負(fù)責(zé)項(xiàng)目文件的管理,幾乎

可以適用任何軟件項(xiàng)目。

管理軟件開發(fā)中各個(gè)不同版本的源代碼和文檔,占用空間小,并且方便各個(gè)版本代碼和文檔的

獲取,對開發(fā)小組中對源代碼的訪問進(jìn)行有效的協(xié)調(diào)。

3.VSS

VSS是一款歷史悠久的版本管理工具,在早期扛起了版本管理系統(tǒng)方面的大氣,能幫助解決一

部分版本控制方面的問題,在一定程度上幫助解決代碼共享方面的難題。

但是依舊存在一些不足,比如:

(1)文件大多會(huì)以獨(dú)占的形勢進(jìn)行鎖定。如果一個(gè)人在修改的時(shí)候,其他人沒有辦法進(jìn)行修改。

(2)VSS只支持Windows版本,且只兼容微軟的開發(fā)工具。

(3)文件存儲(chǔ),服務(wù)器必須共享文件夾,對文件的安全性沒有足夠保障。

微軟VisualSourceSafeClient-CodeProject

4.SVN

SVN(SubVersion)作為CVS的重寫和改進(jìn)產(chǎn)品,其目標(biāo)就是成為一個(gè)更好的版本控制軟件,

以更新傳統(tǒng)的CVS系統(tǒng)。

SVN是開源的配置管理系統(tǒng)中的新的杰作,主要開發(fā)人員都是業(yè)界知名的CVS專家,它支持絕

大部分的CVS功能和命令,其命令風(fēng)格與界面也與CVS非常接近。

SVN在繼承了CVS的功能基礎(chǔ)上增加了許多新的特性。

SVN

SVN是一個(gè)開放源代碼的版本控制系統(tǒng),相較于RCS、CVS.SVN采用了分支管理系統(tǒng),設(shè)計(jì)

目標(biāo)就是取代CVSo

互聯(lián)網(wǎng)上很多版本控制服務(wù),已從CVS遷移至ijSubversion。

SVN就是用于多個(gè)人共同開發(fā)同一個(gè)項(xiàng)目,共用資源的目的。

微軟VisualSourceSafeClient-CodeProject

VSS為建立一個(gè)項(xiàng)目的多個(gè)版本提供了良好的模式:他有共享(Share),分支(Branch).標(biāo)簽

(Label).合并(Merge),鏈接(Links).路徑(Paths)等版本管理機(jī)制和相關(guān)操作的命令。

SVN

SVN作為集中式的版本管理系統(tǒng),優(yōu)點(diǎn)在于:

①管理方便,邏輯明確,操作簡單,上手快;

②易于管理,集中式服務(wù)器更能保證安全性;

③代碼一致性非常高;

④有良好的目錄級(jí)權(quán)限控制系統(tǒng)。

劣勢在于:

①對服務(wù)器性能要求高,數(shù)據(jù)庫容量經(jīng)常暴增,體量大;

②必須聯(lián)網(wǎng),如果不能連接到服務(wù)器上,基本上不可以工作,如果服務(wù)器不能連接上,就不能

提交,還原,對比;

③不適合開源開發(fā);

④分支的管控方式不靈活。

SVN

SVN是一個(gè)開放源代碼的版本控制系統(tǒng),相較于RCS、CVS.SVN采用了分支管理系統(tǒng),它的

設(shè)計(jì)目標(biāo)就是取代CVSo

互聯(lián)網(wǎng)上很多版本控制服務(wù)已從CVS遷移至ISubversion0

SVN就是用于多個(gè)人共同開發(fā)同一個(gè)項(xiàng)目,共用資源的目的。

Git

Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。

作為一個(gè)開源的分布式版本控制系統(tǒng),可以有效、高速的處理從很小到非常大的項(xiàng)目版本管理。

Git

Git的優(yōu)缺點(diǎn)為:

①適合分布式開發(fā),每個(gè)個(gè)體都可以作為服務(wù)器,每一次Clone就是從服務(wù)器上pull到了所有

的內(nèi)容,包括版本信息;

②公共服務(wù)器壓力和數(shù)據(jù)量都不會(huì)太大;

③速度快、靈活,分支之間可以任意切換;

④任意兩個(gè)開發(fā)者之間,可以很容易的解決沖突,并且單機(jī)上就可以進(jìn)行分支合并;

⑤離線工作,不影響本地代碼編寫,等有網(wǎng)絡(luò)連接以后可以再上傳代碼,并且在本地可以根據(jù)

不同的需要,本地新建自己的分支。

6.ClearCaseUCM

ClearCase是IBM公司Rational產(chǎn)品部門生產(chǎn)的一款業(yè)界領(lǐng)先的重量級(jí)軟件配置管理工具。

ClearCase的主要功能特點(diǎn)

1)版本管理

ClearCase能夠管理文件和目錄項(xiàng)的每個(gè)修改版本,并通過分支和歸并功能支持并行開發(fā)。

ClearCase支持不同文件類型的差異化版本管理,能自動(dòng)識(shí)別二進(jìn)制文件和特殊的文本文件(如

XML文件),對不同類型的文件采用不同的方式進(jìn)行版本七較和合并操作。

版本信息保存在私有的關(guān)系數(shù)據(jù)庫中,保證數(shù)據(jù)的安全性和訪問效率。

2)工作空間管理

ClearCase給每位開發(fā)者提供了獨(dú)立的工作空間(視圖),開發(fā)人員在各自的工作空間中可以方

便地訪問或修改文件版本。

ClearCase使工作空間與本池文件系統(tǒng)無縫集成。開發(fā)人員能夠透明地以本地文件目錄的形式訪

問配置項(xiàng)的任何版本。

ClearCase的主要功能特點(diǎn)

3)構(gòu)建管理

ClearCase能方便地生成軟件構(gòu)造文件清單,而且可以完全、可靠地重建任何構(gòu)造版本。

ClearCase也可以通過共享二進(jìn)制文件和并發(fā)執(zhí)行多個(gè)構(gòu)建腳本的方式支持有效的軟件構(gòu)「牛,既

可以使用定制腳本,也可使用自身的Clearmake程序。

4)變更控制

ClearCase可以通過配置策咯的設(shè)置和使用鉤子程序(Hoo<)來加強(qiáng)變更控制,規(guī)定只有符合特

定條件的變更才能用來修改程序文件。

ClearCaseUCM是在大量軟件工程實(shí)踐和ClearCase用于反饋建議的基礎(chǔ)之上,提煉出來的最

佳配置管理方案——統(tǒng)一變更管理。

6.6.4面向開發(fā)流程的配置管理工具及功能

第二代面向變更集的配置管理工具,具有配置項(xiàng)和任務(wù)的關(guān)聯(lián)能力,但它自身的任務(wù)管理功能

很有限,只起到了基于任務(wù)的版本收集的功效。

在面向變更集的配置管理的基礎(chǔ)上,產(chǎn)生了更新一代的面向開發(fā)流程的配置管理工具。

這類工具中的任務(wù)有更豐富的數(shù)據(jù),具備較強(qiáng)的任務(wù)管理功能,并能通過任務(wù)管理對項(xiàng)目的開

發(fā)流程進(jìn)行規(guī)范。

這類工具中,有些自帶流程支持功能,有些需要與配套的工具集成來支持開發(fā)流程;

這些只支持相對固定的開發(fā)流程,有些可方便地進(jìn)行流程設(shè)定,甚至任意定制流程。

1.集成的ClearCase和CearQuest

ClearQuest是一個(gè)強(qiáng)大的企業(yè)級(jí)流程自動(dòng)化工具。

通過定制可以適用于任何領(lǐng)域的流程控制。

不過通常的用法是作為缺陷管理或變更管理系統(tǒng),用于軟件開發(fā)或類似的具有復(fù)雜流程的生產(chǎn)

項(xiàng)目中

盡管ClearQuest提供了多種預(yù)定義的流程方案供客戶選擇,其主要的功能特性,還是支持自定

義流程。

多數(shù)ClearQuest用戶都會(huì)基于某種預(yù)定義的流程定制出適合本組織實(shí)際情況的開發(fā)流程。

集成的ClearCase和ClearQuest系統(tǒng)有如下功能特點(diǎn)

1)有效地記錄、管理和追蹤變更請求

ClearQuest通過多種易于使用的客戶端(Windows、UNIX、Web、E-mail),使用戶在任何地點(diǎn)、

以任何方式都可以提交、獲取在整個(gè)開發(fā)生命周期中出現(xiàn)的各種類型的變更請求,包括測試階

段出現(xiàn)的缺陷、需求分析階段的需求擴(kuò)展請求等。

所有的變更請求在ClearQuest中被集中存儲(chǔ)在統(tǒng)一的數(shù)據(jù)庫之中,以便進(jìn)行各種形式的查詢,

同時(shí)也便于集中管理。

2)有效地加強(qiáng)變更請求和版本修改的聯(lián)系

集成的方案中ClearCaseUCM的活動(dòng)將會(huì)與ClearQuest中的變更請求相對應(yīng),可以通過

ClearCase策略規(guī)定只有處于某種狀態(tài)(如CCB批準(zhǔn)后)的變更請求才能用來修改代碼并且修

改后的代碼版本將和該變更請求緊密綁定,便于代碼審查和追蹤。

3)能促進(jìn)團(tuán)隊(duì)的溝通和協(xié)作

ClearQuest提供一套完備的電子流管理系統(tǒng)。它可以利用企業(yè)現(xiàn)有的郵件服務(wù)系統(tǒng)實(shí)現(xiàn)自動(dòng)電

子郵件通知功能。

當(dāng)系統(tǒng)內(nèi)提交了新的變更請求或已有變更請求的狀態(tài)發(fā)生變化時(shí),ClearQuest會(huì)自動(dòng)通過電子

郵件通知相關(guān)的人員,從而大大提高了團(tuán)隊(duì)的協(xié)作效率。

集成的ClearCase和ClearQuest系統(tǒng)有如下功能特點(diǎn)

4)隨時(shí)隨地了解項(xiàng)目狀況

ClearQuest支持通過Web的方式對系統(tǒng)進(jìn)行訪問,在瀏覽器中可以查詢變更請求的狀態(tài)、瀏覽

變更請求的信息、生成多和統(tǒng)計(jì)分析圖表和項(xiàng)目狀態(tài)報(bào)告。

所以,項(xiàng)目經(jīng)理可以及時(shí)、準(zhǔn)確地了解項(xiàng)目的狀況。

5)具有很強(qiáng)的可定制性

在ClearQuest系統(tǒng)中所涉及的表單信息域、狀態(tài)變遷過程、分析圖表和狀態(tài)報(bào)告等都是可以根

據(jù)用戶的實(shí)際需要進(jìn)行定制的,并且可以隨項(xiàng)目的發(fā)展不斷進(jìn)行調(diào)整。

因此,ClearQuest可以適用于任何類型,以及任何規(guī)模的項(xiàng)目。

2.其他面向開發(fā)流程的工具

1)CCC/Harvest

CCC/Harvest起源于20世紀(jì)70年代初

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論