“大家好,这是【产品线工程(PLE)专题】更新的第三篇,上一篇我们介绍了‘我们是否需要统一产品线工程的标准——如果需要,有哪些标准?’,这一篇我们介绍版本、变体和其他的基础定义”
版本和变体:了解它们之间的区别
© pure-systems GmbH
在谈论产品线工程和变体管理时的重要的事情是对基本术语有共同的理解。多年来的经验告诉我,明确“版本”和“变体”之间的区别是具挑战性的事情之一。在产品线工程(PLE)之外的许多场景下,都会或多或少地使用这些术语。这也是我们在展会上经常遇到有参观者说“我看到你们在做版本管理相关的事情,与产品、与xx版本控制系统相比,你们的做法有什么不同”相似的话的原因之一。
事实上,这有很多不同,因为我们根本就没有做版本管理。在这篇文章中,我将给出一些与版本和变体有关的基本定义。我还将说明这些术语之间的关系,并解释为什么它们会经常被当作是在描述同一件事。
基本术语的定义
???? 版本(Version)
资产的版本是指该资产在描述某一个特定时间点所记录的状态/内容。一个资产的两个版本之间可能存在相同或不同的内容。因此,版本反映了同一资产在不同时间点上的情况。在大多数情况下,版本是由一些标签或数字所标识的。在某些情况下,修订版(只要资产发生变化就会创建)和版本(会指向有标签/名称的修订版)之间会有区别。
???? 基线(Baseline)
一条基线是指一组资产的一个被命名的版本快照。
???? 变化(Variation)
变化或变异(Variation)是两个可比较的资产之间的差异。假设有一个产品的外壳是由金属或塑料制成的,那么"金属外壳"和"塑料外壳"就是该产品外壳的两个变化或变异。
???? 变化点(Variation Point)
变化点代表导致资产有不同变体的决策点。一个变化点由一组可能的实例(变化点的合法变体)组成。继续以带有金属或塑料外壳的产品为例,变化点是“外壳材料”,相应的变化是"金属外壳"和"塑料外壳"。变化点通常需要明确绑定时间,即做出决定来获得实例的时间。绑定时间可以是编译时、安装时或运行时。
???? 变体派生(Variant derivation)
变体派生是将可用资产集作为输入,将它们组合在一起并绑定/实例化其中的变体点的操作。如果存在具有多个绑定时间的变化点,则派生将分多个步骤进行,每个绑定时间进行一个步骤。派生的结果是一组变体资产。在技术层面上,派生可以通过许多方式执行。较简单的(也是不太推荐的)方式是复制资产并手动修改它们(例如,通过指定配置参数)。派生的结果通常称为配置。
派生是产品线工程的核心部分,因为改变一个产品线的资产(例如在修复一个错误时)往往需要重新创建所有包括改变后的资产的派生产品。为了尽量减少重新创建派生产品的工作,派生通常是在一个工具中自动进行的。
???? 变体(Variant)
如果资产X’源自资产X且具有与利益攸关者(stakeholder)相关的属性,这些属性使得X’与从同一资产X派生的其他变体不同,则该资产X’就是变体。
例如,如果一台机器可以通过给球涂上蓝色或红色的油漆来生产蓝色和红色(其他方面都一样)的球,那么它就能创造出两种变体(蓝球,红球)。涂有蓝色或红色的球的实际数量并不重要。无论是一个蓝球和一个红球,还是100个蓝球和200个红球,变体的数量总是两个。
如果你仔细阅读,你会注意到变体的定义并没有谈到派生发生的时间。这是有意而为之的,因为变体的概念是独立于时间的。因此无论变体是在同一时刻创建的,还是相隔数月之后创建的,都不重要。
需要强调的是,并不是两个资产之间的任意一个小的差异都会产生一个变体,而是相关的利益攸关者是否“看到了”相关的变体。可以想象一下,假如你买了两件衬衫,一件是某天买的,另一件是一周之后买的。这两件是同样的品牌,同样的颜色,同样的剪裁,同样的尺寸。不过衬衫的区别是有不同的洗涤标签,因为制造商在这期间修改了洗涤标签。但是对于你来说(在这个场景中你是利益攸关者)这些衬衫是相同的,因为你并不关心洗涤标签。接下来,我们想象另一个不同的情景。你为自己买了一件衬衫,为另一个人买了一件不同尺寸的衬衫。在这种情景下,衬衫的尺寸是一个相关的差异或者说是你关心的差异,因此,你会认为这两件衬衫是彼此的变体。
???? 可变性(Variability)
最后一个重要的定义是可变性。可变性描述了具有变化点的资产的可能变化。由于潜在变体的数量是庞大的,因此通常不可能穷举出所有可能的变体,故通常借助可变性模型(如特征模型或配置规则)来描述系统的可变性。
总结
希望这些定义能让我们更清楚地了解变体和版本的区别,以及为什么这种区别在产品线工程中很重要。如果你想了解更多,请看看我们有关PLE的其他系列文章。
-
汽车电子
+关注
关注
3026文章
7943浏览量
166943
发布评论请先 登录
相关推荐
评论