一、概要
1.1 內容
規范配置管理活動,確保配置項正確地唯一標識并易于存取,保證基準配置項的更改受控,明確基線狀態,在貫穿整個軟件生命周期中建立和維護項目產品的完整性和可追溯性。
1.2 適用范圍
對于不同類別的軟件項目,配置管理的流程不同,可在本流程的基礎上進行裁減。
1.3 術語和縮略語
1.3.1 軟件配置管理(Software Configuration Management,SCM)
軟件配置管理是對軟件修改進行標識、組織和控制的技術,用來協調和控制整個過程。是通過技術或行政手段對軟件產品及其開發過程和生命周期進行控制、規范的一系列措施。配置管理的目標是記錄軟件產品的演化過程,確保軟件開發者在軟件生命周期中各個階段都能得到精確的不同版本的產品配置。
1.3.2 配置(Configuration)
配置是在技術文檔中明確說明并最終組成軟件產品的功能或物理屬性。因此配置包括了即將受控的所有產品特性,其內容及相關文檔、軟件版本、變更文檔、軟件運行的支持數據,以及其他一切保證軟件一致性的組成要素,相對與硬件類配置,軟件產品的配置包括更多的內容并具有易變性。
1.3.3 配置項(Configuration Item,CI)
凡是納入配置管理范疇的工作成果統稱為配置項(Configuration Item, CI),配置項邏輯上組成軟件系統的各組成部分,一般是可以單獨進行設計、實施和測試的。一個純軟件的CIs通常也稱之為軟件配置項(Computer Software Configuration Items,CSCIs)。
配置項主要有兩大類:
1) 屬于產品組成部分的工作成果,例如需求文檔、設計文檔、源代碼、測試用例等;
2) 項目管理和機構支撐過程產生的文檔。這些文檔雖然不是產品的組成部分,但是值得保存。
每個配置項的主要屬性有:名稱、標識符、文件狀態、版本、作者、日期等。所有配置項都被保存在配置庫里,確保不會混淆、丟失。配置項及其歷史記錄反映了軟件的演化過程。
1.3.4 基線(Baseline)
在配置管理系統中,基線就是一個CI或一組CIs在其生命周期的不同時間點上通過正式評審而進入正式受控的一種狀態,些配置項構成了一個相對穩定的邏輯實體,而這個過程被稱為“基線化”。每一個基線都是其下一步開發的出發點和參考點。基線確定了元素(配置項)的一個版本,且只確定一個版本。一般情況下,基線一般在指定的里程碑(Milestone)處創建,并與項目中的里程碑保持同步。每個基線都將接受配置管理的嚴格控制,基線中的配置項被“凍結”了,不能再被任何人隨意修改,對其的修改將嚴格按照變更控制要求的過程進行,在一個軟件開發階段結束時,上一個基線加上增加和修改的基線內容形成下一個基線。
基線的主要屬性有:名稱、標識符、版本、日期等。通常將交付給客戶的基線稱為一個“Release”,為內部開發用的基線則稱為一個“Build”。
建立基線的好處:
1) 重現性:及時返回并重新生成軟件系統給定發布版的能力,或者是在項目中的早些時候重新生成開發環境的能力。當認為更新不穩定或不可信時,基線為團隊提供一種取消變更的方法。
2) 可追蹤性:建立項目工件之間的前后繼承關系。目的是確保設計滿足要求、代碼實施設計以及用正確代碼編譯可執行文件。
3) 版本隔離:基線為開發工件提供了一個定點和快照,新項目可以從基線提供的定點之中建立。作為一個單獨分支,新項目將與隨后對原始項目(在主要分支上)所進行的變更進行隔離。
二、相關人權責
2.1 項目經理(Project Manager,PM)
責任:
1) 與CCB協商確定項目起始基線和開發里程碑;
2) 接受配置管理計劃,并按相關規定貫徹執行;
3) 接受配置控制委員會的報告。
權利:
1) 提出配置管理計劃的修改要求;
2) 提出管理管理的建議和要求。
2.2 配置控制委員會(Configuration Control Board,CCB)
責任:
1) 制定和修改項目的配置管理策略;
權利:
1) 批準、發布配置管理計劃;
2) 建立、更改基線的設置,審核變更申請;
3) 根據配置管理員的報告決定相應的對策。
2.3 配置管理員(Configuration Management Officer,CMO)
責任:
1) 編制配置管理計劃;
2) 執行配置項管理方案;
3) 執行版本控制和變更控制方案;
4) 編制配置狀態報告;
權利:
向CCB匯報有關配置管理流程中的不符合情況。
2.4 程序庫管理員(Program Librarian,PL)
責任:
1) 配置庫的建立和權限分配;
2) 配置管理工具的日常管理與維護;
3) 配置庫的日常操作和維護;
權利:
1) 各配置項的管理與維護;
2) 對開發人員進行相關的培訓。
2.5 開發人員(Developer)
責任:
1) 根據確定的配置管理計劃和相關規定,提交配置項和基線;
2) 負責軟件集成和版本生成。
權利:
按照軟件配置管理工具的使用模型來完成開發任務。
2.6 測試人員(Tester)
責任:
根據配置管理計劃和相關規定,提交測試配置項和測試基線;
權利:
負責軟件變更的測試驗證。
2.7 軟件質量保證員(Software Quality Assurance,SQA)
責任:
負責配置審核并提交報告。
權利:
對配置審核中發現的不符合項,要求相關責任人進行糾正。