星期一, 十一月 28, 2005

软件版本

为了维护软件项目,我们提出了对版本进行管理控制的要求。而对于用户来说,版本直接体现在版本号的命名上。那么,如何对版本号进行命名呢?我查了许多的资料,希望能解释得比较具体,同时也希望您在阅读本文的时候,能够对版本号的命名格式提出自己的见解,这当然包括一些版本号命名的个例。下面,让我们看一下比较普遍的三种命名格式。

GNU 风格的版本号命名格式: 主版本号.子版本号[.修正版本号[.编译版本号]]
英文对照: Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]
示例: 1.2.1,2.0,5.0.0 build-13124

Windows 风格的版本号命名格式: 主版本号.子版本号[修正版本号[.编译版本号]]
英文对照: Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]]
示例: 1.21,2.0

.Net Framework 风格的版本号命名格式: 主版本号.子版本号[.编译版本号[.修正版本号]]
英文对照: Major_Version_Number.Minor_Version_Number[.Build_Number[.Revision_Number]]
由于,有官方解释,所以本文不做说明。


GNU 风格的版本号管理策略
  1. 当项目初版本时,版本号可以为 0.1 或 0.1.0,也可以为 1.0 或 1.0.0,如果你为人很低调,我想你会选择那个主版本号为 0 的方式;
  2. 当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1;
  3. 当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉;
  4. 当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1;
  5. 另外,编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为的控制。

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 位数字的版本号。

对于用户来说,如果某个软件的主版本号进行了升级,用户还想继续那个软件,则发行软件的公司一般要对用户收取升级费用; 而如果子版本号或修正版本号发生了升级,一般来说是免费的。

没有评论: