軟件配置管理(Software Configuration Management,SCM)作為CMM 2級(jí)的一個(gè)關(guān)鍵域(Key Practice Area,KPA),在整個(gè)軟件的開發(fā)活動(dòng)中占有很重要的位置。正如Pressman所說(shuō)的:“軟件配置管理是貫穿于整個(gè)軟件過(guò)程中的保護(hù)性活動(dòng),它被設(shè)計(jì)來(lái)(1)標(biāo)識(shí)變化,(2)控制變化,(3)保證變化被適當(dāng)?shù)陌l(fā)現(xiàn),以及(4)向其他可能有興趣的人員報(bào)告變化。” 所以,我們必須為軟件配置管理活動(dòng)設(shè)計(jì)一個(gè)能夠融合于現(xiàn)有的軟件開發(fā)流程的管理過(guò)程,甚至直接以這個(gè)軟件配置管理過(guò)程為框架,來(lái)再造組織的軟件開發(fā)流程。
一、迅速發(fā)展的軟件配置管理
配置管理的概念源于美國(guó)空軍,為了規(guī)范設(shè)備的設(shè)計(jì)與制造,美國(guó)空軍1962年制定并發(fā)布了第一個(gè)配置管理的標(biāo)準(zhǔn)“AFSCM375-1,CM During the Development & Acquisition Phases”。
而軟件配置管理概念的提出則在20世紀(jì)60年代末70年代初。當(dāng)時(shí)加利福利亞大學(xué)圣巴巴拉分校的Leon Presser教授在承擔(dān)美國(guó)海軍的航空發(fā)動(dòng)機(jī)研制合同期間,撰寫了一篇名為“Change and Configuration Control”的論文,提出控制變更和配置的概念,這篇論文同時(shí)也是他在管理該項(xiàng)目(這個(gè)過(guò)程進(jìn)行過(guò)近一千四百萬(wàn)次修改)的一個(gè)經(jīng)驗(yàn)總結(jié)。
Leon Presser在1975年成立了一家名為SoftTool的公司,開發(fā)了配置管理工具:Change and Configuration Control(CCC),這是最早的配置管理工具之一。
隨著軟件工程的發(fā)展,軟件配置管理越來(lái)越成熟,從最初的僅僅實(shí)現(xiàn)版本控制,發(fā)展到現(xiàn)在的提供工作空間管理、并行開發(fā)支持、過(guò)程管理、權(quán)限控制、變更管理等一系列全面的管理能力,已經(jīng)形成了一個(gè)完整的理論體系。同時(shí)在軟件配置管理的工具方面,也出現(xiàn)了大批的產(chǎn)品,如:最著名的ClearCase;開源產(chǎn)品CVS;入門級(jí)工具M(jìn)icrosoft VSS;新秀Hansky Firefly。
在國(guó)外已經(jīng)有30多年歷史的軟件配置管理,但在國(guó)內(nèi)的發(fā)展卻是在21世紀(jì)這幾年的事。但是通過(guò)專家們的介紹,我們感受到,國(guó)內(nèi)的軟件配置管理已經(jīng)取得了迅速發(fā)展,并得到了軟件公司的普遍認(rèn)可。
二、軟件配置管理的基本目標(biāo)
軟件配置管理是在貫穿整個(gè)軟件生命周期中建立和維護(hù)項(xiàng)目產(chǎn)品的完整性。它的基本目標(biāo)包括:
目標(biāo) 1: 軟件配置管理的各項(xiàng)工作是有計(jì)劃進(jìn)行的。
目標(biāo) 2: 被選擇的項(xiàng)目產(chǎn)品得到識(shí)別,控制并且可以被相關(guān)人員獲取。
目標(biāo) 3: 已識(shí)別出的項(xiàng)目產(chǎn)品的更改得到控制。
目標(biāo) 4: 使相關(guān)組別和個(gè)人及時(shí)了解軟件基準(zhǔn)的狀態(tài)和內(nèi)容。
三、XSSC有關(guān)軟件配置管理的方針
為了達(dá)到上述目標(biāo), 如下的方針應(yīng)該得到貫徹執(zhí)行:
技術(shù)部門經(jīng)理和具體項(xiàng)目主管應(yīng)該使用和遵循XSSC的OSSP中所描述的軟件配置管理的工作過(guò)程。
施行軟件配置管理的職責(zé)應(yīng)被明確分配。相關(guān)人員得到軟件配置管理方面的培訓(xùn)。
技術(shù)部門經(jīng)理和具體項(xiàng)目主管應(yīng)該明確他們?cè)谙嚓P(guān)項(xiàng)目中所擔(dān)負(fù)的軟件配置管理方面的責(zé)任。
軟件配置管理工作應(yīng)該享有足夠的資金支持,這需要在客戶,技術(shù)部門經(jīng)理和具體項(xiàng)目主管之間協(xié)商。
軟件配置管理應(yīng)該實(shí)施于如下產(chǎn)品:對(duì)外交付的軟件產(chǎn)品,以及那些被選定的在項(xiàng)目中使用的支持類工具等。
軟件配置的整體性在整個(gè)項(xiàng)目生命周期中得到控制。
軟件質(zhì)量保證人員應(yīng)該定期審核各類軟件基準(zhǔn)以及軟件配置管理工作。
使軟件基準(zhǔn)的狀態(tài)和內(nèi)容能夠及時(shí)通知給相關(guān)組別和個(gè)人。
四、常用的軟件配置管理工具
現(xiàn)在常用的軟件配置管理工具主要分為三個(gè)級(jí)別:
l Rational ClearCase,CA CCC/Havest
l Merant PVCS
l Microsoft VSS,CVS
五.軟件配置管理角色職責(zé)
對(duì)于任何一個(gè)管理流程來(lái)說(shuō),保證該流程正常運(yùn)轉(zhuǎn)的前提條件就是要有明確的角色、職責(zé)和權(quán)限的定義。特別是在引入了軟件配置管理的工具之后,比較理想的狀態(tài)就是:組織內(nèi)的所有人員按照不同的角色的要求、根據(jù)系統(tǒng)賦予的權(quán)限來(lái)執(zhí)行相應(yīng)的動(dòng)作。因此,在本文所介紹的這個(gè)軟件配置管理過(guò)程中主要涉及下列的角色和分工:
項(xiàng)目經(jīng)理(Project Manager,PM):
項(xiàng)目經(jīng)理是整個(gè)軟件研發(fā)活動(dòng)的負(fù)責(zé)人,他根據(jù)軟件配置控制委員會(huì)的建議批準(zhǔn)配置管理的各項(xiàng)活動(dòng)并控制它們的進(jìn)程。其具體職責(zé)為以下幾項(xiàng):
制定和修改項(xiàng)目的組織結(jié)構(gòu)和配置管理策略;
批準(zhǔn)、發(fā)布配置管理計(jì)劃;
決定項(xiàng)目起始基線和開發(fā)里程碑;
接受并審閱配置控制委員會(huì)的報(bào)告。
配置控制委員會(huì)(Configuration Control Board,CCB):
負(fù)責(zé)指導(dǎo)和控制配置管理的各項(xiàng)具體活動(dòng)的進(jìn)行,為項(xiàng)目經(jīng)理的決策提供建議。其具體職責(zé)為以下幾項(xiàng):
定制開發(fā)子系統(tǒng);
定制訪問(wèn)控制;
制定常用策略;
建立、更改基線的設(shè)置,審核變更申請(qǐng);
根據(jù)配置管理員的報(bào)告決定相應(yīng)的對(duì)策。
配置管理員(Configuration Management Officer,CMO):
根據(jù)配置管理計(jì)劃執(zhí)行各項(xiàng)管理任務(wù),定期向CCB提交報(bào)告,告,并列席CCB的例會(huì)。其具體職責(zé)為以下幾項(xiàng):
軟件配置管理工具的日常管理與維護(hù);
提交配置管理計(jì)劃;
各配置項(xiàng)的管理與維護(hù);
執(zhí)行版本控制和變更控制方案;
完成配置審計(jì)并提交報(bào)告;
對(duì)開發(fā)人員進(jìn)行相關(guān)的培訓(xùn);
識(shí)別軟件開發(fā)過(guò)程中存在的問(wèn)題并擬就解決方案。
系統(tǒng)集成員(System Integration Officer,SIO):
系統(tǒng)集成員負(fù)責(zé)生成和管理項(xiàng)目的內(nèi)部和外部發(fā)布版本,其具體職責(zé)為以下幾項(xiàng):
集成修改;
構(gòu)建系統(tǒng);
完成對(duì)版本的日常維護(hù);
建立外部發(fā)布版本。
開發(fā)人員(Developer,DEV):
開發(fā)人員的職責(zé)就是根據(jù)組織內(nèi)確定的軟件配置管理計(jì)劃和相關(guān)規(guī)定,按照軟件配置管理工具的使用模型來(lái)完成開發(fā)任務(wù)。
六.軟件配置管理過(guò)程描述
一個(gè)軟件研發(fā)項(xiàng)目一般可以劃分為三個(gè)階段:計(jì)劃階段、開發(fā)階段和維護(hù)階段。然而從軟件配置管理的角度來(lái)看,后兩個(gè)階段所涉及的活動(dòng)是一致,所以就把它們合二為一,成為“項(xiàng)目開發(fā)和維護(hù)”階段。
項(xiàng)目計(jì)劃階段:
一個(gè)項(xiàng)目設(shè)立之初PM首先需要制定整個(gè)項(xiàng)目的計(jì)劃,它是項(xiàng)目研發(fā)工作的基礎(chǔ)。在有了總體研發(fā)計(jì)劃之后,軟件配置管理的活動(dòng)就可以展開了,因?yàn)槿绻辉陧?xiàng)目開始之初制定軟件配置管理計(jì)劃,那么軟件配置管理的許多關(guān)鍵活動(dòng)就無(wú)法及時(shí)有效的進(jìn)行,而它的直接后果就是造成了項(xiàng)目開發(fā)狀況的混亂并注定軟件配置管理活動(dòng)成為一種“救火”的行為。所以及時(shí)制定一份軟件配置管理計(jì)劃在一定程度上是項(xiàng)目成功的重要保證。
在軟件配置管理計(jì)劃的制定過(guò)程中,它的主要流程應(yīng)該是這樣的:
CCB根據(jù)項(xiàng)目的開發(fā)計(jì)劃確定各個(gè)里程碑和開發(fā)策略;
CMO根據(jù)CCB的規(guī)劃,制定詳細(xì)的配置管理計(jì)劃,交CCB審核;
CCB通過(guò)配置管理計(jì)劃后交項(xiàng)目經(jīng)理批準(zhǔn),發(fā)布實(shí)施。
項(xiàng)目開發(fā)維護(hù)階段:
這一階段時(shí)項(xiàng)目研發(fā)的主要階段。在這一階段中,軟件配置管理活動(dòng)主要分為三個(gè)層面:(1)主要由CMO完成的管理和維護(hù)工作;(2)由SIO和DEV具體執(zhí)行軟件配置管理策略;(3)變更流程。這三個(gè)層面是彼此之間既獨(dú)立又互相聯(lián)系的有機(jī)的整體。
在這個(gè)軟件配置管理過(guò)程中,它的核心流程應(yīng)該是這樣的:(1)CCB設(shè)定研發(fā)活動(dòng)的初始基線;(2)CMO根據(jù)軟件配置管理規(guī)劃設(shè)立配置庫(kù)和工作空間,為執(zhí)行軟件配置管理就阿做好準(zhǔn)備;(3)開發(fā)人員按照統(tǒng)一的軟件配置管理策略,根據(jù)獲得的授權(quán)的資源進(jìn)行項(xiàng)目的研發(fā)工作;(4)SIO按照項(xiàng)目的進(jìn)度集成組內(nèi)開發(fā)人員的工作成果,并構(gòu)建系統(tǒng),推進(jìn)版本的演進(jìn);(5)CCB根據(jù)項(xiàng)目的進(jìn)展情況,審核各種變更請(qǐng)求,并適時(shí)的劃定新的基線,保證開發(fā)和維護(hù)工作有序的進(jìn)行。
這個(gè)流程就是如此循環(huán)往復(fù),直到項(xiàng)目的結(jié)束。當(dāng)然,在上述的核心過(guò)程之外,還涉及其他一些相關(guān)的活動(dòng)和操作流程,下面按不同的角色分工予以列出:
各開發(fā)人員按照項(xiàng)目經(jīng)理發(fā)布的開發(fā)策略或模型進(jìn)行工作;
SIO負(fù)責(zé)將各分項(xiàng)目的工作成果歸并至集成分支,供測(cè)試或發(fā)布;
SIO可向CCB提出設(shè)立基線的要求,經(jīng)批準(zhǔn)后由CMO執(zhí)行;
CMO定期向項(xiàng)目經(jīng)理和CCB提交審計(jì)報(bào)告,并在CCB例會(huì)中報(bào)告項(xiàng)目在軟件過(guò)程中可能存在的問(wèn)題和改進(jìn)方案;
在基線生效后,一切對(duì)基線和基線之前的開發(fā)成果的變更必須經(jīng)CCB的批準(zhǔn);
CCB定期舉行例會(huì),根據(jù)成員所掌握的情況、CMO的報(bào)告和開發(fā)人員的請(qǐng)求,對(duì)配置管理計(jì)劃作出修改,并向項(xiàng)目經(jīng)理負(fù)責(zé)。
綜上所述,配置管理的工作流程如圖1所示:
七. 軟件配置管理的關(guān)鍵活動(dòng)
1.配置項(xiàng)(Software Configuration Item,SCI)識(shí)別
Pressman對(duì)于SCI給出了一個(gè)比較簡(jiǎn)單的定義:“軟件過(guò)程的輸出信息可以分為三個(gè)主要類別:(1)計(jì)算機(jī)程序(源代碼和可執(zhí)行程序),(2)描述計(jì)算機(jī)程序的文檔(針對(duì)技術(shù)開發(fā)者和用戶),以及(3)數(shù)據(jù)(包含在程序內(nèi)部或外部)。這些項(xiàng)包含了所有在軟件過(guò)程中產(chǎn)生的信息,總稱為軟件配置項(xiàng)。”
由此可見,配置項(xiàng)的識(shí)別是配置管理活動(dòng)的基礎(chǔ),也是制定配置管理計(jì)劃的重要內(nèi)容。
軟件配置項(xiàng)分類軟件的開發(fā)過(guò)程是一個(gè)不斷變化著的過(guò)程,為了在不嚴(yán)重阻礙合理變化的情況下來(lái)控制變化,軟件配置管理引入了“基線(Base Line)”這一概念。IEEE對(duì)基線的定義是這樣的:“已經(jīng)正式通過(guò)復(fù)審核批準(zhǔn)的某規(guī)約或產(chǎn)品,它因此可作為進(jìn)一步開發(fā)的基礎(chǔ),并且只能通過(guò)正式的變化控制過(guò)程改變。”
所以,根據(jù)這個(gè)定義,我們?cè)谲浖拈_發(fā)流程中把所有需加以控制的配置項(xiàng)分為基線配置項(xiàng)和非基線配置項(xiàng)兩類,例如:基線配置項(xiàng)可能包括所有的設(shè)計(jì)文檔和源程序等;非基線配置項(xiàng)可能包括項(xiàng)目的各類計(jì)劃和報(bào)告等。
配置項(xiàng)的標(biāo)識(shí)和控制
所有配置項(xiàng)都都應(yīng)按照相關(guān)規(guī)定統(tǒng)一編號(hào),按照相應(yīng)的模板生成,并在文檔中的規(guī)定章節(jié)(部分)記錄對(duì)象的標(biāo)識(shí)信息。在引入軟件配置管理工具進(jìn)行管理后,這些配置項(xiàng)都應(yīng)以一定的目錄結(jié)構(gòu)保存在配置庫(kù)中。
所有配置項(xiàng)的操作權(quán)限應(yīng)由CMO嚴(yán)格管理,基本原則是:基線配置項(xiàng)向軟件開發(fā)人員開放讀取得權(quán)限;非基線配置項(xiàng)向PM、CCB及相關(guān)人員開放。
2.工作空間管理
在引入了軟件配置管理工具之后,所有開發(fā)人員都會(huì)被要求把工作成果存放到由軟件配置管理工具所管理的配置庫(kù)中去,或是直接工作在軟件配置管理工具提供的環(huán)境之下。所以為了讓每個(gè)開發(fā)人員和各個(gè)開發(fā)團(tuán)隊(duì)能更好的分工合作,同時(shí)又互不干擾,對(duì)工作空間的管理和維護(hù)也成為了軟件配置管理的一個(gè)重要的活動(dòng)。
一般來(lái)說(shuō),比較理想的情況是把整個(gè)配置庫(kù)視為一個(gè)統(tǒng)一的工作空間,然后再根據(jù)需要把它劃分為個(gè)人(私有)、團(tuán)隊(duì)(集成)和全組(公共)這三類工作空間(分支),從而更好的支持將來(lái)可能出現(xiàn)的并行開發(fā)的需求。
每個(gè)開發(fā)人員按照任務(wù)的要求,在不同的開發(fā)階段,工作在不同的工作空間上,例如:對(duì)于私有開發(fā)空間而言,開發(fā)人員根據(jù)任務(wù)分工獲得對(duì)相應(yīng)配置項(xiàng)的操作許可之后,他即在自己的私有開發(fā)分支上工作,他的所有工作成果體現(xiàn)為在該配置項(xiàng)的私有分支上的版本的推進(jìn),除該開發(fā)人員外,其他人員均無(wú)權(quán)操作該私有空間中的元素;而集成分支對(duì)應(yīng)的是開發(fā)團(tuán)隊(duì)的公共空間,該開發(fā)團(tuán)隊(duì)擁有對(duì)該集成分支的讀寫權(quán)限,而其他成員只有只讀權(quán)限,它的管理工作由SIO負(fù)責(zé);至于公共工作空間,則是用于統(tǒng)一存放各個(gè)開發(fā)團(tuán)隊(duì)的階段性工作成果,它提供全組統(tǒng)一的標(biāo)準(zhǔn)版本,并作為整個(gè)組織的Knowledge Base。
當(dāng)然,由于選用的軟件配置管理工具的不同,在對(duì)于工作空間的配置和維護(hù)的實(shí)現(xiàn)上有比較大的差異,但對(duì)于CMO來(lái)說(shuō),這些工作是他的重要職責(zé),他必須根據(jù)各開發(fā)階段的實(shí)際情況來(lái)配置工作空間并定制相應(yīng)的版本選取規(guī)則,來(lái)保證開發(fā)活動(dòng)的正常運(yùn)作。在變更發(fā)生時(shí),應(yīng)及時(shí)做好基線的推進(jìn)。
3.版本控制
版本控制是軟件配置管理的核心功能。所有置于配置庫(kù)中的元素都應(yīng)自動(dòng)予以版本的標(biāo)識(shí),并保證版本命名的唯一性。版本在生成過(guò)程中,自動(dòng)依照設(shè)定的使用模型自動(dòng)分支、演進(jìn)。除了系統(tǒng)自動(dòng)記錄的版本信息以外,為了配合軟件開發(fā)流程的各個(gè)階段,我們還需要定義、收集一些元數(shù)據(jù)(Metadata)來(lái)記錄版本的輔助信息和規(guī)范開發(fā)流程,并為今后對(duì)軟件過(guò)程的度量做好準(zhǔn)備。當(dāng)然如果選用的工具支持的話,這些輔助數(shù)據(jù)將能直接統(tǒng)計(jì)出過(guò)程數(shù)據(jù),從而方便我們軟件過(guò)程改進(jìn)(Software Process Improvement,SPI)活動(dòng)的進(jìn)行。
對(duì)于配置庫(kù)中的各個(gè)基線控制項(xiàng),應(yīng)該根據(jù)其基線的位置和狀態(tài)來(lái)設(shè)置相應(yīng)的訪問(wèn)權(quán)限。一般來(lái)說(shuō),對(duì)于基線版本之前的各個(gè)版本都應(yīng)處于被鎖定的狀態(tài),如需要對(duì)它們進(jìn)行變更,則應(yīng)按照變更控制的流程來(lái)進(jìn)行操作。
4.變更控制
在對(duì)SCI的描述中,我們引入了基線的概念。從IEEE對(duì)于基線的定義中我們可以發(fā)現(xiàn),基線是和變更控制緊密相連的。也就是說(shuō)在對(duì)各個(gè)SCI做出了識(shí)別,并且利用工具對(duì)它們進(jìn)行了版本管理之后,如何保證它們?cè)趶?fù)雜多變得開發(fā)過(guò)程中真正的處于受控的狀態(tài),并在任何情況下都能迅速的恢復(fù)到任一歷史狀態(tài)就成為了軟件配置管理的另一重要任務(wù)。因此,變更控制就是通過(guò)結(jié)合人的規(guī)程和自動(dòng)化工具,以提供一個(gè)變化控制的機(jī)制。
在本文的前面的部分中,已經(jīng)把SCI分為基線配置項(xiàng)和非基線配置項(xiàng)兩大類,所以這里所涉及的變更控制的對(duì)象主要指配置庫(kù)中的各基線配置項(xiàng)。
變更管理的一般流程是:
A) (獲得)提出變更請(qǐng)求;
B) 由CCB審核并決定是否批準(zhǔn);
C) (被接受)修改請(qǐng)求分配人員為,提取SCI,進(jìn)行修改;
D) 復(fù)審變化;
E) 提交修改后的SCI;
F) 建立測(cè)試基線并測(cè)試;
G) 重建軟件的適當(dāng)版本;
H) 復(fù)審(審計(jì))所有SCI的變化;
I) 發(fā)布新版本。
在這樣的流程中,CMO通過(guò)軟件配置管理工具來(lái)進(jìn)行訪問(wèn)控制和同步控制,而這兩種控制則是建立在前文所描述的版本控制和分支策略的基礎(chǔ)上的。
5.狀態(tài)報(bào)告
配置狀態(tài)報(bào)告就是根據(jù)配置項(xiàng)操作數(shù)據(jù)庫(kù)中的記錄來(lái)向管理者報(bào)告軟件開發(fā)活動(dòng)的進(jìn)展情況。這樣的報(bào)告應(yīng)該是定期進(jìn)行,并盡量通過(guò)CASE工具自動(dòng)生成,用數(shù)據(jù)庫(kù)中的客觀數(shù)據(jù)來(lái)真實(shí)的反映各配置項(xiàng)的情況。
配置狀態(tài)報(bào)告應(yīng)根據(jù)報(bào)告應(yīng)著重反映當(dāng)前基線配置項(xiàng)的狀態(tài),以作為對(duì)開發(fā)進(jìn)度報(bào)告的參照。同時(shí)也能從中根據(jù)開發(fā)人員對(duì)配置項(xiàng)的操作記錄來(lái)對(duì)開發(fā)團(tuán)隊(duì)的工作關(guān)系作一定的分析。
配置狀態(tài)報(bào)告應(yīng)該包括下列主要內(nèi)容:
A) 配置庫(kù)結(jié)構(gòu)和相關(guān)說(shuō)明;
B) 開發(fā)起始基線的構(gòu)成;
C) 當(dāng)前基線位置及狀態(tài);
D) 各基線配置項(xiàng)集成分支的情況;
E) 各私有開發(fā)分支類型的分布情況;
F) 關(guān)鍵元素的版本演進(jìn)記錄;
G) 其它應(yīng)予報(bào)告的事項(xiàng)。
6.配置審計(jì)
配置審計(jì)的主要作用是作為變更控制的補(bǔ)充手段,來(lái)確保某一變更需求已被切實(shí)實(shí)現(xiàn)。在某些情況下,它被作為正式的技術(shù)復(fù)審的一部分,但當(dāng)軟件配置管理是一個(gè)正式的活動(dòng)時(shí),該活動(dòng)由SQA人員單獨(dú)執(zhí)行。
總之,軟件配置管理的對(duì)象是軟件研發(fā)活動(dòng)中的全部開發(fā)資產(chǎn)。所有這一切都應(yīng)作為配置項(xiàng)納入管理計(jì)劃統(tǒng)一進(jìn)行管理,從而能夠保證及時(shí)的對(duì)所有軟件開發(fā)資源進(jìn)行維護(hù)和集成。因此,軟件配置管理的主要任務(wù)也就歸結(jié)為以下幾條:(1)制定項(xiàng)目的配置計(jì)劃;(2)對(duì)配置項(xiàng)進(jìn)行標(biāo)識(shí);(3)對(duì)配置項(xiàng)進(jìn)行版本控制;(4)對(duì)配置項(xiàng)進(jìn)行變更控制;(5)定期進(jìn)行配置審計(jì);(6)向相關(guān)人員報(bào)告配置的狀態(tài)。
在此,我想特別指出的是:由于軟件配置管理覆蓋了整個(gè)軟件的開發(fā)過(guò)程,因此它是改進(jìn)我們的軟件過(guò)程、提高過(guò)程能力成熟度的理想的切入點(diǎn)。希望本文所描述的這個(gè)軟件配置管理的角色分配和工作流程能在實(shí)踐中不斷地得到完善,從而使我們的軟件開發(fā)活動(dòng)能夠更加有序、高效的進(jìn)行!
八、實(shí)施配置管理的收益
國(guó)內(nèi)很多軟件企業(yè)已經(jīng)逐漸認(rèn)識(shí)到配置管理的重要性,都希望通過(guò)實(shí)施配置管理來(lái)提高軟件開發(fā)管理的水平,增強(qiáng)企業(yè)自身的競(jìng)爭(zhēng)力,應(yīng)對(duì)市場(chǎng)的壓力。
針對(duì)市場(chǎng)的這些需求,Hansky公司在中國(guó)市場(chǎng)推出了業(yè)界技術(shù)領(lǐng)先的軟件配置管理解決方案,產(chǎn)品包括配置管理工具Firefly和變更管理工具Butterfly。Firefly是Hansky公司推出的軟件配置管理系統(tǒng),它可以輕松管理、維護(hù)整個(gè)企業(yè)的軟件、代碼和文檔。Firefly是一個(gè)高性能、運(yùn)行速度極快的軟件配置管理系統(tǒng),支持不同的開發(fā)、運(yùn)行平臺(tái),因此它能在整個(gè)企業(yè)中的不同團(tuán)隊(duì)、不同項(xiàng)目中都得以廣泛的應(yīng)用。Firefly能夠?qū)F(tuán)隊(duì)開發(fā)提供有力的支持,開發(fā)團(tuán)隊(duì)一旦擁有了Firefly,就可以非常準(zhǔn)確的定義:
軟件將在什么時(shí)間發(fā)布;
當(dāng)前發(fā)布版本中有哪些功能,由哪些組件構(gòu)成;
當(dāng)前版本中加入了針對(duì)哪些Bug的修改;
軟件的某個(gè)修改是誰(shuí)認(rèn)可的;
如何建立新的發(fā)布版本;
等等…
Butterfly是Hansky公司提供的新一代的軟件變更請(qǐng)求管理軟件。它以軟件產(chǎn)品為中心,有效的協(xié)調(diào)軟件項(xiàng)目中各職位人員的工作,能夠使軟件項(xiàng)目在較短時(shí)間內(nèi)高質(zhì)量完成。
Butterfly的主要功能如下:
提供對(duì)開發(fā)過(guò)程中的缺陷、建議和任務(wù)的追蹤管理;
規(guī)劃開發(fā)過(guò)程,完善源代碼編寫,提高軟件重用率,最大限度保護(hù)企業(yè)知識(shí)財(cái)富;
提供豐富的報(bào)表功能,以直觀圖形統(tǒng)計(jì)開發(fā)人員的工作進(jìn)度和編碼質(zhì)量,客觀評(píng)價(jià)員工表現(xiàn);
優(yōu)化業(yè)務(wù)流程,科學(xué)的工作流系統(tǒng)使用戶工作起來(lái)有條不紊,大大提高工作效率,同時(shí)用戶可以根據(jù)實(shí)際情況簡(jiǎn)單、快捷地定制自己的業(yè)務(wù)流程;
掌握工作進(jìn)度,在軟件開發(fā)的各個(gè)階段進(jìn)行都可以進(jìn)行強(qiáng)大的過(guò)程控制;
開發(fā)人員可以明確地了解他被分配的開發(fā)任務(wù),并根據(jù)優(yōu)先級(jí)依次完成;
提供友好的人機(jī)界面,支持工作分配的電子郵件自動(dòng)通知,方便各種類型的工作人員使用,增加溝通和交流;
對(duì)軟件的錯(cuò)誤進(jìn)行系統(tǒng)管理,從根本上提高軟件產(chǎn)品競(jìng)爭(zhēng)力,提高產(chǎn)品質(zhì)量;
加速開發(fā)進(jìn)程,規(guī)范軟件產(chǎn)品開發(fā)的各個(gè)階段,避免浪費(fèi)不必要的時(shí)間。
Hansky公司的配置管理解決方案給公司帶來(lái)的益處將是顯而易見的:管理者能夠輕松控制產(chǎn)品的進(jìn)度、質(zhì)量;開發(fā)人員將有更多的時(shí)間進(jìn)行創(chuàng)造性的工作;測(cè)試人員將依照一個(gè)標(biāo)準(zhǔn)的流程高效完成日常工作;產(chǎn)品發(fā)布人員能夠確保交到用戶手中的產(chǎn)品的質(zhì)量。
具體而言,用戶可以在資金、管理水平和保護(hù)知識(shí)財(cái)富等方面得到切實(shí)收益。
節(jié)約用戶資金
(1) Hansky配置管理系統(tǒng)的總體實(shí)施成本低
對(duì)硬件系統(tǒng)性能的要求低,可以跨平臺(tái)使用,節(jié)約了用戶的投資;
安裝簡(jiǎn)單,易于維護(hù),無(wú)需專職的系統(tǒng)管理員;
功能簡(jiǎn)潔、實(shí)用,易于學(xué)習(xí)和掌握,可以有效縮短配置管理系統(tǒng)投入實(shí)際使用的周期;
良好的擴(kuò)展性和靈活的License管理方式,以及組件式的解決方案,使得我們的配置管理系統(tǒng)既支持小組模式的用戶,也能夠支持大規(guī)模團(tuán)隊(duì)的協(xié)同開發(fā)工作,并且能夠方便地進(jìn)行擴(kuò)展,用戶可以根據(jù)實(shí)際需要,靈活的配置,大大降低了降低初期投入的資金;
具有前瞻性,保護(hù)用戶的投資。Hansky公司的軟件配置管理產(chǎn)品采用最新的技術(shù)(如純TCP/IP技術(shù)、J2EE技術(shù)、MS .NET的開發(fā)環(huán)境等)和全新的應(yīng)用模式(如三層結(jié)構(gòu)、B/S應(yīng)用結(jié)構(gòu)等),確保系統(tǒng)在較長(zhǎng)的時(shí)間內(nèi)不會(huì)落后于同類產(chǎn)品或不需要技術(shù)上的更新;
自帶存儲(chǔ)庫(kù)增量備份/恢復(fù)功能,節(jié)約用戶在備份方面的支出。
(2) 縮短用戶的產(chǎn)品開發(fā)周期
利用Hansky的Firefly系統(tǒng)對(duì)開發(fā)資源進(jìn)行版本管理和跟蹤,可以建立公司級(jí)的代碼知識(shí)庫(kù),保存開發(fā)過(guò)程中的所有歷史版本,這樣大大提高了代碼的復(fù)用率,還便于同時(shí)維護(hù)多個(gè)版本和進(jìn)行新版本的開發(fā),最大限度地共享代碼。利用Butterfly組建開發(fā)團(tuán)體之間的問(wèn)題跟蹤及消息通訊機(jī)制,通過(guò)與電子郵件系統(tǒng)的結(jié)合大大增強(qiáng)了開發(fā)團(tuán)體之間的溝通能力,通過(guò)豐富的報(bào)表功能可對(duì)發(fā)現(xiàn)的問(wèn)題進(jìn)行整理、以報(bào)表方式分類報(bào)出,作為開發(fā)的指導(dǎo)。通過(guò)使用Hansky的配置管理套件可以提高開發(fā)效率和產(chǎn)品質(zhì)量,避免了代碼覆蓋、溝通不夠、開發(fā)無(wú)序的混亂局面,大大縮短了產(chǎn)品的開發(fā)周期。
(3) 降低產(chǎn)品的部署費(fèi)用
使用Hansky的軟件配置管理解決方案后,用戶可以在Hansky技術(shù)專家的幫助下建立規(guī)范的配置管理流程,所有的軟件產(chǎn)品將得到統(tǒng)一有效的管理。借助Firefly和Butterfly,工程人員可以通過(guò)訪問(wèn)服務(wù)器直接獲取所需的最新版本,查找公司的知識(shí)庫(kù),提交變更請(qǐng)求,收集用戶的反饋意見。開發(fā)人員無(wú)需到現(xiàn)場(chǎng)即可再現(xiàn)用戶環(huán)境,集中解決問(wèn)題,發(fā)布補(bǔ)丁。這樣可以同時(shí)響應(yīng)多個(gè)地點(diǎn)的項(xiàng)目,防止開發(fā)人員分配到各個(gè)項(xiàng)目點(diǎn)、力量分散、人員不夠的弊端,同時(shí)節(jié)約大量的旅差費(fèi)用。
提高軟件開發(fā)管理的水平
(1) 改進(jìn)用戶的開發(fā)工作模式
使用Hansky的配置管理解決方案,可以有效地改進(jìn)用戶的軟件開發(fā)模式和過(guò)程,提高企業(yè)軟件能力成熟度的級(jí)別。
借助Firefly和Butterfly,用戶可以:
有效的管理工作空間,各個(gè)成員的具有獨(dú)立的工作空間,并能記錄其變更集和整個(gè)生命周期中的完整變更歷史;
簡(jiǎn)便建立分支,支持分支之間的比較與合并,歸并,管理基線;
支持并行開發(fā)模式,提高開發(fā)效率;
支持異地開發(fā),F(xiàn)irefly通過(guò)自動(dòng)或手動(dòng)同步不同開發(fā)地點(diǎn)的的存儲(chǔ)庫(kù),為地理分布的開發(fā)團(tuán)隊(duì)提供很好的支持;
集成變更請(qǐng)求管理與項(xiàng)目生存周期中的變更記錄與追蹤,優(yōu)化測(cè)試流程;
完善的發(fā)布管理,可以方便的回溯任意版本,為不同的用戶定制應(yīng)用程序的版本,促進(jìn)系統(tǒng)的快速部署,提供發(fā)布版本內(nèi)容的審計(jì)能力;
支持變更集和原子事務(wù),確保變更的一致性;
支持離線的版本管理,幫助用戶記錄項(xiàng)目證明周期內(nèi)的完整歷史;
內(nèi)置Defect、RFE、Task(問(wèn)題、建議、任務(wù))工作流,符合正規(guī)軟件公司的軟件開發(fā)流程。科學(xué)的工作流系統(tǒng)可以使公司人員工作起來(lái)得心應(yīng)手,有條不紊,從而大大提高工作效率。
(2) 加強(qiáng)項(xiàng)目管理能力
通過(guò)瀏覽器,項(xiàng)目負(fù)責(zé)人可以方便地查看項(xiàng)目進(jìn)展情況以及員工工作情況;
利用Web界面即可實(shí)現(xiàn)代碼復(fù)查和項(xiàng)目狀態(tài)復(fù)查;
豐富的圖表、報(bào)告功能,可以自動(dòng)生成變更統(tǒng)計(jì)報(bào)告、配置審計(jì)報(bào)告,支持過(guò)程管理與進(jìn)度分析,能夠幫助管理者進(jìn)行決策。
(3) 量化工作量考核
傳統(tǒng)的開發(fā)管理中,工作量一直是難以估量的指標(biāo)??块_發(fā)人員自己把握,隨意性過(guò)大;靠管理人員把握,主觀性又太強(qiáng)。采用Firefly和Butterfly管理后,系統(tǒng)能夠客觀的記錄員工的工作內(nèi)容和質(zhì)量,可以作為工作量的衡量指標(biāo)。
(4) 規(guī)范測(cè)試流程
Butterfly和Firefly集成后,可以有效地跟蹤和處理軟件的變更,完整地記錄測(cè)試人員的工作內(nèi)容,測(cè)試有了實(shí)實(shí)在在的工作,測(cè)試人員根據(jù)修改描述細(xì)節(jié)對(duì)每一天的工作做具體的測(cè)試。對(duì)測(cè)試人員也具有相應(yīng)的可考核性,這樣環(huán)環(huán)相扣,有效地增強(qiáng)了對(duì)測(cè)試的管理。
(5) 加強(qiáng)協(xié)調(diào)與溝通,增加團(tuán)隊(duì)競(jìng)爭(zhēng)力
使用Firefly保存公司的所有知識(shí)財(cái)富、利用Butterfly的FAQ、檢索以及Email自動(dòng)通知功能,有效地加強(qiáng)了項(xiàng)目成員之間的溝通,做到有問(wèn)題及時(shí)發(fā)現(xiàn)、及時(shí)修改、及時(shí)通知,卻又不會(huì)額外增加很多的工作量,大大提高了開發(fā)團(tuán)隊(duì)的協(xié)同工作效率。
保護(hù)企業(yè)的知識(shí)財(cái)富
從整個(gè)企業(yè)的發(fā)展戰(zhàn)略來(lái)說(shuō),如何在技術(shù)日新月異、人員流動(dòng)頻繁的情況下,本公司的知識(shí)庫(kù)及經(jīng)驗(yàn)庫(kù),把個(gè)人的知識(shí)及經(jīng)驗(yàn)轉(zhuǎn)變?yōu)楣镜闹R(shí)和經(jīng)驗(yàn),這對(duì)于提高工作效率、縮短產(chǎn)品周期以及提高公司的競(jìng)爭(zhēng)力都具有至關(guān)重要的作用。采用科學(xué)的配置管理思想,輔之以先進(jìn)的配置管理工具,可以幫助用戶在內(nèi)部建立完善的知識(shí)管理體系。
(1) 代碼對(duì)象庫(kù)
軟件代碼是軟件開發(fā)人員腦力勞動(dòng)的結(jié)晶,也是軟件公司的寶貴財(cái)富,長(zhǎng)期開發(fā)過(guò)程中形成的各種代碼對(duì)象就像一個(gè)個(gè)零件一樣,是快速生成系統(tǒng)的組成部分。然而長(zhǎng)期以來(lái)的一個(gè)事實(shí)是:一旦某個(gè)開發(fā)人員離開工作崗位,其原來(lái)所編寫的代碼便基本成為垃圾,無(wú)人過(guò)問(wèn);或者由于文檔不全,無(wú)從考究。究其原因,就是沒(méi)有專門對(duì)每個(gè)開發(fā)人員的代碼、組件和文檔進(jìn)行科學(xué)的管理,將其應(yīng)用范圍擴(kuò)大到公司一級(jí),進(jìn)行規(guī)范化,加以說(shuō)明和普及。Firefly為代碼管理提供了一個(gè)平臺(tái)和倉(cāng)庫(kù),有利于建立公司級(jí)的代碼對(duì)象庫(kù),增進(jìn)代碼復(fù)用,提高開發(fā)重用率和軟件質(zhì)量。
(2) 業(yè)務(wù)及經(jīng)驗(yàn)庫(kù)
通過(guò)Firefly和Butterfly,可自動(dòng)生成完整的開發(fā)日志及問(wèn)題集合,用文字記錄開發(fā)的整個(gè)過(guò)程,不會(huì)因某人的流動(dòng)而消失,有利于公司積累業(yè)務(wù)經(jīng)驗(yàn),無(wú)論對(duì)軟件維護(hù)或版本升級(jí),都具有重要的指導(dǎo)作用。此外,利用Butterfly內(nèi)建的FAQ模塊,可以建立檢索方便的經(jīng)驗(yàn)庫(kù),傳播和共享集體的智慧。
(3) 安全性和可靠性
由于配置管理系統(tǒng)集中存儲(chǔ)了企業(yè)的重要知識(shí)財(cái)富,因此對(duì)其安全性和可靠性有極高的要求。Firefly可以對(duì)所有存儲(chǔ)的文件進(jìn)行冗余校驗(yàn),使用MD5作為文件的校驗(yàn)和,并提供備份和恢復(fù)工具,確保了數(shù)據(jù)的可靠性。同時(shí)Firefly支持用戶身份驗(yàn)證和訪問(wèn)控制,支持用戶組,便于權(quán)限設(shè)置。訪問(wèn)控制可以針對(duì)分支、目錄,甚至單個(gè)文件設(shè)置,采用類似Windows NTFS的權(quán)限管理方式,既靈活又安全。這些措施使得企業(yè)的知識(shí)財(cái)富得到了安全可靠的存儲(chǔ)和保護(hù)。
另外,由于Hansky的產(chǎn)品采用了三層結(jié)構(gòu)設(shè)計(jì),其存儲(chǔ)庫(kù)完全不依賴于網(wǎng)絡(luò)文件體統(tǒng),無(wú)需共享存儲(chǔ)目錄,能夠有效防止病毒攻擊所導(dǎo)致的存儲(chǔ)庫(kù)癱瘓或損壞,同時(shí)杜絕網(wǎng)絡(luò)非法訪問(wèn)。
聯(lián)系客服