日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Sawin軟件研發(fā)之窗:軟件配置管理過程及其關(guān)鍵活動

 ekylin 2006-08-07

軟件配置管理過程及其關(guān)鍵活動

PMT 陳越


隨著軟件產(chǎn)業(yè)的崛起,軟件工程技術(shù)正吸引著越來越多關(guān)注的目光。特別是以CMM為代表的先進的軟件工程理念在國內(nèi)也正日益受到業(yè)界廣泛的重視。
軟件配置管理(Software Configuration Management,SCM)作為CMM 2級的一個關(guān)鍵域(Key Practice Area,KPA),在整個軟件的開發(fā)活動中占有很重要的位置。正如Pressman所說的:“軟件配置管理是貫穿于整個軟件過程中的保護性活動,它被設(shè)計來(1)標識變化,(2)控制變化,(3)保證變化被適當?shù)陌l(fā)現(xiàn),以及(4)向其他可能有興趣的人員報告變化。” 所以,我們必須為軟件配置管理活動設(shè)計一個能夠融合于現(xiàn)有的軟件開發(fā)流程的管理過程,甚至直接以這個軟件配置管理過程為框架,來再造組織的軟件開發(fā)流程。
本文參照了CMM 2級中軟件配置管理的相關(guān)的要求,充分考慮了在CASE工具的輔助下實現(xiàn)自動的軟件配置管理的可能性,描述了在一個比較理想的軟件研發(fā)組織中軟件配置管理的流程及其關(guān)鍵活動。

一. 角色職責

對于任何一個管理流程來說,保證該流程正常運轉(zhuǎn)的前提條件就是要有明確的角色、職責和權(quán)限的定義。特別是在引入了軟件配置管理的工具之后,比較理想的狀態(tài)就是:組織內(nèi)的所有人員按照不同的角色的要求、根據(jù)系統(tǒng)賦予的權(quán)限來執(zhí)行相應(yīng)的動作。因此,在本文所介紹的這個軟件配置管理過程中主要涉及下列的角色和分工:

項目經(jīng)理(Project Manager,PM):

項目經(jīng)理是整個軟件研發(fā)活動的負責人,他根據(jù)軟件配置控制委員會的建議批準配置管理的各項活動并控制它們的進程。其具體職責為以下幾項:
制定和修改項目的組織結(jié)構(gòu)和配置管理策略;
批準、發(fā)布配置管理計劃;
決定項目起始基線和開發(fā)里程碑;
接受并審閱配置控制委員會的報告。

配置控制委員會(Configuration Control Board,CCB):

負責指導(dǎo)和控制配置管理的各項具體活動的進行,為項目經(jīng)理的決策提供建議。其具體職責為以下幾項:
定制開發(fā)子系統(tǒng);
定制訪問控制;
制定常用策略;
建立、更改基線的設(shè)置,審核變更申請;
根據(jù)配置管理員的報告決定相應(yīng)的對策。

配置管理員(Configuration Management Officer,CMO): 

根據(jù)配置管理計劃執(zhí)行各項管理任務(wù),定期向CCB提交報告,告,并列席CCB的例會。其具體職責為以下幾項:
件配置管理工具的日常管理與維護;
提交配置管理計劃;
各配置項的管理與維護;
執(zhí)行版本控制和變更控制方案;
完成配置審計并提交報告;
對開發(fā)人員進行相關(guān)的培訓(xùn);
識別軟件開發(fā)過程中存在的問題并擬就解決方案。
系統(tǒng)集成員(System Integration Officer,SIO):
系統(tǒng)集成員負責生成和管理項目的內(nèi)部和外部發(fā)布版本,其具體職責為以下幾項:
集成修改;
構(gòu)建系統(tǒng);
完成對版本的日常維護;
建立外部發(fā)布版本。

開發(fā)人員(Developer,DEV):

開發(fā)人員的職責就是根據(jù)組織內(nèi)確定的軟件配置管理計劃和相關(guān)規(guī)定,按照軟件配置管理工具的使用模型來完成開發(fā)任務(wù)。

二.過程描述

一個軟件研發(fā)項目一般可以劃分為三個階段:計劃階段、開發(fā)階段和維護階段。然而從軟件配置管理的角度來看,后兩個階段所涉及的活動是一致,所以就把它們合二為一,成為“項目開發(fā)和維護”階段。

項目計劃階段:

一個項目設(shè)立之初PM首先需要制定整個項目的計劃,它是項目研發(fā)工作的基礎(chǔ)。在有了總體研發(fā)計劃之后,軟件配置管理的活動就可以展開了,因為如果不在項目開始之初制定軟件配置管理計劃,那么軟件配置管理的許多關(guān)鍵活動就無法及時有效的進行,而它的直接后果就是造成了項目開發(fā)狀況的混亂并注定軟件配置管理活動成為一種“救火”的行為。所以及時制定一份軟件配置管理計劃在一定程度上是項目成功的重要保證。
在軟件配置管理計劃的制定過程中,它的主要流程應(yīng)該是這樣的:

CCB根據(jù)項目的開發(fā)計劃確定各個里程碑和開發(fā)策略;
CMO根據(jù)CCB的規(guī)劃,制定詳細的配置管理計劃,交CCB審核;
CCB通過配置管理計劃后交項目經(jīng)理批準,發(fā)布實施。

項目開發(fā)維護階段:

這一階段時項目研發(fā)的主要階段。在這一階段中,軟件配置管理活動主要分為三個層面:(1)主要由CMO完成的管理和維護工作;(2)由SIO和DEV具體執(zhí)行軟件配置管理策略;(3)變更流程。這三個層面是彼此之間既獨立又互相聯(lián)系的有機的整體。
在這個軟件配置管理過程中,它的核心流程應(yīng)該是這樣的:(1)CCB設(shè)定研發(fā)活動的初始基線;(2)CMO根據(jù)軟件配置管理規(guī)劃設(shè)立配置庫和工作空間,為執(zhí)行軟件配置管理就阿做好準備;(3)開發(fā)人員按照統(tǒng)一的軟件配置管理策略,根據(jù)獲得的授權(quán)的資源進行項目的研發(fā)工作;(4)SIO按照項目的進度集成組內(nèi)開發(fā)人員的工作成果,并構(gòu)建系統(tǒng),推進版本的演進;(5)CCB根據(jù)項目的進展情況,審核各種變更請求,并適時的劃定新的基線,保證開發(fā)和維護工作有序的進行。
這個流程就是如此循環(huán)往復(fù),直到項目的結(jié)束。當然,在上述的核心過程之外,還涉及其他一些相關(guān)的活動和操作流程,下面按不同的角色分工予以列出:
各開發(fā)人員按照項目經(jīng)理發(fā)布的開發(fā)策略或模型進行工作;
SIO負責將各分項目的工作成果歸并至集成分支,供測試或發(fā)布;
SIO可向CCB提出設(shè)立基線的要求,經(jīng)批準后由CMO執(zhí)行;
CMO定期向項目經(jīng)理和CCB提交審計報告,并在CCB例會中報告項目在軟件過程中可能存在的問題和改進方案;
在基線生效后,一切對基線和基線之前的開發(fā)成果的變更必須經(jīng)CCB的批準;
CCB定期舉行例會,根據(jù)成員所掌握的情況、CMO的報告和開發(fā)人員的請求,對配置管理計劃作出修改,并向項目經(jīng)理負責。
綜上所述,配置管理的工作流程如圖1所示:


三. 關(guān)鍵活動

1.配置項(Software Configuration Item,SCI)識別

Pressman對于SCI給出了一個比較簡單的定義:“軟件過程的輸出信息可以分為三個主要類別:(1)計算機程序(源代碼和可執(zhí)行程序),(2)描述計算機程序的文檔(針對技術(shù)開發(fā)者和用戶),以及(3)數(shù)據(jù)(包含在程序內(nèi)部或外部)。這些項包含了所有在軟件過程中產(chǎn)生的信息,總稱為軟件配置項。”
由此可見,配置項的識別是配置管理活動的基礎(chǔ),也是制定配置管理計劃的重要內(nèi)容。
軟件配置項分類軟件的開發(fā)過程是一個不斷變化著的過程,為了在不嚴重阻礙合理變化的情況下來控制變化,軟件配置管理引入了“基線(Base Line)”這一概念。IEEE對基線的定義是這樣的:“已經(jīng)正式通過復(fù)審核批準的某規(guī)約或產(chǎn)品,它因此可作為進一步開發(fā)的基礎(chǔ),并且只能通過正式的變化控制過程改變。”
所以,根據(jù)這個定義,我們在軟件的開發(fā)流程中把所有需加以控制的配置項分為基線配置項和非基線配置項兩類,例如:基線配置項可能包括所有的設(shè)計文檔和源程序等;非基線配置項可能包括項目的各類計劃和報告等。

配置項的標識和控制

所有配置項都都應(yīng)按照相關(guān)規(guī)定統(tǒng)一編號,按照相應(yīng)的模板生成,并在文檔中的規(guī)定章節(jié)(部分)記錄對象的標識信息。在引入軟件配置管理工具進行管理后,這些配置項都應(yīng)以一定的目錄結(jié)構(gòu)保存在配置庫中。
所有配置項的操作權(quán)限應(yīng)由CMO嚴格管理,基本原則是:基線配置項向軟件開發(fā)人員開放讀取得權(quán)限;非基線配置項向PM、CCB及相關(guān)人員開放。

2.工作空間管理

在引入了軟件配置管理工具之后,所有開發(fā)人員都會被要求把工作成果存放到由軟件配置管理工具所管理的配置庫中去,或是直接工作在軟件配置管理工具提供的環(huán)境之下。所以為了讓每個開發(fā)人員和各個開發(fā)團隊能更好的分工合作,同時又互不干擾,對工作空間的管理和維護也成為了軟件配置管理的一個重要的活動。
一般來說,比較理想的情況是把整個配置庫視為一個統(tǒng)一的工作空間,然后再根據(jù)需要把它劃分為個人(私有)、團隊(集成)和全組(公共)這三類工作空間(分支),從而更好的支持將來可能出現(xiàn)的并行開發(fā)的需求。
每個開發(fā)人員按照任務(wù)的要求,在不同的開發(fā)階段,工作在不同的工作空間上,例如:對于私有開發(fā)空間而言,開發(fā)人員根據(jù)任務(wù)分工獲得對相應(yīng)配置項的操作許可之后,他即在自己的私有開發(fā)分支上工作,他的所有工作成果體現(xiàn)為在該配置項的私有分支上的版本的推進,除該開發(fā)人員外,其他人員均無權(quán)操作該私有空間中的元素;而集成分支對應(yīng)的是開發(fā)團隊的公共空間,該開發(fā)團隊擁有對該集成分支的讀寫權(quán)限,而其他成員只有只讀權(quán)限,它的管理工作由SIO負責;至于公共工作空間,則是用于統(tǒng)一存放各個開發(fā)團隊的階段性工作成果,它提供全組統(tǒng)一的標準版本,并作為整個組織的Knowledge Base。
當然,由于選用的軟件配置管理工具的不同,在對于工作空間的配置和維護的實現(xiàn)上有比較大的差異,但對于CMO來說,這些工作是他的重要職責,他必須根據(jù)各開發(fā)階段的實際情況來配置工作空間并定制相應(yīng)的版本選取規(guī)則,來保證開發(fā)活動的正常運作。在變更發(fā)生時,應(yīng)及時做好基線的推進。

3.版本控制

版本控制是軟件配置管理的核心功能。所有置于配置庫中的元素都應(yīng)自動予以版本的標識,并保證版本命名的唯一性。版本在生成過程中,自動依照設(shè)定的使用模型自動分支、演進。除了系統(tǒng)自動記錄的版本信息以外,為了配合軟件開發(fā)流程的各個階段,我們還需要定義、收集一些元數(shù)據(jù)(Metadata)來記錄版本的輔助信息和規(guī)范開發(fā)流程,并為今后對軟件過程的度量做好準備。當然如果選用的工具支持的話,這些輔助數(shù)據(jù)將能直接統(tǒng)計出過程數(shù)據(jù),從而方便我們軟件過程改進(Software Process Improvement,SPI)活動的進行。
對于配置庫中的各個基線控制項,應(yīng)該根據(jù)其基線的位置和狀態(tài)來設(shè)置相應(yīng)的訪問權(quán)限。一般來說,對于基線版本之前的各個版本都應(yīng)處于被鎖定的狀態(tài),如需要對它們進行變更,則應(yīng)按照變更控制的流程來進行操作。

4.變更控制

在對SCI的描述中,我們引入了基線的概念。從IEEE對于基線的定義中我們可以發(fā)現(xiàn),基線是和變更控制緊密相連的。也就是說在對各個SCI做出了識別,并且利用工具對它們進行了版本管理之后,如何保證它們在復(fù)雜多變得開發(fā)過程中真正的處于受控的狀態(tài),并在任何情況下都能迅速的恢復(fù)到任一歷史狀態(tài)就成為了軟件配置管理的另一重要任務(wù)。因此,變更控制就是通過結(jié)合人的規(guī)程和自動化工具,以提供一個變化控制的機制。
在本文的前面的部分中,已經(jīng)把SCI分為基線配置項和非基線配置項兩大類,所以這里所涉及的變更控制的對象主要指配置庫中的各基線配置項。
變更管理的一般流程是:
A) (獲得)提出變更請求;
B) 由CCB審核并決定是否批準;
C) (被接受)修改請求分配人員為,提取SCI,進行修改;
D) 復(fù)審變化;
E) 提交修改后的SCI;
F) 建立測試基線并測試;
G) 重建軟件的適當版本;
H) 復(fù)審(審計)所有SCI的變化;
I) 發(fā)布新版本。
在這樣的流程中,CMO通過軟件配置管理工具來進行訪問控制和同步控制,而這兩種控制則是建立在前文所描述的版本控制和分支策略的基礎(chǔ)上的。

5.狀態(tài)報告

配置狀態(tài)報告就是根據(jù)配置項操作數(shù)據(jù)庫中的記錄來向管理者報告軟件開發(fā)活動的進展情況。這樣的報告應(yīng)該是定期進行,并盡量通過CASE工具自動生成,用數(shù)據(jù)庫中的客觀數(shù)據(jù)來真實的反映各配置項的情況。
配置狀態(tài)報告應(yīng)根據(jù)報告應(yīng)著重反映當前基線配置項的狀態(tài),以作為對開發(fā)進度報告的參照。同時也能從中根據(jù)開發(fā)人員對配置項的操作記錄來對開發(fā)團隊的工作關(guān)系作一定的分析。
配置狀態(tài)報告應(yīng)該包括下列主要內(nèi)容:
A) 配置庫結(jié)構(gòu)和相關(guān)說明;
B) 開發(fā)起始基線的構(gòu)成;
C) 當前基線位置及狀態(tài);
D) 各基線配置項集成分支的情況;
E) 各私有開發(fā)分支類型的分布情況;
F) 關(guān)鍵元素的版本演進記錄;
G) 其它應(yīng)予報告的事項。

6.配置審計

配置審計的主要作用是作為變更控制的補充手段,來確保某一變更需求已被切實實現(xiàn)。在某些情況下,它被作為正式的技術(shù)復(fù)審的一部分,但當軟件配置管理是一個正式的活動時,該活動由SQA人員單獨執(zhí)行。
總之,軟件配置管理的對象是軟件研發(fā)活動中的全部開發(fā)資產(chǎn)。所有這一切都應(yīng)作為配置項納入管理計劃統(tǒng)一進行管理,從而能夠保證及時的對所有軟件開發(fā)資源進行維護和集成。因此,軟件配置管理的主要任務(wù)也就歸結(jié)為以下幾條:(1)制定項目的配置計劃;(2)對配置項進行標識;(3)對配置項進行版本控制;(4)對配置項進行變更控制;(5)定期進行配置審計;(6)向相關(guān)人員報告配置的狀態(tài)。
在此,我想特別指出的是:由于軟件配置管理覆蓋了整個軟件的開發(fā)過程,因此它是改進我們的軟件過程、提高過程能力成熟度的理想的切入點。希望本文所描述的這個軟件配置管理的角色分配和工作流程能在實踐中不斷地得到完善,從而使我們的軟件開發(fā)活動能夠更加有序、高效的進行!

本文已發(fā)表于《共創(chuàng)軟件》( http://www. )2002年7月

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多