• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            兔子的技術(shù)博客

            兔子

               :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              202 Posts :: 0 Stories :: 43 Comments :: 0 Trackbacks

            留言簿(10)

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            配置管理的精髓  

            2012-05-30 18:00:46|  分類(lèi): 配置管理 |  標(biāo)簽:配置管理  
            |字號(hào) 訂閱

            配置管理的精髓 
            貝爾實(shí)驗(yàn)室先進(jìn)技術(shù)研究院   姜海東

                   隨著國(guó)內(nèi)軟件業(yè)的崛起和成熟,軟件配置管理越來(lái)越得到重視。可以說(shuō),軟件業(yè)要想更好的發(fā)展,沒(méi)有軟件配置管理的支持是不可能的。手工作坊式的軟件開(kāi)發(fā)模式將會(huì)成為歷史,如何把國(guó)外成熟的軟件配置管理理論和經(jīng)驗(yàn)消化吸收,進(jìn)而應(yīng)用到國(guó)內(nèi)軟件開(kāi)發(fā)中就成為國(guó)內(nèi)軟件業(yè)迫在眉睫的任務(wù)了。 
                   軟件配置管理是管理和技術(shù)相結(jié)合的一門(mén)學(xué)科。應(yīng)該說(shuō),軟件配置管理理論難以理解是其難以實(shí)踐的原因。本文試從基本概念的角度來(lái)探討這門(mén)對(duì)軟件開(kāi)發(fā)具有重要意義的領(lǐng)域。


            什么是配置管理 
                   在軟件開(kāi)發(fā)中,變更是不可避免的。從某種角度上講,軟件開(kāi)發(fā)過(guò)程就是一個(gè)變更的過(guò)程。有些變更是有益的,是具有創(chuàng)造性的,但是,也有些變更是有害的,導(dǎo)致混亂的。正像James Bach 總結(jié)的那樣: 
                    我們?yōu)樽兏_,因?yàn)榇a中的一個(gè)極小的混亂可能帶來(lái)產(chǎn)品的大的故障,但是,他也能夠修復(fù)大的故障或啟用奇妙的新能力。我們?yōu)樽兏_,因?yàn)槟硞€(gè)喜歡惡作劇的單個(gè)開(kāi)發(fā)者可能破壞掉項(xiàng)目,但是,一些奇妙的思想也源自那些喜歡惡作劇的人員。 
                    因此,如何管理這些變更是一個(gè)軟件開(kāi)發(fā)能否成功的關(guān)鍵。簡(jiǎn)言之,軟件配置管理就是管理變更的過(guò)程,它貫穿著幾乎軟件的整個(gè)生命周期。成功的配置管理系統(tǒng)可以提高產(chǎn)品的質(zhì)量、項(xiàng)目開(kāi)發(fā)效率,而且最大限度的減少對(duì)個(gè)別“英雄”式人員的依賴(lài)。 
                    盡管配置管理(Configuration Management )這個(gè)概念被提出有幾十年了,但是,業(yè)內(nèi)還沒(méi)有一個(gè)全面而權(quán)威的定義。Configuration 的意思是“使成形”,它來(lái)源于拉丁語(yǔ)的com-(表示“與”或者“一起”)和figurate ( 形成) 。它還有一個(gè)意思是“組成部件或元素的相對(duì)排列”。因此,配置管理(ConfigurationManagement )指的是管理組成部件或者元素的相對(duì)排列。 
                    配置管理的概念來(lái)自于硬件領(lǐng)域,美國(guó)國(guó)防部最早使用了配置管理的概念。我們知道一架飛機(jī)的構(gòu)成非常復(fù)雜,比如機(jī)頭、機(jī)身、機(jī)翼和機(jī)尾等。不同型號(hào)飛機(jī)的各個(gè)部分是不能隨便組裝的。因此,我們只有把相匹配的部件組裝在一起,才能構(gòu)成了一個(gè)功能完備的飛機(jī)整體。隨著技術(shù)的提高,各個(gè)部件可能還要進(jìn)行功能改善,我們還要使得不同版本的部件能夠正確無(wú)誤組合在一起。 
            準(zhǔn)確地說(shuō):  
                   配置管理是對(duì)產(chǎn)品進(jìn)行標(biāo)識(shí)、存儲(chǔ)和控制,以維護(hù)其完整性、可追溯性以及正確性的學(xué)科。 
            從上面的描述,我們知道,配置管理的基本單位是配置項(xiàng)。軟件配置項(xiàng)可以是:

            •  與合同、過(guò)程、計(jì)劃和產(chǎn)品有關(guān)的文檔和數(shù)據(jù)
            • 源代碼、目標(biāo)代碼和可執(zhí)行代碼
            • 相關(guān)產(chǎn)品,包括軟件工具、庫(kù)內(nèi)的可復(fù)用軟件、外購(gòu)軟件及用戶(hù)提供的軟件

             
              從“哲學(xué)”意義上講,配置管理記錄配置項(xiàng)的三個(gè)方面: 

            • 從哪里來(lái)?此項(xiàng)可歸結(jié)為WWW 的問(wèn)題,(Who)誰(shuí)創(chuàng)建的?(When)什么時(shí)間創(chuàng)建的?(Why)為什么創(chuàng)建此配置項(xiàng)?
            • 當(dāng)前在哪里?此項(xiàng)紀(jì)錄配置項(xiàng)當(dāng)前的存儲(chǔ)位置以及狀態(tài)。
            • 將到哪里去?通過(guò)配置控制來(lái)把配置項(xiàng)“組裝”到正確的版本中去。

             
                   配置項(xiàng)可以是大粒度的,也可以是小粒度的。如果跟蹤個(gè)別需求,那么不必要把整個(gè)需求規(guī)格說(shuō)明文檔定義為一個(gè)配置項(xiàng),可以把每個(gè)需求定義為配置項(xiàng);如果把軟件開(kāi)發(fā)工具也放入配置管理系統(tǒng),那么把配置項(xiàng)定義為文件級(jí)就不合適了,只需要跟蹤開(kāi)發(fā)工具的版本,即把整個(gè)配置工具定義為一個(gè)配置項(xiàng)就足夠了。 
                   簡(jiǎn)而言之,配置項(xiàng)可以是文件級(jí)粒度的,也可以使文件版本級(jí)粒度的。當(dāng)然,粒度越小管理的成本越高,但是配置的精度也就越高。 
            一個(gè)完整的SCM系統(tǒng)要具有三個(gè)核心功能:配置標(biāo)識(shí)、版本控制、變更控制、配置狀態(tài)統(tǒng)計(jì)和配置審核。其中變更控制包括基線管理、變更請(qǐng)求管理、構(gòu)建管理和發(fā)布管理。如下圖所示。 

            下面,我們來(lái)具體理解這些概念。 
             
            配置標(biāo)識(shí) 
                   配置標(biāo)識(shí)就是識(shí)別產(chǎn)品的結(jié)構(gòu)、產(chǎn)品的構(gòu)件及其類(lèi)型,為其分配唯一的標(biāo)識(shí)符,也就是說(shuō),每一個(gè)配置項(xiàng)要有一個(gè)唯一標(biāo)識(shí)。一般說(shuō)來(lái),標(biāo)識(shí)包括兩個(gè)方面:一是文件名,二是版本,可用如下一個(gè)二元組來(lái)標(biāo)識(shí):< 文件名,版本> 。每個(gè)項(xiàng)目首先要確定一套命名規(guī)則,例如,采用“系統(tǒng).子系統(tǒng).模塊.文件”的方式,</videoConference/audio/compressing/m a in.c , 2.1>就是一個(gè)唯一標(biāo)識(shí)。 
             
            版本控制 
                   版本控制就是對(duì)在軟件開(kāi)發(fā)過(guò)程中所創(chuàng)建的配置對(duì)象的不同版本進(jìn)行管理,保證任何時(shí)候都能取到正確的版本以及版本的組合。當(dāng)前,這方面典型的工具有如VSS 和CVS 。


            變更控制 
                   在軟件開(kāi)發(fā)過(guò)程,要產(chǎn)生許多變更,比如,配置項(xiàng)、配置、基線、構(gòu)建的版本、發(fā)布版本等。對(duì)于所有的變更,都要有一個(gè)控制機(jī)制,以保證所有變更都是可控的、可跟蹤的、可重現(xiàn)的。對(duì)變更進(jìn)行控制的機(jī)構(gòu)稱(chēng)為變更控制委員會(huì)(Change Control Board,簡(jiǎn)稱(chēng)
            CCB )。變更控制委員會(huì)要定期召開(kāi)會(huì)議,對(duì)近期所產(chǎn)生的變更請(qǐng)求進(jìn)行分析、整理,并做出決定。而且要遵循一定的變更機(jī)制。 
              
            下面是一個(gè)典型的變更機(jī)制:  
            變更請(qǐng)求管理 
                   變更請(qǐng)求管理就是對(duì)變更請(qǐng)求(Change Request,簡(jiǎn)稱(chēng)CR)進(jìn)行分類(lèi)、追蹤和管理的過(guò)程來(lái)實(shí)現(xiàn)的。 
                   變更的起源有兩種:功能變更和缺陷修補(bǔ)(Bug-Fix)。功能變更是為了增加或者刪除某些功能。缺陷修補(bǔ)則是對(duì)已存在的缺陷進(jìn)行修補(bǔ)。 
                   對(duì)變更請(qǐng)求的有效管理可以提高產(chǎn)品管理的透明度,經(jīng)理可以清楚的知道當(dāng)前產(chǎn)品的進(jìn)展情況,比如有多少個(gè)新產(chǎn)生的CR,已經(jīng)解決了多少CR等等,有利于經(jīng)理做出正確的決策。 
             
            基線管理 
                   基線是指經(jīng)過(guò)正式評(píng)審和批準(zhǔn),可作為下一步工作的基準(zhǔn)的一個(gè)配置。軟件開(kāi)發(fā)過(guò)程中,無(wú)論是需求分析、設(shè)計(jì)、測(cè)試都需要在完成時(shí)建立基線,以作為下一步工作的基礎(chǔ)。

                   通過(guò)基線管理可以使用戶(hù)能夠通過(guò)對(duì)適當(dāng)版本的選擇來(lái)組成特定屬性(配置)的軟件系統(tǒng),這種靈活的“組裝”策略使得配置管理系統(tǒng)象搭積木似的使用已有的積木(版本)組裝成各種各樣、不同功能的模型。 
                   基線的變更需要一個(gè)嚴(yán)格的流程,需要提出申請(qǐng),經(jīng)過(guò)審批,然后才能進(jìn)行。 
            構(gòu)建管理 
                   在做構(gòu)建時(shí),我們需要首先取出正確的配置,然后再做構(gòu)建。我們可以利用基線,可以取出某個(gè)基線的所有配置項(xiàng),也可以利用配置管理系統(tǒng)的構(gòu)建功能直接在工作空間內(nèi)做構(gòu)建。 
                   構(gòu)建管理需要配置管理工具的支持。 
            發(fā)布管理 
                   軟件產(chǎn)品的每個(gè)版本都是一組配置項(xiàng)(源代碼、文檔、數(shù)據(jù))的集合。舉個(gè)例子來(lái)說(shuō),我們要發(fā)布軟件的32.6 版本,那么我們就要把源代碼、文檔、數(shù)據(jù)中所有應(yīng)該包含到這個(gè)版本中的正確配置項(xiàng)檢出。 
                   所以如何管理每個(gè)版本中包含哪些配置項(xiàng)是非常重要的。  
            狀態(tài)報(bào)告 
            狀態(tài)報(bào)告要回答所謂4W 的問(wèn)題: 
            What:發(fā)生了什么事? 
            Who:誰(shuí)做的此事? 
            When:此事是什么時(shí)候發(fā)生的? 
            Why:為什么做此事? 
            狀態(tài)報(bào)告要能夠報(bào)告所有配置項(xiàng)以及變更請(qǐng)求的狀態(tài),通過(guò)量化的數(shù)據(jù)和報(bào)表反映項(xiàng)目開(kāi)發(fā)進(jìn)度的狀態(tài)。 
            配置審核 
                   配置審核要審查整個(gè)配置管理過(guò)程是否符合規(guī)范,配置項(xiàng)是否與需求一致,記錄正確,配置的組成是否具有一致性等等。比如,需求分析文檔提交后,需要由一個(gè)由相關(guān)人組成的小組進(jìn)行正式評(píng)審,只有通過(guò)了評(píng)審才能基線化。對(duì)于源代碼也一樣,一般說(shuō)來(lái),每行代碼都要進(jìn)行評(píng)審(Review),只有通過(guò)評(píng)審才能交由測(cè)試人員進(jìn)行測(cè)試。 
            實(shí)施配置管理的好處 
                   我們知道軟件有三個(gè)要素:時(shí)間、預(yù)算和質(zhì)量。一個(gè)成功的軟件就是要在限定的時(shí)間內(nèi),不超過(guò)預(yù)算,交付符合質(zhì)量要求的產(chǎn)品。真正實(shí)施配置管理后,我們會(huì)對(duì)產(chǎn)品的開(kāi)發(fā)過(guò)程進(jìn)行有效的控制,可以加快開(kāi)發(fā)進(jìn)度,降低開(kāi)發(fā)成本,保證產(chǎn)品的質(zhì)量。 
            產(chǎn)品經(jīng)理可以得到什么好處呢? 

            • 準(zhǔn)確掌握項(xiàng)目的開(kāi)發(fā)進(jìn)度。配置管理系統(tǒng)可以提供詳盡的狀態(tài)報(bào)告,例如當(dāng)前系統(tǒng)有多少個(gè)Bug,所有Bug 的狀態(tài)如何?已經(jīng)解決了多少Bug?
            • 了解項(xiàng)目組成員的工作負(fù)荷、工作效率以及工作質(zhì)量。例如,我們可以知道當(dāng)前分配給每個(gè)成員的工作量,每個(gè)成員已完成的工作量,每個(gè)成員未通過(guò)正式評(píng)審的工作比例等等。
            • 減少人員流動(dòng)所帶來(lái)的影響。每個(gè)成員的所有變更,包括文檔、代碼的增刪都是可追蹤的,而且對(duì)于變更的原因、描述也都有記錄。這樣,一旦成員離開(kāi),其它成員就可以在最短的時(shí)間里接手。
            •  有效提高過(guò)程管理,配置管理產(chǎn)生的許多數(shù)據(jù)可作為管理者度量項(xiàng)目的依據(jù)。


            開(kāi)發(fā)人員和測(cè)試人員可以得到什么好處呢?

            •  提交的代碼被有效保存,開(kāi)發(fā)人員再也不用花費(fèi)精力去保存各個(gè)版本了。
            •  提高團(tuán)隊(duì)的協(xié)作效率。開(kāi)發(fā)人員之間以及開(kāi)發(fā)人員和測(cè)試人員之間可以有效的溝通,大家都互相知道其它人的工作狀態(tài)。
            •  提高修復(fù)缺陷的效率。可以依據(jù)Bug 發(fā)現(xiàn)的版本,迅速重建環(huán)境,重現(xiàn)Bug,快速定位代碼,找出根源。
            • 職責(zé)清楚,任務(wù)明確。每一步的工作都是基于某一基線的,比如,設(shè)計(jì)文檔是依據(jù)基線化了的需求分析文檔,這樣一旦出現(xiàn)問(wèn)題,就可以找出問(wèn)題出在什么地方。


             
                  當(dāng)然,實(shí)施配置管理的好處遠(yuǎn)不止這些。軟件配置管理作為軟件開(kāi)發(fā)的基石,它提供了一個(gè)協(xié)作開(kāi)發(fā)的環(huán)境,只有大家共同遵守配置管理規(guī)范,互相協(xié)作才能保證項(xiàng)目的成功。 
             
            結(jié)束語(yǔ) 
             
                   配置管理本身無(wú)論從理論和實(shí)踐都在不斷豐富和發(fā)展。例如,配置管理應(yīng)用于“知識(shí)庫(kù)”的管理就產(chǎn)生了“內(nèi)容管理”這一新的領(lǐng)域。配置管理提供的狀態(tài)報(bào)告和數(shù)據(jù)統(tǒng)計(jì)也為軟件度量提供了決策依據(jù)。配置管理為項(xiàng)目管理提供了各種監(jiān)控項(xiàng)目進(jìn)展的視角,為項(xiàng)目經(jīng)理確切掌握項(xiàng)目進(jìn)程提供了保證。配置管理也為開(kāi)發(fā)人員提供了一個(gè)協(xié)作的平臺(tái),在此平臺(tái)上,大家能夠更有效率的交流和協(xié)作。可以說(shuō),配置管理是軟件開(kāi)發(fā)的基石! 
                   配置管理近年來(lái)在中國(guó)得到了極大的認(rèn)可,可以毫不夸張的說(shuō),沒(méi)有配置管理,就談不上軟件開(kāi)發(fā),就談不上軟件質(zhì)量,就談不上軟件業(yè)的發(fā)展。隨著軟件業(yè)規(guī)模的擴(kuò)大,配置管理的實(shí)施不是要不要的問(wèn)題,而是什么時(shí)間、如何實(shí)施的問(wèn)題了。 
            參考文獻(xiàn): 
            Babich, W.A., Software Configura tion Management, Addison-Wesley, 1986. Peter H. Feiler, Configuration Management Models in Commercial Environment, CMU/SEI-91-TR-7, 1991.4 
             
            作者簡(jiǎn)介:2000年在北方交通大學(xué)獲工學(xué)碩士學(xué)位。現(xiàn)供職于朗訊科技(中國(guó))有限公司貝爾實(shí)驗(yàn)室先進(jìn)技術(shù)研究院,從事配置管理系統(tǒng)的研究和開(kāi)發(fā),有四年多的配置管理領(lǐng)域開(kāi)發(fā)、咨詢(xún)、培訓(xùn)經(jīng)驗(yàn)。

            轉(zhuǎn)自:http://blog.163.com/wangdan10799@126/blog/static/10230093201243054322378/
            posted on 2013-08-09 11:32 會(huì)飛的兔子 閱讀(529) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 開(kāi)發(fā)過(guò)程管理
            久久精品一本到99热免费| 91精品国产综合久久四虎久久无码一级 | 99久久人妻无码精品系列| 99999久久久久久亚洲| www亚洲欲色成人久久精品| 亚洲日韩欧美一区久久久久我 | 久久99国产综合精品免费| 亚洲国产精品热久久| 欧美久久久久久| 国产欧美久久一区二区| 亚洲精品午夜国产va久久| 久久国产精品-久久精品| 久久久久亚洲AV无码观看| 久久精品视频免费| 亚洲中文字幕久久精品无码APP| 91久久国产视频| 久久天堂AV综合合色蜜桃网| 久久一区二区免费播放| 99国产精品久久| 亚洲国产另类久久久精品黑人| 狠狠久久综合伊人不卡| 伊人久久久AV老熟妇色| 久久久久人妻一区精品| 久久国产成人精品麻豆| 无码人妻久久一区二区三区| 日韩十八禁一区二区久久| 久久久综合九色合综国产| 久久综合狠狠综合久久| 中文字幕无码久久精品青草 | 久久久久久久波多野结衣高潮 | 久久久久久国产精品美女| 日本久久中文字幕| 久久精品国产一区二区电影| 久久精品视频免费| 久久99国产精品一区二区| 精品久久久久久久久中文字幕| 久久国产精品77777| 99久久人妻无码精品系列| 久久精品亚洲中文字幕无码麻豆| 久久一日本道色综合久久| 成人免费网站久久久|