軟件版本定義【轉、原】

       最近一段時間咱們一款產品不斷的進行改版,好不容易初始版本穩定後,又接着進入無序的版本迭代,開發人員完成開發任務發版以後,客戶反饋回來的問題,與實際交付的版本內容不一致,明確後發現是上一版本產生的,又或者1.1在測試,1.2又馬上進入開發,代碼混亂,需求混亂,整個項目推動過程,亂糟糟的,毫無章法,頻頻遭到客戶投訴;安全

        爲了改變現狀,咱們從產品需求、開發、測試、發版都定義了具體的版本號,客戶提交問題、測試反饋問題、開發人員解決問題、開發需求所有對應到版本,總之全部問題說話以前所有以版本開頭,如此以後項目推動過程比原來穩健多了,客戶這邊也慢慢習慣這種推動方式,目標清晰,結果明確;測試

    在版本號的定義方式上剛開始團隊是模糊的,最初是兩位數,如1.2;慢慢發現如此疊加,很快版本就2.0、3.0了;所以後來又演變成三位,如1.1.2;版本號第一位:用來控制大的改版,如UI總體變動,重大功能升級等; 版本號第二位:用來控制平常一些需求演進,小功能迭代;第三位:用來發布內部測試,其實這種定義方式我最近在豆瓣上看到文章才知道使用的是GNU風格;ui

下面是我在豆瓣上看到的文章,摘了部分,給你們看看:
版本控制比較廣泛的 3 種命名格式 : 

1、GNU 風格的版本號命名格式 

主版本號 . 子版本號 [. 修正版本號 [. 編譯版本號 ]] 

Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]] 

示例 : 1.2.1, 2.0, 5.0.0 build-13124 

2、Windows 風格的版本號命名格式 

主版本號 . 子版本號 [ 修正版本號 [. 編譯版本號 ]] 

Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]] 

示例: 1.21, 2.0 

3、.Net Framework 風格的版本號命名格式 

主版本號.子版本號[.編譯版本號[.修正版本號]] 

Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]] 

版本號由二至四個部分組成:主版本號、次版本號、內部版本號和修訂號。主版本號和次版本號是必選的;內部版本號和修訂號是可選的,可是若是定義了修訂號部分,則內部版本號就是必選的。全部定義的部分都必須是大於或等於 0 的整數。 應根據下面的約定使用這些部分: 

Major :具備相同名稱但不一樣主版本號的程序集不可互換。例如,這適用於對產品的大量重寫,這些重寫使得沒法實現向後兼容性。 

Minor :若是兩個程序集的名稱和主版本號相同,而次版本號不一樣,這指示顯著加強,但照顧到了向後兼容性。例如,這適用於產品的修正版或徹底向後兼容的新版本。 

Build :內部版本號的不一樣表示對相同源所做的從新編譯。這適合於更改處理器、平臺或編譯器的狀況。 Revision :名稱、主版本號和次版本號都相同但修訂號不一樣的程序集應是徹底可互換的。這適用於修復之前發佈的程序集中的安全漏洞。程序集的只有內部版本號或修訂號不一樣的後續版本被認爲是先前版本的修補程序 (Hotfix) 更新。 

版本號管理策略 

1、GNU 風格的版本號管理策略 

1.項目第一版本時,版本號能夠爲 0.1 或 0.1.0, 也能夠爲 1.0 或 1.0.0,若是你爲人很低調,我想你會選擇那個主版本號爲 0 的方式; 

2.當項目在進行了局部修改或 bug 修正時,主版本號和子版本號都不變,修正版本號加 1; 

3. 當項目在原有的基礎上增長了部分功能時,主版本號不變,子版本號加 1,修正版本號復位爲 0,於是能夠被忽略掉; 

4.當項目在進行了重大修改或局部修正累積較多,而致使項目總體發生全局變化時,主版本號加 1; 

5.另外,編譯版本號通常是編譯器在編譯過程當中自動生成的,咱們只定義其格式,並不進行人爲控制。 

2、Window 下的版本號管理策略 

1.項目第一版時,版本號爲 1.0 或 1.00; 

2. 當項目在進行了局部修改或 bug 修正時,主版本號和子版本號都不變,修正版本號加 1; 

3. 當項目在原有的基礎上增長了部分功能時,主版本號不變,子版本號加 1,修正版本號復位爲 0,於是能夠被忽略掉; 

4. 當項目在進行了重大修改或局部修正累積較多,而致使項目總體發生全局變化時,主版本號加 1; 

5. 另外 , 編譯版本號通常是編譯器在編譯過程當中自動生成的,咱們只定義其格式,並不進行人爲控制。 

另外,還能夠在版本號後面加入 Alpha、Beta、Gamma、Current、RC (Release Candidate)、Release、Stable 等後綴,在這些後綴後面還能夠加入1 數字的版本號。對於用戶來講,若是某個軟件的主版本號進行了升級,用戶還想繼續那個軟件,則發行軟件的公司通常要對用戶收取升級費用;而若是子版本號或修正版本號發生了升級,通常來講是免費的。 spa

相關文章
相關標籤/搜索