IT公司軟件配置管理_第1頁
IT公司軟件配置管理_第2頁
IT公司軟件配置管理_第3頁
IT公司軟件配置管理_第4頁
IT公司軟件配置管理_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

軟件配置管理尹繼剛2007-4-5軟件配置管理

什么是軟件配置管理

軟件配置管理〔SoftwareConfigurationManagement,SCM〕是指通過執(zhí)行版本控制、變更控制等規(guī)程,以及使用適宜的配置管理軟件,來保證所有配置項的完整性和可跟蹤性。配置管理是對工作成果的一種有效保護(hù)。軟件配置管理(SCM)是貫穿于整個軟件過程中的保護(hù)性活動。SCM目的是保證軟件工程生成的產(chǎn)品在軟件生命周期中的完整性和一致性.因為變化可能發(fā)生在任意時間,SCM活動被設(shè)計來:(1)標(biāo)識變化;(2)控制變化;(3)保證變化被適當(dāng)?shù)貙?shí)現(xiàn);(4)向其他可能有興趣的人員報告變化。軟件配置管理使改進(jìn)變化可以更容易地被適應(yīng),并減少當(dāng)變化必須發(fā)生時所需花費(fèi)的工作量。明確地區(qū)分軟件維護(hù)和軟件配置管理是很重要的。維護(hù)是發(fā)生在軟件已經(jīng)被交付給客戶,并投入運(yùn)行后的一系列軟件工程活動,而軟件配置管理那么是當(dāng)軟件工程開始時就開始,并且僅當(dāng)軟件退出運(yùn)行后才終止的一組跟蹤和控制活動。 配置管理與任何一位工程成員都有關(guān)系,因為每個人都會產(chǎn)生工作成果。 配置管理是否有成效取決于三個要素:人、標(biāo)準(zhǔn)、工具隨著計算機(jī)軟件的開展,軟件開發(fā)已由最初的“程序設(shè)計階段”經(jīng)歷了“軟件系統(tǒng)階段”進(jìn)而演變?yōu)楹髞淼摹败浖こ屉A段”,軟件的復(fù)雜性日益增大。此時,如果仍然把軟件看成一個單一的個體,就無法解決所面臨的問題,于是配置的概念逐漸引入軟件領(lǐng)域,人們越來越重視軟件配置的管理工作。不懂軟件工程的配置管理,就不懂軟件開發(fā)管理不對軟件工程進(jìn)行配置管理,就沒有進(jìn)行軟件工程開發(fā)管理軟件配置管理是CMM2中6個關(guān)鍵過程域的第6個關(guān)鍵域。CMM2認(rèn)為,SCM的目的是為了建立和維護(hù)軟件開發(fā)過程中各種制品的完整性和一致性,包括以下內(nèi)容:對軟件產(chǎn)品配置的標(biāo)志和識別系統(tǒng)地控制對處于配置管理下的各種軟件制品的修改和更新維護(hù)軟件開發(fā)過程中的各種制品的一致性和可跟蹤性CMM2的配置管理概念

SCM的目標(biāo)目標(biāo)1:軟件配置管理活動被定義和方案目標(biāo)2:軟件開發(fā)過程中的制品被識別、控制和管理目標(biāo)3:對于處于配置管理下的軟件制品的修改被控制目標(biāo)4:與軟件制品相關(guān)的工程組和成員應(yīng)該被通知制品的目前狀態(tài)和被修改的信息

SCM的目標(biāo)從對配置目的的定義可以看出,CMM2的配置管理應(yīng)包括這樣一些活動:標(biāo)識給定時間點(diǎn)的軟件配置〔即所選擇的工作產(chǎn)品及其描述〕,系統(tǒng)地控制這些配置的更改,并在軟件生命周期中保持這些配置的完整性和可跟蹤性。CMM2認(rèn)為,受控于配置管理的工作產(chǎn)品,包括交付給用戶的軟件產(chǎn)品〔如:代碼等〕,以及生成軟件產(chǎn)品所需要的有關(guān)項〔如:工程管理文件〕。CMM2的配置管理活動最主要的內(nèi)容是:建立軟件基線庫,該庫存儲開發(fā)的軟件基線。通過軟件配置管理的更改控制和配置審核功能,系統(tǒng)地控制基線變更和由軟件基線庫生成的軟件產(chǎn)品版本。要到達(dá)CMM規(guī)定的SCM要求所需具備的能力:具有對軟件基線產(chǎn)品有管理權(quán)限的組織已經(jīng)建立,例如:軟件配置管理委員會;協(xié)調(diào)和實(shí)現(xiàn)軟件配置管理的組織已經(jīng)建立;為進(jìn)行軟件配置管理所需要的各項資源已經(jīng)分配;軟件配置管理組織里的成員已經(jīng)接受了軟件配置目標(biāo)、流程、方法方面的培訓(xùn);軟件工程組或是其他的相關(guān)的部門經(jīng)過培訓(xùn),可以執(zhí)行他們的軟件配置管理活動;CMM中對SCM規(guī)定的活動根據(jù)文檔化的流程,工程軟件配置管理方案已準(zhǔn)備完畢;文檔化的已獲批準(zhǔn)的軟件配置管理方案可用作以后軟件配置管理活動的根底;軟件配置管理庫已經(jīng)創(chuàng)立,并可用作進(jìn)入基線的軟件制品的存貯庫;處于軟件配置管理下的軟件制品被標(biāo)志和識別;對于配置項的變更請求和問題報告被初始化、方案、評審、批準(zhǔn)并根據(jù)文化化的流程對其進(jìn)行跟蹤;對于進(jìn)入基線的制品的修改必須遵循文檔化的流程;發(fā)布的產(chǎn)品必須從軟件配置庫中取出,并且產(chǎn)品發(fā)布的流程須依照文檔化的流程和規(guī)定;根據(jù)文檔化的流程和規(guī)定,軟件配置項的狀態(tài)被記錄和跟蹤;記錄軟件配置管理活動和軟件基線內(nèi)容的報告被建立,并通知受到影響的工程組和個人;根據(jù)文檔化的流程進(jìn)行軟件制品基線的評審;CMM中對SCM規(guī)定的活動組織規(guī)定和相關(guān)責(zé)任工程級配置管理工程配置經(jīng)理(ProjectConfigurationManager)與軟件配置管理方案變更控制委員會(ChangeControlBoard)組織級配置管理組織配置管理庫(OrganizationalConfigurationManagementCell)負(fù)責(zé)工程完成后的軟件配置管理活動管理組織級的文檔IEEE標(biāo)準(zhǔn)729-1983就配置管理的內(nèi)容進(jìn)行了標(biāo)準(zhǔn)的定義:

〔1〕標(biāo)識:識別產(chǎn)品的結(jié)構(gòu)、產(chǎn)品的構(gòu)件及其類型,為其分配唯一的標(biāo)識符,并以某種形式提供對它們的存取。

〔2〕控制:通過建立產(chǎn)品基線,控制軟件產(chǎn)品的發(fā)布和在整個軟件生命周期中對軟件產(chǎn)品的修改。例如,它將解決哪些修改會在該產(chǎn)品的最新版本中實(shí)現(xiàn)的問題。

〔3〕狀態(tài)統(tǒng)計:記錄并報告構(gòu)件和修改請求的狀態(tài),并收集關(guān)于產(chǎn)品構(gòu)件的重要統(tǒng)計信息。例如,它將解決修改這個錯誤會影響多少個文件的問題。

〔4〕審計和審查:確認(rèn)產(chǎn)品的完整性并維護(hù)構(gòu)件間的一致性,即確保產(chǎn)品是一個嚴(yán)格定義的構(gòu)件集合。例如,它將解決目前發(fā)布的產(chǎn)品所用的文件的版本是否正確的問題。

〔5〕生產(chǎn):對產(chǎn)品的生產(chǎn)進(jìn)行優(yōu)化管理。它將解決最新發(fā)布的產(chǎn)品應(yīng)由哪些版本的文件和工具來生成的問題。

〔6〕過程管理:確保軟件組織的規(guī)程、方針和軟件周期得以正確貫徹執(zhí)行。它將解決要交付給用戶的產(chǎn)品是否經(jīng)過測試和質(zhì)量檢查的問題。

〔7〕小組協(xié)作:控制開發(fā)統(tǒng)一產(chǎn)品的多個開發(fā)人員之間的協(xié)作。例如,它將解決是否所有本地程序員所做的修改都已被參加到新版本的產(chǎn)品中的問題。IEEE的配置管理定義

CMM2的定義比較抽象,IEEE的定義比較具體。結(jié)合各體系的定義和要求,我們下面具體來討論配置管理的概念。配置管理功能概述

配置標(biāo)識或者又稱為配置需求,包括標(biāo)識軟件系統(tǒng)的結(jié)構(gòu),標(biāo)識獨(dú)立部件,并使它們是可訪問的。配置標(biāo)識的目的,是在整個生命周期中標(biāo)識系統(tǒng)各部件并提供對軟件過程及其軟件產(chǎn)品的跟蹤能力。它答復(fù):什么是受控的?配置變更控制包括在軟件生命周期中控制軟件產(chǎn)品的發(fā)布和變更,目的是建立確保軟件產(chǎn)品質(zhì)量的機(jī)制。它答復(fù):受控產(chǎn)品怎樣變更?誰控制變更?何時接受,恢復(fù),驗證變更?配置狀態(tài)統(tǒng)計包括記錄和報告變更過程,目標(biāo)是不間斷記錄所有基線項的狀態(tài)和歷史,并進(jìn)行維護(hù),它解決以下問題:系統(tǒng)已經(jīng)做了什么變更?此問題將會對多少個文件產(chǎn)生影響?配置變更控制是針對軟件產(chǎn)品,狀態(tài)統(tǒng)計針對軟件過程。因此,二者的統(tǒng)一就是對軟件開發(fā)〔產(chǎn)品、過程〕的變更控制。配置審核將驗證軟件產(chǎn)品的構(gòu)造是否符合需求、標(biāo)準(zhǔn)、或合同的要求,目的是根據(jù)SCM的過程和程序,驗證所有的軟件產(chǎn)品已經(jīng)產(chǎn)生并有正確標(biāo)識和描述,所有的變更需求都已解決。它答復(fù):系統(tǒng)和需求是否吻合?是否所有變更都是在版本控制下?

SCM的四大功能領(lǐng)域SCM從應(yīng)用層次上可以從低到高分為三級:版本控制、以開發(fā)者為中心、過程驅(qū)動。版本控制主要應(yīng)用于個人獨(dú)立開發(fā)或小組開發(fā),它可以控制任何文件的版本、實(shí)現(xiàn)分支和歸并功能、進(jìn)行文本比較、標(biāo)記注釋和版本報告信息,主要工具有MS的VisualSourceSafe及IntersolvPVCS。以開發(fā)者為中心主要應(yīng)用于部門級開發(fā),它可用于軟件維護(hù)、不斷增加的開發(fā)任務(wù)、并行開發(fā)、QA及測試,它面向大型團(tuán)隊、利于交流、能最大限度地利用人力資源,主要工具為RationalClearCase及MKSSourceIntegrity。過程驅(qū)動主要使用于企業(yè)級開發(fā),著重解決新的工具引入、IT審核、管理報告、復(fù)雜的生命周期、應(yīng)用工具包、集成解決方案、資料庫等問題,實(shí)現(xiàn)真正標(biāo)準(zhǔn)的團(tuán)隊開發(fā),主要工具為PlatinumTechnologyCCC/Harvest。SCM的三個應(yīng)用層次

SCM中的專業(yè)術(shù)語配置(Configuration)與配置項(ConfigurationItem)在軟件開發(fā)過程中生成各種制品的總和叫做這個工程的軟件配置[RogerS.Pressman,1997]計算機(jī)程序,包括源代碼和可執(zhí)行程序與計算機(jī)程序相對應(yīng)的各種文檔計算機(jī)數(shù)據(jù),包括計算機(jī)程序中包含的數(shù)據(jù)和系統(tǒng)初始化數(shù)據(jù)基線工程開發(fā)過程的制品經(jīng)過正式評審并被相關(guān)人員一致同意,可以作為以后工程開發(fā)的根底。對已經(jīng)確定為基線的制品的修改必須要通過正式的變更控制流程。在軟件工程環(huán)境中,基線是指在軟件開發(fā)過程中的里程碑,這些里程碑的標(biāo)志是一項或多項經(jīng)過正式的技術(shù)評審并一致認(rèn)同的軟件制品的提交。配置數(shù)據(jù)庫〔軟件制品基線庫〕工程建立和訪問軟件制品庫,這個制品庫主要用來對保存配置項和一些與軟件配置管理相關(guān)的記錄。目前比較好的配置管理工具:Clearcase(Rational),Notes/Domino(Lotus),PVCS(Merant)andVSS(Microsoft).配置管理的商業(yè)理念

企業(yè)的商業(yè)需求決定了配置管理的力度,我們不必追求完美無缺的配置管理,而是讓開發(fā)團(tuán)隊恰好夠用就行,并將為配置管理所付出的代價控制在預(yù)算之內(nèi)。

富有成效的配置管理的特征:任何工程成員都要對其工作成果進(jìn)行配置管理,應(yīng)當(dāng)養(yǎng)成良好的習(xí)慣。不必付出過多的精力,最低要求是保證重要工作成果不發(fā)生混亂。配置管理標(biāo)準(zhǔn)應(yīng)當(dāng)清晰明了,便于執(zhí)行,不必在細(xì)節(jié)方面要求太多,不給工程人員添加過多的負(fù)擔(dān),不使人厭煩。

最大的麻煩是工作成果被覆蓋。 如果不采用配置管理軟件來保存工作成果的歷史版本的話,人們在同一個文件上修改內(nèi)容,保存之后,那么新的內(nèi)容覆蓋了老的內(nèi)容。如果沒有軟件配置管理,將有什么害處?

多數(shù)情況下新的內(nèi)容比老的內(nèi)容好,覆蓋了也沒關(guān)系。但是總有不少意外,例如程序員修改了老程序員之后,突然發(fā)現(xiàn)新程序是錯誤的,而老程序卻是對的,可是老程序被新程序覆蓋了,再也無法恢復(fù)。怎么辦呢?還能怎么辦,只好重新寫老程序再覆蓋新程序,可是過一陣子又發(fā)現(xiàn)新程序也又可取之處,這時卻無法恢復(fù)新程序了,只好重新寫新程序再覆蓋老程序,…如果你經(jīng)常碰到這樣的事情,你會發(fā)瘋的。 為了防止成果被覆蓋,很多人采用最原始的手工管理版本的方式,例如給文件加后綴“-01”、“-02”以表示版本。天長日久,工作目錄下就會有一堆帶數(shù)字后綴的文件,而且你自己也忘記了數(shù)字后綴代表什么內(nèi)容,管理起來非常麻煩。最直接的好處是工作成果的所有版本都被保存著,不會喪失也不會被覆蓋,你不會氣得發(fā)瘋了。使用軟件配置管理,將有什么好處?如今硬盤的存儲空間價格低廉,用于保存歷史版本的存儲空間的本錢可以忽略不計。如果你保存了工作成果的100個歷史版本,哪怕99版本都是“垃圾”,只有一個版本里有“黃金”,那也值了。所以你盡管放心保存歷史版本好了,累的是計算機(jī)又不是你,你怕什么。 間接的好處是,工程的所有工作成果被完整地保存下來,這是企業(yè)的知識財富,可以被人們很好地分享利用。而且減少了人員辭職造成的損失,企業(yè)老板可以放心很多了。因為如果沒有配置管理的話,人走了,即使他把成果刻錄成光盤交給接收者,別人也搞不清楚那些成果的演化過程。事在人為

配置管理的方法是成熟的,而且相應(yīng)的軟件工具也是成熟的,根本上不存在看不懂、不會用的問題。配置管理的執(zhí)行效果如何,完全應(yīng)了中國的一句老話“事在人為”啊。阻礙配置管理的主要問題是人們“嫌麻煩”〔還有僥幸心理〕。

在沒有出亂子的情況下,執(zhí)行版本控制看起來有些麻煩。每次修改工作成果的時候,總是先checkout,然后再修改,最后還要checkin,多了前后兩步。 其實(shí)checkout和checkin兩步操作只需花費(fèi)幾秒鐘,而且不費(fèi)腦子,憑良心說根本沒有添加麻煩,僅僅是個人感覺不爽快而已。 然而不執(zhí)行版本控制的話,萬一發(fā)生工作成果被覆蓋或喪失等問題,那么麻煩就大了。配置項

軟件研發(fā)和管理過程中會產(chǎn)生許許多多的工作成果,例如文檔、程序和數(shù)據(jù)等,它們都應(yīng)當(dāng)被妥善地保管起來,以便查閱和修改。如果把所有文件一股腦地塞進(jìn)計算機(jī)里,那么使用起來肯定很麻煩。毫無疑問,人們應(yīng)當(dāng)將文件分門別類、有條理地保存起來。但凡納入配置管理范疇的工作成果統(tǒng)稱為配置項〔ConfigurationItem,CI〕。軟件配置項(SoftwareConfigurationItems,SCI)配置項主要有兩大類:屬于產(chǎn)品組成局部的工作成果,例如源代碼、需求文檔、設(shè)計文檔、測試用例等等在管理過程中產(chǎn)生的文檔例如各種方案、監(jiān)控報告等等,這些文檔雖然不是產(chǎn)品的組成局部,但是值得保存。標(biāo)識軟件配置項軟件配置項分為根本對象和復(fù)合對象:根本對象:分析\設(shè)計\編碼\測試時所建立的”文檔單元”,如,需求規(guī)格說明中的一節(jié)、一個模塊的源代碼、一組測試用例。復(fù)合對象:根本對象或其他復(fù)合對象的一個集合。如,“設(shè)計規(guī)格說明書”是一個復(fù)合對象、一些根本對象,如“數(shù)據(jù)模型”、“模塊N”的集合。每個配置項可用一組信息來唯一地標(biāo)識它。 每個配置項的主要屬性有: 名稱、標(biāo)識符、文件狀態(tài)、版本、作者、日期等。 所有配置項都被保存在配置庫里,確保不會混淆、喪失。 配置項及其歷史記錄反映了軟件的演化過程?;€由正式技術(shù)評審而得到的軟件配置項的正式文本構(gòu)成了基線?;€〔Baseline〕由一組配置項組成,這些配置項構(gòu)成了一個相對穩(wěn)定的邏輯實(shí)體?;€中的配置項被“凍結(jié)”了,不能再被任何人隨意修改〔見變更控制規(guī)程〕。其作用是使連續(xù)的工作在這些點(diǎn)上斷開,以便于檢查和肯定階段成果。基線需要定期審核,以驗證與文檔的一致性。 基線通常對應(yīng)于開發(fā)過程中的里程碑〔Milestone〕,一個產(chǎn)品可以有多個基線,也可以只有一個基線。 基線的主要屬性有: 名稱、標(biāo)識符、版本、日期等。通常將交付給客戶的基線稱為一個“Release”,為內(nèi)部開發(fā)用的基線那么稱為一個“Build”。以下的SCI成為配置管理技術(shù)的目標(biāo)并形成一組基線:1.系統(tǒng)規(guī)約2.軟件工程方案3.軟件需求規(guī)約:a.圖形分析模型;b.處理規(guī)約;c.原型;d.數(shù)學(xué)規(guī)約4.初步的用戶手冊5.設(shè)計規(guī)約:a.數(shù)據(jù)設(shè)計描述;b.體系結(jié)構(gòu)設(shè)計描述;c.模塊設(shè)計描述;d.界面設(shè)計描述e.對象描述(如果使用面向?qū)ο蠹夹g(shù))6.源代碼清單7.測試規(guī)約a.測試方案和過程b.測試用例和結(jié)果記錄8.操作和安裝手冊9.可執(zhí)行程序a.模塊的可執(zhí)行代碼b.鏈接的模塊10.數(shù)據(jù)庫描述a.模式和文件結(jié)構(gòu)b.初始內(nèi)容11.聯(lián)機(jī)用戶手冊12.維護(hù)文檔a.軟件問題報告b.維護(hù)請求c.工程變化命令13.軟件工程的標(biāo)準(zhǔn)和規(guī)程14.特定版本的編輯器、編譯器和其他CASE工具等角色為了提高配置管理的效率和平安性,工程應(yīng)當(dāng)設(shè)有配置管理員這個角色。配置管理員的主要工作是為工程制定配置管理方案,創(chuàng)立和維護(hù)配置庫等。 對于大型的工程,鑒于配置管理的重要性和復(fù)雜性,機(jī)構(gòu)應(yīng)當(dāng)設(shè)立配置控制委員會〔ConfigurationControlBoard,CCB〕。 CCB是個虛擬小組,對配置管理各項活動擁有決策權(quán)〔例如審批方案,審批變更請求等〕。 對于配置管理而言,CCB是決策者,而配置管理員是執(zhí)行者。 對于普通的小型軟件工程而言,CCB這個概念難以落實(shí),我們就不要玩虛的了,讓工程經(jīng)理或者配置管理員做決定就行了。流程RUP描述的配置管理的主要活動如以下圖所示:對于一個軟件工程組來說,開展一個工程組的配置管理,大致可以分為以下步驟:對于一個軟件工程組來說,開展一個工程組的配置管理,大致可以分為以下步驟:〔1〕擬訂工程的配置管理方案;〔2〕創(chuàng)立工程的配置管理環(huán)境;〔3〕進(jìn)行工程的配置管理活動,包括:標(biāo)識配置項;管理基線和發(fā)布活動;監(jiān)測與報告配置狀態(tài);管理變更請求?!?〕和〔2〕可以看成配置管理的準(zhǔn)備,〔3〕是配置管理的具體實(shí)施。配置管理的具體實(shí)施,在RUP定義為四個管理活動。

配置項的標(biāo)識和控制

所有配置項都應(yīng)按照相關(guān)規(guī)定統(tǒng)一編號,按照相應(yīng)的模板生成,并在文檔中的規(guī)定章節(jié)〔局部〕記錄對象的標(biāo)識信息。在引入軟件配置管理工具進(jìn)行管理后,這些配置項都應(yīng)以一定的目錄結(jié)構(gòu)保存在配置庫中。

所有配置項的操作權(quán)限應(yīng)由配置管理員嚴(yán)格管理,根本原那么是:基線配置項向軟件開發(fā)人員開放讀取權(quán)限;非基線配置項向工程經(jīng)理、配置控制委員會及相關(guān)人員開放。

工作空間管理

在引入了軟件配置管理工具之后,所有開發(fā)人員都會被要求把工作成果存放到由軟件配置管理工具所管理的配置庫〔存儲池〕中去,或是直接工作在軟件配置管理工具提供的環(huán)境之下〔根據(jù)配置管理構(gòu)架提供的控制方式不同而不同〕。每個開發(fā)人員按照任務(wù)的要求,在不同的開發(fā)階段,工作在不同的工作空間上。比較理想的情況是把整個配置庫視為一個統(tǒng)一的工作空間,然后再根據(jù)需要把它劃分為個人〔私有〕、團(tuán)隊〔集成〕和全組〔公共〕這三類工作空間〔分支〕,從而更好的支持將來可能出現(xiàn)的并行開發(fā)的需求。

版本控制

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

變更控制

變更管理的一般流程是:〔1〕〔獲得〕提出變更請求;〔2〕由CCB審核并決定是否批準(zhǔn);〔3〕〔被接受〕分配請求,修改人員提取配置項,進(jìn)行修改;〔4〕復(fù)審變化;〔5〕提交修改后的配置項;〔6〕建立測試基線并測試;〔7〕重建軟件的適當(dāng)版本;〔8〕復(fù)審〔審計〕所有配置項的變化;〔9〕發(fā)布新版本。

在這樣的流程中,配置管理員通過軟件配置管理工具來進(jìn)行訪問控制和同步控制,而這兩種控制那么是建立在前面所描述的版本控制和分支策略的根底上的。

狀態(tài)報告

配置狀態(tài)報告應(yīng)該包括以下主要內(nèi)容:

(1)配置庫結(jié)構(gòu)和相關(guān)說明;(2)開發(fā)起始基線的構(gòu)成;(3)當(dāng)前基線位置及狀態(tài);(4)各基線配置項集成分支的情況;(5)各私有開發(fā)分支類型的分布情況;(6)關(guān)鍵元素的版本演進(jìn)記錄;(7)其它應(yīng)報告的事項。

配置審計

配置審計的主要作用是作為變更控制的補(bǔ)充手段,來確保某一變更需求已被切實(shí)實(shí)現(xiàn)。在某些情況下,它被作為正式的技術(shù)復(fù)審的一局部,但當(dāng)軟件配置管理是一個正式的活動時,該活動由SQA人員單獨(dú)執(zhí)行。

總之,軟件配置管理的對象是軟件研發(fā)活動中的全部開發(fā)資產(chǎn)。所有這一切都應(yīng)作為配置項納入管理方案統(tǒng)一進(jìn)行管理,從而能夠保證及時的對所有軟件開發(fā)資源進(jìn)行維護(hù)和集成。因此,軟件配置管理的主要任務(wù)也就歸結(jié)為以下幾條:〔1〕制定工程的配置方案;〔2〕對配置項進(jìn)行標(biāo)識;〔3〕對配置項進(jìn)行版本控制;〔4〕對配置項進(jìn)行變更控制;〔5〕定期進(jìn)行配置審計;〔6〕向相關(guān)人員報告配置的狀態(tài)。

工程經(jīng)理的配置管理流程工程經(jīng)理的工作是:〔1〕確定工程配置管理策略〔2〕確定用于控制產(chǎn)品變更的策略和流程〔3〕在配置管理方案〔是軟件開發(fā)方案的一局部〕中記錄此信息配置管理策略

軟件配置管理策略是指能夠確定、保護(hù)和報告已經(jīng)批準(zhǔn)用于工程中的工件的能力。通過正確的標(biāo)注來實(shí)現(xiàn)確定操作。對工程工件的保護(hù)是通過歸檔、建立基線和報告等操作而得以實(shí)現(xiàn)的。使用標(biāo)準(zhǔn)的、已記錄下來的變更控制流程的目的是:確保工程中所做的變更保持一致,并將產(chǎn)品的狀態(tài)、對其所做的變更以及這些變更所消耗的本錢及對時間表的影響通知給有關(guān)的涉眾。軟件配置管理方案說明在產(chǎn)品/工程生命周期中要執(zhí)行的所有與配置管理相關(guān)的活動。它記錄如何方案、實(shí)施、控制和組織與產(chǎn)品相關(guān)的配置管理活動。

配備人員

配置管理人員的選擇和配備,是軟件工程經(jīng)理最主要的工作。在一個比較理想的軟件開發(fā)團(tuán)隊中,需要哪些角色呢? 負(fù)責(zé)軟件工程組的工程經(jīng)理 負(fù)責(zé)SCM方案和策略的配置經(jīng)理 負(fù)責(zé)軟件產(chǎn)品開發(fā)與維護(hù)的軟件工程人員 負(fù)責(zé)驗證產(chǎn)品正確性的測試人員 負(fù)責(zé)確保產(chǎn)品高質(zhì)量的質(zhì)量保證經(jīng)理 使用產(chǎn)品的用戶。

配置經(jīng)理配置經(jīng)理的目標(biāo)是確保用來建立、變更及編碼測試的方案和策略得以貫徹執(zhí)行,同時使有關(guān)工程的信息容易獲得。為了對編碼更改形成控制,配置經(jīng)理引入標(biāo)準(zhǔn)的請求變更的機(jī)制,評估更改的機(jī)制〔通過變更控制機(jī)構(gòu)CCB,由它負(fù)責(zé)批準(zhǔn)對軟件系統(tǒng)的變更〕,和批準(zhǔn)變更的機(jī)制。

配置經(jīng)理負(fù)責(zé)為工程人員創(chuàng)立任務(wù)單,交由工程經(jīng)理對任務(wù)進(jìn)行分配,創(chuàng)立工程的框架。同時,配置經(jīng)理還收集軟件系統(tǒng)中構(gòu)件的相關(guān)數(shù)據(jù),比方說用以判斷系統(tǒng)中出現(xiàn)問題的構(gòu)件的信息。

配置管理方案 配置管理員根據(jù)本工程的特征,起草配置管理方案,由CCB負(fù)責(zé)人〔通常是工程經(jīng)理〕審批。配置管理方案的主要內(nèi)容:1.人員與職責(zé)2.軟件硬件資源3.配置項方案4.基線方案5.配置庫備份方案6.版本控制規(guī)那么7.變更控制規(guī)那么8.審批

角色職責(zé)

工程經(jīng)理〔ProjectManager,PM〕配置控制委員會〔ConfigurationControlBoard,CCB〕配置管理員〔ConfigurationManagementOfficer,CMO〕系統(tǒng)集成員〔SystemIntegrationOfficer,SIO〕開發(fā)人員〔Developer,DEV〕配置管理方案肩負(fù)對工程成功負(fù)責(zé)的重要職責(zé)評估開發(fā)團(tuán)隊當(dāng)前配置管理現(xiàn)狀定義實(shí)施的范圍方案資源要素

工程經(jīng)理的階段工作要點(diǎn) 概念軟件的每一版本都是軟件基線庫的配置項〔源代碼、文檔、數(shù)據(jù)〕的一個集合。版本控制的目的是按照一定的規(guī)那么保存配置項的所有版本,防止發(fā)生版本喪失或混淆等現(xiàn)象,并且可以快速準(zhǔn)確地查找到配置項的任何版本。所有工程成員都必須遵照版本控制規(guī)程操作配置庫。版本控制規(guī)那么 配置項的狀態(tài)有三種:“草稿”〔Draft〕、“正式發(fā)布”〔Released〕、“正在修改”〔Changing〕。配置項狀態(tài)變遷:配置項剛建立時其狀態(tài)為“草稿”。配置項通過評審〔或?qū)徟澈?,其狀態(tài)變?yōu)椤罢桨l(fā)布”。此后假設(shè)更改配置項,必須依照“變更控制規(guī)程”執(zhí)行,其狀態(tài)變?yōu)椤罢谛薷摹?。?dāng)配置項修改完畢并重新通過評審〔或?qū)徟硶r,其狀態(tài)又變?yōu)椤罢桨l(fā)布”,如此循環(huán)。版本號〔1〕處于“草稿”狀態(tài)的配置項的版本號格式為:0.YZYZ數(shù)字范圍為01-99。隨著草稿的不斷完善,“YZ”的取值應(yīng)遞增?!癥Z”的初值和增幅由用戶自己把握?!?〕處于“正式發(fā)布”狀態(tài)的配置項的版本號格式為:X.YX為主版本號,取值范圍為1-9。Y為次版本號,取值范圍為1-9。配置項第一次“正式發(fā)布”時,版本號為1.0如果配置項的版本升級幅度比較小,一般只增大Y值,X值保持不變。只有當(dāng)配置項版本升級幅度比較大時,才允許增大X值?!?〕處于“正在修改”狀態(tài)的配置項的版本號格式為:X.YZ配置項正在修改時,一般只增大Z值,X.Y值保持不變。當(dāng)配置項修改完畢,狀態(tài)重新成為“正式發(fā)布”時,將Z值設(shè)置為0,增加X.Y值。參見規(guī)那么〔2〕。

版本控制的好處使混亂的開發(fā)狀態(tài)變得有序!SCM的主要技術(shù)——版本控制

變更控制的目的是防止配置項被隨意修改而導(dǎo)致混亂。為了提高效率,對于處于“草稿狀態(tài)”的配置項,不必進(jìn)行變更控制,因為它們本來就是草稿,本來就是要被不斷地修改的。變更控制 當(dāng)配置項狀態(tài)為“正式發(fā)布”,或者該配置項已經(jīng)成為某個基線的一局部〔即被“凍結(jié)”〕時,如果要修改配置項的話,那么按照變更控制規(guī)那么執(zhí)行。 步驟:第一步變更申請。變更申請人向CCB提交變更申請,重點(diǎn)說明“變更內(nèi)容”和“變更原因”。第二步審批變更申請。CCB負(fù)責(zé)人〔或工程經(jīng)理〕審批該申請,分析此變更對工程造成的影響。如果同意變更的話,那么轉(zhuǎn)向第三步,否那么終止。第三步安排變更任務(wù)。

CCB指定變更執(zhí)行人,安排他們的任務(wù)。CCB需要和變更執(zhí)行人就變更內(nèi)容達(dá)成共識。

第四步執(zhí)行變更任務(wù)。變更執(zhí)行人根據(jù)CCB安排的任務(wù),修改配置項。CCB監(jiān)督變更任務(wù)的執(zhí)行,如檢查變更內(nèi)容是否正確、是否按時完成工作等。第五步對更改后的配置項重新進(jìn)行技術(shù)評審〔或?qū)徟?。第六步結(jié)束變更。當(dāng)所有變更后的配置項都通過了技術(shù)評審或領(lǐng)導(dǎo)審批,這些配置項的狀態(tài)從“正在修改”變遷為“正式發(fā)布”,本次變更結(jié)束。在實(shí)際操作中,審批變更申請并非總是“客觀公正”的,人們并不在乎變更申請是否合理,關(guān)鍵看是誰提出變更申請。官兒越大的人提出的變更申請總是優(yōu)先處理的。

配置庫操作所有人員都依照配置管理標(biāo)準(zhǔn)和方案來操作配置庫。配置管理員的主要操作有:創(chuàng)立配置庫,并且至少創(chuàng)立配置庫的所有第一級目錄。

為每個工程成員分配操作權(quán)限。一般地,工程成員擁有Add,Checkin,Checkout,Download等權(quán)限,但是不要輕易擁有“刪除”權(quán)限。配置管理員的權(quán)限最高。具體操作視所采用的配置管理軟件而定。根據(jù)“基線方案”創(chuàng)立與維護(hù)基線,“凍結(jié)”配置項,控制變更。定期去除配置庫里的垃圾文件。定期備份配置庫。 其他工程成員根據(jù)自己的權(quán)限操作配置庫里的工作成果, 例如:Add,Checkin,Checkout,Download等。 配置審計的目的就是要保證所有人員〔包括配置管理員、CCB、和普通工程成員〕都遵守配置管理標(biāo)準(zhǔn)。

所以配置審計是質(zhì)量人員的工作職責(zé)之一,可以歸類為“過程檢查活動”。配置審計

人們對配置審計最大的誤解是“對配置庫中的每個配置項都檢查一遍”,配置庫里的配置項非常多,這樣做無疑非常勞累,卻沒有多少價值。

配置審計的對象是工程的主要配置項,如果主要配置項符合“版本控制規(guī)那么”和“變更控制規(guī)那么”,并且定期備份了配置庫,那么就可以認(rèn)為配置管理符合既定的標(biāo)準(zhǔn)。反之,如果質(zhì)量人員在審計的時候發(fā)現(xiàn)主要配置項比較混亂,那么應(yīng)當(dāng)告知當(dāng)事人及時更正,這樣就起到了審計的作用。總之,由于每個人都已經(jīng)在配置管理上付出了時間,切勿再在配置審計方面化很多時間??梢圆槐厝ナ煜み^程,也不必知道團(tuán)隊開發(fā)的模式可以延續(xù)你一貫的工作程序和處理方法將變更流程化自動處理業(yè)務(wù)SCM的過程驅(qū)動PRODUCTIONCODINGTESTINGREPORTINGPROJECTUPROJECTVPROJECTYPROJECTXPROJECTZPROJECTWAPPROVENOTIFYNOTIFYSCM的過程改進(jìn)SCM為變更和過程改進(jìn)提供根本結(jié)構(gòu)第一步,了解產(chǎn)品是怎樣生產(chǎn)的第二步,培養(yǎng)一個好的變更環(huán)境改進(jìn)要構(gòu)造的也就是改進(jìn)怎樣構(gòu)造--SEI1998年過程驅(qū)動的好處真正標(biāo)準(zhǔn)團(tuán)隊開發(fā)!1VisualSourceSafe

VisualSourceSafe是Microsoft公司推出的配置管理工具,是VisualStudio的套件之一。SourceSafe是國內(nèi)最流行的配置管理工具,用戶量絕對是第一位。常用配置管理工具VSS的簡單工作原理將工程所有的源文件〔包括各種文件類型〕以特有的方式存入數(shù)據(jù)庫;客戶端將程序拷貝到各自的工作目錄下進(jìn)行調(diào)試修改,然后進(jìn)行Checkin到效勞器,進(jìn)行綜合更新;支持多個工程之間文件快速高效的共享;每個成員對工程文件所作的修改將被記錄到數(shù)據(jù)庫中;VSS可以很容易地與MicrosoftAccess、VisualBasic、VisualC++、VisualFoxPro和其他的開發(fā)工具集成在一起. SourceSafe長得很象早先土氣的文件管理器,確實(shí)難看。但是難看不礙事,SourceSafe的優(yōu)點(diǎn)可以用8個字來概括“簡單易用,一學(xué)就會”。雖然SourceSafe并不是免費(fèi)的,但是在國內(nèi)人們以接近于零的本錢得到它,網(wǎng)上到處可以下載。當(dāng)然Microsoft也不在乎這個小不點(diǎn)的軟件,它屬于“買大件送小件”的角色。如果你合法地得到VisualStudio,你就得到了免費(fèi)的SourceSafe。

SourceSafe的主要局限性:只能在Windows下運(yùn)行,不能在Unix,Linux下運(yùn)行。Sou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論