一、什么是软件1
软件是程序和所有使程序正确运行所需要的相关文档和配置信息。
软件系统通常包含大量的独立程序、用于设置这些程序的配置文件、描述系统结构的系统文档和如何使用该系统的用户文档,以及告知用户下载最新产品信息的最新 Web 站点。
二、软件版本的含义
软件版本有以下两方面的含义:
- 为满足不同用户的不同使用要求,如适用于不同运行环境或不同平台的系列产品。
如下面不同版本 JDK 版本的下载: - 软件产品投入使用以后,经过一段时间运行提出了变更的要求,需要做较大的修正或纠错,增强功能或提高性能。
如下面 JDK8 的更新版本:
三、软件版本如何定义
1. 命名风格2
目前软件行业主流的版本号管理有 3 种方案,搜集并整理如下:
GNU 风格 :
- 命名规则:
主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]]
- 英文对照:
Major_Version_Number.Minor_Version_Number[.Revision_Number[.Build_Number]]
- 示例:
1.1.5, 2.0, 2.1.0 build-1781
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]]
- 说明:版本号由二至四个部分组成:主版本号、次版本号、内部版本号和修订号。主版本号和次版本号是必选的;内部版本号和修订号是可选的,但是如果定义了修订号部分,则内部版本号就是必选的。所有定义的部分都必须是大于或等于 0 的整数。
命名约定
- 版本号约定
Major
:具有相同名称但不同主版本号的程序集不可互换。例如,这适用于对产品的大量重写,这些重写使得无法实现向后兼容性。Minor
:如果两个程序集的名称和主版本号相同,而次版本号不同,这指示显著增强,但照顾到了向后兼容性。例如,这适用于产品的修正版或完全向后兼容的新版本。Build
:内部版本号的不同表示对相同源所作的重新编译。这适合于更改处理器、平台或编译器的情况。Revision
:名称、主版本号和次版本号都相同但修订号不同的程序集应是完全可互换的。这适用于修复以前发布的程序集中的安全漏洞。
程序集的只有内部版本号或修订号不同的后续版本被认为是先前版本的修补程序 (Hotfix
) 更新。
编译版本号(Build
)一般是编译器在编译过程中自动生成的, 我们只定义其格式, 并不进行人为的控制.另外, 还可以在版本号后面加入Alpha, Beta, Gamma, Current, RC (Release Candidate), Release, Stable
等后缀, 在这些后缀后面还可以加入 1 位数字的版本号。
2. 命名方式3
小数
这是最常用的一种订定方式。大部分软件的版号都是用此方法去计算。
- 命名规则:
major.minor(.build)
major
是最大的版本编号,minor
为其次,某些软件可能再细分作build
,为更小的版本编号。 - 说明
通常,正式版的版本编号为“1.0”
。1.0
以下的版本(0.x
)为测试版,代表仍有一些重大错误(bugs
),未正式推出。
在新版本推出时,应更新major
、minor
或是build
(如有)的版号,决定于变更的大小。当有极大的更新时,会增加major
的版号。而当有大更新,但不至于更新major
时,会更新minor
的版号。若更新比较小,例如只是除虫(bug fixing
),则会更新build
的版号。 - 例子
1.0→1.0.1→1.0.2→1.1→1.1.1→2.0→2.1→2.1.1→3.0→…
1.0
至1.0.1
至1.0.2
、1.1
至1.1.1
、2.1
至2.1.1
都是小更新;1.0.2
至1.1
、2.0
至2.1
都是较大的更新;而1.1.1
至2.0
和2.1.1
至3.0
则是重大更新。 - 版本后缀
小数版本号码后面会有“a”、“b”、“rc”
等字样,代表某版本的测试版。“a”、“b”、“rc”
分别代表“alpha”
、“beta”
和“release candidate”
。(详见软件出版周期,软件版本周期)。
例如:“2.0a”
是2.0
的alpha
测试版,接着可能发布“2.0b”
,是2.0
的beta
测试版。跟着,又可能出现“2.0b2”
,代表2.0
的第2
个beta
测试版。当beta
测试完结后,又可能推出“2.0rc1”
、“2.0rc2”
两个版本,分别代表2.0
的第一和第二个release candidate
测试版。当一切测试结束后,就会有“2.0”
正式版。 - 常用软件版本小数命名实例
日期
除了依照版本发布次序逐个数以外,软件版本编号亦有可能使用日期。
- 命名规则:
YYYY-MM-DD
- 例子:版本“20080101”代表该版本于 2008 年 1 月 1 日发布。
- 说明:版本编号更会由小数和日期结合,即是类以
1.5.20080101
等方式。 - 常用软件版本日期命名实例
年份
不会在一年中出版两次的软件会使用年份作版本编号。有时软件亦采用两字的年份缩写。
- 命名规则:
YYYY
- 例子:
Version 2007
- 常用软件版本年份命名实例
微软的很多产品都以此方式订定版本编号。
如Microsoft Office2010
,Windows 95
、Windows 2000
等也是如此。
数学常量
有些软件采用数学常量来进行订定版本编号。
- 命名规则:先选定一个数学常量,每个新版本都距离该数学常量更近。
- 例子:选用圆周率的软件,其版本应为
3、3.1、3.14、3.141、……
- 说明:此版本含义是该软件有一个确定的功能目标,而不是在未来无限扩展其功能范围,所以采用数学常数作为版本号表示距离软件的目标越来越逼近。
- 常用软件版本数学常量命名实例
TeX
选定的数学常量为π
。而METAFONT
选定的数学常量则为e
。
英文缩写
有些软件采用英文缩写来为版本制定编号。
- 常用软件版本英文缩写命名实例
Windows
有两个版本采用英文缩写作版本编号,分别是Windows Me
和Windows XP
。“Me”
代表“Millennium”
(千禧年)或“me”
(自己);“XP”
代表“experience”
(体验),当读出experience
时,读音像读出x
和p
。
注意
- 混合使用各种订定方式
有些软件会混合使用各种版本编号订定方式,即不同的版本分别采用不同的订定方式。
例如:Windows,曾采用普通小数方式(Windows 1.0 至 Windows 3.11),年份(Windows 95、Windows 98、Windows 2000),缩写(Windows Me、Windows XP)和英文字(Windows Vista) - 同时拥有两个版本编号
有些软件会同时拥用两个版本编号,即是以两种不同的订定方式,赋予同一个版本两个编号。
例如:Windows:Windows 95 亦即 Windows 4.0,Windows 98 亦即Windows 4.10,Windows Me亦即Windows 4.90,Windows 2000亦即NT 5.0,Windows XP亦即NT 5.1,Windows Vista亦即NT 6.0,Windows 7亦即NT 6.1。 - 小数版本有可能会跳序
有些软件的小数版本序号可能会出现跳序。
此处“跳序”是指同一个软件,两个相邻的使用小数版本序号的版本,并不是 major、minor 或 build 其中一个值相差 1。
例如:Simutrans 自 2005 年的 major 版本序号为 86.x、88.x、89.x、99.x、100.x。当中86至88和89至99出现了跳序。
除此以外,还有软件会因为“不幸运数字”(例如 4、13)的原因而跳序。
四、软件版本周期4和软件生命周期
1. 软件版本周期
软件版本周期是指电脑软件的发展及发行过程,如下图,从Pre-alpha
(准预览版本)发展到Alpha
(预览版本)、Beta
(测试版本)、Released candidate
(最终测试版本)至最后的 Gold
(完成版)。
- 开发期
Pre-alpha
有时候软件会在Alpha
或Beta
版本前先发布Pre-alpha
版本。一般而言相对于Alpha
或Beta
版本,Pre-alpha
版本是一个功能不完整的版本。
AlphaAlpha
版本仍然需要测试,其功能亦未完善,因为它是整个软件发布周期中的第一个阶段,所以它的名称是“Alpha”
,希腊字母中的第一个字母“α”
。Alpha
版本通常会送到开发软件的组织或某群体中的软件测试者作内部测试。
BetaBeta
版本是软件最早对外公开的软件版本,由公众(通常为公司外的第三方开发者和业余玩家)参与测试。Beta
包含所有功能,但可能有一些已知问题和较轻微的程序错误(BUG
),要进行调试(debug
)。
Release CandidateRelease Candidate
(简称RC
)指可能成为最终产品的候选版本,如果未出现问题则可发布成为正式版本。在此阶段的产品通常包含所有功能、或接近完整,亦不会出现严重问题。 - 完成期
生产商发放(Release to Manufacting,RTM
)
生产商发放(Release to Manufacturing,缩写 RTM
)是软件产品准备交付时使用的术语,来自于以前还需要使用实体载具(光盘,硬盘等)来进行安装的时代。
一般可用(General availability,GA
)
一般可用(General availability, 缩写 GA
)是所有必要的商业活动已经完成,该软件产品已经可以发售的阶段。
网络分发(Release to Web,RTW
)
网络分发(Release to Web,缩写 RTW
),或称Web
发布是一种利用互联网进行分发的软件交付方式。
稳定版(Stable
)
稳定版本来自预览版本释出使用与改善而修正完成,通常是初始版本进行几个小更新后的版本。
2. 软件生命周期
软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。
软件的每个版本中包括 11 个阶段,详细阶段描述如下:
阶段名称 | 阶段标识 |
---|---|
需求控制 | a |
设计阶段 | b |
编码阶段 | c |
单元测试 | d |
单元测试修改 | e |
集成测试 | f |
集成测试修改 | g |
系统测试 | h |
系统测试修改 | i |
验收测试 | j |
验收测试修改 | k |
附录 各种软件版本号5
- 开发阶段划分:
α(Alpha)版:内测版,内部交流或者专业测试人员测试用。Bug较多,普通用户最好不要安装。
β(Beta)版:公测版,专业爱好者大规模测试用,存在一些缺陷,该版本也不适合一般用户安装。
γ(Gamma)版:相当成熟的测试版,与即将发行的正式版相差无几。
RC 版:Release Candidate,RC 版。是 Release Candidate 的缩写,意思是发布倒计时,候选版本,处于 Gamma 阶段,该版本已经完成全部功能并清除大部分的 BUG。到了这个阶段只会除 BUG,不会对软件做任何大的更改。从 Alpha 到 Beta 再到 Gamma 是改进的先后关系,但 RC1、RC2 往往是取舍关系。
Final:正式版。 - 授权和功能划分:
Trial:试用版,通常都有时间限制,有些试用版软件还在功能上做了一定的限制。可注册或购买成为正式版。
Unregistered:未注册版,通常没有时间限制,在功能上相对于正式版做了一定的限制。可注册或购买成为正式版。
Demo:演示版,仅仅集成了正式版中的几个功能,不能升级成正式版。
Lite:精简版。
Full version:完整版,属于正式版。 - 语言划分:
SC:Simplified Chinese 简体中文版。
CN:简体中文版。
GBK:简体中文汉字内码扩展规范版。
TC:Traditional Chinese 繁体中文版。
CHT:繁体中文版。
BIG5:繁体中文大五码版。
EN:英文版。
Multilanguage:多语言版。
UTF8:Unicode Transformation Format 8 bit,对现有的中文系统不是好的解决方案。 - 其他版本 :
Enhance:增强版或者加强版 属于正式版 1。
Free:自由版。
Release:发行版 有时间限制。
Upgrade:升级版。
Retail:零售版。
Cardware:属共享软件的一种,只要给作者回复一封电邮或明信片即可。(有的作者并由此提供注册码等),目前这种形式已不多见。
Plus:属增强版,不过这种大部分是在程序界面及多媒体功能上增强。
Preview:预览版。
Corporation&Enterprise:企业版。
Standard:标准版。
Mini:迷你版也叫精简版只有最基本的功能。
Premium:贵价版。
Professional:专业版。
Express:特别版。
Deluxe:豪华版。
Regged:已注册版。
Rip:是指从原版文件(一般是指光盘或光盘镜像文件)直接将有用的内容(核心内容)分离出来,剔除无用的文档,例如 PDF 说明文件啊,视频演示啊之类的东西,也可以算做是精简版吧…但主要内容功能是一点也不能缺少的!另:DVD rip是指将视频和音频直接从DVD光盘里以文件方式分离出来。
RTM 版:这基本就是最终的版本,英文是Release To Manufactur,意思是发布到生产商。
Original Equipment Manufacturer(OEM)
You may license products through an Original Equipment Manufacturer (OEM).These products,such as Windows operating systems,come installed when you purchase a new computer.
OEM 软件是给电脑生产厂的版本,无需多说。
Full Packaged Product(FPP)/Retail
Physical,shrink-wrapped boxes of licensed product that can be purchased in a local retail store or any local software retailer.
FPP 就是零售版(盒装软件),这种产品的光盘的卷标都带有"FPP"字样,比如英文 WXP Pro 的 FPP 版本的光盘卷标就是 WXPFPP_EN,其中 WX 表示是 Windows XP,P 是 Professional(H 是 Home),FPP 表明是零售版本,EN 是表明是英语。获得途径除了在商店购买之外,某些 MSDN 用户也可以得到。
Volume Licensing for Organizations(VLO)
You may enjoy potentially significant savings by acquiring multiple product licenses. Depending on the size and type of your organization.
团体批量许可证(大量采购授权合约),这是为团体购买而制定的一种优惠方式。这种产品的光盘的卷标都带有"VOL"字样,取"Volume"前 3 个字母,以表明是批量,比如英文 WXP Pro 的 VOL 版本的光盘卷标就是 WXPVOL_EN,其中 WX 表示是 Windows XP,P 是 Professional(VOL 没有 Home 版本),VOL 表明是团体批量许可证版本,EN 是表明是英语。获得途径主要是集团购买,某些 MSDN 用户也可以得到。
参考
- [1]:软件工程(原书第 8 版)/(英)萨默维尔(Sommerville,I.)著;程成,陈霞译.-北京:机械工业出版社,2007.3;
- [2]:百度百科 软件版本号;
- [3]:维基百科 软件版本号;
- [4]:维基百科 软件版本周期;
- [5]:各种软件版本号的含义