軟件配置管理
1.什么是軟件配置管理
軟件配置管理(SCM)是指在開發(fā)過程中各階段,管理計算機程序演變的學科,它作為軟件工程的關鍵元素。已經成為軟件開發(fā)和維護的重要組成部分。SCM提供了結構化的、有序化的、產品化的管理軟件工程的方法。它涵蓋了軟件生命周期的所有領域并影響所有數(shù)據(jù)和過程。
配置管理是對產品進行標識、存儲和控制,以維護其完整性、可追溯性以及正確性的學科。
2.配置管理的任務
配置管理的任務如下圖所示:
(1)定義配置項:軟件配置項(SCI)即軟件配置管理的對象。軟件開發(fā)過程中產生的所有信息構成軟件配置,它們是:代碼(源代碼、目標代碼)以及數(shù)據(jù)結構(內部數(shù)據(jù)、外部數(shù)據(jù))、文檔(技術文檔、管理文檔、需方文檔)、報告,其中每一項稱為配置項,軟件配置項是配置管理的基本單位。同時,開發(fā)過程中使用的環(huán)境,如操作系統(tǒng)、各種支撐軟件、配置管理工具,也可納入軟件配置管理范圍。
(2)標識配置項:正確標識軟件配置項對整個管理活動非常重要,對軟件開發(fā)過程中的所有軟件項目賦予唯一的標識符,便于對其進行狀態(tài)控制和管理。
配置標識包括:文檔標識、代碼標識、運行文件標識。
典型的命名規(guī)則是RUP法。
(3)定義基線:基線標志著軟件開發(fā)過程一個階段的結束,任一軟件配置項,一旦形成文檔并審議通過,即成為基線?;镜淖饔迷谟诎迅麟A段的工作劃分得更明確,使本來連續(xù)的工作在這些點上斷開,以便檢驗和肯定階段成果。
(4)定義軟件配置庫:軟件配置庫內容因涵蓋開發(fā)的全過程,應包括如表所示的軟件項:
表 軟件開發(fā)過程與軟件配置庫
模型、文檔庫 | 代碼庫 | 運行庫 |
軟件分析設計 | 軟件實現(xiàn) | 軟件運行 |
軟件分析設計模型 | 源代碼 | 可執(zhí)行代碼 |
軟件分析設計文檔 | 目標代碼 | 使用數(shù)據(jù) |
測試數(shù)據(jù) | ||
軟件開發(fā)環(huán)境 | 軟件運行環(huán)境 |
基線技術將項目實施配置管理的存儲庫分為3類:開發(fā)庫、受控庫、產品庫。
①開發(fā)庫:存放在開發(fā)過程中按照要求生成的各種技術文檔、源代碼、可執(zhí)行代碼和使用的數(shù)據(jù),為開發(fā)人員的活動提供支持。
② 受控庫:存放基線產品即項目轉階段經評審通過的和已經批準的軟件工作產品和軟件產品。
③產品庫:存放項目正式交付用戶的最終產品和最終運行環(huán)境。
(5)控制配置:配置控制的定義是為了明確配置管理在具體實現(xiàn)時所執(zhí)行的配置規(guī)程,主要包括入庫控制和變更控制。
(6)配置審計:包含了物理和功能上的審計。包括以下活動:① 驗證每個軟件配置項的正確性、一致性、完備性、有效性、可追蹤性;② 在軟件生存期內應定期配置審計工作;③定期進行軟件備份,應保證備份介質的安全性和可用性。
(7)配置狀態(tài)報告:提供軟件開發(fā)過程的歷史記錄,內容包括配置管理項的現(xiàn)行狀態(tài)及何時因何故發(fā)生了何事(入庫、更動)。配置管理人員應定期或在需要時提交配置狀態(tài)報告。配置狀態(tài)報告包含了整個軟件生命周期中對基線所有變更的可追蹤性。
3.實施軟件配置管理的優(yōu)點
- 節(jié)約費用:縮短開發(fā)周期、減少施工費用
- 利于知識庫的建立:代碼對象庫、業(yè)務及經驗庫
- 規(guī)范管理:量化工作量考核、規(guī)范測試、加強協(xié)調與溝通。
4.配置軟件管理實施的流程
1.規(guī)劃、調整網絡開發(fā)環(huán)境
一個規(guī)劃良好的開發(fā)環(huán)境,是實施配置管理系統(tǒng)的前提。此階段要對配置管理系統(tǒng)做出規(guī)劃,主要考慮以下問題:
- 網絡的帶寬、拓撲結構
- 服務器的選擇、命名規(guī)范
- 存儲區(qū)的定位
- 開發(fā)人員及組的命名規(guī)約等。
2.設計配置管理庫
根據(jù)項目開發(fā)的要求,設計開發(fā)資源的存儲模式,良好的存儲模式有利于減輕管理上的負擔,增強配置管理庫的訪問性能,同時便于控制訪問權限,保護軟件資產。
3.定義配置管理系統(tǒng)的角色
需要確定與配置管理相關的所有角色,包括他們的相應的活動。在開發(fā)過程中,一個開發(fā)人員可能兼任多種角色,但一項任務在同一時刻只能由一個角色來執(zhí)行。
一般配置管理中的角色主要包括:
- 配置管理員
- 軟件開發(fā)人員
- 集成人員
- QA人員
4.制定配置管理流程
配置管理實施的一個重要階段,主要目的是根據(jù)項目開發(fā)的需要,制定相應的配置管理流程,以更好地支持開發(fā),主要活動包括:
- 定制并行開發(fā)策略。合理的并行開發(fā)策略應該具有以下特點:協(xié)調項目的復雜性和需求,統(tǒng)一創(chuàng)建分支類型和元數(shù)據(jù),為開發(fā)過程中的變更集成制定有效的規(guī)范,適時反映開發(fā)過程中方法和需求的變化:
- 發(fā)布版本管理。軟件開發(fā)過程中的一個關鍵活動是提取工件的相關版本,以形成軟件系統(tǒng)的階段版本或發(fā)布版本,一般將其稱為穩(wěn)定基線。一個穩(wěn)定基線代表新開發(fā)活動的開始,而一系列定制良好的活動之后又會產生一個新的穩(wěn)定基線。有效地利用此項功能,在項目開發(fā)過程中可以至始至終管理、跟蹤部件版本間的關聯(lián)。
5.相關人員的培訓
實施配置管理系統(tǒng),相關人員需要接受培訓:
- 管理員培訓:針對配置管理員,主要學習配置管理工具管理相關內容:
- 開發(fā)人員培訓:針對開發(fā)人員,主要學習配置管理工具與開發(fā)相關的常用操作
- 管理流程培訓:針對全體人員,目的是了解配置管理策略和流程,以及如何與開發(fā)管理、項目管理相結合。
5.軟件配置管理與CMMI
能力成熟度集成模型(Capability Maturity Model Integration)是由美國卡耐基·梅隆大學的軟件工程研究所(SEI)組織開發(fā),并于2002年發(fā)布的一種規(guī)范、實用的途徑來管理軟件過程的模型.CMMI通過指導軟件開發(fā)人員的活動來改進軟件過程,以達到軟件過程可復用性、可定量管理、可有效控制的目的.軟件配置管理是CMMI可重復級的一個關鍵過程域(Key Process Area,KPA),其目的是在整個項目的軟件生命周期中,保持軟件產品的完整性和可追蹤性,這包含了對改變的控制和所有能影響到改變的軟件因素的管理.作為過程實現(xiàn)、過程優(yōu)化的一部分,配置管理是實現(xiàn)軟件過程的基本保證,它還是基于重用的軟件開發(fā)的管理手段,所以成為軟件過程管理的核心.CMMI模型清晰地描述了SCM,并說明了SCM 的目的和所要達到的目標,具體描述了某級成熟度下軟件過程在該方面所應達到的一組目標和實現(xiàn)這些目標的一組關鍵實踐(Key Pradice).這些關鍵實踐被劃分為5類,分別為完成該組目標所需的承諾、執(zhí)行能力、執(zhí)行的活動、度量分析以及驗證.使企業(yè)在實施軟件配置管理時能知道到底要做什么,團隊的配置管理現(xiàn)狀如何評估,在哪些方面還可以進行改進等問題能得到具體的答案。