軟件配置管理(SCM——Software Configuration Management)是ISO9001和CMM Level2中的重要組成元素,它在軟件產(chǎn)品開發(fā)的生命周期中,提供了結(jié)構(gòu)化的、有序化的、產(chǎn)品化的管理軟件工程的方法,是軟件開發(fā)和維護的基礎(chǔ)。
SCM是指通過技術(shù)及行政手段對軟件產(chǎn)品及其開發(fā)過程和生命周期進行控制、規(guī)范的一系列措施和過程,它通過控制、記錄、追蹤對軟件的修改和每個修改生成的軟件組成部件來實現(xiàn)對軟件產(chǎn)品的管理。SCM可以協(xié)調(diào)軟件開發(fā)使得混亂減到最小,是一種標(biāo)識、組織和控制修改的技術(shù),目的是使錯誤達到最小并最有效地提高生產(chǎn)效率。
一、SCM使軟件產(chǎn)品變?yōu)槭芸氐暮涂深A(yù)見的,它控制這樣幾個問題:
1. 誰做的變更?->WHO
2. 軟件有什么變更?->WHAT
3. 什么時間做的變更?->WHEN
4. 為何要變更?->WHY
通過實施SCM,可以達到可重用過程制度化,包括:滿足組織的政策方針、計劃和過程描述文檔化、分配適當(dāng)資源(包括資金,人員和工具)、確定責(zé)任和權(quán)限、培訓(xùn)相關(guān)人員、通過不同級別的管理方法和糾正活動檢測狀態(tài)。
置于SCM之下的工作產(chǎn)品包括發(fā)送給用戶的軟件產(chǎn)品(如軟件需求文檔,軟件代碼),用于內(nèi)部使用的軟件工作產(chǎn)品(如過程描述),和用于創(chuàng)建工作產(chǎn)品的工具等(如操作系統(tǒng)、數(shù)據(jù)庫、開發(fā)工具)。
SCM還用于建立和維護軟件工作產(chǎn)品基線?;€是由配置項及相關(guān)實體組成的,包括組成軟件產(chǎn)品的相關(guān)版本、設(shè)計、代碼、用戶文檔等。它是軟件生命周期中各開發(fā)階段末尾的特定點,即里程碑。通過正式的技術(shù)評審而得到的軟件配置的正式文本才能成為基線,它的作用是使各個階段工作的劃分更加明確化,使本來連續(xù)的工作在這些點上斷開,以便于檢驗和肯定階段成果?;€是配置項繼續(xù)發(fā)展的一個固定基礎(chǔ)。
實施SCM不論是對軟件開發(fā)者、測試者、項目經(jīng)理、QA人員,還是客戶都將會獲得很多好處:有助于規(guī)范團隊各個角色的行為,同時又為各個角色之間的任務(wù)傳遞和交流提供無縫的接合;能幫助項目經(jīng)理更好地了解項目的進度、開發(fā)人員的負(fù)荷、工作效率和產(chǎn)品質(zhì)量狀況、交付日期等信息。
二、SCM分為四大功能領(lǐng)域:配置標(biāo)識、變更控制、配置狀態(tài)統(tǒng)計、配置審核。
配置標(biāo)識包括標(biāo)識軟件系統(tǒng)的結(jié)構(gòu),標(biāo)識獨立部件,并使它們是可訪問的。配置標(biāo)識的目的,是在整個生命周期中標(biāo)識系統(tǒng)各部件并提供對軟件及其軟件產(chǎn)品的跟蹤能力。(SPLM系統(tǒng)中的編碼系統(tǒng))
配置變更控制包括在軟件生命周期中控制軟件產(chǎn)品的發(fā)布和變更,目的是建立確保軟件產(chǎn)品質(zhì)量的機制。它回答:什么是受控的?受控產(chǎn)品怎樣變更?誰控制變更?何時接受,恢復(fù),驗證變更?(SPLM系統(tǒng)中的變更流程,基于CMII)
配置狀態(tài)統(tǒng)計包括記錄和報告變更過程,目標(biāo)是不間斷記錄所有基線項的狀態(tài)和歷史,并進行維護,它解決以下問題:系統(tǒng)已經(jīng)做了什么變更?此問題將會對多少個文件產(chǎn)生影響?(SPLM系統(tǒng)中的流程查看,需要完善)
配置審核將驗證軟件產(chǎn)品的構(gòu)造是否符合需求、標(biāo)準(zhǔn)、或合同的要求,目的是根據(jù)SCM的過程和程序,驗證所有的軟件產(chǎn)品已經(jīng)產(chǎn)生并有正確標(biāo)識和描述,所有的變更需求都已解決。它回答:系統(tǒng)和需求是否吻合?是否所有變更都是在版本控制下?(SPLM系統(tǒng)中的評審過程,通過表單和質(zhì)量小組實現(xiàn))
三、SCM從應(yīng)用層次上可以從低到高分為三級:版本控制、以開發(fā)者為中心、過程驅(qū)動。
版本控制主要應(yīng)用于個人獨立開發(fā)或小組開發(fā),它可以控制任何文件的版本、實現(xiàn)分支和歸并功能、進行文本比較、標(biāo)記注釋和版本報告信息,主要工具有我們目前用到的Visual SourceSafe及Intersolv PVCS。(PLM已經(jīng)應(yīng)用微軟的VSS,SPLM系統(tǒng)沒有這個功能)
以開發(fā)者為中心主要應(yīng)用于部門級開發(fā),它可用于軟件維護、不斷增加的開發(fā)任務(wù)、并行開發(fā)、QA及測試,它面向大型團隊、利于交流、能最大限度地利用人力資源,主要工具為Rational ClearCase及MKS Source Integrity。(SPLM系統(tǒng)中的功能基本都有,需要不斷測試完善,特別加上強壯的建模能力和流程系統(tǒng),與ClearCase等產(chǎn)品競爭是有技術(shù)優(yōu)勢的)
過程驅(qū)動主要使用于企業(yè)級開發(fā),著重解決新的工具引入、IT審核、管理報告、復(fù)雜的生命周期、應(yīng)用工具包、集成解決方案、資料庫等問題,實現(xiàn)真正規(guī)范的團隊開發(fā),主要工具為Platinum Technology CCC/Harvest。(SPLM系統(tǒng)在這方面沒有進行實踐,需要應(yīng)用并總結(jié),比如對英泰各個事業(yè)部的軟件資源管理,其他相關(guān)資料庫等)
四、不同軟件配置工具的特色比較。
根據(jù)IDC1的1999年SCM工具市場調(diào)查,排名第一的正是Rational ClearCase,第二位則是CA公司的CCC/Harvest,第三位就是MERANT公司的PVCS系列,微軟排名第六.Visual Source Safe不能算是一個完整的軟件配置管理工具,只是版本控制做的很好,當(dāng)然對于國內(nèi)目前大多數(shù)的軟件工程實踐而言已經(jīng)足夠.而pvcs和 clearcase是比較完整意義上的SCM軟件,稱為full-fledged SCM Tools.
此外配置管理工具比較流行的還有: CCC/HARVEST, Continuus, Change Man,
Source Integrity, TRUEchange, TeamConnect等. 對于PVCS的配置管理工具叫 PVCS Process Manager. 當(dāng)然上面列的是一些可運行于WINDOWS/NT平臺的工具, 在UNIX下還有一些.
VSS只是一個版本管理的工具, 如果用于做配置管理的話, 有些勉為其難。
比如說, 我們無法在VSS中輸出有關(guān)的配置報告, 不易做到對變更的審查及控制. 當(dāng)然如果你另外再制定一套完善的配置管理制定, 并將相應(yīng)的文檔用VSS統(tǒng)統(tǒng)管理起來也是可以的.做為版本管理工具而言, VSS還是很不錯的, 我們一直都用它, 它也有象分支, 版本合并, Multi-checkout等功能.
PVCS有兩個版本, 一個也是與VSS相同的, 用于進行版本管理 另一個是"Process Management"的版本,是一個配置管理的工具.
Rational ClearCase應(yīng)當(dāng)算是配置管理工具了, 配置管理中的基本功能都有,但覺得好象輸出報告的能力不是很強.