摘要:本文以軟件 配置管理在軟件質量體系中的作用為切入點,以我國軟件企業在軟件開發、維護過程中忽視軟件配置管理為著手點,從而過渡到軟件企業要實施軟件配置管理所要面臨與考慮的問題,以及如何應對與處理這些問題作些具體探討。
關鍵字:配置項 配置庫 基線 軟件配置
隨著計算機應用的深入,軟件項目的規模越來越大,復雜性越來越高。傳統的二、三個人搞定一個項目的情況越來越少,稍大一點的項目已經不再是靠某個"技術高手"從頭到尾一手操辦。從而在我們平時的軟件項目中一些混亂現象往往是屢見不鮮,比如:
編那個程序的人現在離開本公司了,留下的程序因缺文檔而導致無人能接上手。
多個 程序員對一個模塊操作,出現了怪異現象:一個程序員對該模塊所作的變更消失了。
在一個模塊中作了修改,導致另一模塊不能正常運行。
上個星期已經把這個錯誤改正了,現在又出現了。
采用科學的配置管理思想,輔之以先進的配置管理工具,可以很容易的解決項目開發過程中由于管理上引起的問題。我國軟件企業可以從以下幾方面思路去實施軟件配置管理。
1、列出軟件開發、運行、維護各階段所需的軟件配置項
所謂軟件配置項就是在軟件開發工作進展中得到的許多工作產品、階段產品、使用的工具軟件等信息項。表一中列舉了若干類軟件配置項及其生成的階段。
表一
只有明確了各階段有哪些軟件配置項,軟件企業才能在實施軟件配置管理時胸有成竹、游刃有余。
2、對現有軟件配置項進行分類、補充,進一步完善軟件配置
軟件企業在實施某一軟件時,針對不同的用戶都有不同的需求。表二是不同用戶的工作環境:
為了滿足各個用戶的使用要求,我們的軟件產品必須考慮到這些差異。在產品的設計時我們盡可能的作成表三所示的安排:
為了實現這兩種不同的軟件配置,在實際開發應用中,我們完全可以將各個配置項分別開發出來,再根據用戶的需求,組合成不同的產品,如圖一所示:
3、對軟件項目的變更要實行有效的控制和管理
軟件企業在軟件的開發、運行、維護過程中必然要遇到軟件的變更。引起軟件的變更主要有兩方面的因素:一方面是用戶,如用戶要求修改工作范圍和需求等;另一方面是軟件開發人員自身,如他們在工作中發現前期工作中的錯誤而修改源碼甚至設計。對于以上兩種情況軟件企業可以從以下幾方面加以解決:
3.1、明確實施變更的雙方人員
事先應該明確用戶有權提出需求變更申請的人員和軟件企業項目開發組有權受理變更的人員,并且對雙方人數要加以控制。這樣做的好處是可以約束需求方,使需求方每提一個需求都要經過仔細討論 。而項目開發組收到用戶的需求變更時,通過有權實施變更人員討論后,可以兼顧全局,對涉及到的相關文檔、程序、計劃都隨之變更。
3.2、 對變更進行嚴格的審核
并不是所有的變更都要修改,也不是所有變更都要立刻修改,審核的目的就是為了決定是否需要修改和什么時候修改。比如涉及到界面風格問題,就可以先不修改,或者規劃一下修改的時間待到以后進行優化。另外,對于核心模塊的修改要嚴格審核把關,否則會引起全局問題。
3.3、 對變更的影響進行評估
變更都是有代價的,應該評估一下變更的代價和對項目的影響,要讓用戶了解變更的后果,并與用戶一起做判斷。
3.4、讓客戶確認是否接受變更的代價。在評估代價并且與客戶討論的過程中,可以請用戶一起做判斷:“我可以修改,但您能接受后果嗎?”,并且對用戶一一列出修改的后果。
4、對軟件版本進行有效的管理
軟件企業開發的軟件產品為了適應不同的運行環境、不同的 平臺、不同用戶的使用要求,導致同一軟件產生或演化出不同的版本。軟件企業可以通過以下兩種常用的方法進行軟件版本控制。
4.1、號碼版本標識
以數字表示,如第一版,表示為V1.0。第二版表示為V2.0。一般認為V1.0,V2.0是基礎版本號,V1.1、V1.2是對基礎版V1.0的第一次修訂和第二次修訂。顯然這些修訂都是少量的修改。若有重大變動或因多次修訂導致的全局性的重要變動,則應提高版本號,如V2.0。號碼版本標識可以如圖二所示:
4.2、符號版本標示
這種版本表示法是把版本的重要信息提煉出來。如V1/VMS/DB SERVER,表示一個在VMS 操作系統上運行的數據庫服務器版本。對于軟件企業可以用‘人事管理系統單機版’、‘人事管理系統網絡版’等來表示。
5、實施有效的配置審核
軟件企業在實施配置審核時可以從以下兩方面進行:
5.1、“配置管理活動審核”
“配置管理活動審核”用于確保項目組成員的所有配置管理活動,遵循已批準的軟件配置管理方針和規程,如檢入(Check in)/檢出(Check Out)的頻度、工作產品成熟度提升原則等。
5.2、“基線審核”
要保證基線化軟件工作產品的完整性和一致性,并且滿足其功能要求;的完整性可從以下幾個方面考慮:基線庫是否包括所有計劃納入的配置項?基線庫中配置項自身的內容是否完整?(如,文檔中所提到的參考或引用是否存在?)此外,對于代碼,要根據代碼清單檢查是否所有源文件都已存在于基線庫。同時,還要編譯所有的源文件,檢查是否可產生最終產品。一致性主要考察需求與設計以及設計與代碼的一致關系,尤其在有變更發生時,要檢查所有受影響的部分是否都做了相應的變更。審核發現的不符合項要進行記錄,并跟蹤直到解決。
在實際操作過程中,一般認為審核是一種事后活動,很容易被忽視。但是“事后”也是有相對性的,在項目初期審核發現的問題,對項目后期工作總是有指導和參考價值的。為了提高審核的效果,應該充分準備好檢查單,如表四所示。
6、進行配置工具選擇
軟件企業選擇商業配置管理工具,可以考慮下面幾個因素。
6.1、工具的市場占有率
大家都選擇的東西通常會是比較好的東西。而且市場占有率高也通常表明該企業經營狀況會好一些,被人收購或者倒閉的可能性小一點。
6.2、工具本身的特性
工具本身有穩定性、易用性、安全性、擴展能力等。你應當在投資以前仔細地對工具進行試用和評估。這兒比較容易忽略的是工具的擴展能力(Scalability),你現在可能只是在幾個人、十幾個人的 團隊中部署這個工具,但是以后可能會有幾十個、幾百個人要在依賴這個工具建立的平臺上工作,到時候這個工具能不能提供這樣的支持能力?如果到時候要換一個工具的話,你一定會后悔今天的選擇。
6.3、廠商支持能力
工具使用過程中一定會出現這樣那樣的問題,有些是因為你使用不當引起的,有些則是工具本身的毛病。這樣的問題會影響到開發團隊的工作進度,你一定希望能隨時找到廠商的專業技術人員幫助你解決這些問題。
軟件配置管理建設的程度如何直接關系著軟件企業的軟件的質量,通過上述的六大點的淺探,希望能給軟件企業帶來一點借鑒作用。
參考文獻:
一、張友生 系統分析師教程 軟件配置管理
二、liben pmt 淺談軟件配置管理實施的計劃
三、劉立軍 中國計算機報 如何進行軟件配置管理