一、概要

  1.1 內(nèi)容

  規(guī)范配置管理活動,確保配置項正確地唯一標(biāo)識并易于存取,保證基準(zhǔn)配置項的更改受控,明確基線狀態(tài),在貫穿整個軟件生命周期中建立和維護項目產(chǎn)品的完整性和可追溯性。

  1.2 適用范圍

  對于不同類別的軟件項目,配置管理的流程不同,可在本流程的基礎(chǔ)上進行裁減。

  1.3 術(shù)語和縮略語

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

  軟件配置管理是對軟件修改進行標(biāo)識、組織和控制的技術(shù),用來協(xié)調(diào)和控制整個過程。是通過技術(shù)或行政手段對軟件產(chǎn)品及其開發(fā)過程和生命周期進行控制、規(guī)范的一系列措施。配置管理的目標(biāo)是記錄軟件產(chǎn)品的演化過程,確保軟件開發(fā)者在軟件生命周期中各個階段都能得到精確的不同版本的產(chǎn)品配置。

  1.3.2 配置(Configuration)

  配置是在技術(shù)文檔中明確說明并最終組成軟件產(chǎn)品的功能或物理屬性。因此配置包括了即將受控的所有產(chǎn)品特性,其內(nèi)容及相關(guān)文檔、軟件版本、變更文檔、軟件運行的支持?jǐn)?shù)據(jù),以及其他一切保證軟件一致性的組成要素,相對與硬件類配置,軟件產(chǎn)品的配置包括更多的內(nèi)容并具有易變性。

  1.3.3 配置項(Configuration Item,CI)

  凡是納入配置管理范疇的工作成果統(tǒng)稱為配置項(Configuration Item, CI),配置項邏輯上組成軟件系統(tǒng)的各組成部分,一般是可以單獨進行設(shè)計、實施和測試的。一個純軟件的CIs通常也稱之為軟件配置項(Computer Software Configuration Items,CSCIs)。

  配置項主要有兩大類:

  1) 屬于產(chǎn)品組成部分的工作成果,例如需求文檔、設(shè)計文檔、源代碼、測試用例等;

  2) 項目管理和機構(gòu)支撐過程產(chǎn)生的文檔。這些文檔雖然不是產(chǎn)品的組成部分,但是值得保存。

  每個配置項的主要屬性有:名稱、標(biāo)識符、文件狀態(tài)、版本、作者、日期等。所有配置項都被保存在配置庫里,確保不會混淆、丟失。配置項及其歷史記錄反映了軟件的演化過程。

  1.3.4 基線(Baseline)

  在配置管理系統(tǒng)中,基線就是一個CI或一組CIs在其生命周期的不同時間點上通過正式評審而進入正式受控的一種狀態(tài),些配置項構(gòu)成了一個相對穩(wěn)定的邏輯實體,而這個過程被稱為“基線化”。每一個基線都是其下一步開發(fā)的出發(fā)點和參考點。基線確定了元素(配置項)的一個版本,且只確定一個版本。一般情況下,基線一般在指定的里程碑(Milestone)處創(chuàng)建,并與項目中的里程碑保持同步。每個基線都將接受配置管理的嚴(yán)格控制,基線中的配置項被“凍結(jié)”了,不能再被任何人隨意修改,對其的修改將嚴(yán)格按照變更控制要求的過程進行,在一個軟件開發(fā)階段結(jié)束時,上一個基線加上增加和修改的基線內(nèi)容形成下一個基線。

  基線的主要屬性有:名稱、標(biāo)識符、版本、日期等。通常將交付給客戶的基線稱為一個“Release”,為內(nèi)部開發(fā)用的基線則稱為一個“Build”。

  建立基線的好處:

  1) 重現(xiàn)性:及時返回并重新生成軟件系統(tǒng)給定發(fā)布版的能力,或者是在項目中的早些時候重新生成開發(fā)環(huán)境的能力。當(dāng)認(rèn)為更新不穩(wěn)定或不可信時,基線為團隊提供一種取消變更的方法。

  2) 可追蹤性:建立項目工件之間的前后繼承關(guān)系。目的是確保設(shè)計滿足要求、代碼實施設(shè)計以及用正確代碼編譯可執(zhí)行文件。

  3) 版本隔離:基線為開發(fā)工件提供了一個定點和快照,新項目可以從基線提供的定點之中建立。作為一個單獨分支,新項目將與隨后對原始項目(在主要分支上)所進行的變更進行隔離。

  二、相關(guān)人權(quán)責(zé)

  2.1 項目經(jīng)理(Project Manager,PM)

  責(zé)任:

  1) 與CCB協(xié)商確定項目起始基線和開發(fā)里程碑;

  2) 接受配置管理計劃,并按相關(guān)規(guī)定貫徹執(zhí)行;

  3) 接受配置控制委員會的報告。

  權(quán)利:

  1) 提出配置管理計劃的修改要求;

  2) 提出管理管理的建議和要求。

  2.2 配置控制委員會(Configuration Control Board,CCB)

  責(zé)任:

  1) 制定和修改項目的配置管理策略;

  權(quán)利:

  1) 批準(zhǔn)、發(fā)布配置管理計劃;

  2) 建立、更改基線的設(shè)置,審核變更申請;

  3) 根據(jù)配置管理員的報告決定相應(yīng)的對策。

  2.3 配置管理員(Configuration Management Officer,CMO)

  責(zé)任:

  1) 編制配置管理計劃;

  2) 執(zhí)行配置項管理方案;

  3) 執(zhí)行版本控制和變更控制方案;

  4) 編制配置狀態(tài)報告;

  權(quán)利:

  向CCB匯報有關(guān)配置管理流程中的不符合情況。

  2.4 程序庫管理員(Program Librarian,PL)

  責(zé)任:

  1) 配置庫的建立和權(quán)限分配;

  2) 配置管理工具的日常管理與維護;

  3) 配置庫的日常操作和維護;

  權(quán)利:

  1) 各配置項的管理與維護;

  2) 對開發(fā)人員進行相關(guān)的培訓(xùn)。

  2.5 開發(fā)人員(Developer)

  責(zé)任:

  1) 根據(jù)確定的配置管理計劃和相關(guān)規(guī)定,提交配置項和基線;

  2) 負責(zé)軟件集成和版本生成。

  權(quán)利:

  按照軟件配置管理工具的使用模型來完成開發(fā)任務(wù)。

  2.6 測試人員(Tester)

  責(zé)任:

  根據(jù)配置管理計劃和相關(guān)規(guī)定,提交測試配置項和測試基線;

  權(quán)利:

  負責(zé)軟件變更的測試驗證。

  2.7 軟件質(zhì)量保證員(Software Quality Assurance,SQA)

  責(zé)任:

  負責(zé)配置審核并提交報告。

  權(quán)利:

  對配置審核中發(fā)現(xiàn)的不符合項,要求相關(guān)責(zé)任人進行糾正。