複製鏈接
請複製以下鏈接發送給好友

軟件配置管理

(標識、組織和控制修改的技術)

鎖定
軟件配置管理(Software Configuration Management,SCM)是一種標識、組織和控制修改的技術。軟件配置管理應用於整個軟件工程過程。在軟件建立時變更是不可避免的,而變更加劇了項目中軟件開發者之間的混亂。SCM活動的目標就是為了標識變更、控制變更、確保變更正確實現並向其他有關人員報告變更。從某種角度講,SCM是一種標識、組織和控制修改的技術,目的是使錯誤降為最小並最有效地提高生產效率。
中文名
軟件配置管理
外文名
Software Configuration Management,SCM
概    念
標識、組織和控制修改的技術
目    的
使錯誤降為最小,提高生產效率
學    科
軟件工程
領    域
軟件工程

軟件配置管理簡介

軟件配置管理(Software Configuration Management),又稱軟件形態管理、或軟件建構管理,簡稱軟件形管(SCM)。界定軟件的組成項目,對每個項目的變更進行管控(版本控制),並維護不同項目之間的版本關聯,以使軟件在開發過程中任一時間的內容都可以被追溯,包括某幾個具有重要意義的數個組合。 [1] 
軟件配置管理,貫穿於整個軟件生命週期,它為軟件研發提供了一套管理辦法和活動原則。軟件配置管理無論是對於軟件企業管理人員還是研發人員都有着重要的意義。軟件配置管理可以提煉為三個方面的內容:
VersionControl-版本控制;
ChangeControl-變更控制;
ProcessSupport-過程支持。
關鍵活動包括:配置項、工作空間管理、版本控制、變更控制、狀態報告、配置審計等。

軟件配置管理發展歷史

配置管理的概念源於美國空軍,為了規範設備的設計與製造,美國空軍1962年制定併發布了第一個配置管理的標準“AFSCM375-1,CM During the Development & Acquisition Phases”。 [2] 
而軟件配置管理概念的提出則在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的報告和開發人員的請求,對配置管理計劃作出修改,並向項目經理負責。
參考資料
  • 1.    Babich, W.A. (1986). Software Configuration Management, Coordination for Team Productivity. 1st edition. Boston: Addison-Wesley
  • 2.    Berczuk, Appleton; (2003). Software Configuration Management Patterns: Effective TeamWork, Practical Integration (1st ed.). Addison-Wesley.