Cyh的博客

          Email:kissyan4916@163.com
          posts - 26, comments - 19, trackbacks - 0, articles - 220

          筆記之《未雨綢繆》

          Posted on 2009-02-16 20:58 啥都寫點(diǎn) 閱讀(382) 評(píng)論(0)  編輯  收藏 所屬分類: 軟件工程

          什么是軟件配置管理

           “一套應(yīng)用技術(shù)上和管理上的指導(dǎo)和監(jiān)督的方法,用來:識(shí)別和記錄配置項(xiàng)的功能特征和物理特征;控制這些特征的變更;記錄和報(bào)告變更的處理和執(zhí)行的狀態(tài);以及驗(yàn)證其是否符合特定的需求。”

          基本的版本控制:記錄版本,防止混亂

          2.2 建立公共存儲(chǔ)區(qū)

                 公共存儲(chǔ)區(qū)是個(gè)星形結(jié)構(gòu)

          2.3 防止版本覆蓋

                第一種方法 串行的方法(鎖定要修改的代碼)

                第二種方法 并行的方法

          按任務(wù)單元組織工作

          任務(wù)單元(Task)又稱活動(dòng)(Activity)

          從源代碼的實(shí)際變動(dòng)的角度看,任務(wù)單元對(duì)應(yīng)于一個(gè)或多個(gè)文件上的一處或多處具體的代碼改動(dòng)。這些改動(dòng)組合在一起,通常管它叫一個(gè)變更集

          注意:每個(gè)任務(wù)單元所對(duì)應(yīng)的工作量,不要太大。說對(duì)應(yīng)的源代碼改動(dòng),不要太多。否則,不好查閱修改情況,也不好管理。如果是個(gè)很大的任務(wù)單元,那就要考慮把它劃分成若干小一些的任務(wù)單元

          3.3 適時(shí)的更新工作空間

          3.4 保證任務(wù)單元完成的質(zhì)量

                 保證任務(wù)單元完成的質(zhì)量,進(jìn)而保證整個(gè)產(chǎn)品的整體質(zhì)量,是每一個(gè)程序開發(fā)者的責(zé)任,絕不僅僅是測試工程師、集成工程師等角色的責(zé)任。

              除了自測試外,有的團(tuán)隊(duì)還會(huì)引入同行評(píng)審(Peer Review,又稱為代碼走查(Code Insepction.

                 于此相關(guān)的是有些敏捷開發(fā)團(tuán)隊(duì)采用結(jié)對(duì)編程(Pair Programming技術(shù),目的之一也是提高程序質(zhì)量

              作為軟件研發(fā)項(xiàng)目的協(xié)調(diào)者,管理者也需要做些事情,進(jìn)到自己的職責(zé),比如在產(chǎn)品即將上市,或進(jìn)入維護(hù)期后,管理者要站出來,加強(qiáng)控制,加強(qiáng)評(píng)審,保證“讓產(chǎn)品趨于穩(wěn)定,并且盡快上市”這樣的目標(biāo)的實(shí)現(xiàn)

          提交后,版本庫里最新版本不能工作怎么辦??

             常用辦法:提交前,更新工作空間到當(dāng)時(shí)產(chǎn)品的最新版本。然后,在工作空間里編譯鏈接,并作粗略的測試,證明程序可以運(yùn)行。這之后,在提交。

          產(chǎn)品的整體版本

               4.1 記錄源代碼的整體版本

                     整體版本,是項(xiàng)目開發(fā)的某一時(shí)刻的全部源代碼的一個(gè)“截圖”,行話叫“快照”(Snapshot)。

                     基線(Baseline):被明顯地標(biāo)識(shí)和記錄下來的源代碼整體版本。

               4.2 保存安裝包

                     可以保存在共享目錄下,該共享目錄可在局域網(wǎng)上共享。

               4.3 開發(fā)—測試—發(fā)布

                     在送交系統(tǒng)測試之前,除了保存源代碼的整體版本,還應(yīng)該保存安裝包。

          第五章關(guān)注源代碼整體質(zhì)量

          集成的步驟

          1、 應(yīng)該確保開發(fā)人員都提交了相關(guān)的源代碼

          2、 凍結(jié)或者標(biāo)識(shí)將要集成的源代碼

          3、 取出要集成的源代碼,最好是存放到一個(gè)全新的工作空間

          4、 編譯,鏈接和打安裝包。目的是由源代碼生成可以測試、發(fā)布的安裝包。這通常稱為構(gòu)建(build)。

          5、 安裝并粗略測試。僅僅能通過構(gòu)建,通常是不夠的。

          6、 標(biāo)識(shí)和儲(chǔ)存集成成果。集成成果又兩個(gè),一個(gè)事源代碼的整體版本,一個(gè)是生成的安裝包。它們都要被合理的標(biāo)識(shí)和存儲(chǔ)

          7、 通知相關(guān)人員,本次集成完成。

          間接工作流(Non-immediateWorkflow):更新到基線而非最新源代碼上的方法。

          直接工作流(ImmediateWorkflow)總是更新到最新源代碼上的方法。

          每日構(gòu)建(Daily Build/Nightly Build)及早和經(jīng)常的集成

          持續(xù)集成(Continuous Integration)持續(xù)集成認(rèn)為,集成應(yīng)該更為繁瑣。

          什么時(shí)候用到分層集成:內(nèi)部高聚合,外部松耦合的時(shí)候需要。

          第六章構(gòu)件管理與環(huán)境設(shè)置                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

          構(gòu)建:簡單的說,就是從源代碼生產(chǎn)出安裝包的過程。

          從源代碼到安裝包這一生成轉(zhuǎn)換過程,要有足夠的管理,確保其可重復(fù)性。

          1、 原材料是固定和明確的。

          2、 工具是固定和明確的

          3、 參數(shù)設(shè)置也必須是固定和明確的。這在具體執(zhí)行編譯、鏈接和打包的命令參數(shù)上體現(xiàn)出來

          4、 生產(chǎn)過程是固定和明確的。

          想要做到這一點(diǎn),一個(gè)好的辦法是自動(dòng)化,盡可能的自動(dòng)化。

          全量構(gòu)建與增量構(gòu)建       

          全量構(gòu)建:從頭來過,從每一個(gè)源文件的編譯開始

          增量構(gòu)建:盡可能地利用上次構(gòu)建的成果。增量構(gòu)建的輸入,不僅包括原材料,還包括上次構(gòu)件中,產(chǎn)生的中間產(chǎn)品,比如編譯產(chǎn)生的很多中間文件。

          記錄構(gòu)建相關(guān)信息:

          1、 構(gòu)建是怎么定的,怎么配的。

          2、 構(gòu)建的執(zhí)行情況。

          環(huán)境和設(shè)置:不止是在構(gòu)建的時(shí)候

          軟件開發(fā)相關(guān)的環(huán)境:構(gòu)建環(huán)境、開發(fā)環(huán)境、運(yùn)行環(huán)境。

          管理是發(fā)現(xiàn)、傳播和共享的過程

          第七章分支:減少等待,分頭工作

          文件級(jí)分支

          產(chǎn)品級(jí)分支

          典型應(yīng)用一:實(shí)現(xiàn)多層集成

          典型應(yīng)用二:實(shí)現(xiàn)交迭

          分支為什么這樣有用:

          1、 適當(dāng)隔離

          2、 適當(dāng)共享

          工作空間:本質(zhì)是以產(chǎn)品的一個(gè)整體版本為起點(diǎn),再加上一個(gè)未完成的任務(wù)單元。

          工作空間支持隔離,支持共享

          分支和工作空間都支持隔離和共享,為什么同時(shí)需要這兩個(gè):

              兩者各有優(yōu)勢和劣勢,它們之間是相互配合、相互補(bǔ)充的關(guān)系,而不是相互替代的關(guān)系。

          1、 分支無法代替工作空間。工作空間可以容納未完成的任務(wù)單元,尚未檢入和提交的修改,正在時(shí)時(shí)刻刻不斷變化的修改,因此直接支持開發(fā)人員的日常工作。無論是否使用分支,一定要使用工作空間。

          2、 只使用工作空間,不使用分支,常常是不夠的。分支又3個(gè)優(yōu)勢:

          A、可以同時(shí)容納多個(gè)已提交的任務(wù)單元,并以此和其他分支相區(qū)別----工作空間只能容納一個(gè)未完成的任務(wù)單元

          B、分支存儲(chǔ)在服務(wù)器上,比存儲(chǔ)在本地的工作空間要安全

          C、分支是所有人都能看見的,并且如果有必要,所有人都能在其上工作,而工作空間是單個(gè)開發(fā)人員自己的地盤,只有他可以在里面工作

          分支有個(gè)弱點(diǎn),就是不能改變其起始點(diǎn)。    

          第八章管理文檔

          文檔的標(biāo)識(shí)和存儲(chǔ)

           它們與源代碼的不同主要體現(xiàn)在兩方面:

          1、 “文責(zé)自負(fù)”,因此,對(duì)文檔的修改的協(xié)調(diào),通常是用鎖機(jī)制,或者干脆就不提供自動(dòng)機(jī)制。

          2、 “獨(dú)立成篇

            自帶的說明信息

                文檔常有明確的所有者,由他修改,其他人只是閱讀。文檔通常獨(dú)立成篇,文檔間的耦合性不強(qiáng)。因此文檔的傳遞和復(fù)制,通常管制比較松。這就要求,文檔本身的一些信息,比如版本信息等,要由它自身攜帶。

          文檔中起始的一到二頁,常常用來更全面地記錄和展現(xiàn)相關(guān)信息:

          1、 關(guān)于文檔的名稱,在文件名中,可能只是以縮寫體現(xiàn)的。在文檔中就應(yīng)該給出文檔名稱的全名。

          2、 應(yīng)該以某種方式,指出文檔的“出處”。

          文檔通常會(huì)有一定的密級(jí),不同的文檔,密級(jí)可能不同。應(yīng)該在文檔起始頁明確標(biāo)出文檔的密級(jí),讓使用者留意自己的行為。這是公司司法務(wù)部門特別關(guān)注的,他們同樣關(guān)注版權(quán)信息。這通常也明確標(biāo)識(shí)在文檔的起始處。

          對(duì)于當(dāng)前版本的信息,主要有三項(xiàng):1、版本號(hào) 2、版本產(chǎn)生時(shí)間 3、版本目的或狀態(tài) 對(duì)于文檔也類似

          文檔的狀態(tài),通常有如下三種:1、草稿(Draft) 2、評(píng)審中(InReview) 3、已發(fā)布(Released)

          文檔的作者和參與者的信息,也應(yīng)該被記錄。比較全面的的記錄內(nèi)容包括:

          l         誰是這份文檔的主人,對(duì)文檔的內(nèi)容及文檔書寫的協(xié)調(diào)工作責(zé)任?

          l         哪些人是這份文檔的主要作者,書寫了這份文檔的絕大部分內(nèi)容?對(duì)于中小型文檔,通常主要作者只有一個(gè)人,且他就是文檔的主人。

          l         哪些人為這份文檔做出了貢獻(xiàn),包括正式的評(píng)審和非正式的建議等?

          l         如果這份文檔是已經(jīng)被批準(zhǔn),正式發(fā)布的文檔,那么,是那些人批準(zhǔn)的,以誰的名義發(fā)布的?

          關(guān)于版本歷史信息。每次修改并保存版本,通常要記錄如下信息

          l         修改后的版本號(hào)

          l         修改完成的時(shí)間

          l         本次修改的修改者

          l         這個(gè)版本的最終狀態(tài)

          l         對(duì)修改的簡單描述

          趨勢:WIKI

          如果想知道關(guān)注的特定內(nèi)容在哪個(gè)文檔里,就得依次打開各個(gè)文檔,看其簡要介紹。為了去除這些不便之處WIKI產(chǎn)生

          WIKI首先是一種語言,一種像HTML一樣的既有內(nèi)容,又有格式的語言。

          登陸WIKI系統(tǒng),在特定頁面的可編輯區(qū)域里,用WIKI語言書寫,修改和保存。而在展現(xiàn)給別人的時(shí)候,WIKI系統(tǒng)會(huì)自動(dòng)把它翻譯成了HTML語言,在瀏覽器中顯示。

          WIKI定位與“面向社群的協(xié)作式協(xié)作”。它很好的做到了這一點(diǎn)。

          趨勢:數(shù)據(jù)文件和數(shù)據(jù)庫

             更好的方法是用一套需求管理工具來管理需求信息。每個(gè)需求是一個(gè)條目,條目可以有各種屬性;條目有它的修改歷史;條目之間的關(guān)系被記錄,一旦一個(gè)條目被修改,相關(guān)的條目會(huì)被提醒要不要修改,等等。需求管理工具把這些數(shù)據(jù),保存在特定各式的數(shù)據(jù)庫文件里,或者數(shù)據(jù)庫里。使用需求管理工具來記錄和管理需求,比用一般文檔文件來記錄和管理需求,要方便地多

          還有些工具,為軟件開發(fā)活動(dòng)提供支持。這里,討論關(guān)于這些工具所保存和使用的數(shù)據(jù)的管理工作。這些數(shù)據(jù),同樣是軟件項(xiàng)目的資產(chǎn),同樣應(yīng)該進(jìn)行軟件配置管理。這主要通過兩種途徑實(shí)現(xiàn):

          由相關(guān)工具本身提供一定的軟件配置管理功能。

          對(duì)數(shù)據(jù)文件或數(shù)據(jù)庫,進(jìn)行外在的、整體的管理。

           途徑一和途徑二相輔相成。

          第九章       跟蹤缺陷,直到消滅

          Bug跟蹤系統(tǒng),學(xué)名叫缺陷跟蹤系統(tǒng)(Defect Tracking System.

          發(fā)現(xiàn)了這個(gè)缺陷,并且報(bào)上來。(Reported已報(bào)告)

          大致看看這個(gè)缺陷,并分配給合適的程序員去處理。(Assigned已分配)

          解決這個(gè)缺陷,這道工序由程序員來完成。(Resolved已解決)

          確定這個(gè)缺陷真的被修復(fù)了(Closed已關(guān)閉)

          準(zhǔn)確記錄,便于修復(fù)

          每條缺陷記錄,有一行標(biāo)題Title,或者叫總結(jié)(Summary),簡述缺陷的內(nèi)容。

          還有一些字段能起到類似作用,比如關(guān)鍵字(Key Words。

          對(duì)于真正修改源代碼以修復(fù)缺陷的程序員而言,它們需要對(duì)缺陷的詳細(xì)描述,這通常通過讓缺陷報(bào)告者填寫細(xì)節(jié)描述(Description)區(qū)域來實(shí)現(xiàn)

          對(duì)缺陷的詳細(xì)描述,一定要做到可以復(fù)現(xiàn)這個(gè)缺陷。要詳細(xì)記錄當(dāng)時(shí)的操作環(huán)境,當(dāng)時(shí)的操作步驟,以及當(dāng)時(shí)的缺陷現(xiàn)象。 對(duì)缺陷的詳細(xì)描述,是處理缺陷和檢驗(yàn)處理結(jié)果的依據(jù),十分重要!

          在有些缺陷跟蹤跟蹤系統(tǒng)里,除了可以用文字詳細(xì)描述缺陷外,還可以上傳相關(guān)附件,比如,當(dāng)時(shí)缺陷情況的截圖或使得程序保存的輸入數(shù)據(jù)文件等。

          救護(hù)是依據(jù)傷員布條的顏色,修復(fù)缺陷也有類似的屬性。它們是兩個(gè):嚴(yán)重程度優(yōu)先級(jí)

          我們需要遵循一個(gè)原則,那就是,避免帶著許多缺陷前進(jìn),缺陷應(yīng)該盡快被消滅。

          關(guān)聯(lián)缺陷記錄與任務(wù)單元

             缺陷記錄與任務(wù)單元之間的關(guān)系,并不一定總是一對(duì)一的關(guān)系。有的缺陷的修復(fù),需要對(duì)程序有比較大的調(diào)整,需要多個(gè)人一起配合,于是,需要有多個(gè)任務(wù)單元。而另一些時(shí)候,幾個(gè)相關(guān)的缺陷,可能是通過一個(gè)任務(wù)單元就都修復(fù)了

          分析統(tǒng)計(jì)缺陷相關(guān)數(shù)據(jù)

             在缺陷管理方面,我們有典型的三類統(tǒng)計(jì)。這三類統(tǒng)計(jì),各有益處:

          用來回答缺陷是怎么分布、數(shù)量是多少。

          用來回答隨著時(shí)間的遷移,缺陷的總體趨勢是什么樣的。

          關(guān)于缺陷年齡的統(tǒng)計(jì)。

             另一種展現(xiàn)方式,是報(bào)表:報(bào)表的好處是,文字上的東西可以多些;具體的數(shù)字,可以看的更清楚些;交給領(lǐng)導(dǎo),也更像樣子。

          第十章管理變更

             比缺陷更廣闊的話題,是變更請求,比變更請求更廣闊的話題,是變更。

             變更在不同的文檔中,在不同的上下文中,有不同的含義,而我們更關(guān)心的是功能需求上的變更請求,架構(gòu)設(shè)計(jì)上的變更請求。

          管理細(xì)小的變更

            功能增強(qiáng)(Enhancement):指一些小小的請求,請求吧程序已有的功能,稍稍增強(qiáng)一點(diǎn),或者稍稍改變一下。

          對(duì)這類請求的管理,就有點(diǎn)像缺陷的管理:缺陷的特點(diǎn)1、數(shù)量多,容易丟;2、通常每個(gè)涉及的改動(dòng)工作量都不大,經(jīng)常是一個(gè)任務(wù)單元就能完成;3、通常每個(gè)缺陷都能明確對(duì)應(yīng)到源代碼的改動(dòng);4、通常缺陷之間相互獨(dú)立,不要通盤考慮。  正是因?yàn)檫@樣的特點(diǎn),所以把缺陷按條目記錄,進(jìn)而分別跟蹤、處理,直至解決。

          但是功能增強(qiáng)的處理流程,與缺陷的處理流程,也有所不同。這主要體現(xiàn)在兩點(diǎn)上:

          需要對(duì)功能增強(qiáng)有仔細(xì)的評(píng)估,進(jìn)而確定是否要實(shí)現(xiàn)。

          功能增強(qiáng)所導(dǎo)致的修改,常常不僅是源代碼的修改。  

          在瀑布模型中管理變更

          瀑布模型希望能夠借助在傳統(tǒng)工程中的成功經(jīng)驗(yàn),來實(shí)現(xiàn)軟件開發(fā)項(xiàng)目的成功。

          瀑布模型希望也能用這樣的方法進(jìn)行軟件開發(fā)。

          在瀑布模型中,變更的管理很重要。其主要的關(guān)注點(diǎn)是:一但定下來的事,就要執(zhí)行,不能亂改。要減少變更,變更不能隨意發(fā)生。所以,變更管理的核心是,嚴(yán)格控制變更。

          一個(gè)常見的做法,設(shè)立變更控制委員會(huì)(Change Control Board,CCB

           

          在迭代模型中管理變更

          它的思想核心是,盡早反饋。

          迭代式開發(fā)把一個(gè)大項(xiàng)目在時(shí)間軸分解成很多個(gè)小項(xiàng)目,每個(gè)小項(xiàng)目被稱作一個(gè)迭代(Iteration。幾乎每次迭代都會(huì)包含需求分析,系統(tǒng)設(shè)計(jì),代碼實(shí)現(xiàn),以及集成和測試。

          在每次迭代的過程中,通常不會(huì)接受新的變更,特別是比較大的變更。每次迭代的時(shí)間不長,一般只是三四個(gè)星期,應(yīng)該集中精力在要做的事情上,而不是對(duì)要做什么猶豫不決。

          影響變更控制的因素

          作為嚴(yán)格的變更控制,需要在變更提出時(shí),填寫足夠詳盡的相關(guān)信息。然后是足夠的變更評(píng)估,評(píng)估變更影響的方方面面。之后,做出變更決定。這也要經(jīng)過充分討論,并最終取得一致。接著,是變更的實(shí)施,對(duì)源代碼和文檔的改動(dòng)。變更實(shí)施后,要經(jīng)過足夠的測試和驗(yàn)證,保證變更真的發(fā)生了,真的正確地發(fā)生了。

          不是所有的變更,都要經(jīng)歷這么嚴(yán)格的控制,那么,哪些因素會(huì)影響對(duì)變更的控制程度和控制流程呢?

          l         變更的類型

          l         變更的大小

          l         變更的影響面

          l         變更的風(fēng)險(xiǎn)

          l         變更發(fā)生的時(shí)間

          l         研發(fā)規(guī)模

          記錄產(chǎn)品版本間的差異

           發(fā)布給用戶的文檔,除了關(guān)于整個(gè)產(chǎn)品的描述文檔,比如使用手冊外,還要有關(guān)于版本間差異的說明。這通常在發(fā)布說明(Release Notes文檔中實(shí)現(xiàn)。

           現(xiàn)在,我們重點(diǎn)關(guān)注版本間差異的說明。我們?nèi)绾萎a(chǎn)生這個(gè)說明?信息從哪兒來?

           有四個(gè)途徑:

          查看版本控制系統(tǒng)。

          查看變更請求數(shù)據(jù)庫

          查看項(xiàng)目計(jì)劃或迭代計(jì)劃

          查看需求數(shù)據(jù)庫或需求文檔

          控制產(chǎn)品版本間的差異

            在版本控制系統(tǒng)里,我們可以加一些控制,以保證程序員做且只做該做的事:

             第一種方法是,讓任務(wù)單元不是由程序員創(chuàng)建,而是由管理人員創(chuàng)建,然后指定給相應(yīng)的程序員完成。

             第二種方法是事后控制。在程序員完成了任務(wù)單元后,如果想提交,需要得到某種批準(zhǔn)。只有符合本次版本需要的任務(wù)單元,才可以提交。

          第十一章產(chǎn)品整個(gè)生命周期內(nèi)的配置管理

          制定計(jì)劃

          計(jì)劃文檔的內(nèi)容及詳略在不同的項(xiàng)目間有極大的差異。計(jì)劃文檔內(nèi)容及繁簡,主要受以下幾方面因素的影響:

          組織級(jí)軟件配置管理系統(tǒng)建設(shè)的情況,包括工具

          特定項(xiàng)目“與眾不同”的程度。越是特殊的項(xiàng)目,越需要更多的計(jì)劃,并體現(xiàn)為計(jì)劃文檔的內(nèi)容。

          特定項(xiàng)目的軟件配置管理的復(fù)雜性。

          軟件配置管理計(jì)劃中的內(nèi)容,可能會(huì)隨著時(shí)間的推移、項(xiàng)目的進(jìn)展而改變。應(yīng)該積極面對(duì)這樣的變化,適當(dāng)調(diào)整計(jì)劃,并反映在計(jì)劃文檔上。文檔需要持續(xù)維護(hù)。

          做好準(zhǔn)備

             軟件配置管理系統(tǒng),可大致分為工具、過程和人三個(gè)方面。要做好軟件配置管理系統(tǒng)的運(yùn)行準(zhǔn)備,就要做好這三個(gè)方面的準(zhǔn)備

          監(jiān)控、調(diào)整與改進(jìn)

          軟件配置管理系統(tǒng)的運(yùn)行,既需要參與者的深刻理解和自覺執(zhí)行,也需要某種形式的監(jiān)控。

          第一類調(diào)整:項(xiàng)目的軟件配置管理策略、方法,需要隨著項(xiàng)目的緊張進(jìn)行調(diào)整。 

          第二類調(diào)整:在制定計(jì)劃時(shí),不能準(zhǔn)備地估計(jì)到項(xiàng)目對(duì)軟件配置管理的需求;不能準(zhǔn)確地估計(jì)到在這個(gè)項(xiàng)目中,各項(xiàng)軟件配置管理工作應(yīng)該怎么做,應(yīng)該做到什么程度。

          隨著對(duì)軟件配置管理的認(rèn)識(shí)不斷提高,會(huì)對(duì)流程進(jìn)行調(diào)整;隨著新的軟件配置管理工具的選型、購買、安裝設(shè)置的完成,會(huì)對(duì)項(xiàng)目所用工具進(jìn)行調(diào)整。這類以提

          升為主要特征的調(diào)整,通常被稱為改進(jìn)。

          收尾

          在產(chǎn)品發(fā)布、項(xiàng)目收尾階段,軟件配置管理同樣需要進(jìn)行收尾工作。這主要包括兩個(gè)方面,軟件資產(chǎn)的整理和歸檔工作、軟件配置管理本身的總結(jié)和共享工作。

          第十二章玄妙的學(xué)院派

          配置管理由配置識(shí)別、配置控制、配置狀態(tài)報(bào)告、配置審計(jì)四部分組成。

          配置識(shí)別(Configuration Identification

          包括選擇產(chǎn)品的配置項(xiàng)、為它們指定唯一的標(biāo)識(shí),并在技術(shù)文檔中記錄其功能和物理的特征。

          配置控制 (Configuration Control)

          包含評(píng)估、協(xié)調(diào)、批準(zhǔn)/拒絕、實(shí)施對(duì)配置項(xiàng)的變更。這應(yīng)該發(fā)生在正式的配置識(shí)別之后

          對(duì)于變更,還有協(xié)調(diào)的工作要做,這主要體現(xiàn)在三個(gè)方面:

          在不同的變更請求之間的關(guān)聯(lián)性。

          一個(gè)變更請求,可能會(huì)影響到不同的產(chǎn)品,因?yàn)樗M(jìn)行的改動(dòng),是在一個(gè)公共組件上,這個(gè)組件被好幾個(gè)產(chǎn)品使用。

          體現(xiàn)在完成的先后順序上,有的請求比較緊急,有的請求比較重大,要優(yōu)先安排人力資源去完成,有些則可以拖一拖。

          配置狀態(tài)報(bào)告 (Configuration Status Report)

          記錄和報(bào)告用來有效管理配置所需的必要信息。這些信息包括一個(gè)已批準(zhǔn)的配置識(shí)別清單,變更請求當(dāng)前的處理狀態(tài),以及已批準(zhǔn)的變更的實(shí)現(xiàn)情況。

          配置審計(jì) (Configuration Audit)

          執(zhí)行審計(jì)以驗(yàn)證配置項(xiàng)符合特定的標(biāo)準(zhǔn)或需求

          配置審計(jì)定義中所說的審計(jì),是指對(duì)象本身是否符合需求和相關(guān)的標(biāo)準(zhǔn),而不是制作對(duì)象的過程。

          那么軟件配置項(xiàng)的審計(jì),是指什么呢?

             首先,是要確保需求文檔反映了客戶的需求,設(shè)計(jì)文檔反映了需求文檔的要求,源代碼實(shí)現(xiàn)了設(shè)計(jì)文檔的目標(biāo)。這樣一層層遞進(jìn),以確保跑起來的程序,就是客戶想要的。

             其次,在源代碼寫完之后,要進(jìn)行單元測試;集成時(shí),要做粗略測試;進(jìn)而,由系統(tǒng)測試團(tuán)隊(duì)進(jìn)行系統(tǒng)測試;最后,由用戶或用戶代表進(jìn)行接受測試。

          審計(jì)又被分為功能審計(jì)物理審計(jì)

          在相關(guān)標(biāo)準(zhǔn)里

            能力成熟度集成模型(Capability Maturity Model Integration,CMMI中,對(duì)包括軟件配置管理在內(nèi)的配置管理工作,從如下角度進(jìn)行了劃分。

          l         建立基線

                 首先,識(shí)別配置項(xiàng);接著,建立配置管理系統(tǒng),用來存放配置項(xiàng);最后,通過評(píng)審或測試后,由配置項(xiàng)組成基線,作為未來開發(fā)的基礎(chǔ)。

          l         建立并控制變更

          l         建立完整性

                  首先,要對(duì)配置管理活動(dòng)做足夠的記錄;其次,要進(jìn)行配置審計(jì)。

           以上3個(gè)方面,是針對(duì)配置管理的要求。還有兩方面,使用于各方面的管理,配置管理也需要:

          l         制度化已管理過程

                  在一個(gè)軟件研發(fā)項(xiàng)目中做配置管理,首先要建立配置管理計(jì)劃,然后確保有足夠的資源,包括工具、環(huán)境、也包括人員。在配置管理系統(tǒng)運(yùn)轉(zhuǎn)過程中,要適當(dāng)監(jiān)控。

          l         制度化已定義過程

                  要形成可以指導(dǎo)現(xiàn)在和未來多個(gè)軟件研發(fā)項(xiàng)目的配置管理過程規(guī)范。這樣的規(guī)范不是一成不變的。要收集相關(guān)的信息、數(shù)據(jù)和反饋,并基于此,進(jìn)行軟件配置管理的持續(xù)的改進(jìn)。

           軟件能力成熟度模型(Capability Maturity Model for Software,SW-CMM

          l         執(zhí)行約定

          l         執(zhí)行能力

          l         執(zhí)行的活動(dòng)

          l         度量和分析

          l         驗(yàn)證實(shí)施



                                                                                                                 --    學(xué)海無涯
                  

          主站蜘蛛池模板: 株洲市| 宁夏| 夹江县| 竹北市| 乐东| 芒康县| 普格县| 商城县| 峨山| 新沂市| 和静县| 喜德县| 鄯善县| 依兰县| 安仁县| 德钦县| 托克逊县| 天长市| 增城市| 湘乡市| 雷州市| 嵊州市| 醴陵市| 全南县| 堆龙德庆县| 潞西市| 正安县| 江陵县| 肇东市| 定兴县| 和平区| 宜阳县| 洪泽县| 湛江市| 西乌珠穆沁旗| 凤城市| 滨州市| 印江| 抚顺市| 茶陵县| 巴南区|