0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入产品线的配置管理

经纬恒润 2022-01-12 10:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好,这是【产品线工程(PLE)专题】更新的第五篇,上一篇我们介绍了特征模型和特征-这是什么,这一篇我们介绍‘深入产品线的配置管理’

© pure-systems GmbH

如果您目前已经阅读了我们所有的白皮书,那么您应该了解了特征、特征模型以及变体都不是“版本”。但是这里仍然有一些并未提及的事情:产品线的配置管理。接下来的这篇文章便是就该话题进行讨论。

产品线的配置管理是一件复杂的事情吗?这是肯定的!产品线的配置管理必须要复杂吗?并不完全是!可以说,单个系统开发的配置管理和产品线开发的配置管理之间没有(重要的)区别,除非您做错了。可能您会对此表示怀疑,那么针对这个观点,我们将会进行更深入的探讨。

配置管理系统的误用及带来的问题

首先,我将列出大家在产品线实施配置管理时可能会犯的错误,即把它作为一个变异性和变体管理的系统来使用。通常情况下,配置管理系统(又称版本控制系统)提供一个被称为分支的概念。分支意味着创建一组工件的副本并且随后会对其进行独立于原件的修改。分支有许多适当的用途(我们将在后面讲到)和一个相当不恰当的用途:将分支作为资产复用管理的核心。

如果采用如下方式处理变体,例如首先创建分支,然后使用分支区分不同的产品。那么在大多数情况下,与其他的复用方式相比,这种方式会出现(不必要的)开销,这是因为通常有分支的工件(简单的,我们假设针对单个文件的分支)不会被完全修改,并且在原始和分支副本之间存在一定数量(通常相当大的)相同部分。

  • Q1--您怎么知道什么被复用了,以及在哪里被复用了?

设想一个场景,我们在分支或者原始流中发现了一个问题,(我们假定是在原始版本中发现的)。我们完成了修复工作并且递交到版本管理系统中。目前为止,看起来一切安好。现在,我们需要对这个分支做些事情。首先,我们注意到:分支的工件正在某些产品中使用,那么我们必须对其进行修复。有些版本管理系统支持您在发生变化时,在分支中找到相关的工件。目前看起来不错。在文件的某些部分发现了修复,这些部分在原始文件和分支中看起来都是一样的,似乎很容易简单地复制修复。不过虽然看起来这不是个问题,但它肯定会引起其他问题。

  • Q2--您怎么知道应用的修正是正确的?

等一下! 您怎么知道在分支中文件的这一部分内容是被允许修改的呢?变体的受管理粒度在文件中,因此,无论是对于版本管理系统还是对于人员,都没有简单的方法去了解分别属于原始和分支文件的多个相同实体(例如,文件中的行)是否应该相同(不是实际变体的一部分,因此应该共享),或者某些实体是否实际属于变体(如分支时所预期的那样)且不得更改。

我们可以举一个例子,例如配置一个用于设置缓存区大小的常量参数。如果该参数同时在源算法和分支算法中使用,那么在源算法的实现中的修改并不意味着在分支的算法中进行修改,分支中甚至可能不允许修改。因此,即便从技术上,在版本管理中应用某修复程序不会显示产生冲突,您也必须对该修复程序的哪个部分可以应用于分支工件进行检查。在拥有恰当的自动化测试套件的情况下,您必须对包含合并工件的所有产品进行测试,以确保没有产品受到损害。但在其他所有情况下(对于某些领域的自动化测试套件是不可能的),基本上只能依靠工程师的经验。

  • Q3--共享和非共享的资产与变更集

m如果分支的工件基本上代表了一个变体,并且(几乎)不包含任何共享的代码,那么这个问题的讨论就不存在了。这意味着变体在文件的颗粒度上被适当地封装了。在这种情况下,一个文件在原始副本和分支副本之间或者被共享,或者不被共享。如果所有的文件都如此,那么您只须处理包含了共享文件和非共享文件的变更集即可,但必须把它们分成只与共享文件有关的变更集和针对单一分支的变更集。

对于包含共享文件的变更集,必须对所有共享文件的实例进行变更。但是如果您后来从以前的分支副本中创建了一个新的分支,该分支副本与原始的分支副本共享,但没有与原始副本共享,那么情况就会变得复杂。再强调一次,在版本控制系统中跟踪处理这种情况会很复杂。

  • Q4--它不只发生在文件上

到目前为止,我一直在谈论“一个文件”,但实际上,可能会存在成百上千的问题件。而且,因为对于每一个变化,您都必须对每个分支进行同样的处理,所以随着分支数量的增加,工作量也会急剧增加。虽然针对少量共享工件和少量的分支而言是可行的,但是少量的共享工件限制了可重用工件的数量,而少量的分支则限制了变体的数量。我们可以通过一张图看到其复杂性。图1显示了一个典型的(简化的)来自版本控制系统的分支/合并日志(时间从左到右进行)。使用典型的“分支&合并”策略,即创建现有系统的克隆,之后通过独立维护的方式来管理七个产品(P1-P7)。显然,使所有分支实例保持变化同步是一项相当大的任务。由于进行合并需要工作量,因此在大多数情况下,只有“成对的”合并发生,即从另一个产品中直接挑选一些部件,从而导致系统性的复用却看起来互不相同。

图1©pure-systems

  • 关于误用的结论

总结一下,除非版本管理中工件颗粒度与变体颗粒度基本一致,否则版本管理中的分支并不利于表达变体。因此,无论您的版本管理系统的供应商多么强调其处理变化的能力,您都需要注意颗粒度是否匹配。并且在工件是文件的情况下,出现颗粒度不匹配的情况几乎是不可避免的。但是,也请不要误会我的意思:您必须使用适当的版本管理来跟踪您的工件在其生命周期内的变化。只是不要将变体和变体管理混在其中。变体管理是一个独立的、正交的维度,表达了在某一特定时间点可用于和被用于变体的内容。

正确使用产品系列的配置管理系统

如果您现在想知道哪些分支在产品线开发中是有用的,可以这样描述它们——在单个产品开发中,分支只适用于两件事:将独立开发活动与主开发分支(通常称为“功能分支”)进行短期解耦,以及将(即将发布的)版本与主分支上正在进行的更改(通常称为“发布分支”)解耦。这两个概念的描述可以在一些版本管理的电子书中看到(描述大多数独立于版本,只需要将“trunk”替换为“主开发分支”即可)。应用这些概念可以绘制一个相对于图1而言更加清晰和美观的图(见图2)。主开发流上方的分支(在下图中称为"集成")表示为发布创建的分支,下面的分支用于开发新功能。通常,分支要短得多,合并主要从开发分支到主(集成)开发流,很少从(或到)发布分支。

图2©pure-systems

这种方法不仅使画面更美观,也使真正的复用变得更容易实现。在图中,您看到的是变体(V1-V4),而不是产品,它们来自同一个共同的基础。从共享库中实际派生变体这一动作将作为独立活动执行,且通常通过配置或使用适当的可变性和变体管理工具(如 pure::variants)来实现。关键点在于此派生/实例化活动是在受版本控制的工件之上完成的,因此版本控制系统可用于记录实例,但不提供变体点机制。

总结

这让我回到了我最初的主张:如果可变性和变体的表示没有通过版本管理来实现(通过版本管理实现是个好主意,如上文),那么当涉及到产品线时,除了性能和可扩展性(由于更多的用户和更多的变化)之外,版本管理没有什么特别之处。

作者:Danilo Beuche

翻译:经纬恒润

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 汽车电子
    +关注

    关注

    3048

    文章

    9210

    浏览量

    173388
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    安勤科技发布新一代完整嵌入式板卡产品线

    近日,专注于工业计算机与嵌入式运算解决方案的安勤科技(AAEON),在德国纽伦堡举办的Embedded World 2026上正式展示了其最新一代完整嵌入式板卡产品线,包括ECM-ASL3
    的头像 发表于 05-20 10:27 737次阅读

    新品 | 1200V 62mm IGBT 7半桥模块产品线扩充

    新品1200V62mmIGBT7半桥模块产品线扩充英飞凌推出1200V62mm半桥模块产品扩充,额定电流涵盖450A到800A,采用预涂导热界面材料和共发射极配置产品
    的头像 发表于 05-07 17:04 2641次阅读
    新品 | 1200V 62mm IGBT 7半桥模块<b class='flag-5'>产品线</b>扩充

    EEPROM产品线全解析

    、RAID卡参数、硬件监控数据 - 汽车电子:ADAS系统参数、车载娱乐系统配置 - 工业自动化:高速数据采集系统、运动控制卡参数 三、Microwire接口EEPROM系列 核心特点 - 三线半双工
    发表于 05-06 15:18

    芯驰科技全面展示三大产品线的最新成果

    4月24日,国产汽车芯片领军企业芯驰科技在2026北京国际汽车展览会上举办发布会,以「芯之重器·驰领智行」为主题,全面展示在智能座舱、智能车控及具身智能三大产品线的最新成果,并正式宣布公司从汽车智能到通用智能的战略进阶。
    的头像 发表于 04-30 09:23 390次阅读

    广汽集团正式组建全新智能座舱产品线

    全新智能座舱产品线,助力品牌向上。这是继整车与动力总成业务单元相继落地并高效运转后,广汽集团自主板块在智能化领域布局迎来的又一次关键里程碑。
    的头像 发表于 04-21 14:08 262次阅读

    华邦电子携三大核心产品线首秀CITE 2026

    4 月 9 日,第十四届中国电子信息博览会(CITE)于深圳正式开幕,华邦电子重磅登陆深圳会展中心(福田)一号馆 1A010 展位,携客制化内存解决方案(CMS)、编码型闪存及 TrustME 安全闪存三大核心产品线首秀 CITE。
    的头像 发表于 04-11 14:18 1756次阅读
    华邦电子携三大核心<b class='flag-5'>产品线</b>首秀CITE 2026

    Ansible与SaltStack配置管理工具的对比

    在大规模服务器运维场景中,配置管理工具是基础设施自动化的核心组件。经过多年生产环境实践,Ansible和SaltStack作为两款主流的配置管理工具,各自占据了相当的市场份额。本文基于笔者在多个
    的头像 发表于 02-04 11:01 988次阅读

    沐曦股份正式推出曦索X系列全新GPU品牌与产品线

    1月27日,沐曦股份(股票代码:688802.SH)正式推出曦索X系列全新GPU品牌与产品线。该系列产品是面向科学智能场景深度优化的高性能计算芯片,旨在以强大计算能力赋能前沿科研领域,推动传统科学计算与人工智能驱动的科研新范式融合发展。
    的头像 发表于 01-28 17:14 958次阅读

    三星电子扩充2026年Micro RGB电视产品线

    三星电子宣布其将于2026年推出全新升级的Micro RGB电视产品线,涵盖65英寸级、75英寸级、85英寸级、100英寸级及115英寸级多种型号¹。此次产品线的扩充,标志着三星Micro RGB显示技术迈入新阶段,为高端家庭观影树立了全新标杆。
    的头像 发表于 12-26 14:11 984次阅读

    云知声联合行业伙伴推出多款智能硬件解决方案

    近日,云知声智慧生活产品线迎来一系列新产品和解决方案升级,大模型全面进入产品线,让AGI从“技术概念”切实走进“日常好用”的智慧化生活。
    的头像 发表于 10-29 13:47 1153次阅读

    德承发表全新MAGNET产品线,为机器视觉打造高效能DIN-Rail嵌入式工控机

    强固型边缘运算工控机品牌 ─ Cincoze德承正式推出全新Machine Computing ─ MAGNET产品线DIN-Rail嵌入式工控机系列。这是继强固型嵌入式工控机、工业平板工控机
    的头像 发表于 10-22 10:32 863次阅读
    德承发表全新MAGNET<b class='flag-5'>产品线</b>,为机器视觉打造高效能DIN-Rail嵌入式工控机

    国产工控机品牌英康仕:廿五载厚积薄发,自主产品线赋能智造未来

    英康仕工控自2000年成立以来,已在工业控制领域专注耕耘二十五载。历经长期的精密制造与研发技术沉淀,英康仕正稳步从专业的幕后伙伴,向自主品牌市场拓展,并依托其逐步完善的全国产化产品线,为市场提供着值得信赖的硬件基础。
    的头像 发表于 10-10 15:59 866次阅读
    国产工控机品牌英康仕:廿五载厚积薄发,自主<b class='flag-5'>产品线</b>赋能智造未来

    KAGA FEI扩展低功耗蓝牙模块产品线

    全球领先的短距离无线模块供应商 KAGA FEI 于近期推出 EC4L10BA1 和 EC4L05BA1,扩展其低功耗蓝牙模块产品线
    的头像 发表于 09-03 14:21 1995次阅读

    NVMe高速传输之摆脱XDMA设计13:PCIe请求模块设计(下)

    在接收到请求总线接口的请求事务后,当请求类型的值为0时,表示通过PCIE硬核的配置管理接口发送请求,由于请求接口的接口和时序与配置管理接口基本一致,因此此时直接将请求接口信号驱动到配置管理接口完成请求的发送,请求读数据和响应也通
    的头像 发表于 08-04 16:35 685次阅读
    NVMe高速传输之摆脱XDMA设计13:PCIe请求模块设计(下)

    索尼专业影像产品线迎来重要更新

    索尼专业影像产品线迎来重要更新,轻量化全媒体AI采集直播一体机PXW-Z200和轻量化行业新媒体AI一体机HXR-NX800两款摄录一体机产品即将于2025年6月18日发布V2.0版本固件升级。本次升级针对专业行业用户需求,新增多项实用功能并优化系统性能,进一步提升拍摄体
    的头像 发表于 06-11 16:17 1441次阅读