版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第12章 軟件配置管理 12.1 什么是軟件配置管理 12.2 軟件配置管理的相關(guān)概念 12.3 軟件配置管理的活動(dòng) 12.4 軟件配置管理組織 12.5 配置管理工具 12.6 小結(jié) 12.1 什么是軟件配置管理變更是軟件過(guò)程中的一項(xiàng)基本活動(dòng),需求變更驅(qū)動(dòng)設(shè)計(jì)變更,設(shè)計(jì)變更驅(qū)動(dòng)代碼變更,測(cè)試活動(dòng)也將導(dǎo)致變更,有時(shí)甚至是原始需求的變更。對(duì)于軟件過(guò)程中經(jīng)常遇到的變更問(wèn)題,如果沒(méi)有有效的機(jī)制進(jìn)行控制,將會(huì)引起巨大的混亂,導(dǎo)致項(xiàng)目失敗。軟件配置管理(Software Configuration Management, SCM)就是在項(xiàng)目開(kāi)發(fā)中,標(biāo)識(shí)、控制和管理軟件變更的一種管理活動(dòng),是通過(guò)技術(shù)或行政
2、手段對(duì)軟件產(chǎn)品及其開(kāi)發(fā)過(guò)程和生命周期進(jìn)行控制、規(guī)范的一系列措施,用于記錄軟件產(chǎn)品的演化過(guò)程,最大限度地減少錯(cuò)誤和混亂,保證軟件項(xiàng)目工作產(chǎn)品在整個(gè)生命周期內(nèi)的完整性。IEEE關(guān)于軟件配置管理的定義為:軟件配置管理是一門(mén)應(yīng)用技術(shù)、管理和監(jiān)督相結(jié)合的學(xué)科,通過(guò)標(biāo)識(shí)和文檔來(lái)記錄配置項(xiàng)的功能和物理特性,控制這些特性的變更,記錄和報(bào)告變更的過(guò)程和狀態(tài),并驗(yàn)證它們與需求是否一致。隨著軟件開(kāi)發(fā)規(guī)模的不斷擴(kuò)大,一個(gè)項(xiàng)目的中間軟件產(chǎn)品的數(shù)目越來(lái)越多,中間軟件產(chǎn)品之間的關(guān)系越來(lái)越復(fù)雜,對(duì)中間軟件產(chǎn)品的管理也越來(lái)越困難,有效的軟件配置管理有助于解決這些問(wèn)題。軟件配置管理貫穿于軟件生存期的全過(guò)程,目的是用于建立和維護(hù)軟
3、件產(chǎn)品的完整性和可追朔性。12.1.1 配置管理需求分析現(xiàn)在的軟件開(kāi)發(fā)通常由許多人共同合作完成。在團(tuán)隊(duì)開(kāi)發(fā)模式中,軟件項(xiàng)目開(kāi)發(fā)管理就顯得更加重要,直接影響到軟件產(chǎn)品的質(zhì)量。如果缺乏對(duì)軟件開(kāi)發(fā)過(guò)程的統(tǒng)一管理,就會(huì)產(chǎn)生如圖12.1所示的問(wèn)題。 圖12.1 缺乏統(tǒng)一管理出現(xiàn)的問(wèn)題(在實(shí)際開(kāi)發(fā)中表現(xiàn)為項(xiàng)目組成員溝通困難、軟件重用率低下、開(kāi)發(fā)人員各自為政、代碼冗余度高、文檔不健全等)缺乏統(tǒng)一管理出現(xiàn)的問(wèn)題具體描述為:(1) 由于開(kāi)發(fā)經(jīng)費(fèi)及開(kāi)發(fā)時(shí)間的限制,不可能一次開(kāi)發(fā)就解決所有問(wèn)題,許多問(wèn)題有待維護(hù)階段解決,由此帶來(lái)軟件產(chǎn)品的不斷升級(jí),但是維護(hù)和升級(jí)必需的文檔往往非常混亂。(2) 開(kāi)發(fā)過(guò)程缺乏規(guī)范化管理
4、,即使有源程序以及相應(yīng)的文檔,也由于說(shuō)明不詳細(xì)而不能對(duì)產(chǎn)品進(jìn)行功能擴(kuò)充,用戶(hù)不得不再次投入大量的經(jīng)費(fèi)去開(kāi)發(fā)新產(chǎn)品,浪費(fèi)大量的人力、物力和時(shí)間。(3) 在開(kāi)發(fā)團(tuán)隊(duì)中,人員流動(dòng)在所難免。如果管理不善,有些人員流動(dòng)將對(duì)開(kāi)發(fā)工作產(chǎn)生致命影響。特別是軟件開(kāi)發(fā)管理人員或核心成員的流失,可能會(huì)導(dǎo)致無(wú)法確定軟件產(chǎn)品中各模塊所處的狀態(tài)及階段,使軟件產(chǎn)品版本出現(xiàn)混亂,甚至可能泄露公司的核心機(jī)密。(4) 管理不善可能導(dǎo)致未經(jīng)測(cè)試的軟件成分加入到產(chǎn)品中,不但會(huì)影響產(chǎn)品質(zhì)量,有時(shí)還會(huì)導(dǎo)致致命錯(cuò)誤,以至造成不可挽回的損失。(5) 用戶(hù)利益無(wú)法保證,用戶(hù)與開(kāi)發(fā)商缺乏有效的溝通手段。用戶(hù)投入了開(kāi)發(fā)費(fèi)用后,得到的只是可執(zhí)行文件
5、和一堆雜亂無(wú)章的文檔。即使是較好的文檔,對(duì)不熟悉開(kāi)發(fā)過(guò)程的非專(zhuān)業(yè)人員來(lái)說(shuō)也無(wú)從下手,更談不上日后的維護(hù)和升級(jí)。(6) 軟件生產(chǎn)達(dá)不到規(guī)?;瑹o(wú)法形成軟件企業(yè)的內(nèi)部標(biāo)準(zhǔn)構(gòu)件倉(cāng)庫(kù)。軟件產(chǎn)品總處于一種低水平、重復(fù)開(kāi)發(fā)的狀態(tài),不但時(shí)間得不到保證,而且成本也無(wú)法降低,產(chǎn)品也就缺乏市場(chǎng)競(jìng)爭(zhēng)力。這些問(wèn)題在實(shí)際開(kāi)發(fā)中表現(xiàn)為項(xiàng)目組成員溝通困難、軟件重用率低下、開(kāi)發(fā)人員各自為政、代碼冗余度高、文檔不健全等。由此造成的后果是數(shù)據(jù)丟失、開(kāi)發(fā)周期漫長(zhǎng)、產(chǎn)品可靠性差、軟件維護(hù)困難、用戶(hù)抱怨使用不方便、項(xiàng)目風(fēng)險(xiǎn)增加等。怎樣進(jìn)行軟件開(kāi)發(fā)管理才能生產(chǎn)出高質(zhì)量的軟件產(chǎn)品呢?ISO 9000質(zhì)量管理和質(zhì)量保證體系制定了相關(guān)標(biāo)準(zhǔn)軟件
6、開(kāi)發(fā)、供應(yīng)和維護(hù)使用指南。標(biāo)準(zhǔn)除對(duì)軟件生命周期的各個(gè)階段做出了嚴(yán)格規(guī)定外,還在質(zhì)量體系中規(guī)定了與階段無(wú)關(guān)的支持活動(dòng),其中軟件配置管理被放在了首位。作為管理軟件開(kāi)發(fā)過(guò)程的有效方法,SCM的有效性早已被發(fā)達(dá)國(guó)家軟件產(chǎn)業(yè)的發(fā)展實(shí)踐所證明。SCM可以系統(tǒng)地管理軟件系統(tǒng)中的多重版本,全面記載系統(tǒng)開(kāi)發(fā)的歷史過(guò)程,包括為什么修改、誰(shuí)做了修改、修改了什么,同時(shí)管理和追蹤開(kāi)發(fā)過(guò)程中危害軟件質(zhì)量、影響開(kāi)發(fā)周期的缺陷和變化。SCM對(duì)開(kāi)發(fā)過(guò)程進(jìn)行有效的管理和控制,完整、明確地記載開(kāi)發(fā)過(guò)程中的歷史變更,形成規(guī)范化的文檔。SCM是通往ISO 9000和SEI CMM標(biāo)準(zhǔn)的基石。在軟件開(kāi)發(fā)團(tuán)隊(duì)中,正確地引入、實(shí)施軟件配置管
7、理系統(tǒng),可以提高生產(chǎn)力、增強(qiáng)對(duì)項(xiàng)目的控制能力、改善軟件產(chǎn)品質(zhì)量,使企業(yè)從容地面對(duì)快速上市和產(chǎn)品質(zhì)量的雙重壓力。12.1.2 配置管理的作用隨著軟件系統(tǒng)的日益復(fù)雜化和用戶(hù)需求的多樣化、軟件升級(jí)的頻繁化,軟件配置管理逐漸成為軟件生存周期中的重要控制過(guò)程,在軟件開(kāi)發(fā)過(guò)程中扮演著越來(lái)越重要的角色。好的配置管理過(guò)程能覆蓋軟件開(kāi)發(fā)和維護(hù)的各個(gè)方面,同時(shí)對(duì)軟件開(kāi)發(fā)過(guò)程的宏觀管理(即項(xiàng)目管理)也有重要的支持作用。良好的配置管理能使軟件開(kāi)發(fā)過(guò)程有更好的可預(yù)測(cè)性,使軟件系統(tǒng)具有可重復(fù)性,使用戶(hù)和主管部門(mén)對(duì)軟件質(zhì)量和開(kāi)發(fā)小組有更強(qiáng)的信心。軟件配置管理通過(guò)對(duì)軟件的修改和每個(gè)修改生成的軟件組成部件進(jìn)行控制、記錄、追蹤來(lái)
8、實(shí)現(xiàn)對(duì)軟件產(chǎn)品的管理功能。由于軟件產(chǎn)品是在用戶(hù)需求不斷變化的驅(qū)動(dòng)下不斷變化的,為了保證對(duì)產(chǎn)品有效地進(jìn)行控制和追蹤,配置管理過(guò)程不能僅對(duì)靜態(tài)的、成型的產(chǎn)品進(jìn)行管理,還必須對(duì)動(dòng)態(tài)的、成長(zhǎng)的產(chǎn)品進(jìn)行管理。由此可見(jiàn),配置管理同軟件開(kāi)發(fā)過(guò)程緊密相關(guān)。配置管理必須緊扣軟件開(kāi)發(fā)過(guò)程的各個(gè)環(huán)節(jié):管理用戶(hù)所提出的需求,監(jiān)控其實(shí)施,確保用戶(hù)需求最終落實(shí)到產(chǎn)品的各個(gè)版本中去,并在產(chǎn)品發(fā)行和用戶(hù)支持等方面提供幫助,響應(yīng)用戶(hù)新的需求,推動(dòng)新的開(kāi)發(fā)周期。通過(guò)配置管理過(guò)程控制,用戶(hù)對(duì)軟件產(chǎn)品的需求如同普通產(chǎn)品的訂單一樣,遵循嚴(yán)格的流程,經(jīng)過(guò)受控的生產(chǎn)流水線,最后形成產(chǎn)品,發(fā)售給相應(yīng)用戶(hù)。從另一個(gè)角度看,在產(chǎn)品開(kāi)發(fā)的不同階段
9、通常有不同的任務(wù),由不同的角色擔(dān)當(dāng),各個(gè)角色職責(zé)明確、涇渭分明,同時(shí)又前后銜接、相互協(xié)調(diào)。好的配置管理過(guò)程有助于規(guī)范各個(gè)角色的行為,同時(shí)又為角色之間的任務(wù)傳遞提供無(wú)縫銜接,使整個(gè)開(kāi)發(fā)團(tuán)隊(duì)像一個(gè)交響樂(lè)隊(duì)一樣和諧地進(jìn)行。正因?yàn)榕渲霉芾磉^(guò)程直接連接產(chǎn)品開(kāi)發(fā)過(guò)程、開(kāi)發(fā)人員和最終產(chǎn)品,這些都是項(xiàng)目主管人員關(guān)注的重點(diǎn),因此,配置管理在軟件項(xiàng)目管理中也起著越來(lái)越重要的作用。配置管理過(guò)程演化出的控制、報(bào)告功能可以幫助項(xiàng)目經(jīng)理更好地了解項(xiàng)目進(jìn)度、開(kāi)發(fā)人員負(fù)荷、工作效率、產(chǎn)品質(zhì)量狀況和交付日期等信息。同時(shí),配置管理過(guò)程所規(guī)范的工作流程和明確分工有利于管理者應(yīng)付開(kāi)發(fā)人員流動(dòng)的困境,使新老成員可以快速實(shí)現(xiàn)任務(wù)交接,盡
10、量減少因人員流動(dòng)造成的損失。配置管理對(duì)軟件開(kāi)發(fā)項(xiàng)目的具體作用,表現(xiàn)在以下幾個(gè)方面:(1) 縮短開(kāi)發(fā)周期。通過(guò)配置管理工具對(duì)程序資源進(jìn)行版本管理和跟蹤,建立公司的代碼知識(shí)庫(kù),保存開(kāi)發(fā)過(guò)程中每個(gè)過(guò)程的版本,可以提高代碼重用率,便于同時(shí)維護(hù)多個(gè)版本和進(jìn)行新版本開(kāi)發(fā),防止系統(tǒng)崩潰,最大限度地共享代碼。同時(shí),項(xiàng)目管理人員通過(guò)查看項(xiàng)目開(kāi)發(fā)日志對(duì)開(kāi)發(fā)過(guò)程進(jìn)行管理,測(cè)試人員可以根據(jù)開(kāi)發(fā)日志的不同版本對(duì)軟件進(jìn)行測(cè)試,工程人員可以得到不同的運(yùn)行版本。有些配置管理工具還提供Web版本,供外地實(shí)施人員存取最新版本,無(wú)須開(kāi)發(fā)人員親臨現(xiàn)場(chǎng)。(2) 減少施工費(fèi)用。利用配置管理工具,建立開(kāi)發(fā)管理規(guī)范,把版本管理檔案鏈接到公司
11、內(nèi)部的Web服務(wù)器上,內(nèi)部人員可直接通過(guò)瀏覽器訪問(wèn),工程人員通過(guò)遠(yuǎn)程進(jìn)入內(nèi)部網(wǎng),進(jìn)而獲取所需的最新版本。開(kāi)發(fā)人員無(wú)須親自到現(xiàn)場(chǎng),現(xiàn)場(chǎng)工程人員通過(guò)對(duì)方系統(tǒng)管理員收集反饋意見(jiàn),書(shū)面提交到公司內(nèi)部開(kāi)發(fā)組的項(xiàng)目經(jīng)理,開(kāi)發(fā)組內(nèi)部討論決定是否修改,并做出書(shū)面答復(fù)。這樣可以同時(shí)響應(yīng)多個(gè)項(xiàng)目,防止開(kāi)發(fā)人員被分配到各個(gè)項(xiàng)目引起力量分散、人員緊缺等問(wèn)題,避免開(kāi)發(fā)人員將大量的時(shí)間和精力浪費(fèi)在旅途中,同時(shí)節(jié)約大量的差旅費(fèi)用。(3) 代碼對(duì)象庫(kù)的建立。軟件代碼是軟件開(kāi)發(fā)人員腦力勞動(dòng)的結(jié)晶,也是軟件公司的寶貴財(cái)富,長(zhǎng)期開(kāi)發(fā)過(guò)程中形成的各種代碼對(duì)象就如同一個(gè)個(gè)已生產(chǎn)好的標(biāo)準(zhǔn)件一樣,是快速生成系統(tǒng)的組成部分。一個(gè)長(zhǎng)期的事實(shí)是
12、:一旦某個(gè)開(kāi)發(fā)人員離開(kāi)工作崗位,其原來(lái)所做的代碼便基本成為垃圾,無(wú)人過(guò)問(wèn)。究其原因,就是沒(méi)有專(zhuān)門(mén)對(duì)各個(gè)開(kāi)發(fā)人員的有用代碼對(duì)象進(jìn)行管理,沒(méi)有把使用范圍擴(kuò)大到公司一級(jí),沒(méi)有進(jìn)行規(guī)范化,沒(méi)有加以說(shuō)明和普及。配置管理對(duì)軟件對(duì)象管理提供了一個(gè)平臺(tái)和倉(cāng)庫(kù),有利于建立公司級(jí)的代碼對(duì)象庫(kù)。(4) 建立業(yè)務(wù)及經(jīng)驗(yàn)庫(kù)。通過(guò)配置管理,可以形成完整的開(kāi)發(fā)日志及問(wèn)題集合,以文檔方式伴隨開(kāi)發(fā)的全過(guò)程,不以某個(gè)人的轉(zhuǎn)移而消失,有利于公司積累業(yè)務(wù)經(jīng)驗(yàn),無(wú)論對(duì)版本修改還是版本升級(jí),都具有重要的指導(dǎo)作用。(5) 量化工作量考核。傳統(tǒng)的開(kāi)發(fā)管理中,工作量一直是難以估量的指標(biāo),靠開(kāi)發(fā)人員自己把握,隨意性很大;靠管理人員把握,主觀性卻
13、又太強(qiáng)。采用配置管理工具,開(kāi)發(fā)人員每天下班前將修改的文件上傳,記述當(dāng)天修改的細(xì)節(jié),這些描述可以作為工作量的衡量指標(biāo)。(6) 規(guī)范測(cè)試。采用配置管理,測(cè)試工作有了實(shí)實(shí)在在的內(nèi)容,測(cè)試人員根據(jù)每天的修改細(xì)節(jié)描述,對(duì)每天的工作做具體測(cè)試,對(duì)測(cè)試人員也具有可考核性,這樣環(huán)環(huán)相扣,減少了工作的隨意性。(7) 加強(qiáng)協(xié)調(diào)與溝通。采用配置管理,通過(guò)文檔共享及其特定鎖定機(jī)制,為項(xiàng)目組成員之間搭建交流的平臺(tái),加強(qiáng)項(xiàng)目組成員之間的溝通,做到有問(wèn)題及時(shí)發(fā)現(xiàn)、及時(shí)修改、及時(shí)通知,但又不額外增加太多的工作量。從這些具體作用可以看出,配置管理確實(shí)能夠解決困擾軟件項(xiàng)目經(jīng)理的很多問(wèn)題。12.2 軟件配置管理的相關(guān)概念12.2.
14、1 軟件配置項(xiàng)軟件配置管理的對(duì)象就是軟件配置項(xiàng)(Software Configuration Item, SCI)。軟件配置是指一個(gè)軟件產(chǎn)品在軟件生命周期各個(gè)階段產(chǎn)生的各種形式和各種版本的文檔、程序及其數(shù)據(jù)的集合,軟件配置項(xiàng)就是該集合中的一個(gè)元素。例如,需求規(guī)格說(shuō)明書(shū)、設(shè)計(jì)規(guī)格說(shuō)明書(shū)、源代碼、可執(zhí)行程序、安裝包、測(cè)試計(jì)劃、測(cè)試用例、測(cè)試數(shù)據(jù)、用戶(hù)手冊(cè)和項(xiàng)目計(jì)劃等。另外,構(gòu)造軟件的工具和軟件賴(lài)以運(yùn)行的環(huán)境也應(yīng)作為軟件配置項(xiàng)來(lái)管理,例如操作系統(tǒng)、開(kāi)發(fā)工具、數(shù)據(jù)庫(kù)管理系統(tǒng)和編輯器等,這些工具和環(huán)境要與特定版本的軟件產(chǎn)品相匹配,從而在任何時(shí)候都能夠構(gòu)造和運(yùn)行軟件的任一版本。1. 軟件配置項(xiàng)的狀態(tài)在軟件
15、生命周期中,一般包括制定計(jì)劃、需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和運(yùn)行維護(hù)等狀態(tài)。與此相似,軟件配置項(xiàng)可劃分為設(shè)計(jì)態(tài)、測(cè)試態(tài)、受控態(tài)和運(yùn)行態(tài)4種狀態(tài),狀態(tài)聯(lián)系如圖12.2所示。圖12.2 軟件配置項(xiàng)的4種狀態(tài)(這4種狀態(tài)之間沿箭頭方向進(jìn)行轉(zhuǎn)換,進(jìn)入受控態(tài)就表示配置項(xiàng)已經(jīng)過(guò)測(cè)試,可以進(jìn)入配置庫(kù),受控態(tài)需要交付就進(jìn)入運(yùn)行態(tài),進(jìn)入產(chǎn)品庫(kù))這4種狀態(tài)相互之間的聯(lián)系具有方向性,沿圖中實(shí)線箭頭所指方向的狀態(tài)變化是允許的,虛線表示為了驗(yàn)證或檢測(cè)某些功能或性能而重新執(zhí)行相應(yīng)的測(cè)試,一般不沿虛線變化。2. 軟件配置項(xiàng)的版本軟件配置項(xiàng)也有不同的版本,配置項(xiàng)和配置項(xiàng)的版本類(lèi)似于面向?qū)ο蟮念?lèi)和實(shí)例。配置項(xiàng)可以看成是類(lèi),版本
16、看成是類(lèi)的實(shí)例。例如,圖l2.3表示了數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明的配置項(xiàng)。數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明的不同版本對(duì)應(yīng)于數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明的實(shí)例。配置項(xiàng)的不同版本是從最原始的配置項(xiàng)(相當(dāng)于配置項(xiàng)類(lèi))逐漸演變而來(lái)的,盡管每個(gè)都不相同,但是具有相關(guān)性。圖12.3 軟件配置項(xiàng)類(lèi)及實(shí)例(配置項(xiàng)和配置項(xiàng)的不同版本類(lèi)似于面向?qū)ο蟮念?lèi)和實(shí)例)3. 軟件配置項(xiàng)的分類(lèi)在軟件開(kāi)發(fā)過(guò)程中,最早的軟件配置項(xiàng)是系統(tǒng)需求規(guī)格說(shuō)明書(shū)。隨著軟件開(kāi)發(fā)過(guò)程的不斷深入,需要納入管理的各種工作產(chǎn)品越來(lái)越多,軟件配置項(xiàng)的數(shù)量也隨之上升,而軟件配置管理的目的是在軟件項(xiàng)目的整個(gè)生存周期內(nèi)建立和標(biāo)識(shí)軟件配置項(xiàng),并對(duì)其進(jìn)行控制管理和跟蹤維護(hù),保證其完整性和一致性。這樣軟件配
17、置管理的作用將清晰可見(jiàn)。通過(guò)對(duì)軟件配置項(xiàng)進(jìn)行分類(lèi),可以加強(qiáng)對(duì)軟件配置項(xiàng)的管理。軟件配置項(xiàng)的分類(lèi)如表l2-1所示。表12-1 軟件配置項(xiàng)的分類(lèi)12.2.2 基線1. 基線的定義基線是一個(gè)或多個(gè)配置項(xiàng)的集合,它們的內(nèi)容和狀態(tài)已經(jīng)通過(guò)技術(shù)復(fù)審,并在生存期的某個(gè)階段被接受了。一旦配置項(xiàng)經(jīng)過(guò)復(fù)審并正式成為一個(gè)初始基線,那么該基線就可以作為項(xiàng)目生存期開(kāi)發(fā)活動(dòng)的起始點(diǎn)。IEEE對(duì)基線的定義是這樣的:“已經(jīng)正式通過(guò)復(fù)審和批準(zhǔn)的某規(guī)約或產(chǎn)品,可作為進(jìn)一步開(kāi)發(fā)的基礎(chǔ),只能通過(guò)正式的變更控制過(guò)程才能改變。”所以,根據(jù)這個(gè)定義,在軟件的開(kāi)發(fā)流程中把所有需加以控制的配置項(xiàng)分為基線配置項(xiàng)和非基線配置項(xiàng)兩類(lèi)。例如,基線配置
18、項(xiàng)可能包括所有的設(shè)計(jì)文檔和源程序等,非基線配置項(xiàng)可能包括項(xiàng)目的各類(lèi)計(jì)劃和報(bào)告等?;€代表了軟件開(kāi)發(fā)過(guò)程的各個(gè)里程碑,標(biāo)志了一個(gè)開(kāi)發(fā)過(guò)程階段的結(jié)束。對(duì)于已成為基線的配置項(xiàng),雖然可以修改,但是必須按照一個(gè)特殊的、正式的過(guò)程進(jìn)行評(píng)估,確認(rèn)每一處修改,只有批準(zhǔn)的修改才能安排資源來(lái)實(shí)施修改。相反,對(duì)于未成為基線的配置項(xiàng),可以進(jìn)行非正式修改。在開(kāi)發(fā)過(guò)程中,在不同階段要建立各種基線,因此基線是具有里程碑意義的一個(gè)配置。雖然基線可在任何級(jí)別上定義,但是一般最常用的軟件基線如圖12.4所示。基線提供了軟件生存期中各開(kāi)發(fā)階段的特點(diǎn),其作用是把開(kāi)發(fā)階段工作的劃分更加明確化,使本來(lái)連續(xù)的工作在這些點(diǎn)上斷開(kāi),以便于檢查
19、與肯定階段成果。在交付項(xiàng)中確定一個(gè)一致的子集,作為軟件配置基線,這些版本一般不是同一時(shí)間產(chǎn)生的,但是具有在開(kāi)發(fā)的某一特定步驟上相互一致的性質(zhì),例如系統(tǒng)的一致、狀態(tài)的一致等?;€可以作為一個(gè)檢查點(diǎn),正式發(fā)行的系統(tǒng)必須是經(jīng)過(guò)控制的基線產(chǎn)品。圖12.4 軟件基線示意圖(基線可以作為一個(gè)檢查點(diǎn),以便檢查與肯定階段成果)2. 建立基線的原因建立基線的三大原因是重現(xiàn)性、可追蹤性和報(bào)告。(1) 重現(xiàn)性:指及時(shí)返回并重新生成軟件系統(tǒng)給定發(fā)布版本的能力,或者是在項(xiàng)目早期重新生成開(kāi)發(fā)環(huán)境的能力。(2) 可追蹤性:指建立項(xiàng)目部件之間的前承后繼關(guān)系,目的在于確保設(shè)計(jì)滿(mǎn)足要求、代碼實(shí)施設(shè)計(jì)以及用正確代碼編譯可執(zhí)行文件。
20、(3) 報(bào)告:來(lái)源于一個(gè)基線內(nèi)容同另一個(gè)基線內(nèi)容的比較,基線比較有助于調(diào)試并生成發(fā)布說(shuō)明。3. 基線的分類(lèi)一般來(lái)說(shuō),對(duì)于大多數(shù)生存周期模型而言,存在四種基線。每種基線都表示一個(gè)參照點(diǎn),可以作為項(xiàng)目進(jìn)一步開(kāi)發(fā)的起點(diǎn)。在某些情況下,客戶(hù)依據(jù)這些基線進(jìn)行評(píng)審和支付費(fèi)用。這四種基線是:功能基線、分配基線、開(kāi)發(fā)基線和產(chǎn)品基線。(1) 功能基線。功能基線描述系統(tǒng)應(yīng)該能夠執(zhí)行的功能,是在系統(tǒng)需求評(píng)審和系統(tǒng)設(shè)計(jì)評(píng)審之后所建立的配置。通常,功能基線是軟件開(kāi)發(fā)項(xiàng)目的初始基線。功能基線中的文檔規(guī)范了軟件配置項(xiàng)的所有必要的功能特性,包括為表示這些特性的實(shí)現(xiàn)所要求的系統(tǒng)層的測(cè)試、必要的接口特性、性能需求、質(zhì)量屬性及設(shè)計(jì)
21、約束等,但并不區(qū)分哪些是由軟件執(zhí)行的,哪些是由硬件和操作系統(tǒng)完成的。(2) 分配基線。分配基線有時(shí)候稱(chēng)為軟件需求基線。它描述了被開(kāi)發(fā)的軟件所能執(zhí)行的功能,是在軟件需求評(píng)審之后建立起來(lái)的配置,是系統(tǒng)分配給軟件的需求配置,一般是軟件項(xiàng)目組在完成對(duì)系統(tǒng)的功能性需求和非功能性需求分析后,經(jīng)過(guò)客戶(hù)參與評(píng)審確定后的軟件需求規(guī)格說(shuō)明。(3) 開(kāi)發(fā)基線。開(kāi)發(fā)基線是一個(gè)不斷演化和積累的基線,出現(xiàn)于分配基線和產(chǎn)品基線之間。軟件開(kāi)發(fā)項(xiàng)目組可以根據(jù)項(xiàng)目的需要設(shè)置開(kāi)發(fā)基線,也就是說(shuō)在詳細(xì)設(shè)計(jì)完成之后設(shè)立一個(gè)基線,包括詳細(xì)設(shè)計(jì)報(bào)告、概要設(shè)計(jì)報(bào)告和數(shù)據(jù)庫(kù)設(shè)計(jì)等設(shè)計(jì)文檔。(4) 產(chǎn)品基線。產(chǎn)品基線是在經(jīng)過(guò)系統(tǒng)層驗(yàn)證和確認(rèn)后,
22、確信可交付的產(chǎn)品滿(mǎn)足需求基線中的所有需求項(xiàng)所建立起來(lái)的配置。因此,產(chǎn)品基線完整地記錄了軟件的最終版本。對(duì)外發(fā)布的產(chǎn)品都來(lái)源于這一產(chǎn)品基線,并支持產(chǎn)品的發(fā)布版本。該基線也是任一后續(xù)版本開(kāi)發(fā)的起點(diǎn)。這四種基線的劃分在項(xiàng)目開(kāi)發(fā)周期中對(duì)應(yīng)的位置如圖12.5所示。圖12.5 基線規(guī)劃圖(分配基線、開(kāi)發(fā)基線和產(chǎn)品基線主要是針對(duì)軟件項(xiàng)目的配置基線)4. 建立基線的優(yōu)點(diǎn)(1) 基線為開(kāi)發(fā)部件提供了一個(gè)定點(diǎn)和快照。(2) 新項(xiàng)目可以從基線提供的定點(diǎn)處建立。作為一個(gè)單獨(dú)的分支,新項(xiàng)目將與隨后對(duì)原始項(xiàng)目所進(jìn)行的變更進(jìn)行隔離。(3) 各開(kāi)發(fā)人員可以將建有基線的構(gòu)件作為在隔離的私有工作區(qū)中進(jìn)行更新的基礎(chǔ)。(4) 當(dāng)認(rèn)為
23、更新不穩(wěn)定或不可信時(shí),基線為團(tuán)隊(duì)提供了一種取消變更的方法。(5) 可以利用基線重新建立基于某個(gè)特定發(fā)布版本的配置,這樣也可以重現(xiàn)已報(bào)告的錯(cuò)誤。(6) 定期建立基線,以確保各開(kāi)發(fā)人員的工作保持同步。12.2.3 版本版本是某一配置項(xiàng)已標(biāo)識(shí)了的實(shí)例。版本用來(lái)定義一個(gè)具體實(shí)例應(yīng)該具有什么樣的內(nèi)容和屬性。隨著軟件的開(kāi)發(fā)進(jìn)展,版本也在不斷地演變,這些不同配置項(xiàng)的不同版本構(gòu)成了一個(gè)復(fù)雜的版本空間。一個(gè)系統(tǒng)版本就是一個(gè)系統(tǒng)實(shí)例,在某種程度上有別于其他系統(tǒng)實(shí)例。系統(tǒng)新版本可能有不同的功能和性能,可能修改了系統(tǒng)錯(cuò)誤。有些版本可能在功能上沒(méi)有什么不同,只是為不同的硬件或軟件配置而設(shè)計(jì)的。如果版本之間只有細(xì)微區(qū)別,
24、有時(shí)就把其中的一個(gè)版本稱(chēng)作另一個(gè)版本的變體。一個(gè)系統(tǒng)的發(fā)布版本指的是要分發(fā)給客戶(hù)的版本。每個(gè)系統(tǒng)發(fā)布版本都應(yīng)該包含新的功能或是針對(duì)不同的硬件平臺(tái)。一個(gè)系統(tǒng)的版本要比發(fā)布版本多得多,因?yàn)闄C(jī)構(gòu)的內(nèi)部版本是為內(nèi)部開(kāi)發(fā)或測(cè)試而創(chuàng)建的,有些根本不會(huì)發(fā)布到客戶(hù)手中。版本的演變一般有串行演變和并行演變兩種方式。串行演變所形成的每個(gè)新版本都是由當(dāng)前最新版本演變而來(lái)的。這樣,各個(gè)不同版本按演變過(guò)程就形成了一個(gè)簡(jiǎn)單鏈,稱(chēng)為版本鏈。在這種方式下,版本的演變是按照一對(duì)一的映射關(guān)系前進(jìn)的,通常是為了彌補(bǔ)缺陷、提高性能和適應(yīng)環(huán)境。并行演變采用一對(duì)多的方式進(jìn)行。在實(shí)際應(yīng)用中,這兩種版本演變形式通常結(jié)合在一起,形成更為普通的
25、帶分支的版本圖,也稱(chēng)為版本樹(shù)。版本樹(shù)反映了項(xiàng)目開(kāi)發(fā)演變的歷史,版本樹(shù)示例如圖12.6所示。圖12.6 版本樹(shù)示例(版本樹(shù)直觀地反映了版本的演變過(guò)程)在圖12.6中,共有3條版本鏈,分別是“1.01.11.2 1.31.41.5”、“1.01.11.1.11.1.2”和“1.01.11.2 2.02.12.23.03.0.1”。其中,“1.01.11.21.3 1.41.5”是串行演變;從1.1開(kāi)始,“1.11.2”和“1.11.1.1”是并行演變。為了建立特定的系統(tǒng)版本,必須確定系統(tǒng)組件的版本。在大型軟件系統(tǒng)內(nèi),有數(shù)以百計(jì)的軟件組件,其中每種組件都可能有諸多不同的版本。版本管理規(guī)程應(yīng)該規(guī)定明確
26、標(biāo)識(shí)每個(gè)組件版本演變的方法,這樣在需要進(jìn)一步變更時(shí),可以查找到組件的具體版本。組件版本的變化過(guò)程如圖12.7所示。圖12.7 組件版本的變化過(guò)程(版本管理可以方便地標(biāo)識(shí)每個(gè)組件版本演變的過(guò)程)12.2.4 配置數(shù)據(jù)庫(kù)配置數(shù)據(jù)庫(kù)(Configuration Management Database, CMDB)用于記錄與配置有關(guān)的所有信息,幫助評(píng)估因系統(tǒng)變更帶來(lái)的影響,并提供有關(guān)配置管理過(guò)程的管理信息,也稱(chēng)為軟件受控庫(kù)。除了定義配置數(shù)據(jù)庫(kù)的模式以外,還要定義記錄和檢索項(xiàng)目信息的規(guī)程,這是配置管理規(guī)劃過(guò)程的一部分。配置數(shù)據(jù)庫(kù)不僅包含有關(guān)配置項(xiàng)的信息,可能也包含組件用戶(hù)、系統(tǒng)用戶(hù)、可執(zhí)行平臺(tái)及計(jì)劃變更
27、等信息。配置數(shù)據(jù)庫(kù)必須能夠?qū)Ω鞣N系統(tǒng)配置查詢(xún)做出應(yīng)答。理想情況下,配置數(shù)據(jù)庫(kù)與版本管理系統(tǒng)集成到一起,版本管理系統(tǒng)負(fù)責(zé)存儲(chǔ)和管理正式項(xiàng)目文檔。這種方法(某些集成CASE工具支持該方法)使得變更與受變更影響的文檔和組件間的直接鏈接成為可能。例如,設(shè)計(jì)文檔和程序代碼之間的鏈接能得到維護(hù),這樣在提出一個(gè)變更時(shí),可以較容易地找出所有必須修改的地方。由于配置管理的集成CASE工具非常昂貴,許多公司在進(jìn)行配置管理時(shí)并不考慮使用,而是把配置數(shù)據(jù)庫(kù)作為一個(gè)獨(dú)立的系統(tǒng)加以維護(hù),配置項(xiàng)存儲(chǔ)于文件或版本管理系統(tǒng)中,例如CVS、Subversion就是版本管理系統(tǒng)。配置數(shù)據(jù)庫(kù)存儲(chǔ)配置項(xiàng)的有關(guān)信息并在版本管理系統(tǒng)或文件
28、存儲(chǔ)中索引它們的名字。雖然這種做法費(fèi)用低廉、使用靈活,但是配置項(xiàng)的變更可能不經(jīng)過(guò)配置數(shù)據(jù)庫(kù),因此不能確定配置數(shù)據(jù)庫(kù)是否反映了系統(tǒng)的最新?tīng)顟B(tài)。建立構(gòu)建腳本是軟件項(xiàng)目的有效實(shí)踐,配置數(shù)據(jù)庫(kù)不僅要存儲(chǔ)各種文檔和源代碼,還要存儲(chǔ)環(huán)境配置,甚至是構(gòu)建腳步。 12.3 軟件配置管理的活動(dòng)實(shí)施軟件配置管理就是要在軟件的整個(gè)生命周期中建立和維護(hù)軟件的完整性。軟件配置管理是組織和管理各種軟件產(chǎn)品及文檔,控制其變化的一系列活動(dòng),這些活動(dòng)將貫穿軟件產(chǎn)品的整個(gè)生命周期。在項(xiàng)目管理過(guò)程中,需要解決的問(wèn)題有很多,例如采用何種方式標(biāo)識(shí)和管理已存在程序的各種版本、在軟件交付用戶(hù)前后如何控制變更、利用什么辦法來(lái)估計(jì)變更引起的各
29、種問(wèn)題等,這些問(wèn)題歸結(jié)到軟件配置管理中的活動(dòng)方面。通常的軟件項(xiàng)目配置管理包括以下12項(xiàng)活動(dòng):擬定配置管理計(jì)劃;配置標(biāo)識(shí);確定配置管理范圍;確認(rèn)和記錄配置項(xiàng)屬性;為配置項(xiàng)定義標(biāo)識(shí)符;確定配置基線;確定配置結(jié)構(gòu);確定配置項(xiàng)命名規(guī)則;配置項(xiàng)控制;配置狀態(tài)報(bào)告;配置審計(jì);配置管理數(shù)據(jù)庫(kù)的備份、存檔和保管。通過(guò)上述活動(dòng),可以實(shí)現(xiàn)軟件配置管理,其主要流程如圖12.8所示。圖12.8 軟件配置管理的主要流程(項(xiàng)目組制定SCM計(jì)劃,進(jìn)入配置數(shù)據(jù)庫(kù),供開(kāi)發(fā)人員和管理人員使用。其中PTO(Project Tracing and Oversight)即項(xiàng)目跟蹤與監(jiān)督)根據(jù)圖12.8,對(duì)配置管理流程中各項(xiàng)活動(dòng)進(jìn)行分析
30、,可將軟件配置管理流程中具體實(shí)施的活動(dòng)歸納為以下5個(gè)主要活動(dòng):配置標(biāo)識(shí):在系統(tǒng)演化過(guò)程中標(biāo)識(shí)中間的軟件產(chǎn)品;版本控制:記錄每個(gè)配置項(xiàng)的發(fā)展歷史,并控制基線的生成;變更控制:在整個(gè)生命周期中控制中間軟件產(chǎn)品的變化;狀態(tài)報(bào)告:記錄和報(bào)告軟件的變化過(guò)程;配置審計(jì):用于保證軟件產(chǎn)品是依照需求、標(biāo)準(zhǔn)和合同開(kāi)發(fā)出來(lái)的。12.3.1 配置標(biāo)識(shí)在軟件開(kāi)發(fā)過(guò)程中,隨著軟件生命周期的推進(jìn),產(chǎn)生的配置項(xiàng)越來(lái)越多,為了控制和管理方便,所有的軟件配置項(xiàng)都應(yīng)該按照一定的方式來(lái)命名和組織,這是進(jìn)行軟件配置管理的基礎(chǔ)。配置標(biāo)識(shí)能唯一地標(biāo)識(shí)軟件配置項(xiàng),并在技術(shù)文檔中記錄其功能特征和物理特征,使它們可以通過(guò)某種方式訪問(wèn)。配置標(biāo)識(shí)
31、的目標(biāo)是在整個(gè)系統(tǒng)生命周期中標(biāo)識(shí)系統(tǒng)的構(gòu)件,提供軟件和軟件相關(guān)產(chǎn)品之間的跟蹤能力。軟件配置標(biāo)識(shí)是軟件配置管理的基礎(chǔ)性工作,是管理配置的前提。每個(gè)軟件配置項(xiàng)都包括名字、描述、資源列表和實(shí)際存在體4個(gè)部分。此外,在對(duì)配置項(xiàng)進(jìn)行標(biāo)識(shí)時(shí),還要考慮配置項(xiàng)之間的關(guān)系。配置標(biāo)識(shí)管理是一個(gè)配置項(xiàng)的選擇、命名和描述的過(guò)程。首先,把一個(gè)軟件系統(tǒng)分成便于進(jìn)行配置管理的配置項(xiàng);接著,按照一定的方法對(duì)這些配置項(xiàng)命名、編號(hào),便于管理人員和開(kāi)發(fā)人員明確該系統(tǒng)各配置項(xiàng)之間的相互關(guān)系,包括各個(gè)文檔之間以及文檔與代碼之間的聯(lián)系;最后,對(duì)每個(gè)組成部件的功能、性能和物理特性進(jìn)行必要的描述。1配置標(biāo)識(shí)的對(duì)象配置標(biāo)識(shí)的對(duì)象包括:(1)
32、各種功能規(guī)格說(shuō)明和技術(shù)規(guī)格說(shuō)明,以及軟件項(xiàng)目的特殊功能和開(kāi)發(fā)過(guò)程中使用的方法;(2) 所有受到功能和技術(shù)規(guī)格影響的開(kāi)發(fā)工具,這些工具不僅包括用于創(chuàng)建應(yīng)用程序的開(kāi)發(fā)工具,而且還包括對(duì)比、調(diào)試和圖形化工具;(3) 所有與其他軟件項(xiàng)目和硬件的接口;(4) 所有與軟件項(xiàng)目相關(guān)的文檔和計(jì)算機(jī)文件,例如文本文件、源程序、文檔和圖形,以及任意的二進(jìn)制文件。標(biāo)識(shí)軟件項(xiàng)不僅需要處理程序項(xiàng)和需求之間的聯(lián)系,一般來(lái)講,還需要使用多種方式來(lái)標(biāo)識(shí)軟件項(xiàng),以及軟件項(xiàng)同軟件產(chǎn)品之間的關(guān)聯(lián)。2. 配置標(biāo)識(shí)的活動(dòng)配置標(biāo)識(shí)的主要活動(dòng)包括選擇配置項(xiàng)、制定標(biāo)識(shí)方案和存取方案。(1) 選擇配置項(xiàng)。配置項(xiàng)是配置管理的最小單元,一般由一個(gè)
33、或多個(gè)文件組成。軟件組織可以根據(jù)不同的原則選擇配置項(xiàng)。(2) 制定配置項(xiàng)標(biāo)識(shí)方案。選擇好配置項(xiàng)后就要為其選擇適當(dāng)?shù)臉?biāo)識(shí)方案。配置項(xiàng)的標(biāo)識(shí)使配置項(xiàng)被唯一識(shí)別,因此,標(biāo)識(shí)方案應(yīng)該顯示軟件演化的層次結(jié)構(gòu)和可追溯性。常用的方案是數(shù)字方案,即配置項(xiàng)由名稱(chēng)和數(shù)字版本號(hào)標(biāo)識(shí)。一般情況下,配置項(xiàng)的標(biāo)識(shí)以記錄該配置項(xiàng)的計(jì)算機(jī)文件為單位,標(biāo)識(shí)形式由文件名、作者、文件修改日期以及使用配置管理工具檢入的時(shí)間等標(biāo)識(shí)。與軟件有關(guān)的文檔也應(yīng)使用配置管理工具進(jìn)行管理。(3) 制定存取方案。軟件組織需要建立軟件配置庫(kù),存放軟件配置。軟件項(xiàng)目組的所有成員都可根據(jù)權(quán)限存取配置庫(kù)中的配置項(xiàng),同時(shí)必須協(xié)調(diào)各成員之間的關(guān)系,使每個(gè)成員所
34、能執(zhí)行的權(quán)限不超過(guò)權(quán)限的范圍。例如,如果某個(gè)程序員只負(fù)責(zé)一個(gè)模塊的開(kāi)發(fā),那么就不能有對(duì)其他模塊源碼的修改權(quán)。有效的配置標(biāo)識(shí)是其他配置管理活動(dòng)的前提。如果閑置項(xiàng)和相關(guān)的配置文檔沒(méi)有被很好地標(biāo)識(shí),想要控制這些配置的變更、建立準(zhǔn)確的記錄和報(bào)告、審核配置的有效性是不可能的。不準(zhǔn)確或不完全的配置項(xiàng)標(biāo)識(shí)和配置文檔可能會(huì)導(dǎo)致產(chǎn)品延期交付,或花費(fèi)很高的維護(hù)費(fèi)用。3. 配置標(biāo)識(shí)框架配置標(biāo)識(shí)是軟件生存周期中產(chǎn)生的所有文檔的總稱(chēng),例如一個(gè)函數(shù)、一個(gè)模塊說(shuō)明、一個(gè)等價(jià)類(lèi)的測(cè)試數(shù)據(jù)、一份軟件結(jié)構(gòu)圖等。配置標(biāo)識(shí)定義配置項(xiàng)的名稱(chēng)、與其他配置項(xiàng)的聯(lián)系和版本信息等。由于文檔之間存在著復(fù)雜的關(guān)聯(lián),一旦要求對(duì)配置項(xiàng)進(jìn)行更改,尤其是
35、當(dāng)軟件需求發(fā)生變化時(shí),就不只是更改一個(gè)配置項(xiàng),而且還要修改其他文檔。因此,在標(biāo)識(shí)配置項(xiàng)時(shí),應(yīng)考慮其名稱(chēng)、描述、資源、變化、版本方面的內(nèi)容。下面介紹一個(gè)典型的配置標(biāo)識(shí)框架模型。上面的配置標(biāo)識(shí)框架中,供應(yīng)資源是由本配置產(chǎn)生并能為其他配置項(xiàng)所利用、參考的數(shù)據(jù)/變量/功能等實(shí)體,需求資源則是僅供本配置項(xiàng)所使用、參考的其他配置項(xiàng)供應(yīng)的資源。一個(gè)配置標(biāo)識(shí)包含該配置項(xiàng)的所有版本。實(shí)際上,新版本是在某一舊版本的基礎(chǔ)上作一些變化而形成的,這就構(gòu)成了一條樹(shù)狀的版本鏈。在一條版本鏈中各版本存在很多共性,也有一些差異,反映在資源、接口和文檔內(nèi)容等方面。因此,在實(shí)際存儲(chǔ)時(shí),僅存儲(chǔ)配置項(xiàng)的最初版本內(nèi)容和版本變化信息。4.
36、 要注意的問(wèn)題配置標(biāo)識(shí)功能論述了與基線中包含的軟件配置項(xiàng)的標(biāo)識(shí)以及基線本身的標(biāo)識(shí)有關(guān)的問(wèn)題?!皹?biāo)識(shí)”用來(lái)確定如何識(shí)別產(chǎn)品的所有部件和由部件建造的產(chǎn)品基線。在標(biāo)識(shí)過(guò)程中,要考慮下面幾個(gè)關(guān)鍵點(diǎn):必須識(shí)別出每個(gè)軟件配置項(xiàng)并賦予它唯一的標(biāo)記。識(shí)別和標(biāo)記計(jì)劃必須反映產(chǎn)品的結(jié)構(gòu)。必須建立識(shí)別和標(biāo)記軟件配置項(xiàng)的標(biāo)準(zhǔn)。必須建立識(shí)別和標(biāo)記所有形式的測(cè)試和測(cè)試數(shù)據(jù)的標(biāo)準(zhǔn)。必須建立識(shí)別建造基線需要的支持工具的標(biāo)準(zhǔn)。工具中需要包括編譯程序、連接程序、匯編程序、make文件以及其他用來(lái)翻譯軟件和建造基線的工具,這一點(diǎn)很重要。它確保在基線被變更、替換或更新很長(zhǎng)一段時(shí)間后,開(kāi)發(fā)人員總能夠重新獲得由這些工具產(chǎn)生的信息。要特別
37、關(guān)注集成到軟件產(chǎn)品中的第三方軟件,特別是那些存在版權(quán)或版稅問(wèn)題的軟件。必須建立第三方軟件如何集成到軟件產(chǎn)品的標(biāo)準(zhǔn),從而能夠容易地刪除、替代或升級(jí)這些軟件。要特別關(guān)注來(lái)自其他產(chǎn)品中正被重新使用的軟件或打算重用的軟件。要特別關(guān)注打算替換掉的原型軟件。總之,配置標(biāo)識(shí)是配置管理的基礎(chǔ),唯一地標(biāo)識(shí)軟件配置項(xiàng)和各種文檔,使它們可以通過(guò)某種方式訪問(wèn)。配置標(biāo)識(shí)的目標(biāo)是在整個(gè)系統(tǒng)生命周期中標(biāo)識(shí)系統(tǒng)的組件,提供軟件和軟件相關(guān)產(chǎn)品之間的追蹤能力。12.3.2 版本控制這是典型的由于版本管理混亂帶來(lái)的麻煩,很大程度上受工作環(huán)境的影響,通過(guò)版本管理工具就可以有效地解決這類(lèi)問(wèn)題,這也是目前流行的軟件工程和項(xiàng)目管理實(shí)踐。軟
38、件配置管理的一個(gè)必備功能就是在軟件產(chǎn)品開(kāi)發(fā)時(shí)及交付后,可靠地建立和重新創(chuàng)建版本。在開(kāi)發(fā)時(shí)會(huì)建立產(chǎn)品的中間版本,并進(jìn)行常規(guī)測(cè)試。因?yàn)榻?jīng)常需要回到以前的版本,所以就需要能準(zhǔn)確地重建以前的版本。開(kāi)發(fā)完成后,還需要管理交付給用戶(hù)的軟件版本,因而必須對(duì)所有必要的信息進(jìn)行維護(hù),例如編譯程序、連接程序以及使用的其他工具,以確保每個(gè)已交付的軟件產(chǎn)品版本能夠重建。常見(jiàn)的版本控制流程如圖12.9所示。圖12.9 版本控制流程圖(這是版本控制的過(guò)程,開(kāi)發(fā)人員先訪問(wèn)當(dāng)時(shí)的最新版本并下載到本地,修改調(diào)試后提交新版本,在此基礎(chǔ)上生成最新版本,并讓其進(jìn)入源代碼庫(kù))版本控制是所有軟件配置管理系統(tǒng)的核心功能,負(fù)責(zé)為配置庫(kù)中的所
39、有元素自動(dòng)分配版本標(biāo)識(shí),并保證版本命名的唯一性。版本控制的目的是便于對(duì)版本變化加以區(qū)分、檢索和跟蹤,以表明各個(gè)版本之間的關(guān)系。一個(gè)版本是軟件系統(tǒng)的一個(gè)實(shí)例,在功能和性能方面與其他版本有所不同,或是修正、補(bǔ)充了前一個(gè)版本的某些不足。1. 版本控制的內(nèi)容版本控制包括了對(duì)配置項(xiàng)版本的一系列操作控制。一般來(lái)說(shuō),版本控制包括檢入檢出控制、分支和合并、歷史記錄。1) 檢入檢出控制軟件開(kāi)發(fā)人員對(duì)源文件的修改不能在軟件配置管理庫(kù)中進(jìn)行,對(duì)源文件的修改依賴(lài)于基本的文件系統(tǒng)并在各自的工作空間中進(jìn)行。為了方便軟件開(kāi)發(fā),需要不同的軟件開(kāi)發(fā)人員組織各自的工作空間。一般來(lái)說(shuō),不同的工作空間由不同的目錄表示,對(duì)工作空間的訪
40、問(wèn),由文件系統(tǒng)提供的文件訪問(wèn)權(quán)限來(lái)加以控制。訪問(wèn)控制需要管理各個(gè)人員存取或修改一個(gè)特定軟件配置對(duì)象的權(quán)限,例如,軟件開(kāi)發(fā)經(jīng)理一般比軟件開(kāi)發(fā)人員具有更高的權(quán)限。開(kāi)發(fā)人員能夠從庫(kù)中取出對(duì)應(yīng)項(xiàng)目的配置項(xiàng),也可以修改,并檢入軟件配置庫(kù)中,對(duì)配置庫(kù)中的版本進(jìn)行“升級(jí)”;軟件開(kāi)發(fā)經(jīng)理除了具有開(kāi)發(fā)人員的所有執(zhí)行權(quán)限外,還可以確定多余配置項(xiàng),而且可以刪除多余配置項(xiàng)。同步控制的實(shí)質(zhì)是版本的檢入檢出控制。檢入就是把軟件配置項(xiàng)從用戶(hù)的工作環(huán)境存入軟件配置庫(kù)的過(guò)程,檢出就是把軟件配置項(xiàng)從軟件配置庫(kù)中取出的過(guò)程。檢入是檢出的逆過(guò)程。同步控制可用來(lái)確保由不同人員并發(fā)執(zhí)行的修改不會(huì)產(chǎn)生混亂。2) 分支和合并進(jìn)行版本分支(以
41、一個(gè)已有分支的特定版本為起點(diǎn),但是獨(dú)立發(fā)展的版本序列)的人工方法就是從主版本(又稱(chēng)主干)上復(fù)制一份,并做上標(biāo)記。在實(shí)行了版本控制后,版本分支也是一份副本,這時(shí)的復(fù)制過(guò)程和標(biāo)記動(dòng)作由版本控制系統(tǒng)完成。進(jìn)行版本合并(來(lái)自不同分支的兩個(gè)版本合并為其中一個(gè)分支的新版本)有兩種途徑,一種是將版本A的內(nèi)容附加到版本B中;另一種是合并版本A和版本B的內(nèi)容,形成新的版本C。對(duì)文件來(lái)說(shuō),分支與合并的結(jié)果就是形成具有圖結(jié)構(gòu)的版本歷史,即版本圖,如圖12.10所示。圖12.10 版本的分支與合并(從版本圖中可以直觀地了解版本的歷史)進(jìn)行版本分支有以下幾個(gè)目的:代表獨(dú)立的開(kāi)發(fā)路徑,例如開(kāi)發(fā)過(guò)程和維護(hù)過(guò)程;代表組件的不
42、同變體;代表實(shí)驗(yàn)性的開(kāi)發(fā),該分支在以后可能會(huì)丟棄,或合并到主分支中;適應(yīng)兩個(gè)開(kāi)發(fā)人員并發(fā)地修改同一組件的情況,此時(shí)分支僅暫時(shí)存在,一旦兩個(gè)開(kāi)發(fā)人員修改完畢,將被合并。合并就是將獨(dú)立發(fā)生在兩個(gè)版本分支上文件的修改合成到其中一個(gè)分支上,從而形成該分支上的一個(gè)新版本。合并包含兩方面的內(nèi)容:第一是兩個(gè)文件版本內(nèi)容的實(shí)際合并;第二是在版本圖上作為版本歷史的一部分進(jìn)行反映。3) 歷史記錄版本的歷史記錄有助于對(duì)軟件配置項(xiàng)進(jìn)行審計(jì),有助于追蹤問(wèn)題的來(lái)源。歷史記錄包括版本號(hào)、版本修改時(shí)間、版本修改者和版本修改描述等最基本的內(nèi)容,還可以有其他一些輔助性?xún)?nèi)容,例如版本的文件大小和讀寫(xiě)屬性等。2. 版本編號(hào)的方法版本
43、號(hào)是配置項(xiàng)的某個(gè)版本的唯一標(biāo)識(shí)。源代碼文件、文檔文件、軟件產(chǎn)品整體(源代碼整體或安裝包)都有版本號(hào),這里主要關(guān)注的是軟件產(chǎn)品整體的版本編號(hào)方法。合理的版本編號(hào)策略可以使軟件配置管理更為簡(jiǎn)便和有序。目前,業(yè)界尚無(wú)統(tǒng)一的軟件版本編號(hào)方法,但是常用的方法有兩種:數(shù)字順序型編號(hào)和屬性編號(hào)。1) 數(shù)字順序型編號(hào)數(shù)字順序型編號(hào)通常會(huì)分為幾段,不同段上的數(shù)字的變化,標(biāo)志著產(chǎn)品不同類(lèi)型的變化。例如,一種典型的版本編號(hào)策略是:版本號(hào)分為3段,形如X.Y.Z,其中X為主版本號(hào),Y為特征版本號(hào),Z為缺陷修復(fù)版本號(hào)。主版本號(hào)的增加表示提供給客戶(hù)的主要產(chǎn)品功能的增強(qiáng),特征版本號(hào)的增加表示產(chǎn)品新增了一些特征或做了一些重要
44、修改,缺陷修復(fù)版本號(hào)的增加表示在軟件產(chǎn)品上做了一些缺陷修復(fù)工作。當(dāng)某一級(jí)版本號(hào)增加時(shí),其下級(jí)版本號(hào)要清零。例如,軟件的一個(gè)版本是1.3.2,如果該版本新增了一些特性,使特征版本號(hào)增加為4,那么缺陷修復(fù)版本號(hào)要復(fù)位為0,所以整個(gè)版本號(hào)就變?yōu)?.4.0。同樣,如果軟件做了重大改進(jìn),提升了主版本號(hào),那么特征版本號(hào)和缺陷修復(fù)版本號(hào)就都要復(fù)位為0,這樣就得到了版本2.0.0。如果要標(biāo)記軟件的測(cè)試版和測(cè)試版,可在上述3段數(shù)字版本編號(hào)后面增加一個(gè)大寫(xiě)字符A或B來(lái)分別表示版本或版本。例如,1.2.4A或1.2.4B。如果存在多次的發(fā)布和發(fā)布,可在A或B后面添加一個(gè)數(shù)字來(lái)說(shuō)明發(fā)布的次數(shù),例如,1.2.5A1,1
45、.3.0B2等。以上版本編號(hào)策略是面向用戶(hù)的,在開(kāi)發(fā)團(tuán)隊(duì)內(nèi)部,對(duì)版本號(hào)也有要求。例如,測(cè)試團(tuán)隊(duì)需要區(qū)分測(cè)試對(duì)象的版本,軟件的每次對(duì)外發(fā)布,可能也對(duì)應(yīng)著不止一次內(nèi)部測(cè)試。簡(jiǎn)單的解決方法是,版本號(hào)中再增加一段,說(shuō)明是新版本軟件發(fā)布前的第幾次送測(cè),或稱(chēng)第幾次內(nèi)部發(fā)布。例如,1.0.3.0是發(fā)布版本1.0.3在發(fā)布前的第1次送測(cè),而1.0.3.1是第2次送測(cè)。當(dāng)然,新增加的這一段數(shù)字不必讓外部用戶(hù)看到。2) 屬性編號(hào)數(shù)字順序型版本編號(hào)的特點(diǎn)是簡(jiǎn)單易用,但是包含的信息有限,而且如果段數(shù)太多的話,就難以讓人識(shí)別和理解。因此在有些情況下,開(kāi)發(fā)團(tuán)隊(duì)會(huì)使用屬性版本編號(hào),就是把版本的一些重要屬性反映在版本標(biāo)識(shí)中。
46、屬性版本編號(hào)可以包括的屬性有:客戶(hù)名、開(kāi)發(fā)語(yǔ)言、開(kāi)發(fā)狀態(tài)、硬件平臺(tái)、生成日期、技術(shù)特征和質(zhì)量狀態(tài)等。例如,下面的這個(gè)版本號(hào)就包含了軟件的生成日期和時(shí)間,以及技術(shù)特征(native threads, jit)。J2SDK.v.1.2.2: 11/31/2013-18:00, native threads, jit-122當(dāng)然,像這樣復(fù)雜的屬性版本號(hào)一般只應(yīng)用于開(kāi)發(fā)團(tuán)隊(duì)內(nèi)部,不顯示給用戶(hù)。現(xiàn)在的版本控制通常由CASE工具來(lái)支持。工具用于管理對(duì)每個(gè)系統(tǒng)版本的存儲(chǔ),并控制對(duì)系統(tǒng)組件的訪問(wèn)。這些組件必須能夠從系統(tǒng)中抽取出來(lái)進(jìn)行編輯,當(dāng)將其重新放入系統(tǒng)的時(shí)候,就構(gòu)成了一個(gè)新的系統(tǒng)版本,由版本管理系統(tǒng)給它一
47、個(gè)新的名字。版本控制是全面實(shí)行軟件配置管理的基礎(chǔ),可以保證軟件技術(shù)狀態(tài)的一致性。版本控制是配置管理的基本要求,可以保證在任何時(shí)刻恢復(fù)任何一個(gè)配置項(xiàng)的任何一個(gè)版本。版本控制記錄了每個(gè)配置項(xiàng)的發(fā)展歷史,這樣就保證了版本之間的可追蹤性,也為查找錯(cuò)誤提供了幫助。版本控制也是支持并行開(kāi)發(fā)的基礎(chǔ)。12.3.3 變更控制變更是軟件開(kāi)發(fā)的固有屬性。變更會(huì)造成很大的麻煩,例如客戶(hù)不斷提出需求變更,導(dǎo)致重新設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng),造成大量返工。事實(shí)上,軟件開(kāi)發(fā)中不可避免地會(huì)存在編碼錯(cuò)誤等問(wèn)題,這就需要修正錯(cuò)誤。在開(kāi)發(fā)過(guò)程中,隨著用戶(hù)和開(kāi)發(fā)人員逐步掌握更多的信息,他們也會(huì)對(duì)已經(jīng)確定了的設(shè)計(jì)方案或設(shè)計(jì)細(xì)節(jié)進(jìn)行改進(jìn)。修改錯(cuò)誤或
48、進(jìn)行改進(jìn)都是變更。軟件開(kāi)發(fā)過(guò)程中的變更以及相應(yīng)的返工,會(huì)對(duì)產(chǎn)品的質(zhì)量造成很大的影響。軟件變更的不可避免性并不意味著軟件可以任意修改。變更控制是軟件配置控制的關(guān)鍵活動(dòng),指在整個(gè)軟件生命周期中控制軟件的變化,建立一套對(duì)軟件配置項(xiàng)的修改進(jìn)行有意識(shí)的控制機(jī)制,防止在軟件開(kāi)發(fā)過(guò)程中因盲目修改造成混亂,主要是進(jìn)行基線管理以及對(duì)基線更改控制過(guò)程的處理。配置管理最初就是為了控制變更而提出的,能否解決好變更控制問(wèn)題是衡量軟件組織成熟度的一個(gè)標(biāo)志。1. 變更的涉及面變更是不可避免的,也是必不可少的,變更和變更控制是矛盾的統(tǒng)一體。由于變更的內(nèi)容和變更的幅度都會(huì)直接影響到整個(gè)項(xiàng)目,所以時(shí)刻需要考慮到變更的波及面。在瀑
49、布模型的生命周期中,變更的波及面如圖12.11所示。圖12.11 變更的波及面(越早形成的基線發(fā)生變更,變更的影響就越大,波及面就越寬。反之,越晚形成的基線發(fā)生變更,變更的影響就越小,波及面就越窄)在圖12.11中,如果在系統(tǒng)工程階段的工作需要發(fā)生變化,那么軟件生命周期中的各個(gè)階段都有可能受到影響,這些階段所有相關(guān)的軟件配置項(xiàng)也都會(huì)或多或少地受到影響;如果代碼編寫(xiě)階段的工作需要變化,則軟件測(cè)試和系統(tǒng)測(cè)試階段的工作都要受到影響;如果在代碼編寫(xiě)階段發(fā)現(xiàn)錯(cuò)誤,該錯(cuò)誤是由需求階段的工作造成的,則需要需求及以下階段都要進(jìn)行相應(yīng)的修改。變更控制需要記錄每次變化的相關(guān)信息,查看這些相關(guān)信息,有助于追蹤出現(xiàn)的
50、各種問(wèn)題。記錄正在執(zhí)行的變化信息有助于做出正確的管理決策。軟件配置管理對(duì)基線管理的任務(wù)之一是追蹤更改的變化過(guò)程,以保證對(duì)軟件開(kāi)發(fā)過(guò)程的可見(jiàn)性和可追蹤性。對(duì)基線更改變化過(guò)程的追蹤有兩部分內(nèi)容:一是對(duì)基線更改版本的跟蹤,另一個(gè)是對(duì)其更改原因以及更改結(jié)果的追蹤。2. 變更的分類(lèi)一般來(lái)說(shuō),軟件的變更通常有功能變更和錯(cuò)誤修補(bǔ)變更兩種類(lèi)型。(1) 功能變更。功能變更是為了增加或刪除某些功能或者為了改變完成某個(gè)功能的方法而進(jìn)行的變更。這類(lèi)變更如果代價(jià)比較小,對(duì)軟件系統(tǒng)其他部分沒(méi)有影響或影響很小,就應(yīng)該批準(zhǔn)這類(lèi)變更。反之,如果變更的代價(jià)比較高,或者對(duì)軟件系統(tǒng)其他部分影響比較大,就必須權(quán)衡利弊,以決定是否進(jìn)行這
51、類(lèi)變更。(2) 錯(cuò)誤修補(bǔ)變更。錯(cuò)誤修補(bǔ)變更是為了修復(fù)漏洞而進(jìn)行的變更,是必須進(jìn)行的,通常不需要從管理角度對(duì)這類(lèi)變更進(jìn)行審查和批準(zhǔn)。但是如果在造成錯(cuò)誤階段的后面發(fā)現(xiàn)錯(cuò)誤,例如在實(shí)現(xiàn)階段發(fā)現(xiàn)了設(shè)計(jì)錯(cuò)誤,就必須遵照標(biāo)準(zhǔn)的變更控制過(guò)程,把變更正式記入文檔,把所有受變更影響的文檔都做相應(yīng)的修改。3. 變更控制的內(nèi)容變更控制作為配置管理的主要內(nèi)容之一,在操作過(guò)程中有嚴(yán)格的控制流程,以保證配置項(xiàng)的一致性和有效性。一般變更控制的內(nèi)容如下:確定變更批準(zhǔn)人的責(zé)任范圍和權(quán)限;建立變更控制流程,實(shí)施變更控制;對(duì)配置項(xiàng)變更進(jìn)行管理;對(duì)基線變更進(jìn)行管理;設(shè)立兩個(gè)變更授權(quán)機(jī)構(gòu),變更控制委員會(huì)(Change Control
52、Board,CCB)和項(xiàng)目經(jīng)理;CCB成員為項(xiàng)目級(jí)的,可因項(xiàng)目的不同而有所不同,由高級(jí)經(jīng)理在項(xiàng)目任務(wù)書(shū)中定義。4. 變更控制的類(lèi)型變更控制一般分為兩類(lèi):一類(lèi)是基線的變更控制,另一類(lèi)是軟件版本的變更控制。1) 基線的變更控制基線的變更是指在一個(gè)軟件版本的開(kāi)發(fā)周期內(nèi)對(duì)基線配置項(xiàng)的變更,主要包括基線的應(yīng)用和更新等活動(dòng)。基線變更所涉及的操作主要包括基線標(biāo)簽的定義和標(biāo)簽的使用。基線標(biāo)簽屬于嚴(yán)格受控的配置項(xiàng),命名必須嚴(yán)格按照相關(guān)的規(guī)范來(lái)進(jìn)行?;€在建立時(shí),按照角色職責(zé)的分工,須經(jīng)CCB同意并正式地將該基線的標(biāo)識(shí)和作用范圍通知系統(tǒng)集成人員,由后者負(fù)責(zé)執(zhí)行;基線一旦劃定,由該基線控制的各配置項(xiàng)的歷史版本均處于
53、鎖定或嚴(yán)格受控狀態(tài),任何對(duì)基線位置的變更請(qǐng)求都必須按變更控制流程提交CCB批準(zhǔn),然后由系統(tǒng)集成人員執(zhí)行。2) 軟件版本的變更控制軟件版本的命名規(guī)范應(yīng)事先制定,并按照開(kāi)發(fā)計(jì)劃予以發(fā)布使用。在軟件版本的演化過(guò)程中既需要從以前的版本中繼承,又需要相對(duì)的獨(dú)立性,所以對(duì)于子版本(例如某特定用戶(hù)的定制版本)而言,就需要對(duì)一系列配置項(xiàng)從統(tǒng)一的開(kāi)發(fā)起始基線所確定的版本上建立新的分支,然后在此分支上開(kāi)發(fā)新的版本。因此在這樣的變更控制流程中,受控的對(duì)象還應(yīng)該包括特定的分支類(lèi)型,以及工作視圖的選取規(guī)則,同時(shí)配置管理員將在這一過(guò)程中擔(dān)負(fù)更多的操作職責(zé)。5. 變更控制的流程典型的變更管理規(guī)程涉及如何提交變更請(qǐng)求、如何對(duì)
54、變更請(qǐng)求進(jìn)行復(fù)審以便決定是否實(shí)施、由誰(shuí)實(shí)施、如何實(shí)施和如何確定變更請(qǐng)求準(zhǔn)確實(shí)施完成等方面。通常規(guī)范的變更管理過(guò)程都應(yīng)包含以下步驟(如圖12.12所示)。圖12.12 變更控制流程(泳道圖很好地反映了各種不同的人員執(zhí)行的活動(dòng)和責(zé)任)(1) 變更請(qǐng)求。變更請(qǐng)求是實(shí)施變更控制的第一步,也是必不可少的一步。變更請(qǐng)求可以由任何人提出,包括用戶(hù)和開(kāi)發(fā)人員。典型的變更請(qǐng)求有清除缺陷和適應(yīng)運(yùn)行平臺(tái)的變更,軟件擴(kuò)展提出的要求(例如增加功能、提高性能等),以及對(duì)已有功能的優(yōu)化和改進(jìn)等。變更請(qǐng)求有多種形式,而且來(lái)自不同的地方,例如來(lái)自?xún)?nèi)部及外部的錯(cuò)誤報(bào)告,來(lái)自市場(chǎng)及工程部門(mén)的功能增強(qiáng)請(qǐng)求,需求、設(shè)計(jì)及文檔變更請(qǐng)求等
55、。(2) 變更請(qǐng)求評(píng)審。變更請(qǐng)求評(píng)審是根據(jù)變更管理規(guī)程、項(xiàng)目目標(biāo)、變更的必要性、變更實(shí)現(xiàn)所需的時(shí)間、成本利潤(rùn)分析、變更對(duì)系統(tǒng)其他部分的影響以及技術(shù)可行性(能否實(shí)現(xiàn))等分析評(píng)估變更請(qǐng)求的。一般由變更控制委員會(huì)(CCB)召開(kāi)相應(yīng)的評(píng)估會(huì)議,并根據(jù)變更的影響范圍,邀請(qǐng)相關(guān)人員參加。如果有必要,可以設(shè)立不同級(jí)別的CCB,對(duì)不同層次的變更申請(qǐng)進(jìn)行控制,在這種情況下,項(xiàng)目組可以在配置管理計(jì)劃中以樹(shù)狀結(jié)構(gòu)說(shuō)明其從屬結(jié)構(gòu),并在計(jì)劃中明確說(shuō)明CCB的授權(quán)范圍,在變更管理規(guī)程中規(guī)定由誰(shuí)來(lái)評(píng)估變更。一般在大型項(xiàng)目中,對(duì)已基線化的配置項(xiàng)的變更,由變更控制委員會(huì)評(píng)審;在較小型項(xiàng)目中,由項(xiàng)目經(jīng)理評(píng)估。(3) 批準(zhǔn)變更。根
56、據(jù)評(píng)估決定接受變更或拒絕變更,對(duì)接受的變更也會(huì)有不同的處理方式,例如立即實(shí)現(xiàn)變更,或在下一個(gè)版本的產(chǎn)品中或下一期項(xiàng)目中再實(shí)現(xiàn)變更。不同的企業(yè)會(huì)根據(jù)項(xiàng)目情況將變更分類(lèi),對(duì)不同類(lèi)型的變更采取不同的措施??梢詫⒆兏殖上铝袔追N類(lèi)型:增強(qiáng)型:變更要求對(duì)已批準(zhǔn)的項(xiàng)目功能進(jìn)行增強(qiáng)。改進(jìn)型:變更不會(huì)造成功能更改,將使配置項(xiàng)的維護(hù)更加有效率。糾錯(cuò)型:變更對(duì)錯(cuò)誤進(jìn)行修正。通常,對(duì)糾錯(cuò)型的變更會(huì)根據(jù)系統(tǒng)的質(zhì)量標(biāo)準(zhǔn)決定是否批準(zhǔn)變更,對(duì)增強(qiáng)型和改進(jìn)型的變更要根據(jù)評(píng)估結(jié)果決定是否批準(zhǔn)變更。(4) 實(shí)現(xiàn)變更。如果接受了變更請(qǐng)求,就開(kāi)始區(qū)分變更的優(yōu)先級(jí),根據(jù)優(yōu)先級(jí)計(jì)劃變更實(shí)現(xiàn)方案,包括技術(shù)方案、人員安排和任務(wù)分配等。不同企
57、業(yè)會(huì)根據(jù)項(xiàng)目情況區(qū)分變更優(yōu)先級(jí),并對(duì)不同優(yōu)先級(jí)的變更采取不同的實(shí)現(xiàn)方案。變更可分配下述幾種優(yōu)先級(jí):高:嚴(yán)重地影響一些用戶(hù)或許多用戶(hù)。在變更請(qǐng)求提交的5個(gè)工作日內(nèi)要對(duì)所做改動(dòng)的版本進(jìn)行全面測(cè)試。中:對(duì)用戶(hù)造成不方便或存在主要問(wèn)題但可以采取相應(yīng)的變通方法處理。在變更請(qǐng)求提交的20個(gè)工作日內(nèi)要對(duì)所做改動(dòng)的版本進(jìn)行全面測(cè)試。低:小問(wèn)題。在變更請(qǐng)求提交的3個(gè)月內(nèi),在下一個(gè)發(fā)布版本中進(jìn)行改動(dòng)。(5) 確認(rèn)變更。實(shí)現(xiàn)的變更要經(jīng)過(guò)審計(jì),審計(jì)由質(zhì)量控制小組或負(fù)責(zé)管理產(chǎn)品的發(fā)布人完成。(6) 發(fā)布變更。配置管理人員要記錄和追蹤變更,采取措施保證變更在受控狀態(tài)下進(jìn)行,并發(fā)布變更請(qǐng)求的狀態(tài)。變更請(qǐng)求可具有下列狀態(tài):提
58、交:變更請(qǐng)求提交給配置管理人員。拒絕:變更評(píng)審小組或個(gè)人拒絕變更請(qǐng)求。接受:變更評(píng)審小組或個(gè)人接受變更請(qǐng)求。掛起:變更請(qǐng)求被掛起,以后再做決定。已驗(yàn)證:變更請(qǐng)求要求的更改已執(zhí)行和驗(yàn)證。關(guān)閉:驗(yàn)證并歸檔配置項(xiàng),并將更新的配置項(xiàng)提交給用戶(hù)(例如通過(guò)版本發(fā)布)。12.3.4 狀態(tài)報(bào)告1. 狀態(tài)報(bào)告為了清楚、及時(shí)地記載軟件配置的變化,不至于到后期造成貽誤,需要在開(kāi)發(fā)的過(guò)程中對(duì)每個(gè)軟件配置項(xiàng)做出系統(tǒng)的記錄,以反映開(kāi)發(fā)活動(dòng)的歷史情況。配置狀態(tài)報(bào)告就是根據(jù)配置項(xiàng)操作數(shù)據(jù)庫(kù)中的記錄來(lái)向管理者報(bào)告軟件開(kāi)發(fā)活動(dòng)的進(jìn)展情況的。記錄主要包括軟件配置項(xiàng)的出入庫(kù)情況、軟件變更控制委員會(huì)的會(huì)議記錄和變更情況記錄,根據(jù)這些情
59、況和記錄產(chǎn)生配置狀態(tài)報(bào)告。這些報(bào)告應(yīng)及時(shí)發(fā)放給有關(guān)人員,以避免可能產(chǎ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)告的對(duì)象,包括配置項(xiàng)的狀態(tài)、更改申請(qǐng)和對(duì)已批準(zhǔn)的更改的實(shí)現(xiàn)情況3個(gè)方面。配置狀態(tài)報(bào)告的任務(wù)是記錄、報(bào)告整個(gè)生命周期中軟件的狀態(tài),用以跟蹤對(duì)已建立基線的需求、源代碼、數(shù)據(jù)及相關(guān)文檔的更改和文件的形式等,表明每一軟件版本的內(nèi)容,以及形成該版本的所有更改,供相關(guān)人員了解,以加強(qiáng)配置管理工作。配置狀態(tài)報(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)
60、的操作記錄來(lái)分析開(kāi)發(fā)團(tuán)隊(duì)成員之間的工作關(guān)系。2. 狀態(tài)統(tǒng)計(jì)配置狀態(tài)統(tǒng)計(jì)是配置狀態(tài)報(bào)告的組成部分之一,在產(chǎn)品開(kāi)發(fā)過(guò)程中,基于已發(fā)現(xiàn)并修復(fù)了的缺陷類(lèi)型、數(shù)量、頻率和嚴(yán)重性等方面,可以說(shuō)明產(chǎn)品的狀態(tài)。狀態(tài)報(bào)告持續(xù)地記錄了配置狀態(tài)以及保持基線產(chǎn)品和基線變更的歷史,并使相關(guān)人員了解配置和基線的狀態(tài)。配置狀態(tài)統(tǒng)計(jì)包括在軟件生命周期中對(duì)基線所有變更的可跟蹤性報(bào)告中。項(xiàng)目和配置項(xiàng)的關(guān)鍵信息可通過(guò)配置狀態(tài)統(tǒng)計(jì)傳遞給項(xiàng)目組成員。軟件工程師可以看到做了哪些修改,或每個(gè)文件包含在哪個(gè)基線中;項(xiàng)目經(jīng)理可以跟蹤項(xiàng)目的問(wèn)題報(bào)告和各種其他維護(hù)活動(dòng)。配置狀態(tài)統(tǒng)計(jì)包括對(duì)以下問(wèn)題的答復(fù):配置項(xiàng)的狀態(tài)是什么?變更要求是否被CCB批準(zhǔn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 長(zhǎng)鏈烷基修飾的釕(Ⅱ)配合物的設(shè)計(jì)、合成及抗菌活性研究
- 2025年獨(dú)院出售專(zhuān)項(xiàng)基金合同:二零二五年度庭院房產(chǎn)交易基金管理協(xié)議
- 2025年度生姜種植與農(nóng)村金融服務(wù)合作框架協(xié)議
- 保溫?;⒅槭┕し桨?/a>
- 地鐵隧道清洗施工方案
- 2025版企業(yè)市場(chǎng)調(diào)研與信息服務(wù)合同范本2篇
- 智能生產(chǎn)預(yù)測(cè)分析-深度研究
- 攝像服務(wù)行業(yè)品牌建設(shè)研究-深度研究
- 道旗施工方案
- 膜結(jié)構(gòu)雨棚施工方案
- 中央2025年國(guó)務(wù)院發(fā)展研究中心有關(guān)直屬事業(yè)單位招聘19人筆試歷年參考題庫(kù)附帶答案詳解
- 2024年09月北京中信銀行北京分行社會(huì)招考(917)筆試歷年參考題庫(kù)附帶答案詳解
- 外呼合作協(xié)議
- 小學(xué)二年級(jí)100以?xún)?nèi)進(jìn)退位加減法800道題
- 保險(xiǎn)公司2025年工作總結(jié)與2025年工作計(jì)劃
- 2024年公司領(lǐng)導(dǎo)在新年動(dòng)員會(huì)上的講話樣本(3篇)
- 眼科護(hù)理進(jìn)修專(zhuān)題匯報(bào)
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護(hù)
- 深靜脈血栓(DVT)課件
- 2023年四川省廣元市中考數(shù)學(xué)試卷
- GB/T 19885-2005聲學(xué)隔聲間的隔聲性能測(cè)定實(shí)驗(yàn)室和現(xiàn)場(chǎng)測(cè)量
評(píng)論
0/150
提交評(píng)論