軟件配置管理(Software Configuration Management,SCM)是一種標識、組織和控制修改的javascript:tagshow(event, '%BC%BC%CA%F5');" href="javascript:;" target=_self>技術。軟件配置管理應用于整個軟件工程過程。我們知道,在軟件建立時變更是不可避免的,而變更加劇了項目中軟件開發者之間的混亂。SCM活動的目標就是為了標識變更、控制變更、確保變更正確實現并向其他有關人員報告變更。從某種角度講,SCM是一種標識、組織和控制修改的技術,目的是使錯誤降為最小并最有效地提高生產效率。
軟件配置管理(Software Configuration Management,SCM)作為CMM 2級的一個關鍵域(Key Practice Area,KPA),在整個軟件的開發活動中占有很重要的位置。正如Pressman所說的:“軟件配置管理是貫穿于整個軟件過程中的保護性活動,它被設計來(1)標識變化,(2)控制變化,(3)保證變化被適當的發現,以及(4)向其他可能有興趣的人員報告變化! 所以,我們必須為軟件配置管理活動設計一個能夠融合于現有的軟件開發流程的管理過程,甚至直接以這個軟件配置管理過程為框架,來再造組織的軟件開發流程。
一、迅速發展的軟件配置管理
配置管理的概念源于美國空軍,為了規范設備的設計與制造,美國空軍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),這是最早的配置管理工具之一。
隨著軟件工程的發展,軟件配置管理越來越成熟,從最初的僅僅實現版本控制,發展到現在的提供工作空間管理、并行開發支持、過程管理、權限控制、變更管理等一系列全面的管理能力,已經形成了一個完整的理論體系。同時在軟件配置管理的工具方面,也出現了大批的產品,如:最著名的ClearCase;開源產品CVS;入門級工具Microsoft VSS;新秀Hansky Firefly。
在國外已經有30多年歷史的軟件配置管理,但在國內的發展卻是在21世紀這幾年的事。但是通過專家們的介紹,我們感受到,國內的軟件配置管理已經取得了迅速發展,并得到了軟件公司的普遍認可。
二、軟件配置管理的基本目標
軟件配置管理是在貫穿整個軟件生命周期中建立和維護項目產品的完整性。它的基本目標包括:
目標 1: 軟件配置管理的各項工作是有計劃進行的。
目標 2: 被選擇的項目產品得到識別,控制并且可以被相關人員獲取。
目標 3: 已識別出的項目產品的更改得到控制。
目標 4: 使相關組別和個人及時了解軟件基準的狀態和內容。
三、XSSC有關軟件配置管理的方針
為了達到上述目標, 如下的方針應該得到貫徹執行:
技術部門經理和具體項目主管應該使用和遵循XSSC的OSSP中所描述的軟件配置管理的工作過程。
施行軟件配置管理的職責應被明確分配。相關人員得到軟件配置管理方面的培訓。
技術部門經理和具體項目主管應該明確他們在相關項目中所擔負的軟件配置管理方面的責任。
軟件配置管理工作應該享有足夠的資金支持,這需要在客戶,技術部門經理和具體項目主管之間協商。
軟件配置管理應該實施于如下產品:對外交付的軟件產品,以及那些被選定的在項目中使用的支持類工具等。
軟件配置的整體性在整個項目生命周期中得到控制。
軟件質量保證人員應該定期審核各類軟件基準以及軟件配置管理工作。
使軟件基準的狀態和內容能夠及時通知給相關組別和個人。
四、常用的軟件配置管理工具
現在常用的軟件配置管理工具主要分為三個級別:
●Rational ClearCase,CA CCC/Havest
● Merant PVCS
● Microsoft VSS,CVS
五、軟件配置管理角色職責
對于任何一個管理流程來說,保證該流程正常運轉的前提條件就是要有明確的角色、職責和權限的定義。特別是在引入了軟件配置管理的工具之后,比較理想的狀態就是:組織內的所有人員按照不同的角色的要求、根據系統賦予的權限來執行相應的動作。因此,在本文所介紹的這個軟件配置管理過程中主要涉及下列的角色和分工:
項目經理(Project Manager,PM):
項目經理是整個軟件研發活動的負責人,他根據軟件配置控制委員會的建議批準配置管理的各項活動并控制它們的進程。其具體職責為以下幾項:
制定和修改項目的組織結構和配置管理策略;
批準、發布配置管理計劃;
決定項目起始基線和開發里程碑;
接受并審閱配置控制委員會的報告。
配置控制委員會(Configuration Control Board,CCB):
負責指導和控制配置管理的各項具體活動的進行,為項目經理的決策提供建議。其具體職責為以下幾項:
定制開發子系統;
定制訪問控制;
制定常用策略;
建立、更改基線的設置,審核變更申請;
根據配置管理員的報告決定相應的對策。
配置管理員(Configuration Management Officer,CMO):
根據配置管理計劃執行各項管理任務,定期向CCB提交報告,告,并列席CCB的例會。其具體職責為以下幾項:
軟件配置管理工具的日常管理與維護;
提交配置管理計劃;
各配置項的管理與維護;
執行版本控制和變更控制方案;
完成配置審計并提交報告;
對開發人員進行相關的培訓;
識別軟件開發過程中存在的問題并擬就解決方案。
系統集成員(System Integration Officer,SIO):
系統集成員負責生成和管理項目的內部和外部發布版本,其具體職責為以下幾項:
集成修改;
構建系統;
完成對版本的日常維護;
建立外部發布版本。
開發人員(Developer,DEV):
開發人員的職責就是根據組織內確定的軟件配置管理計劃和相關規定,按照軟件配置管理工具的使用模型來完成開發任務。
文章來源于領測軟件測試網 http://www.kjueaiud.com/