簡介
軟體配置管理(Software Configuration Management),又稱軟體形態管理、或軟體建構管理,簡稱軟體形管(SCM)。界定軟體的組成項目,對每個項目的變更進行管控(
版本控制),並維護不同項目之間的版本關聯,以使軟體在開發過程中任一時間的內容都可以被追溯,包括某幾個具有重要意義的數個組合。
軟體配置管理,貫穿於整個
軟體生命周期,它為軟體研發提供了一套管理辦法和活動原則。軟體配置管理無論是對於
軟體企業管理人員還是研發人員都有著重要的意義。軟體配置管理可以提煉為三個方面的內容:
VersionControl-版本控制;
ChangeControl-變更控制;
ProcessSupport-過程支持。
關鍵活動包括:配置項、工作空間管理、版本控制、變更控制、狀態報告、配置審計等。
發展歷史
配置管理的概念源於美國空軍,為了規範設備的設計與製造,美國空軍1962年制定並發布了第一個配置管理的標準“AFSCM375-1,CM During the Development & Acquisition Phases”。
而軟體配置管理概念的提出則在20世紀60年代末70年代初。當時
加利福尼亞大學聖巴巴拉分校的Leon Presser教授在承擔美國海軍的航空發動機研製契約期間,撰寫了一篇名為“Change and Configuration Control”的論文,提出控制變更和配置的概念,這篇論文同時也是他在管理該項目(這個過程進行過近一千四百萬次修改)的一個經驗總結。
Leon Presser在1975年成立了一家名為SoftTool的公司,開發了配置管理工具:Change and Configuration Control(CCC),這是最早的配置管理工具之一。
隨著
軟體工程的發展,軟體配置管理越來越成熟,從最初的僅僅實現
版本控制,發展到21世紀初提供
工作空間管理、並行開發支持、過程管理、許可權控制、變更管理等一系列全面的管理能力,已經形成了一個完整的理論體系。同時在軟體配置管理的工具方面,也出現了大批的產品,如:最著名的ClearCase;有將近二十年歷史的
Perforce;開源產品CVS;入門級工具Microsoft VSS;新秀Hansky Firefly。
在國外已經有30多年歷史的軟體配置管理,但在國內的發展卻是在21世紀這幾年的事。但是通過專家們的介紹,可以感受到,國內的軟體配置管理已經取得了迅速發展,並得到了軟體公司的普遍認可。
目的
SCM的目標一般包括以下幾項:
配置控管:導入變更控管流程。該流程通常由變更控制委員會來運行,其主要的職責是核准或拒絕有悖任何基準的所有變更請求。
配置狀態報告:記錄和呈報與開發過程狀態相關的所有必要信息。
配置審核:確保這些配置包含所有預期內容,且備有完整的規定檔案(包括要求、結構規範和用戶手冊)。
建構管理:管理用於建構的流程和工具。
流程管理:確保遵循企業組織的開發流程。
環境管理:管理承載系統的軟硬體。
團隊合作:促進流程中團隊彼此間的互動。
缺陷追蹤:確保可溯及每個缺陷的源頭。
隨著雲計算的引進,SCM工具的用途有時已互相集成。SCM工具本身轉變為虛擬設施,可以在虛擬機上運行並保存狀態和版本。這些工具能管理並為雲端虛擬資源(包括虛擬設備、存儲設備和軟體包)創建模型。如今,因為現在已經可以動態的激活虛擬伺服器和相關資源,SCM管理人員的角色和職責已經與開發人員合併。
管理方針
為了達到上述目標, 如下的方針應該得到貫徹執行:
技術部門經理和具體項目主管應該使用和遵循XSSC的
OSSP中所描述的軟體配置管理的工作過程。施行軟體配置管理的職責應被明確分配。相關人員得到軟體配置管理方面的培訓。技術部門經理和具體項目主管應該明確他們在相關項目中所擔負的軟體配置管理方面的責任。軟體配置管理工作應該享有足夠的資金支持,這需要在客戶,技術部門經理和具體項目主管之間協商。軟體配置管理應該實施於如下產品:對外交付的軟體產品,以及那些被選定的在項目中使用的支持類工具等。軟體配置的整體性在整個
項目生命周期中得到控制。
軟體質量保證人員應該定期審核各類軟體基準以及軟體配置管理工作。使軟體基準的狀態和內容能夠及時通知給相關組別和個人。
工具軟體
常用的軟體配置管理工具主要分為三個級別:
l Rational ClearCase,Perforce,CA CCC/Havest l Merant PVCS l Microsoft VSS,CVS
常用的開源免費的軟體配置管理工具有:SVN、
GIT、CVS。
過程描述
一個軟體研發項目一般可以劃分為三個階段:計畫階段、開發階段和維護階段。然而從軟體配置管理的角度來看,後兩個階段所涉及的活動是一致,所以就把它們合二為一,成為“項目開發和維護”階段。
計畫階段
一個項目設立之初PM首先需要制定整個項目的研發計畫,之後,軟體配置管理的活動就可以展開了,因為如果不在項目開始之初制定軟體配置管理計畫,那么軟體配置管理的許多關鍵活動就無法及時有效的進行,而它的直接後果就是造成了項目開發狀況的混亂並注定軟體配置管理活動成為一種“救火”的行為。所以及時制定一份軟體配置管理計畫在一定程度上是項目成功的重要保證。
在軟體配置管理計畫的制定過程中,它的主要流程應該是這樣的:
CCB根據項目的開發計畫確定各個裡程碑和開發策略;
CMO根據CCB的規劃,制定詳細的配置管理計畫,交CCB審核;
CCB通過配置管理計畫後交項目經理批准,發布實施。
開發維護階段
這一階段是項目研發的主要階段。在這一階段中,軟體配置管理活動主要分為三個層面:
⑴主要由CMO完成的管理和維護工作;
⑵由SIO和DEV具體執行軟體配置管理策略;
⑶變更流程。這三個層面是彼此之間既獨立又互相聯繫的有機的整體。
在這個軟體配置管理過程中,它的核心流程應該是這樣的:
⑴CCB設定研發活動的初始基線;
⑵CMO根據軟體配置管理規劃設立配置庫和
工作空間,為執行軟體配置管理計畫做好準備;
⑶開發人員按照統一的軟體配置管理策略,根據獲得的授權的資源進行項目的研發工作;
⑷SIO按照項目的進度集成組內開發人員的工作成果,並構建系統,推進版本的演進;
⑸CCB根據項目的進展情況,審核各種變更請求,並適時的劃定新的基線,保證開發和維護工作有序的進行。
這個流程就是如此循環往復,直到項目的結束。當然,在上述的核心過程之外,還涉及其他一些相關的活動和操作流程,下面按不同的角色分工予以列出:
各開發人員按照項目經理髮布的開發策略或模型進行工作;
SIO負責將各分項目的工作成果歸併至集成分支,供測試或發布;
SIO可向CCB提出設立基線的要求,經批准後由CMO執行;
CMO定期向項目經理和CCB提交
審計報告,並在CCB例會中報告項目在
軟體過程中可能存在的問題和改進方案;在基線生效後,一切對基線和基線之前的開發成果的變更必須經CCB的批准;
CCB定期舉行例會,根據成員所掌握的情況、CMO的報告和開發人員的請求,對配置管理計畫作出修改,並向項目經理負責。