請注意查收:一份關于SCM軟件配置管理的基礎手冊(scm工具)
?
IEEE對SCM的定義:
A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements.
一套應用技術上和管理上的指導和監督的方法,用于:識別、記錄配置項的功能特征和物理特征;控制這些特征的變更;記錄、報告變更的處理和執行的狀態,并驗證是否符合特定的需求。
IEEE(Institute of Electrical and Electronics Engineers)
SCM(Software Configuration Management)
引例
電腦的基本配置包括主板(內存、CPU、顯卡)、硬盤、機箱、顯示器、外設,統一記錄并管理這些配置的型號與相互關系就是電腦的配置管理,通常是某種列表、清單或文檔。當配置發生變化時,我們就需要更新這種清單。此外還有汽車配置管理、手機配置管理等。
No.1
SCM軟件配置管理
軟件配置管理是對軟件資產的管理。軟件資產,即源代碼、設計文檔、安裝程序、引用類庫、資源文件、可以運行的程序等。
▲ 軟件資產
相比于一般物體的配置管理,配置之間的關聯性/耦合性更高更復雜,配置之間的聯系更加緊密,因此一旦發生配置更改,通常是全局性的。
SCM是什么
軟件配置管理,又稱軟件形態管理、或軟件建構管理,簡稱軟件形管。用于:歸納軟件的組成項目,對項目變更進行管控(版本控制),并維護不同項目之間的版本關聯,以使軟件在開發過程中任一時間的內容都可以被追溯。
SCM的目標
SCM活動的目標就是為了標識變更、控制變更、確保變更正確實現并向其他有關人員報告變更。從流程角度看,軟件配置管理是整個軟件開發生命周期中一個非常核心的管理過程。
SCM涉及流程
配置管理實際貫穿了從需求分析、架構設計、項目管理、開發、集成構建、測試以及上線的全過程。
▲ 軟件配置管理涉及過程1
這一過程不僅涉及宏觀的項目進度控制、配置管理規范及計劃、多地點開發規劃等,也包括更細粒度的分支模型、構建及集成方式、變更處理流程,還包括微觀的與開發人員直接相關的版本控制、差異比較和歸并等。
▲ 軟件資產配置涉及過程2
No.2
軟件配置管理的重要活動
▲ 軟件配置管理的重要活動
配置計劃 Configuration Schedule
配置管理計劃是開展所有配置管理活動的基礎。
應該明確以下要素:配置管理人員的組織和職責;配置項的命名規則;配置管理工具以及配置庫結構;標識的配置項和位置;權限分配和管理方法;配置庫備份的周期、方法;版本發布的計劃和策略;集成策略;軟件配置管理的場景。
配置標識 Configuration Identification
配置標識是配置管理的一個組成部分,包括選擇產品的配置項,為它們制定唯一的標識,并在技術文檔中記錄功能特性。
命名規則:文檔,文件名就作為配置項的命名;代碼,使用“項目名/模塊名+代碼”或者“項目名+代碼”的方式進行命名;工具,以工具本身的名稱命名。
配置控制 Configuration Control
配置控制是配置管理的一個組成部分,包含評估、協調、批準/拒絕、實施對配置項的變更。
配置狀態報告 Configuration Status Report
是配置管理的一個組成部分,記錄和報告用來有效管理配置所需要的必要信息。
一旦配置項基線化后,應該通知項目組, 內容應該包括基線化配置項的名稱以及位置。
配置審計 Configuration Audit
執行審計以驗證配置項符合特定的標準或需求。
對配置管理的獨立的查檢過程,確認受控軟件配置項滿足需求并就緒。功能審計:配置項的變更控制是否和配置管理計劃中的描述相一致;物理審計:配置項的完整性、正確性, 一致性和可跟蹤性。
No.3
軟件配置管理的組織
▲ SCM組織
角色
以下列舉三個SCM組織的角色:
項目經理 PM(Project Manager):制定和修改項目的組織結構和配置管理策略;批準、發布配置管理計劃;決定項目起始基線和開發里程碑;接受并審閱配置控制委員會的報告。
軟件配置工程師 CMO(Configuration Management Officer):根據配置管理計劃執行各項管理任務,包括軟件配置管理工具的日常管理與維護;提交配置管理計劃;各配置項的管理與維護;執行版本控制和變更控制方案;完成配置審計并提交報告等。
系統集成工程師 SIO(System Integration Engineer):系統集成員負責生成和管理項目的內部和外部發布版本。
流程
定制并行開發策略。協調項目的復雜性和需求,統一創建分支類型和元數據,為開發過程中的變更集成制定有效的規范,適時反映開發過程中方法和需求的變化。
發布版本管理。軟件開發過程中的一個關鍵活動是提取工件的相關版本,以形成軟件系統的階段版本或發布版本,一般將其稱為穩定基線。
S O F T B A S E L I N E
基 線
軟件基線是項目儲存庫中每個工件版本在其生命周期的不同時間點上,通過評審而進入正式受控的一種狀態,而這個過程被稱為“基線化”。它提供一個正式標準,隨后的工作基于此標準,并且只有經過授權后才能變更這個標準。
S O F T C O N F I G U R A T I O N I T E M
配 置 項
為了方便對“配置”進行管理,“配置”經常被劃分為各類配置項。配置項是一組軟件功能或者物理屬性的組合,在配置管理過程中,配置項被作為一個單一的實體對待。
No.4
軟件配置管理的實踐
▲ SCM實踐
以下舉三個例子說明SCM的實踐:
代碼構建
構建是指編譯、鏈接和打安裝包用來測試和發布的過程。SCM要求構建的日志必須記錄和保存,并且每天對最新的源代碼進行編譯、打包與測試。
持續集成
系統集成的基本使命,就是把產品的各個部分集成在一起,并且保證整體是可以運轉的。作為改進,集成可以逐步進行。每完成一個模塊,就加入到整體環境中來,發現問題并解決。
并行開發
SCM中允許在當前分支通過標簽的方式(版本標簽)整體記錄版本,同時通過分支產生并行的版本(版本分支)進行新功能開發或者長期持續維護。
通福云分布式研發云平臺(CCS DevCloud),集云端研發運營一體化的研發云平臺,由中國通服集團集二十多年研發與實踐傾力打造。為客戶提供代碼托管、編譯構建、部署發布、運維監控、項目管理等覆蓋軟件研發全生命周期服務,讓軟件構建、測試和發布變得更快捷、可靠,全面助力企業快速提升研發效率和產品交付能力。
(免責聲明:部分內容轉載自網絡,如有侵權,請聯系刪除!)