posts - 60, comments - 116, trackbacks - 1, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          簡述軟件配置管理(轉)

          Posted on 2006-09-06 17:40 匪客 閱讀(476) 評論(0)  編輯  收藏 所屬分類: 精選網文

          一、簡述軟件配置管理

          隨著軟件團隊人員的增加,軟件版本不斷變化,開發時間的緊迫以及多平臺開發環境的采用,使得軟件開發面臨越來越多的問題,其中包括對當前多種產品的開發和維護、保證產品版本的精確、重建先前發布的產品、加強開發政策的統一和對特殊版本需求的處理等等,這些問題在實際開發中表現為,項目組成員溝通困難,軟件重用率低下,開發人員各自為政,代碼冗余度高,文檔不健全等;造成的結果是:數據丟失,開發周期漫長,產品可靠性差,質量低劣,軟件維護困難,用戶抱怨使用不便,項目風險增加等。解決這些問題的唯一途徑是加強軟件開發的管理,而軟件開發管理的核心是軟件配置管理。

          什么是軟件配置管理?軟件配置管理是一套規范、高效的軟件開發基礎結構。作為管理軟件開發過程有效的方法,SCM 早已被發達國家軟件產業的發展和實踐所證明。SCM 可以系統地管理軟件系統中的多重版本;全面記載系統開發的歷史過程,包括為什么修改,誰作了修改,修改了什么;管理和追蹤開發過程中危害軟件質量以及影響開發周期的缺陷和變化。SCM 對開發過程進行有效地管理和控制,完整、明確地記載開發過程中的歷史變更,形成規范化的文檔,不僅使日后的維護和升級得到保證,而且更重要的是,這還會保護寶貴的代碼資源,積累軟件財富,提高軟件重用率,加快投資回報。從某種角度講,SCM是一種標識、組織和控制修改的技術,目的是使錯誤降為最小并最有效地提高生產效率。SCM 是通往ISO9000 和SEI CMM 標準的一塊基石。

          二、軟件配置管理的主要活動

          任何一個活動的執行首先是明確誰做,再明確怎么做,配置管理活動也一樣,一般來說配置管理中的角色主要包括:

          1、項目經理:項目經理在配置管理方面的職責是依靠配置管理員、系統管理員和系統體系結構設計人員的幫助,制定項目的組織結構和配置管理策略。這些工作包括: 定制開發子系統,定制訪問控制,制定常用策略,制定集成里程碑,以及進行系統集成;

          2、配置管理員:配置管理員的職責是根據項目經理制定的開發組織結構和策略,實施、維護配置管理的環境。其主要職責如下:創建配置管理庫,對存儲庫進行日常備份和恢復,維護配置管理環境,及管理配置管理相關的用戶;

          3、軟件開發人員:軟件開發人員依據項目的開發和配置管理策略,創建、修改和測試開發工件;

          4、集成人員:對軟件進行歸并,形成相應的基線或發布版本;

          5、QA 人員:需要對軟件配置管理有較深的認識,其主要工作是跟蹤當前項目的狀態,測試,報告錯誤,并驗證其修復結果。

          軟件配置管理人員應該完成以下幾個主要任務:

          1、任務一配置標識

          要配置標識,首先必須明確項目生命周期內所要產生的工作產品,然后確定工作產品的名稱和標識規則。總體原則是,保證配置管理工具檢索便利,讓項目組成員容易記住標識規則,同時要確保組織一級的標識規則的一致性。

          2、任務二版本管理

          版本管理一般是使用工具來完成的,如Rational ClearCase、Merant PVCS Version Manager、Microsoft Visual SourceSafe等。使用這些工具時,容易被忽視的一點是制定所使用工具的版本規則。如果直接采用工具的內部版本號,會給產品發布帶來一些困難。通常采用“X.Y.Z”方式進行版本標識,明確X、Y和Z各位數字遞增的規則,然后結合工具標簽(Label)功能,便可實現高效的版本管理。

          3、任務三變更管理

          變更管理是項目管理的一個重點和難點,涉及的范圍很廣。實施高效的變更管理至少應該包括兩個部分:“定義合理的變更管理流程”、“采用自動化工具作為支持”。在具體的實踐中,應該對變更進行分類和分層,建立起處理不同變更的“變更控制委員會”(CCB),既保證項目組成員有一定的自主權,又不會耽誤高層經理對關鍵問題的把握。

          4、任務四配置審核

          配置審核包括兩方面的內容:“配置管理活動審核”、“基線審核”。“配置管理活動審核”用于確保項目組成員的所有配置管理活動,遵循已批準的軟件配置管理方針和規程,如檢入(Check in)/檢出(Check Out)的頻度、工作產品成熟度提升原則等。實施“基線審核”,要保證基線化軟件工作產品的完整性和一致性,并且滿足其功能要求。基線的完整性可從以下幾個方面考慮:基線庫是否包括所有計劃納入的配置項?基線庫中配置項自身的內容是否完整?(如,文檔中所提到的參考或引用是否存在?)此外,對于代碼,要根據代碼清單檢查是否所有源文件都已存在于基線庫。同時,還要編譯所有的源文件,檢查是否可產生最終產品。一致性主要考察需求與設計以及設計與代碼的一致關系,尤其在有變更發生時,要檢查所有受影響的部分是否都做了相應的變更。審核發現的不符合項要進行記錄,并跟蹤直到解決。

          5、任務五報告配置狀態

          報告配置狀態的目的,是向項目所有成員提供基線內容和狀態、基線變更信息(如表2所示),這也是實現資源共享的前提。此外,在項目生命周期中進行對配置項的變更數據統計分析,有利于評估項目風險,有效控制項目的執行。在變更請求被批準、基線版本發生變化及項目組提出任何需要時,可以采用Email等方式進行報告。

          6、任務六發布管理

          實施了規范的配置管理,發布就顯得很從容了。但是必須要注意的是:發布的產品應該是從軟件基線庫中提取出來的;在軟件發布給最終用戶之前,要準備發布記錄,為軟件產品分配發布版本號,同時要對它進行發布評審并確認其得到批準。一般來說,高層經理、項目經理、軟件質量保證人員和測試組都應該參加發布評審。

          三、研發部實施配置管理的經驗分享

          要制定切實可行的配置管理規程

          實施配置管理,非常重要的是先定義好配置管理規程,可以參看CMM、 RUP等規范來制定,但必須要注重與部門實際項目開發情況相結合,制定的流程不一定要復雜,過于求全,主要是讓大家看了規程能夠理解,并且可操作,能夠遵守執行的,而且確實能解決實際問題的。規程的制定能讓組織的人員有統一的標準可以依據,指導配置管理工作的有序執行。配置管理規程要根據實際過程情況定期進行更新;

          項目初期要做好配置管理計劃

          在執行任何軟件過程之前一定要有明確的總體計劃,特別是各開發階段的配置管理計劃,而且要嚴格按照計劃執行,保證執行的結果與計劃的要求一致,而不是做到哪里是哪里,導致整個過程雜亂無章。

          保證充分的資源

          軟件配置管理活動在整個開發活動中是一項支持性、保障性的工作,它本身并不直接為企業產出可以直接贏利的工作成果;而配置管理每一項活動都需要消耗企業的人力資源,有些還需要購置專門的工具來支持活動的進行,這些都會導致企業生產成本的增加。這就需要組織高層和實施人員的大力支持,研發部從實施配置管理至今正是有了公司及部門領導在人力資源和工具資源上的大力支持才使得我們非常有效的實施這一過程。

          實施培訓

          一般來講,實施配置管理系統,相關人員需要接受一下培訓:

          a.管理員培訓:針對配置管理員,主要學習配置管理工具管理相關內容;
          b.開發人員培訓:針對開發人員,主要學習配置管理工具與開發相關的常用操作;
          c.管理流程培訓:針對全體人員,目的是了解配置管理策略和流程,以及如何與開發管理、項目管理相結合;

          工具的支持

          選擇什么樣的配置管理工具,一直是大家關注的熱點問題。確實,與其他的一些軟件工程活動不一樣,配置管理工作更強調工具的支持;缺乏良好的配置管理工具的話,要做好配置管理的實施會非常困難。當然,對于工作的選擇應根據部門實際的需要而論,不一定要選最好的,只要是最合適的就可以。

          過程不斷改進

          實施軟件配置管理不可能一次計劃、執行就可以建立起完整的配置管理系統,要經過不斷的經驗總結和實際項目管理的需要,不斷改進現有的配置管理規程,才可以達到較為成熟的軟件配置管理過程,這是一個循序漸進的改進過程。

          四、總結

          以上只是簡單地介紹了配置管理系統實施的相關內容,軟件配置管理作為軟件開發過程的必要環節和軟件開發管理的基礎,支持和控制著整個軟件生命周期。若要有效的實施軟件配置管理,首先要通過一系列的培訓,培養軟件開發者的管理參與意識,同時更重要的是借助已有的經驗教訓,建立起真正適合自己團隊的管理流程。

          ?


          主站蜘蛛池模板: 丹凤县| 海盐县| 汶上县| 科尔| 临泽县| 永顺县| 西青区| 荣昌县| 崇文区| 太湖县| 曲水县| 承德市| 芜湖县| 上犹县| 荣成市| 安徽省| 阳原县| 长治县| 临漳县| 余庆县| 连城县| 漾濞| 蓬安县| 安福县| 仪征市| 鲁甸县| 临汾市| 南乐县| 千阳县| 苍南县| 田阳县| 新源县| 如皋市| 平昌县| 台东市| 清水河县| 海安县| 东阿县| 永平县| 昂仁县| 册亨县|