第一篇:軟件項(xiàng)目的配置管理
軟件項(xiàng)目的配置管理
[摘要]:
2004年6月,我作為項(xiàng)目經(jīng)理開始參與某航空公司航空票務(wù)系統(tǒng)項(xiàng)目的開發(fā),主要負(fù)責(zé)系統(tǒng)的組織規(guī)劃實(shí)施開發(fā)與項(xiàng)目管理,該系統(tǒng)具有嚴(yán)格的安全,穩(wěn)定,時(shí)實(shí)高效和可靠性能要求,該系統(tǒng)由票務(wù)管理系統(tǒng)和呼叫中心系統(tǒng)兩部分組成,呼叫中心系統(tǒng)主要實(shí)現(xiàn)電話,傳真和短信業(yè)務(wù),票務(wù)管理系統(tǒng)是整個(gè)系統(tǒng)的核心,采用了struts+hibernate+spring主流WEB應(yīng)用框架,實(shí)現(xiàn)了WEB應(yīng)用服務(wù)器websphere與協(xié)作應(yīng)用服務(wù)器lotus domino 的高度集成.隨著軟件系統(tǒng)的日益復(fù)雜化和用戶需求,軟件更新的頻繁化,配置管理在軟件項(xiàng)目中顯得越來越重要了。本文以該項(xiàng)目為例,結(jié)合作者時(shí)間,主要通過在項(xiàng)目前期,做好需求調(diào)研,總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)并制定完整的配置管理計(jì)劃。在該項(xiàng)目全過程中規(guī)范化配置管理,注意員工培訓(xùn)并加強(qiáng)溝通與協(xié)調(diào),來實(shí)施項(xiàng)目的配置管理。目前,該系統(tǒng)已開發(fā)完畢,正式投入運(yùn)行,狀況良好,受到客戶一致好評。
[正文]:
2004年6月,2004年6月,我作為項(xiàng)目經(jīng)理開始參與某航空公司航空票務(wù)系統(tǒng)項(xiàng)目的開發(fā),主要負(fù)責(zé)系統(tǒng)的組織規(guī)劃實(shí)施開發(fā)與項(xiàng)目管理,當(dāng)然還做一些編碼工作,主要是公用基礎(chǔ)代碼和核心代碼的編寫與維護(hù)。航空票務(wù)系統(tǒng)是將呼叫中心系統(tǒng)和票務(wù)管理系統(tǒng)有效的結(jié)合起來,采用先進(jìn)的CTI技術(shù)和語音板卡技術(shù),充分利用電話,短信,傳真,因特網(wǎng)等信息化手段,解決航空公司的機(jī)票銷售問題,規(guī)范了業(yè)務(wù)流程,強(qiáng)化了內(nèi)部管理,與電子商務(wù)的完美結(jié)合,使應(yīng)用系統(tǒng)功能更加完善,提高了整個(gè)航空業(yè)務(wù)的工作效率。其中,票務(wù)管理系統(tǒng)包括:客戶管理,機(jī)票管理,票證管理,銷售管理,財(cái)務(wù)結(jié)算,調(diào)度管理,遠(yuǎn)程營業(yè)部(代理商/分銷商)管理,系統(tǒng)管理八大功能模塊,并統(tǒng)一于服務(wù)器端軟件模塊。呼叫中心系統(tǒng)由電話呼叫系統(tǒng),短信分發(fā)系統(tǒng),傳真呼叫系統(tǒng)三部分組成。票務(wù)管理系統(tǒng)是整個(gè)系統(tǒng)的核心,采用了struts+hibernate+spring主流WEB應(yīng)用框架,實(shí)現(xiàn)了WEB應(yīng)用服務(wù)器websphere與協(xié)作應(yīng)用服務(wù)器lotus domino 的高度集成,在本次開發(fā)中,我把它視為整個(gè)項(xiàng)目的重點(diǎn)
由于考慮到寒假和春運(yùn)期間將會是旅客的高峰期,客戶要求系統(tǒng)必須在12月底前交付,項(xiàng)目開發(fā)周期為6個(gè)月,為此我做了如下安排:前4個(gè)月主要集中精力用于開發(fā)票務(wù)管理系統(tǒng),后兩個(gè)月主要完成票務(wù)管理系統(tǒng)和呼叫中心系統(tǒng)的集成以及項(xiàng)目收尾工作
隨著軟件系統(tǒng)的日益復(fù)雜化和用戶要求,軟件更新的頻繁化,配置管理逐漸成為軟件生命周期中的主要控制過程。在軟件開發(fā)過程中,扮演越來越重要的角色。一個(gè)好的配置管理過程能覆蓋軟件開發(fā)和維護(hù)的各個(gè)方面,同時(shí)對軟件開發(fā)過程的客觀管理,即項(xiàng)目管理也有重要的支持作用。在該系統(tǒng)項(xiàng)目中,我主要使用intersolv公司的pvcs配置管理工具,并通過在項(xiàng)目前期作好需求調(diào)研,總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)并制定完整的配置管理計(jì)劃。在項(xiàng)目全過程規(guī)范化配置管理,注意員工培訓(xùn)并加強(qiáng)溝通與協(xié)調(diào)等方法和策略來實(shí)施配置管理。項(xiàng)目前期做好要求調(diào)研,總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),并制定完整的配置管理計(jì)劃。
項(xiàng)目計(jì)劃階段,我對需求分析,總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)這三項(xiàng)活動工期安排如下:需求分析12天,總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)總共20天,時(shí)間盡量充足。在做需求調(diào)研的時(shí)候,我要求一定要和客戶充分溝通,深入挖掘客戶的隱性需求。不僅要實(shí)現(xiàn)客戶需求的功能,在界面上也要讓客戶滿意,為此我們作出了航空系統(tǒng)的虛擬界面,讓客戶對系統(tǒng) 有一個(gè)感官上的整體了解,在需求分析完成工作之后,我們還通過小組會議的形式進(jìn)行了確認(rèn)和評審。并邀請客戶方代表參與。最終的《需求規(guī)格說明》我們也要求客戶方代表一定要簽字確認(rèn)。在總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)過程中,我們盡量使用適合本項(xiàng)目團(tuán)隊(duì)特點(diǎn)的工具和技術(shù),并充分考慮其先進(jìn)性和成熟性。在設(shè)計(jì)完成之后,我們?nèi)耘f對其進(jìn)行了評審,總結(jié)和討論,對爭議比較大的地
方交公司資深專家審核評定。
配置管理計(jì)劃的制定也使配置管理中不可少的一步,它能有效的指導(dǎo)后期配置管理工作。在本項(xiàng)目中,配置管理計(jì)劃由配置管理員完成,我只做一些審核工作,軟件資源配置管理計(jì)劃,配置項(xiàng)目計(jì)劃,交付計(jì)劃,備份計(jì)劃,CCB審批計(jì)劃等....總之,我認(rèn)為項(xiàng)目前期做好以上鋪墊工作可以減少變更,對后面一些工作可以說是水到渠成。同時(shí),一個(gè)比較完整的計(jì)劃,也可以避免不必要的項(xiàng)目反工,而且項(xiàng)目管理員的工作也會比較好做一些。項(xiàng)目全過程規(guī)范化配置管理。
開發(fā)過程中,對文檔修改非常麻煩,在配置管理中,對任何一配置項(xiàng)的修改都可能導(dǎo)致版本的變化。因此,對配置管理規(guī)范化勢在必行,在本項(xiàng)目中,我要求配置標(biāo)識一定要規(guī)范,必須獨(dú)立命名配置項(xiàng),配置對象的標(biāo)識要充分考慮命名對象間存才聯(lián)系。在配置管理中,項(xiàng)目組成員要各司其職,不得越權(quán)操作,同時(shí)還要根據(jù)自己的權(quán)限操作配置項(xiàng)。我的工作在配置管理中主要是:定制開發(fā)子系統(tǒng),定制訪問控制,制定常用策略,制定集成里程碑,進(jìn)行系統(tǒng)集成.....而配置管理員的職責(zé)主要是:創(chuàng)建配置序,為項(xiàng)目成員分配權(quán)限,對存儲庫進(jìn)行日常備份恢復(fù)等...軟件開發(fā)人員主要根據(jù)項(xiàng)目的開發(fā)配管理策略,創(chuàng)建,修改和測試工件等。軟件生存期內(nèi)全部軟件配置是軟件產(chǎn)品的真正代表,必須保持精確,軟件工程中某一階段的變更都會引起軟件配置的變更,對這種變更也必須做到嚴(yán)格規(guī)范的控制和管理。為此,我做了如下規(guī)定:處于工作狀態(tài)的產(chǎn)品開發(fā)人員可對其修改,而作為基線進(jìn)入配置庫的產(chǎn)品,則不允許開發(fā)人員對其進(jìn)行修改。在本項(xiàng)目中,我們還成立了臨時(shí)CCB,由項(xiàng)目經(jīng)理,用戶代表,軟件質(zhì)量控制人員,配置管理員5人組成。我們要求對于用戶提出的變更請求要嚴(yán)格按照變更控制流程處理。在用戶提交更多請求后,開發(fā)人員對其進(jìn)行評價(jià),并產(chǎn)生變更報(bào)告。在由變更控制委員會〈CCB〉作出決定是否進(jìn)行變更。通過批準(zhǔn),就重新檢出變更的配置項(xiàng),建立測試基準(zhǔn)程序,并執(zhí)行質(zhì)量保證和測試活動,必須通過CCB的鑒定審批后,方可實(shí)施變更。
注意員工培訓(xùn)并加強(qiáng)協(xié)調(diào)與溝通。
項(xiàng)目組成員大多來自不同部門,對項(xiàng)目環(huán)境還不熟悉,為了能實(shí)施配置管理系統(tǒng),我建議公司對項(xiàng)目組成員進(jìn)行相關(guān)培訓(xùn)。針對配置管理員,我們要求他學(xué)習(xí)配置管理工具管理相關(guān)的內(nèi)容。針對開發(fā)人員,主要學(xué)習(xí)配置管理工具與開發(fā)相關(guān)的常用操作。針對全體人員,要讓他們了解配置管理策略和流程,以及如何與開發(fā)管理,項(xiàng)目管理相結(jié)合。同時(shí),我要求項(xiàng)目組成員要加強(qiáng)協(xié)調(diào)和溝通??梢允褂肞VCS,通過ressionmanger文檔共享和連鎖機(jī)制。Tracker與電子郵件的集成,加強(qiáng)項(xiàng)目成員之間的溝通,做到有問題及時(shí)發(fā)現(xiàn),及時(shí)修改,及時(shí)通知,但又不額外增加很多的工作量,這樣有助于營造一個(gè)和諧,公平,競爭的氣氛和環(huán)境。
航空票務(wù)系統(tǒng)在2004年12月下旬正式上線,提前完成了項(xiàng)目,目前系統(tǒng)運(yùn)行正常,受到客戶和有關(guān)部門的一致好評,對項(xiàng)目的滿意度較高。重新回顧該項(xiàng)目也存在一些問題不足,比如:項(xiàng)目初期,大多數(shù)成員對版本管理一點(diǎn)都不重視,總是敷衍了事。代碼編寫人員編寫得代碼也混亂不堪,給測試人員和維護(hù)人員帶來了很大不便,一些沒多大用的垃圾資料也被放置到配置服務(wù)器上,給配置管理人員帶了很多麻煩。因此我建議在項(xiàng)目一開始,就要讓項(xiàng)目成員認(rèn)識到版本管理的好處。對源碼的管理,要保證書寫代碼的規(guī)范性,強(qiáng)化注釋力度,還應(yīng)作好build和relase工作.
第二篇:軟件配置管理解決方案
軟件配置管理解決方案
目的:
● 通過使用配置管理軟件,遵守版本控制、變更控制等規(guī)程,保證所有配置項(xiàng)的完整性和可跟蹤性。
范圍:
● 適用于公司的軟件開發(fā)項(xiàng)目,它規(guī)定了軟件配置管理活動的具體規(guī)程及其工作產(chǎn)品。
角色與職責(zé):
● 配置管理員:編制項(xiàng)目配置管理計(jì)劃;創(chuàng)建并維護(hù)配置庫。
● 配置變更控制委員會(SCCB):審批配置變更申請。
● 軟件開發(fā)組成員:在權(quán)限內(nèi)使用配置管理工具操作配置庫。
● 項(xiàng)目SQA人員:審計(jì)配置管理活動的規(guī)范性。
進(jìn)入準(zhǔn)則:
● 項(xiàng)目計(jì)劃已制定。
● 項(xiàng)目軟件過程已定義
● 配置管理員和SCCB人員已確定。
輸入:
● 項(xiàng)目計(jì)劃
● 項(xiàng)目軟件過程
結(jié)束準(zhǔn)則:
● 對項(xiàng)目配置庫的操作和管理持續(xù)到項(xiàng)目結(jié)束。
● 只要存在用戶使用配置管理就要進(jìn)行。
輸出:
● 配置管理計(jì)劃
● 產(chǎn)品配置庫
● 軟件基線審計(jì)報(bào)告
主要活動: 在項(xiàng)目早期(在項(xiàng)目計(jì)劃初稿后,并與項(xiàng)目計(jì)劃一起評審)編制項(xiàng)目配置管理計(jì)劃。
● 確定項(xiàng)目配置管理員。
● 項(xiàng)目經(jīng)理和項(xiàng)目配置管理員共同指定項(xiàng)目組的SCCB。
● 項(xiàng)目經(jīng)理與項(xiàng)目配置管理員按確定的軟件生命周期,識別出項(xiàng)目要進(jìn)行控制的軟件配置項(xiàng)和納入配置管理的日期。
● 項(xiàng)目經(jīng)理與項(xiàng)目配置管理員依據(jù)項(xiàng)目定義軟件過程,共同確定項(xiàng)目的基線,并標(biāo)識每個(gè)基線的配置項(xiàng)。
● 項(xiàng)目經(jīng)理確認(rèn)由項(xiàng)目配置管理員制定的在軟件生命周期各個(gè)階段配置項(xiàng)的使用權(quán)限清單。
● 項(xiàng)目配置管理員按照《配置管理計(jì)劃模板》制定項(xiàng)目的SCM計(jì)劃。
● 項(xiàng)目配置管理員根據(jù)項(xiàng)目所使用的開發(fā)工具確定項(xiàng)目使用的配置管理工具。
● 項(xiàng)目配置管理員根據(jù)項(xiàng)目計(jì)劃的變動,適時(shí)調(diào)整項(xiàng)目的SCM計(jì)劃。具體規(guī)程見《項(xiàng)目跟蹤與監(jiān)控過程》計(jì)劃變更相關(guān)步驟。
● 由項(xiàng)目主管主持,項(xiàng)目經(jīng)理、公司配置管理主管、項(xiàng)目配置管理員、軟件工程組、軟件相關(guān)組參加對配置管理計(jì)劃書的評
審。具體規(guī)程參見《同行評審過程》。
按照配置管理計(jì)劃,進(jìn)行項(xiàng)目的配置庫管理。
● 項(xiàng)目配置管理員規(guī)劃、建立項(xiàng)目的目錄結(jié)構(gòu)。該結(jié)構(gòu)支持對配置項(xiàng)的存儲和檢索功能。
● 項(xiàng)目配置管理員根據(jù)項(xiàng)目的規(guī)模,規(guī)劃和配置管理工具相關(guān)的配置庫結(jié)構(gòu)。
● 項(xiàng)目配置管理員依據(jù)經(jīng)項(xiàng)目經(jīng)理確認(rèn)的權(quán)限清單對目錄結(jié)構(gòu)進(jìn)行權(quán)限分配,以達(dá)到在相關(guān)組之間或配置庫內(nèi)部之間進(jìn)行共
享和傳輸。
● 項(xiàng)目配置管理員將配置項(xiàng)用配置管理工具統(tǒng)一管理,將軟件工作產(chǎn)品存放在指定的服務(wù)器的軟件基線庫中。
● 項(xiàng)目配置管理員保證由軟件基線庫制造的產(chǎn)品的正確生成。
● 公司配置管理員定期對服務(wù)器的軟件開發(fā)庫、軟件基線庫進(jìn)行備份,對配置項(xiàng)的歸檔版本提供存儲和恢復(fù)功能。3 配置識別
● 項(xiàng)目配置管理員在制定項(xiàng)目的SCM計(jì)劃時(shí),與項(xiàng)目經(jīng)理共同識別出將置于配置管理之下的軟件工作產(chǎn)品。可標(biāo)識為配置項(xiàng)的 軟件工作產(chǎn)品的例子有:
◇與過程有關(guān)的文檔;
◇軟件需求;
◇軟件設(shè)計(jì);
◇軟件源代碼;
◇軟件可執(zhí)行代碼;
◇軟件測試規(guī)程;
◇為軟件測試活動建立的軟件系統(tǒng);
◇編譯程序;
◇交付給用戶的或最終用戶的軟件系統(tǒng);
◇其它支持工具等。
● 項(xiàng)目配置管理員依據(jù)項(xiàng)目配置計(jì)劃書在給定的時(shí)間點(diǎn)上標(biāo)識配置項(xiàng)/單元。
● 項(xiàng)目配置管理員依據(jù)開發(fā)規(guī)范,保證每個(gè)配置項(xiàng)賦予唯一的標(biāo)識符。
● 項(xiàng)目組成員應(yīng)用配置管理工具,標(biāo)明每個(gè)配置項(xiàng)的修訂版本號。
● 項(xiàng)目配置管理員可用配置管理工具中的label功能,說明每個(gè)配置項(xiàng)所屬的軟件基線。
● 項(xiàng)目配置管理員使用配置管理工具記錄每個(gè)配置項(xiàng)/單元置于軟件配置管理之下的時(shí)間,并標(biāo)明其生成者。配置變更
● 變更分類
對軟件及其相關(guān)文檔的變更按照變更的影響范圍進(jìn)行分類:
1)A級:變更會影響系統(tǒng)級需求、外部接口、產(chǎn)品價(jià)格或者交付期;這類變更必須經(jīng)過SCCB審核并有客戶批準(zhǔn)和確認(rèn)。
2)B級:變更會影響配置項(xiàng)間的功能接口、組件級成本或者項(xiàng)目Schedule;這類變更必須由SCCB或上級管理部門的批準(zhǔn)和認(rèn)可。
3)C級:變更會影響配置項(xiàng)內(nèi)部功能的設(shè)計(jì)和分配;這類變更可以由配置項(xiàng)的管理人員負(fù)責(zé)批準(zhǔn)。
● 變更請求的提出
◇如果需對已納入基線管理的配置項(xiàng)提出修改,項(xiàng)目組或其他相關(guān)人員應(yīng)在配置項(xiàng)變更請求評審記錄中填寫變更請求,交給項(xiàng)目
經(jīng)理。相關(guān)表格參見《配置項(xiàng)變更申請單》。
◇項(xiàng)目經(jīng)理組織人員對變更請求進(jìn)行評估,描述實(shí)施變更所影響的配置項(xiàng)、文檔和資源,確定變更的分類;如果是屬于A類
或B類,需要組織SCCB評審會進(jìn)行評審。
● 變更實(shí)施
◇項(xiàng)目經(jīng)理將需解決并批準(zhǔn)的問題通知相關(guān)人員進(jìn)行修改。
◇項(xiàng)目組成員實(shí)施《配置項(xiàng)變更申請單》中的所有變更,并確保相關(guān)文檔得到更改。
◇測試人員對已修改的問題進(jìn)行確認(rèn),并將跟蹤結(jié)果記入CQ中。
◇當(dāng)確認(rèn)無誤后,項(xiàng)目組成員檢入配置庫。
◇項(xiàng)目配置管理員跟蹤配置項(xiàng)變更解決的過程。跟蹤的主要內(nèi)容有:
1)解決人;
2)解決日期;
3)解決方法;
4)修改的文件;
5)受影響的文件;
6)受影響的數(shù)據(jù);
7)是否經(jīng)過驗(yàn)證等。
● SCCB定期召開評審會,確認(rèn)基線修改的正確性、完整性和一致性,并保證不會對基線造成意外的后果。保證由軟件基線庫生成產(chǎn)品并控制它們的發(fā)行。
● 項(xiàng)目經(jīng)理或指定人員依據(jù)SDP中的build計(jì)劃和軟件產(chǎn)品測試申請單,對存放于軟件配置庫中的源程序進(jìn)行編譯,生成軟件產(chǎn)
品,并提交測試人員進(jìn)行測試。
● 測試人員依據(jù)產(chǎn)品測試通過標(biāo)準(zhǔn),對待測產(chǎn)品進(jìn)行確認(rèn)測試,形成測試報(bào)告。
● SCCB依據(jù)測試報(bào)告,審計(jì)由軟件基線庫生成的軟件產(chǎn)品與測試通過標(biāo)準(zhǔn)的符合性,并生成SCCB會議紀(jì)要。
● 對審計(jì)通過的產(chǎn)品build,項(xiàng)目配置管理員將其升級為基線。
● 項(xiàng)目配置管理員對審計(jì)通過的軟件工作產(chǎn)品建立版本標(biāo)識號(用配置管理工具的label加以標(biāo)識)。
● 項(xiàng)目配置管理員將審計(jì)通過的軟件產(chǎn)品(release)放入軟件產(chǎn)品庫。
當(dāng)軟件工作產(chǎn)品納入基線管理時(shí),進(jìn)行軟件基線審計(jì)。
● 根據(jù)項(xiàng)目配置管理計(jì)劃,SCCB確認(rèn)在適當(dāng)?shù)臅r(shí)間需要審計(jì)的軟件基線,明確該基線包括的配置項(xiàng)。
● 在該基線包含的配置項(xiàng)經(jīng)評審和檢查通過后,項(xiàng)目配置管理員通過配置管理工具將配置項(xiàng)升級為基線狀態(tài),并為配置項(xiàng)標(biāo)注
LABEL等。該基線所包含的所有配置項(xiàng)都升級為基線狀態(tài)時(shí),該基線正式建立。
● 項(xiàng)目配置管理員驗(yàn)證該基線是按照項(xiàng)目的配置管理計(jì)劃所明確的配置項(xiàng)組成的。
● 項(xiàng)目配置管理員驗(yàn)證已建立的基線所包含的配置項(xiàng)是完備、準(zhǔn)確的。
● 項(xiàng)目配置管理員將審計(jì)發(fā)現(xiàn)的問題記入基線審計(jì)報(bào)告,并對問題進(jìn)行跟蹤直至解決。
● 項(xiàng)目配置管理員將基線審計(jì)報(bào)告向項(xiàng)目經(jīng)理報(bào)告。
過程裁剪說明:
◆創(chuàng)建配置庫時(shí),庫結(jié)構(gòu)需要使用公司統(tǒng)一目錄結(jié)構(gòu),但是項(xiàng)目可以根據(jù)需要增加目錄結(jié)構(gòu);除在公司外部連接不到公司服務(wù)器情況
外,不可以使用公司規(guī)定以外的配置管理工具。
相關(guān)文檔:
◆配置管理計(jì)劃模板
◆配置項(xiàng)變更申請表表樣
◆軟件基線審計(jì)報(bào)告表樣
第三篇:軟件配置管理最佳實(shí)踐
軟件配置管理最佳實(shí)踐
PMTeam雜志 Li Ben 編
現(xiàn)在大家都已經(jīng)認(rèn)識到了有效的軟件配置管理工作對于提高團(tuán)隊(duì)開發(fā)效率、保障軟件產(chǎn)品質(zhì)量的重要意義,很多朋友也開始了在配置管理實(shí)施方面的一些研究,市場上我們也可以看到一些軟件配置管理工具廠商針對具體配置管理工具提供的實(shí)施服務(wù);但是,實(shí)施軟件配置管理到底應(yīng)該做哪些東西?團(tuán)隊(duì)的配置管理現(xiàn)狀怎么評估?在哪些方面還可以進(jìn)行改進(jìn)?我們相信,這些問題可能正困擾著大多數(shù)研發(fā)主管和項(xiàng)目經(jīng)理。
國外軟件產(chǎn)業(yè)界在軟件配置管理這個(gè)專題上已經(jīng)進(jìn)行了多年的理論和實(shí)踐上的研究。在多年經(jīng)驗(yàn)積累的基礎(chǔ)上,產(chǎn)業(yè)界總結(jié)出來一系列“最佳實(shí)踐”(Best Practices),我們可以使用這些“最佳實(shí)踐”來作為評估一個(gè)組織軟件配置管理能力的標(biāo)尺,也可以作為我們實(shí)施軟件配置管理的指南。這些“最佳實(shí)踐”包括:
1、標(biāo)識需要進(jìn)行存儲的工件(Artifact)并保障安全存儲;
2、控制并且審計(jì)(Audit)對于工件的修改;
3、設(shè)立并管理基線(Baseline);
4、記錄并跟蹤變更請求;
5、維護(hù)穩(wěn)定、一致的工作空間;
6、支持對于工件和控件的并發(fā)修改;
7、盡早集成、持續(xù)集成;
8、保證軟件構(gòu)建的重現(xiàn)能力;
9、以控件(Component)為單位實(shí)施版本控制;
10、使用“活動”(Activity)來組織和整合版本集。
下文將介紹前5條最佳實(shí)踐。
1、標(biāo)識需要進(jìn)行存儲的工件(Artifact)并保障安全存儲
在軟件開發(fā)過程中,我們會得到各種各樣的產(chǎn)出,比如各種文檔、模型、源代碼以及測試腳本等,我們把這些大家勞動的成果統(tǒng)稱為工件(Artifact)。對于一個(gè)軟件開發(fā)組織來說,這些工件就構(gòu)成了組織的核心資產(chǎn)。對于如現(xiàn)金、有價(jià)證券之類的資產(chǎn),我們都會準(zhǔn)備一個(gè)保險(xiǎn)箱,好好地保存;對于軟件資產(chǎn),我們也需要相似的措施。所以,軟件配置管理工作的第一步就是建立一個(gè)安全、可靠的存儲庫(Repository),用于保存組織的核心軟件資產(chǎn)。這個(gè)庫對于開發(fā)團(tuán)隊(duì)來說,就像是財(cái)務(wù)室里的保險(xiǎn)箱。因此,容錯能力和高可靠性是這個(gè)庫最重要的屬性。除此之外,隨著
組織的增長,置于庫中的數(shù)據(jù)會越來越多,為保證運(yùn)行效率,庫的可擴(kuò)展性也是非常重要的一個(gè)屬性。
對于存儲庫來說,良好規(guī)劃的備份和災(zāi)難恢復(fù)過程是必不可少的。令人驚訝的是,很多軟件組織在這方面都沒有給予必要的重視,因而也給組織的發(fā)展留下了嚴(yán)重的隱患,一旦災(zāi)難發(fā)生,后果不堪設(shè)想。
在建立好存儲庫以后,需要做的工作就是確定將哪些工件置于庫中。根據(jù)實(shí)際需要,組織可能會決定只將正式文檔、模型文件、源代碼、發(fā)布版本等文件放入庫中,而對于臨時(shí)文檔、編譯時(shí)產(chǎn)生的中間文件等,則不將它們放入庫中。我們把放入庫中的文件稱之為配置項(xiàng)(Configuration Item)。
2、控制并且審計(jì)(Audit)對于工件的修改
在標(biāo)識相關(guān)的工件并將它們置于存儲庫中以后,我們需要建立對于這些工件的修改控制機(jī)制以及審計(jì)機(jī)制。
庫里的工件不是誰想修改就可以修改的??刂茩C(jī)制必須保證只有拿到授權(quán)的人員才能對相關(guān)工件進(jìn)行修改,而審計(jì)機(jī)制則保證修改的動作被完整地記錄,也就是說,誰修改了這個(gè)工件,什么時(shí)候做的修改,為什么原因做出這個(gè)改動,以及修改了哪些地方(Who、When、Why、What)。審計(jì)機(jī)制通常通過“檢出/檢入”(Check out/Check in)模式得到實(shí)現(xiàn)。在這種模式下,工件一旦入庫,讀寫權(quán)限就變成只讀(read only),如果要對該工件進(jìn)行修改,則需要通過“檢出”這個(gè)步驟;在修改結(jié)束以后,如果希望將修改的成果入庫,則需要通過“檢入”這個(gè)步驟。在經(jīng)過一次“檢出/檢入”步驟以后,會形成該工件新的版本,因此也有人把上邊的過程稱之為“版本控制”(Version Control)。在版本控制過程中,如果利用一些配置管理工具(或者版本控制工具)的支持,則可以自動地記錄審計(jì)工作所需的四個(gè)“W”(Who、When、Why、What)。
3、設(shè)立并管理基線
通過審計(jì)機(jī)制我們可以保存一個(gè)工件完整的變更歷史;但是一個(gè)項(xiàng)目通常是由成百上千個(gè)工件構(gòu)成的,每個(gè)工件在變更過程中都會形成一系列的版本,如何確認(rèn)系統(tǒng)在某個(gè)時(shí)刻分別由哪些工件的哪些版本構(gòu)成?這就需要引入一個(gè)概念:配置(Configuration)。對于軟件系統(tǒng)來說,在開發(fā)過程中某個(gè)時(shí)刻存儲庫中所有工件的一個(gè)“快照”(snapshot),就形成一個(gè)“配置”。對于一些重要時(shí)刻的系統(tǒng)配置,我們可以使用基線(Baseline)來進(jìn)行標(biāo)志。
IEEE對于基線的定義是:已經(jīng)通過正式復(fù)審和批準(zhǔn)的某規(guī)約或產(chǎn)品,它因此可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只能通過正式的變更控制過程進(jìn)行改變
簡單地說,基線就是項(xiàng)目儲存庫中每個(gè)工件版本在特定時(shí)期的一個(gè)“快照”。它提供一個(gè)正式標(biāo)準(zhǔn),隨后的工作基于這個(gè)標(biāo)準(zhǔn)進(jìn)行,并且只有經(jīng)過授權(quán)后才能變更這個(gè)標(biāo)準(zhǔn)。建立一個(gè)初始基線后,以后每次對它進(jìn)行的變更都將記錄為一個(gè)差值,直到建成下一個(gè)基線。
建立基線的主要原因是:重現(xiàn)能力、可追蹤性和報(bào)告能力。
重現(xiàn)能力是指返回并重新生成軟件系統(tǒng)給定發(fā)布版本的能力。可追蹤性建立項(xiàng)目各種類型工件(需求、設(shè)計(jì)、實(shí)現(xiàn)、測試等)之間的橫行依賴關(guān)系,其目的在于確保設(shè)計(jì)滿足需求、代碼實(shí)施
設(shè)計(jì)以及使用正確代碼編譯生成可執(zhí)行文件。報(bào)告能力來源于一個(gè)基線內(nèi)容同另一個(gè)基線內(nèi)容的比較,基線比較有助于程序調(diào)試并生成發(fā)布說明(Release notes)。
建立基線有以下幾個(gè)好處:
(1)基線為開發(fā)工件提供了一個(gè)定點(diǎn)和快照。新項(xiàng)目可以從基線提供的定點(diǎn)之中建立。
(2)當(dāng)認(rèn)為更新不穩(wěn)定或不可信時(shí),基線為團(tuán)隊(duì)提供一種取消變更的方法。
(3)可以利用基線重新建立基于某個(gè)特定發(fā)布版本的配置,這樣也可以重現(xiàn)被報(bào)告的錯誤。在開發(fā)過程中,需要定期建立基線以確保團(tuán)隊(duì)開發(fā)人員的工作保持同步,通常,在項(xiàng)目生命周期中的里程碑處定期建立基線。
4、記錄并跟蹤變更請求
以上我們談?wù)摰亩际菍τ诠ぜ淖兏顒拥膶?shí)施,下面我們要談到的是軟件配置管理的另一個(gè)方面:對于變更請求的管理。這是變更活動的源頭。
著名的軟件大師Brooks曾經(jīng)談到導(dǎo)致軟件開發(fā)困難的一個(gè)原因就是軟件的可變性。大家都知道,各種要素,如市場的變化、技術(shù)的進(jìn)步、客戶對于項(xiàng)目認(rèn)識的深入等等,都可能導(dǎo)致軟件開發(fā)過程中的變更請求的提出,而且承認(rèn)這種變更請求的合理性也已經(jīng)是工業(yè)界的共識。
但是,如果缺乏對于變更請求的有效的管理能力,紛至沓來的變更就會成為開發(fā)團(tuán)隊(duì)的噩夢。缺乏有效的變更請求管理會導(dǎo)致以下一些問題:
(1)軟件產(chǎn)品質(zhì)量低下,對一些缺陷的修正被遺漏;
(2)項(xiàng)目經(jīng)理不了解開發(fā)人員的工作進(jìn)展,缺乏對項(xiàng)目現(xiàn)狀進(jìn)行客觀評估的能力;
(3)開發(fā)人員不了解手頭工作的優(yōu)先級別,可能出現(xiàn)將緊急的事情放在一邊、而工作在一般優(yōu)先級任務(wù)上的情況。
變更請求管理的復(fù)雜程度與變更的具體類型有關(guān)。簡單地說,變更請求管理會涉及到變更請求的提交、變更請求的復(fù)審、變更任務(wù)分配、變更結(jié)果的驗(yàn)證等一系列活動。通常,變更請求管理的流程是:由請求者提交變更請求,變更控制委員會(Change Control Board,CCB)召開CCB復(fù)審會議對變更請求進(jìn)行復(fù)審,以確定該請求是否為有效請求。如果是,則基于項(xiàng)目團(tuán)隊(duì)所確定的優(yōu)先級、時(shí)間表、資源、變更難度、風(fēng)險(xiǎn)、嚴(yán)重性以及其他相關(guān)標(biāo)準(zhǔn),判定對該變更的修改程序,并分配實(shí)施變更任務(wù)的人力資源和時(shí)間資源;變更任務(wù)實(shí)施人員負(fù)責(zé)實(shí)施該變更;實(shí)施結(jié)束以后提交驗(yàn)證人員,由驗(yàn)證人員負(fù)責(zé)對變更結(jié)果進(jìn)行驗(yàn)證,如果變更成功則通知相關(guān)人員,否則由變更實(shí)施人員返工。
典型的變更請求管理如需求變更管理、缺陷追蹤等。實(shí)施有效的變更請求管理有以下好處:
(1)提高軟件產(chǎn)品質(zhì)量;
(2)提高開發(fā)團(tuán)隊(duì)溝通效率;
(3)幫助項(xiàng)目管理人員對產(chǎn)品狀態(tài)進(jìn)行客觀的評估。
關(guān)于變更請求管理的詳細(xì)過程以及相關(guān)準(zhǔn)則PMT將在相關(guān)報(bào)告中闡述。
5、維護(hù)穩(wěn)定、一致的工作空間
在我們把相關(guān)工件納入集中的存儲庫、大家也都遵照“檢出/檢入”的工作模式對工件進(jìn)行修改以后,下一步的工作就是要為每位開發(fā)人員設(shè)定“私有”的工作區(qū),或者叫做工作空間。
工作空間通常以特定的基線為基礎(chǔ)創(chuàng)建,要求能夠做到為指定的任務(wù)方便地取出正確的工作版本建立私有工作空間;開發(fā)人員根據(jù)項(xiàng)目要求在自己的私有空間中對工件進(jìn)行修改和測試活動,而與其他開發(fā)人員相對保持隔離,也就是說,自己的修改活動不會受到他人的影響,也不會影響到其他開發(fā)人員。但是,在保持隔離的同時(shí),又應(yīng)該提供相應(yīng)的機(jī)制,當(dāng)開發(fā)人員希望共享工作成果的時(shí)候,能夠很方便地實(shí)現(xiàn)共享。
開發(fā)人員日常的開發(fā)工作都是在工作空間里進(jìn)行的,因此,穩(wěn)定性應(yīng)該是工作空間首要的特性,只有高度穩(wěn)定的工作空間才能保證開發(fā)人員的工作效率。
第四篇:項(xiàng)目配置管理心得體會
項(xiàng)目配置管理心得體會:
1、配置管理的定義:配置管理是標(biāo)識和控制配置項(xiàng),以維護(hù)其完整性、可追溯性以及正確性的學(xué)科
2、配置管理的過程:
(1)配置項(xiàng)識別。
(2)配置項(xiàng)標(biāo)識。
(3)配置庫創(chuàng)建。
(4)基線計(jì)劃。
(5)備份計(jì)劃。
(6)配置庫管理(權(quán)限管理、基線管理、配置項(xiàng)審計(jì)、版本管理)
3、有效實(shí)施配置管理后的解決問題:
(1)開發(fā)人員未經(jīng)授權(quán)修改代碼或文檔。
(2)人員流動造成企業(yè)的軟件核心技術(shù)泄密。
(3)找不到某個(gè)文件的歷史版本。
(4)無法重現(xiàn)歷史版本。
(5)無法重新編譯某個(gè)歷史版本,使維護(hù)工作十分困難。
(6)“合版本”時(shí),開發(fā)凍結(jié),造成進(jìn)度延誤。
(7)軟件系統(tǒng)復(fù)雜,編譯速度慢,造成進(jìn)度延誤。
(8)因一些特性無法按期完成而影響整個(gè)項(xiàng)目的進(jìn)度而導(dǎo)致項(xiàng)目失敗。
(9)已修復(fù)的bug在新版本中出現(xiàn)。
(10)配置管理制度難于實(shí)施。
(11)分處異地的開發(fā)團(tuán)隊(duì)難于協(xié)調(diào),可能會造成重復(fù)工作,并導(dǎo)致系統(tǒng)集成困難。
4、在實(shí)施配置管理過程中遇見的問題:
(1)配置管理制度難于實(shí)施。解決辦法:在項(xiàng)目立項(xiàng)時(shí),對項(xiàng)目組成員進(jìn)行配置管
理制度理解培訓(xùn),讓大家都意識到配置管理在整個(gè)項(xiàng)目中重要位置。
(2)已修復(fù)的bug在新版本中出現(xiàn)。解決辦法:有效的控制配置管理過程中每一
階段的變更修改,并記錄相關(guān)信息。如:
? 誰進(jìn)行的修改?
? 修改了什么?
? 什么時(shí)候進(jìn)行的修改?
? 為什么要進(jìn)行修改?
? 當(dāng)前發(fā)布包含哪些新功能?
? 當(dāng)前發(fā)布對已有功能進(jìn)行了那些增強(qiáng)?
? 當(dāng)前發(fā)布修復(fù)了哪些BUG?
第五篇:規(guī)范軟件開發(fā)過程——軟件配置管理實(shí)踐
規(guī)范軟件開發(fā)過程——軟件配置管理實(shí)踐
2010-05-19 來源:網(wǎng)絡(luò)
隨著軟件系統(tǒng)的規(guī)模、復(fù)雜度日益上升,軟件開發(fā)過程管理已經(jīng)成為保證軟件系統(tǒng)開發(fā)效率、質(zhì)量、成本的關(guān)鍵性因素。作為軟件開發(fā)過程中質(zhì)量保障的重要組成部分,行之有效的軟件配置管理(以下簡稱SCM,Software Configuration Management)能夠顯著提高軟件開發(fā)組織的自身能力、提高軟件開發(fā)過程的完整性,以及降低軟件開發(fā)的風(fēng)險(xiǎn)。
軟件配置管理的概念
ISO 9000、CMM、ISO/IEC 12207、IEEE 729-1983對SCM的定義有不同的描述。ISO9000定義SCM為“一個(gè)管理學(xué)科,它對配置項(xiàng)的開發(fā)和支持生命周期給予技術(shù)上和管理上的指導(dǎo)。配置管理取決于項(xiàng)目的規(guī)模、復(fù)雜程度和風(fēng)險(xiǎn)大小”。
CMM2將SCM定義為一個(gè)關(guān)鍵過程域KPA,是“貫穿于整個(gè)軟件過程中的保護(hù)性活動,它被設(shè)計(jì)來(1)標(biāo)識變化,(2)控制變化,(3)保證變化被適當(dāng)?shù)陌l(fā)現(xiàn)(4)向其他可能有興趣的人員報(bào)告變化。”。SCM包括了配置項(xiàng)識別、工作空間管理、版本控制、變更控制、狀態(tài)報(bào)告、配置審計(jì)等活動,其中以版本控制最為核心和關(guān)鍵。
數(shù)據(jù)集中工程軟件配置管理策略
1、數(shù)據(jù)集中工程項(xiàng)目背景
中國建設(shè)銀行數(shù)據(jù)集中工程的目標(biāo)是通過建立總行級的數(shù)據(jù)中心,向全行38個(gè)一級分行、20000多個(gè)網(wǎng)點(diǎn)提供完整的核心金融服務(wù)。其核心應(yīng)用系統(tǒng)DCC-CCBS包括主機(jī)、前置、前端三大部分。主機(jī)應(yīng)用部分部署在總行級數(shù)據(jù)中心,前置應(yīng)用部分部署在數(shù)據(jù)中心前置通信網(wǎng)關(guān)、各一級分行業(yè)務(wù)大前置,前端部分部署在網(wǎng)點(diǎn)。
DCC-CCBS項(xiàng)目的SCM需要實(shí)現(xiàn)開發(fā)、發(fā)布、部署的全過程軟件配置管理。開發(fā)過程SCM的核心是系統(tǒng)源碼版本管理;發(fā)布過程的SCM核心是系統(tǒng)目標(biāo)碼版本管理;部署過程以確保系統(tǒng)目標(biāo)碼版本在數(shù)據(jù)中心、一級分行、網(wǎng)點(diǎn)和外系統(tǒng)的正確部署為首要目標(biāo)。
2、開發(fā)過程軟件配置管理
系統(tǒng)源碼版本除系統(tǒng)源程序、參數(shù)外,還包括需求規(guī)格說明書、系統(tǒng)總體架構(gòu)設(shè)計(jì)說明書、主機(jī)/前置/前端系統(tǒng)結(jié)構(gòu)設(shè)計(jì)說明書、各子系統(tǒng)的詳細(xì)設(shè)計(jì)說明書、各子系統(tǒng)的對外接口規(guī)范、業(yè)務(wù)操作手冊、系統(tǒng)使用手冊、系統(tǒng)安裝維護(hù)手冊等文檔。根據(jù)配置項(xiàng)的不同屬性,經(jīng)過評審,形成需求基線、設(shè)計(jì)基線和源代碼基線等不同的基線。開發(fā)過程SCM按照子系統(tǒng)的性質(zhì),分為主機(jī)、前置、前端三部分獨(dú)立管理。
DCC-CCBS項(xiàng)目總體組負(fù)責(zé)整個(gè)需求和變更的控制。通過審批的需求按照功能分布分解為主機(jī)、前置、前端的子需求,再由各部門分別管理和實(shí)現(xiàn)。環(huán)境及版本控制小組負(fù)責(zé)向各部門提出形成“系統(tǒng)基線”的要求,以同步主機(jī)、前置、前端的源碼版本。
3、發(fā)布過程軟件配置管理
發(fā)布過程的系統(tǒng)目標(biāo)碼版本包括系統(tǒng)目標(biāo)碼(執(zhí)行碼)、系統(tǒng)參數(shù)及相關(guān)文檔等。按照用途,系統(tǒng)目標(biāo)碼版本可分為測試版和正式版。以前置平臺為例,發(fā)布過程SCM的主要活動包括:構(gòu)建環(huán)境管理,保證編譯環(huán)境的純凈性和正確性;
構(gòu)建過程管理,保證構(gòu)建過程的自動化操作,及其正確性和完整性;
版本編號管理,統(tǒng)一版本命名規(guī)則,確保目標(biāo)碼版本號的唯一性和可追蹤性;
目標(biāo)碼版本生成管理,從各版本管理工具系統(tǒng)收集、整理、打包相應(yīng)的目標(biāo)碼、參數(shù)和文檔,形成完整的或部分(補(bǔ)?。┑哪繕?biāo)碼版本;
配置狀態(tài)檢查,檢查目標(biāo)碼版本包中內(nèi)容的正確性、完整性和一致性;
4、部署過程軟件配置管理
部署過程SCM的主要任務(wù)是:建立安全、可靠和迅速的傳輸流程和傳輸渠道;建立目標(biāo)碼版本記錄和追蹤機(jī)制、版本運(yùn)行時(shí)刻檢查機(jī)制和版本恢復(fù)機(jī)制;確保正確的版本、按照正確的渠道、在規(guī)定時(shí)間遞交到正確的用戶并生效。
在DCC-CCBS生產(chǎn)環(huán)境中,軟件開發(fā)中心將通過數(shù)據(jù)中心版本管理系統(tǒng)發(fā)布各單位所需的目標(biāo)碼版本,各單位在版本管理系統(tǒng)和數(shù)據(jù)傳輸通道的支持下,實(shí)現(xiàn)版本/補(bǔ)丁的主動分發(fā)、查詢、下載和生效。
軟件配置管理實(shí)施經(jīng)驗(yàn)
1、樹立正確的企業(yè)配置管理意識
SCM是一門管理學(xué)科。歸根結(jié)底,其關(guān)鍵是“管理”,然后才是“軟件配置”。項(xiàng)目級SCM能否成功實(shí)施,與企業(yè)的軟件配置管理目標(biāo)、策略、能力、組織和資源息息相關(guān)。
2、提高全員的配置管理素質(zhì)
SCM是規(guī)則和流程的集合,需要依靠流程中所有部門和人員共同的支持和努力。任何環(huán)節(jié)上的疏忽和懈怠,都將直影響SCM的實(shí)施效果。
3、采用合適的工具
功能強(qiáng)大的或昂貴的工具未必是合適的工具。往往20%的功能即可解決80%的配置管理問題。目前比較流行的版本管理工具包括CVS、PVCS、ClearCase、Harvest、VSS、Endeavor等。在選擇具體工具時(shí),往往需要考慮以下因素:(1)工具將要使用的范圍;(2)工具自身的功能、穩(wěn)定性、擴(kuò)展行,以及對環(huán)境的要求;(3)工具使用的復(fù)雜度;(4)工具與其他流程和工具的集成度和交互性;(5)工具的投資和維護(hù)費(fèi)用。
4、及時(shí)的檢查和梳理
大系統(tǒng)開發(fā)過程中,配置管理往往采用分步離散管理方式,因此保證整個(gè)系統(tǒng)配置管理的完整性成為一件精密細(xì)致的工作,需要投入大量人力及時(shí)修訂基線,防微杜漸,避免混亂,以滿足對配置管理正確性、完整性和及時(shí)性的要求。
5、系統(tǒng)化思考、分步實(shí)施、持續(xù)改進(jìn)
SCM不是一項(xiàng)孤立的管理活動。企業(yè)的戰(zhàn)略目標(biāo)、管理能力、文化背景、組織結(jié)構(gòu),項(xiàng)目的規(guī)模、性質(zhì)、技術(shù)、人員等都是影響SCM決策的重要因素。因此需要在項(xiàng)目乃至企業(yè)的整體環(huán)境中系統(tǒng)的考慮SCM的實(shí)施策略和方法。
通過分階段實(shí)施量化的、漸進(jìn)的配置管理目標(biāo),可以避免由于引入復(fù)雜管理流程所造成的混亂,有利于方便靈活地優(yōu)化配置管理流程。同時(shí),階段性目標(biāo)的實(shí)現(xiàn)將有助于整個(gè)團(tuán)隊(duì)提高士氣、增強(qiáng)信心,并逐步提高開發(fā)隊(duì)伍的配置管理素質(zhì)。