[摘 要] 隨著現代科學技術的迅速發展,軟件配置管理日益成為產品技術狀態管理的重點,傳統的軟件配置管理工具軟件難以在國內兩級管理的研發企業應用。本文介紹了一種基于“兩級四庫”的企業級軟件配置管理方法,包括系統設計、管理制度和推行策略。
[關鍵詞] 兩級四庫;軟件配置管理系統;構建;實踐
[中圖分類號]F270.7[文獻標識碼]A[文章編號]1673-0194(2008)21-0062-03
1 引 言
隨著信息技術和IT產業的不斷發展,計算機軟件已經逐漸成為眾多產品的核心,計算機軟件的功能越來越強大,以往很多依靠硬件電路來實現的功能現在也能大量通過嵌入式軟件和匯編程序來替代實現,于是產品的質量也越來越體現為軟件的質量。現在眾多的科研企業尤其是軍工科研單位已經認識到了產品的技術狀態管理是產品質量管理的關鍵,與硬件相比,軟件是無形的,具有實時更改的特點,通常產品在設計定型后,大量的問題都是由軟件變更引起的,因此,軟件的技術狀態管理水平決定了產品的質量和可靠性。
軟件配置管理系統是為了解決軟件的版本管理問題應運而生的,目前市場上有著國際和國內諸多廠商研制的軟件配置管理工具,如CCHarvest、 IBM ClearCase、 Telelogic等,然而在許多企業取得的效果往往和投入的巨額資金不相匹配,有些企業甚至出現了在技改驗收后就很少有人或無人使用這些昂貴工具的奇怪現象。也有的企業通過產品數據管理系統(PDM)將軟件的版本管理統一納入產品的技術狀態管理,但是鮮有效果顯著者。大多數企業往往只是做到了產品的軟件版本紀實這一基本功能。隨著ISO 9001 2000版和GJB 5000試行版本發布后, 許多軟件工程實施組(SEPG)發現,市面上的軟件配置管理軟件很難與企業標準和管理信息系統相集成。傳統的軟件配置系統分為3庫,即開發庫、受控庫和產品庫,但在實際的配置管理工具中,由于企業管理層往往對軟件配置管理缺乏足夠的知識,很難制定可操作性的管理制度,這3個庫往往都是項目開發團隊或者研發部門自己在控制,既擔當“運動員”,同時又是“裁判員”。在中國的許多企業中,往往很難靠技術人員的自覺性作好軟件技術狀態控制,因此,有必要根據中國的實情研究出一套配置管理方法。
2 兩級四庫的管理架構
2. 1兩級四庫的定義
“兩級”即企業級和部門級。大多數研發企業都是采用這樣的架構實施管理的,在企業一級有統一的質量管理、測試部門,實際的開發工作分布在各個研發部或研究室,有的研究部擔任了項目(產品)研發總體和集成的角色,其他各個研究部開發的產品組件需要在各部門完成單元測試后,再到總體進行集成測試,然后再到企業質檢部門進行出廠測試,之后某些產品可能還需要進行用戶驗收測試。
“四庫”即開發庫、部門受控庫、企業受控庫和企業產品庫。
2. 2兩級四庫的數據流程
兩級四庫的軟件配置管理系統是在一個系統中,為每一個項目(產品)建立4個不同級別的庫,當配置庫中軟件狀態滿足一定條件后,即可從開發庫到產品庫自動逐級提升。不同庫中的數據,應用范圍通過管理規范加以限制。整個數據流程如圖1所示。
配置庫的管理數據分為軟件構件、軟件配置和軟件基線。其中構件是配置管理的基本單位,構件有一個或者多個文件組成,也是可測試的最小單位。一個產品下可以有多條基線、多個配置。一個配置可包含數個構件和子配置,配置的版本定義為基線。不同庫之間的提交和軟件測試以基線為單位。

開發庫是設計師存儲開發過程數據的配置庫。設計師在這里完成所負責軟件的開發、組裝和自測試,然后將基線提交部門測試,通過測試后進入部門受控庫。
部門受控庫是各個部門存儲通過部門測試的軟件部件和構件,部門可復用的軟件部件也可存儲在部門受控庫中。
企業受控庫是存儲通過企業質檢部門測試后的軟件部件和構件,企業可復用的軟件部件也可存儲在企業受控庫中。只有在企業受控庫中的軟件方可提交用戶驗收。
企業產品庫是存儲通過客戶驗收測試后的軟件部件和構件,客戶提供的軟件成品也可存儲在企業產品庫中。只有在企業產品庫中的軟件方可用于生產。
2. 3兩級四庫的配置管理活動
軟件配置管理活動主要包括4部分:配置紀實、變更控制、配置審計和統計報表。除了配置紀實外,其他3項活動都需要根據企業所在行業以及管理者需求定制開發。對于系統架構設計來說,如何建立和遵循標準是關鍵。
2. 3. 1配置紀實
紀實的活動和內容包括:數據對象(包括構件、配置、基線)的創建、刪除、更新、檢入、檢出、導入、導出、變更、發布等過程的信息。
在兩級四庫的配置系統中增加了測試狀態紀實,測試狀態包括測試階段(自測試、部門測試、企業測試、客戶測試等)及測試階段(單元測試、集成測試、整機測試、系統測試等)。測試狀態的紀實一方面實現了配置對象升級的控制,一方面為實現和軟件測試管理系統的集成做好了準備。
2. 3. 2變更控制
在兩級四庫的配置系統中設立了兩級CCB(變更控制委員會),即所級CCB和部門CCB,所級CCB主要負責所級受控庫和產品庫的變更控制,部門CCB主要負責部門受控庫的變更控制。
變更控制采用CMII的變更流程,即軟件問題報告單、軟件更改報告單兩個流程實施控制,這種方式使質檢部門、項目管理部門、客戶代表能以所級CCB成員的身份參與配置項的變更控制。
所有配置項的變更過程能夠在系統中實時查詢。
2. 3. 3配置審計
在兩級四庫的配置系統中,系統按照企業標準為軟件配置項事先生成文檔清單和模板,規定了配置項的命名標準,規定了變更單的模板和審簽標準,規定了軟件發布的流程和模板,使以往依靠人工完成的配置審計基本由系統完成。
2. 3. 4統計報表
在兩級四庫的配置系統中,能夠按照配置庫、研發部門、項目及不同時間段(年、季度、月、自定義時間段)提供紀實、變更和發布的查詢報表,通過該功能能夠幫助各級管理者和項目成員對軟件的技術狀態全過程追溯。
3 配置管理系統建設及應用要點
筆者通過和北大軟件工程公司合作,在原青鳥配置管理系統基礎上進行了大規模的定制開發,最終建成了基于兩級四庫的JBCM 7系列配置管理系統,以下通過幾個方面說明系統的建設及應用要點。
3. 1標準化工作
標準化工作是系統能否應用良好的關鍵之一。標準化工作包括:配置項命名、編碼標準,文檔命名、編寫標準,齊套性檢查標準,變更規范等。為了解決這一問題,我們組織編寫了《軟件配置管理規范》,內容包括組織規范、計劃規范、管理規范、標識規范、紀實規范、基線控制規范、配置庫變更控制規范、審計規范和產品發布管理規范9個部分。系統按此規范定制開發,在應用過程中也進行了調整。
3. 2管理工作
企業級配置管理的成敗可以說是三分工具,七分管理。企業管理的水平和力度決定了產品技術狀態控制的好壞。首先,管理部門應當牽頭制定一套合理可行的制度和規范,其次要求研發部門、質檢部門和檔案部門嚴格執行,所有出廠(所)軟件都必須從配置庫中發布。此外,管理部門還應當定期對系統生成的報表進行發布,并將對應數據納入績效考評。
3. 3應用實例
該系統的實施經過了需求調研、需求分析、流程清理與優化再造、定制開發與測試、試運行、正式運行等6個階段。通過該項目的實施,梳理了企業以往的軟件工程化管理流程,制定了合理可行的管理規范,統一了全企業各個部門的管理尺度,具備了與需求管理系統(上行)以及軟件測試管理系統(下行)集成的條件,為搭建集成的企業軟件工程化平臺(IESP)打好了基礎。
通過兩年的應用,系統成功管理了不同規模的近百個產品項目的軟件,軟件的類型包括獨立軟件、數據庫應用軟件、嵌入式軟件、系統集成類軟件、測試仿真類軟件等,部分嵌入式軟件項目同時將對應的硬件(如DSP/FPGA等)設計文件作為產品基線一并納入了系統配置管理。配置庫數據超過了100G,軟件的版本變更、發布得到了有效的控制,實現了產品軟件技術狀態控制的目標。為了規范、指導設計師的開發工作,根據企業不同產品的開發特點和用戶質量要求,組織企業專家和標準化人員制定了產品全套軟件文檔模板,以及文件齊套性檢查模板,并通過系統定制功能實現了上述工作的審計和檢查。
通過筆者所在單位的實踐,該系統得到了設計師、質量人員和管理人員的認可,并已經在其他科研單位推廣使用。
4 結束語
企業級軟件配置管理系統將是今后軟件工程化和產品技術狀態管理的核心要點之一,也是研發企業管理的難點之一。兩級四庫的企業級軟件配置管理系統適合于兩級管理的研究院所和研發企業。相比目前大部分成熟商品配置管理工具軟件,它更加符合目前國內科研院所的實際需求,同時也更易于集成,達到CMMI和GJB5000規定的CPA(關鍵過程域)集成管理的要求。筆者建議有志于做好企業級技術狀態管理的同仁,從整合企業軟件工程化管理的需求和現狀入手分析,從企業管理的角度和今后使用推進的角度來選擇,設計符合本企業所在行業的特點和相關規范的軟件配置管理信息系統。在實施的過程中特別要重視對各項標準的理解和應用,同時還需要結合企業自身的質量管理和考評體系,方能制定出合理可行的推行策略。
主要參考文獻
[1] The Institute of Electronics Engineers Inc. IEEE Guide to Software Configuration Management, ANSI/IEEE Std 1042-1987[S]. 1998.
[2] The Institute of Electronics Engineers Inc. IEEE Standard for Software Configuration Management Plans, ANSI/IEEE Std 828-1990[S]. 1991.
[3] 徐曉春,李高健. 軟件配置管理[M]. 北京:清華大學出版社,2002.
[4] 北大軟件工程研究所. 青鳥軟件配置管理系統JBCM——項目組級用戶手冊[Z]. 2000.
[5] 鄭人杰. 軟件工程(高級)[M]. 北京:清華大學出版社,1999.