什么是变体
变体(Variant),又译为变种。它是指这样一些软件产品,它们彼此有一些相同之处,但又彼此有所区别,就好像一群兄弟姐妹。弟弟将来无论怎么长,也不会长成跟哥哥现在的样子一模一样;姐姐像妹妹现在这么大的时候,跟妹妹现在的样子也不完全一样。所以说,他们之间的差异是与生俱来的、本质上的,并不完全是时间演进和个人成长的结果。变体也是一样。所以SuperPen1.0 for Windows版和SuperPen1.0for UNIX版之间互为变体。而SuperPen 1.0版和2.0版之间并不是互为变体,尽管它们之间也相似。
那么,什么情况下会产生变体呢?
l 因支持不同操作系统而产生变体
这是产生变体的第一种原因。打算在Windows操作系统上卖的产品,很有可能在UNIX操作系统上也有市场。但是,在Windows上运行的软件,常常是不能直接拿到UNIX上运行的。这至少需要在UNIX上重新编译、链接、打包一遍。情况往往比这个还要复杂些,不仅要重新构建,连源代码本身都要做一些修改。比如,在C语言里,为获取当前本地时间,在某个操作系统上,需要调用localtime函数,而在另一个操作系统上,需要调取time函数。那么,就需要根据所在的操作系统,调用不同的函数。只是调用不同的函数还好说,如果程序的一部分,当年是在Windows操作系统上,用Visual Basic写的,那恐怕在UNIX系统上,就需要把这部分程序换种编程语言重新写了。
l 因不同的功能集而产生变体
以微软的操作系统Vista为例,它有两大类共七个版本,即变体。分别是,家庭类的初学者版、家庭基础版、家庭标准版(Premium)和家庭终极版(Ultimate);商务类的Vista小企业版、Vista专业版和Vista企业版。不同的变体,其功能有所不同。有的功能多些,有的功能少些。不同的变体,是针对不同的消费群体的不同的需要而设计的。
l 因客户定制而产生变体
我们通常看到的,在市面上卖的,在柜台里摆着的软件产品,都是“标准”的。一个产品,会卖给成千上万个客户,每个客户得到的都一样。但是,还有不少软件产品,每个客户得到的是不同的,因为他们想要的东西是有区别的,比如,为电力系统监控开发的软件。由于不同地区的电力系统,其用于监控的硬件设备的型号是不同的,因而软件要为此进行特殊定制。不同地区的电力局,其内部的管理制度、管理流程是有区别的,因而软件也要为此进行特殊定制。通常,这样的一个面向特定用户的定制软件,会被单独立项。
以上三种产生变体的原因,还仅仅是举例。变体产生的原因有很多,但它们都带来一个相同的挑战,那就是,需要支持多个变体的开发和发布。
本文节选自《未雨绸缪——理解软件配置管理(第2版)》
董越著
图书详细信息:http://blog.csdn.net/broadview2006/article/details/7692603