scm 軟體配置管理

bitQian發表於2020-10-03

1、為什麼需要使用SCM

1. 更改原始檔,但不知道哪個是最新的;
2. 我不瞭解檔案的修改過程,尤其是最後修改了哪幾行以及為什麼修改;
1. Make時,經常用錯檔案的版本;
多人修改一個檔案,有些人的結果被沖掉了;
程式誤刪了,只能重寫;
花了一週時間,終於查出了一個錯誤,
但發現有個同事上週前已經修改了同樣的錯誤,
但我卻不知道,造成浪費;

2. 整個專案由若干部分組成,專案初期各人做各人的一部分,
後期合併聯調,但是週期很長,達數週甚至數月,開銷非常大;
除錯過程中,經常出現“扯皮”,搞不清楚哪的問題
版本太多,有的太舊,檢視不方便
估計專案成員的工作進度和工作成果比較困難

3. 交付給使用者的產品“缺斤少兩”,使用者在安裝時才發現問題
使用者使用時發現的問題不能夠及時得到解決
不能過確切瞭解專案的進度,總是得到“差不多”“大概”之類的模糊回答
公司的運作過程無法控制,“不按我說的做”

2、什麼是SCM

SCM是一種標識、組織和控制修改的技術。

它應用於整個軟體生存期。
在軟體建立時會經常產生變更,
而變更加劇了專案中軟體人員之間的混亂。
之所以產生混亂,是因為在進行變更前沒有仔細分析,
或沒有進行變更控制。因為變更在任何時刻都可能發生,
因此軟體配置管理活動的目標就是為了標識變更,控制變更,
確保變更正確地實現,向其他有關的人報告變更。
軟體配置管理是一組追蹤和控制活動,
它們開始於軟體開發專案開始之時,結束於軟體被淘汰之時。
從某種角度講,SCM是一種標識、組織和控制修改的技術,
目的是使錯誤降為最小並最有效地提高生產效率。

SCM是一門用來記錄並控制軟體產品資料的管理學科。

3、作用

產品的經歷

軟體產品資料:
	需求文件
	設計文件
	原始碼
	資料庫指令碼
	測試用例(測試指令碼)
	測試報告
	培訓文件(教育文件)
	上線記錄

SCM的主要任務有兩個:
第一,變更控制;第二,版本控制

變更控制:

唯一不變的就是變化本身,接受變更是不爭的實事。
軟體產品易於掌握的特性和不可見性,
往往導致它的構建人員面臨著永恆的變更。
因此必須制定相應的變更管理計劃,防止變更失控

流程:
1.識別變更。
2.評價變更對專案整體的影響(變更的可行性)。
3.尋找處理變更的備選方案。
4.徵求專案干係人的意見。
5.批准或否決變更。
6.追蹤變更的實施情況。

  • 版本控制:

版本控制系統是儲存檔案多個版本的一種機制。
版本控制軟體可以幫助你得到以下益處:

別人正在修該某檔案的同時,你可以同時修改這個檔案。
你能方便地將你機器上的全部專案檔案更新到當前版本。
你可以回溯到任何檔案的任意版本。
你可以獲得一份檔案更改的歷史記錄。
你無需本地備份,因為版本控制提供了安全保障

版本管理:記錄每個版本

方式一:
	將最原始的檔案存下來,後面都是存變化的部分
方式二:
	將最新的檔案存下來,前面的都是存變化的部分

取檔案的時候,一般都是取最新的檔案 一般採用方式2

版本控制的內容

版本控制的目標是能夠隨時獲取軟體在整個生命週期中任意時間點的檔案狀態。因此,任何與專案相關的檔案都應該進行版本控制。以下內容應該進行版本控制:
管理相關文件(包括專案章程、合同、專案範圍說明書、各類計劃、各類核對表等專案管理過程中涉及的文件)
開發相關文件(包括編碼規範、需求分析、概要設計、詳細設計、資料字典、API幫助手冊、測試報告等涉及軟體構建的文件)

  • 系統原型
  • 原始碼
  • 例項程式碼
  • 測試指令碼
  • 資料庫指令碼
  • 構建和部署指令碼
  • 配置檔案

版本控制策略


1. 先下手為強
2. 保證頻繁地提交可靠程式碼
3. 對提交許可權進行限制(讀寫許可權)
4. 確保團隊中所有人在下班前提交程式碼,並在開發中都能及時獲取最新版本
5. 使用意義明確的提交註釋
6. 及時同步並定義明確的基線

4、版本控制工具

  1. git
    碼雲
    github,最大同性交友網站
  2. svn
SVN是一款非常知名的中央版本控制系統。
(與中央版本控制系統對應的是分散式版本控制系統,如git。
分散式版本控制系統支援大型開源團隊的需要,
一般專案使用中央版本控制系統足以。)
版本控制系統用於維護應用程式每次修改的完整歷史,
包括原始碼、文件、資料、指令碼等等。它的另一個重要用途,
讓團隊一起工作在應用程式的不同部分,同時維護系統記錄.

相關文章