乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       ekylin 2006-08-07

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

      PMT 陳越


      隨著軟件產(chǎn)業(yè)的崛起,軟件工程技術(shù)正吸引著越來(lái)越多關(guān)注的目光。特別是以CMM為代表的先進(jìn)的軟件工程理念在國(guó)內(nèi)也正日益受到業(yè)界廣泛的重視。
      軟件配置管理(Software Configuration Management,SCM)作為CMM 2級(jí)的一個(gè)關(guān)鍵域(Key Practice Area,KPA),在整個(gè)軟件的開(kāi)發(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)有的軟件開(kāi)發(fā)流程的管理過(guò)程,甚至直接以這個(gè)軟件配置管理過(guò)程為框架,來(lái)再造組織的軟件開(kāi)發(fā)流程。
      本文參照了CMM 2級(jí)中軟件配置管理的相關(guān)的要求,充分考慮了在CASE工具的輔助下實(shí)現(xiàn)自動(dòng)的軟件配置管理的可能性,描述了在一個(gè)比較理想的軟件研發(fā)組織中軟件配置管理的流程及其關(guān)鍵活動(dòng)。

      一. 角色職責(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)目起始基線和開(kāi)發(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):
      定制開(kāi)發(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ì)開(kāi)發(fā)人員進(jìn)行相關(guān)的培訓(xùn);
      識(shí)別軟件開(kāi)發(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ā)布版本。

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

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

      二.過(guò)程描述

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

      項(xiàng)目計(jì)劃階段:

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

      CCB根據(jù)項(xiàng)目的開(kāi)發(fā)計(jì)劃確定各個(gè)里程碑和開(kāi)發(fā)策略;
      CMO根據(jù)CCB的規(guī)劃,制定詳細(xì)的配置管理計(jì)劃,交CCB審核;
      CCB通過(guò)配置管理計(jì)劃后交項(xiàng)目經(jīng)理批準(zhǔn),發(fā)布實(shí)施。

      項(xiàng)目開(kāi)發(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)開(kāi)發(fā)人員按照統(tǒng)一的軟件配置管理策略,根據(jù)獲得的授權(quán)的資源進(jìn)行項(xiàng)目的研發(fā)工作;(4)SIO按照項(xiàng)目的進(jìn)度集成組內(nèi)開(kāi)發(fā)人員的工作成果,并構(gòu)建系統(tǒng),推進(jìn)版本的演進(jìn);(5)CCB根據(jù)項(xiàng)目的進(jìn)展情況,審核各種變更請(qǐng)求,并適時(shí)的劃定新的基線,保證開(kāi)發(fā)和維護(hù)工作有序的進(jìn)行。
      這個(gè)流程就是如此循環(huán)往復(fù),直到項(xiàng)目的結(jié)束。當(dāng)然,在上述的核心過(guò)程之外,還涉及其他一些相關(guān)的活動(dòng)和操作流程,下面按不同的角色分工予以列出:
      各開(kāi)發(fā)人員按照項(xiàng)目經(jīng)理發(fā)布的開(kāi)發(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ì)基線和基線之前的開(kāi)發(fā)成果的變更必須經(jīng)CCB的批準(zhǔn);
      CCB定期舉行例會(huì),根據(jù)成員所掌握的情況、CMO的報(bào)告和開(kāi)發(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ù)開(kāi)發(fā)者和用戶),以及(3)數(shù)據(jù)(包含在程序內(nèi)部或外部)。這些項(xiàng)包含了所有在軟件過(guò)程中產(chǎn)生的信息,總稱為軟件配置項(xiàng)。”
      由此可見(jiàn),配置項(xiàng)的識(shí)別是配置管理活動(dòng)的基礎(chǔ),也是制定配置管理計(jì)劃的重要內(nèi)容。
      軟件配置項(xiàng)分類軟件的開(kāi)發(fā)過(guò)程是一個(gè)不斷變化著的過(guò)程,為了在不嚴(yán)重阻礙合理變化的情況下來(lái)控制變化,軟件配置管理引入了“基線(Base Line)”這一概念。IEEE對(duì)基線的定義是這樣的:“已經(jīng)正式通過(guò)復(fù)審核批準(zhǔn)的某規(guī)約或產(chǎn)品,它因此可作為進(jìn)一步開(kāi)發(fā)的基礎(chǔ),并且只能通過(guò)正式的變化控制過(guò)程改變。”
      所以,根據(jù)這個(gè)定義,我們?cè)谲浖拈_(kāi)發(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)向軟件開(kāi)發(fā)人員開(kāi)放讀取得權(quán)限;非基線配置項(xiàng)向PM、CCB及相關(guān)人員開(kāi)放。

      2.工作空間管理

      在引入了軟件配置管理工具之后,所有開(kāi)發(fā)人員都會(huì)被要求把工作成果存放到由軟件配置管理工具所管理的配置庫(kù)中去,或是直接工作在軟件配置管理工具提供的環(huán)境之下。所以為了讓每個(gè)開(kāi)發(fā)人員和各個(gè)開(kāi)發(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)的并行開(kāi)發(fā)的需求。
      每個(gè)開(kāi)發(fā)人員按照任務(wù)的要求,在不同的開(kāi)發(fā)階段,工作在不同的工作空間上,例如:對(duì)于私有開(kāi)發(fā)空間而言,開(kāi)發(fā)人員根據(jù)任務(wù)分工獲得對(duì)相應(yīng)配置項(xiàng)的操作許可之后,他即在自己的私有開(kāi)發(fā)分支上工作,他的所有工作成果體現(xiàn)為在該配置項(xiàng)的私有分支上的版本的推進(jìn),除該開(kāi)發(fā)人員外,其他人員均無(wú)權(quán)操作該私有空間中的元素;而集成分支對(duì)應(yīng)的是開(kāi)發(fā)團(tuán)隊(duì)的公共空間,該開(kāi)發(fā)團(tuán)隊(duì)擁有對(duì)該集成分支的讀寫權(quán)限,而其他成員只有只讀權(quán)限,它的管理工作由SIO負(fù)責(zé);至于公共工作空間,則是用于統(tǒng)一存放各個(gè)開(kāi)發(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ù)各開(kāi)發(fā)階段的實(shí)際情況來(lái)配置工作空間并定制相應(yīng)的版本選取規(guī)則,來(lái)保證開(kā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)記錄的版本信息以外,為了配合軟件開(kāi)發(fā)流程的各個(gè)階段,我們還需要定義、收集一些元數(shù)據(jù)(Metadata)來(lái)記錄版本的輔助信息和規(guī)范開(kāi)發(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ù)雜多變得開(kāi)發(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)告軟件開(kāi)發(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ì)開(kāi)發(fā)進(jìn)度報(bào)告的參照。同時(shí)也能從中根據(jù)開(kāi)發(fā)人員對(duì)配置項(xiàng)的操作記錄來(lái)對(duì)開(kāi)發(fā)團(tuán)隊(duì)的工作關(guān)系作一定的分析。
      配置狀態(tài)報(bào)告應(yīng)該包括下列主要內(nèi)容:
      A) 配置庫(kù)結(jié)構(gòu)和相關(guān)說(shuō)明;
      B) 開(kāi)發(fā)起始基線的構(gòu)成;
      C) 當(dāng)前基線位置及狀態(tài);
      D) 各基線配置項(xiàng)集成分支的情況;
      E) 各私有開(kāi)發(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)中的全部開(kāi)發(fā)資產(chǎn)。所有這一切都應(yīng)作為配置項(xiàng)納入管理計(jì)劃統(tǒng)一進(jìn)行管理,從而能夠保證及時(shí)的對(duì)所有軟件開(kāi)發(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è)軟件的開(kāi)發(fā)過(guò)程,因此它是改進(jìn)我們的軟件過(guò)程、提高過(guò)程能力成熟度的理想的切入點(diǎn)。希望本文所描述的這個(gè)軟件配置管理的角色分配和工作流程能在實(shí)踐中不斷地得到完善,從而使我們的軟件開(kāi)發(fā)活動(dòng)能夠更加有序、高效的進(jìn)行!

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

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多