0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入產(chǎn)品線的配置管理

經(jīng)緯恒潤(rùn) ? 2022-01-12 10:29 ? 次閱讀

大家好,這是【產(chǎn)品線工程(PLE)專題】更新的第五篇,上一篇我們介紹了特征模型和特征-這是什么,這一篇我們介紹‘深入產(chǎn)品線的配置管理’

? pure-systems GmbH

如果您目前已經(jīng)閱讀了我們所有的白皮書,那么您應(yīng)該了解了特征、特征模型以及變體都不是“版本”。但是這里仍然有一些并未提及的事情:產(chǎn)品線的配置管理。接下來的這篇文章便是就該話題進(jìn)行討論。

產(chǎn)品線的配置管理是一件復(fù)雜的事情嗎?這是肯定的!產(chǎn)品線的配置管理必須要復(fù)雜嗎?并不完全是!可以說,單個(gè)系統(tǒng)開發(fā)的配置管理和產(chǎn)品線開發(fā)的配置管理之間沒有(重要的)區(qū)別,除非您做錯(cuò)了??赡苣鷷?huì)對(duì)此表示懷疑,那么針對(duì)這個(gè)觀點(diǎn),我們將會(huì)進(jìn)行更深入的探討。

配置管理系統(tǒng)的誤用及帶來的問題

首先,我將列出大家在產(chǎn)品線實(shí)施配置管理時(shí)可能會(huì)犯的錯(cuò)誤,即把它作為一個(gè)變異性和變體管理的系統(tǒng)來使用。通常情況下,配置管理系統(tǒng)(又稱版本控制系統(tǒng))提供一個(gè)被稱為分支的概念。分支意味著創(chuàng)建一組工件的副本并且隨后會(huì)對(duì)其進(jìn)行獨(dú)立于原件的修改。分支有許多適當(dāng)?shù)挠猛荆ㄎ覀儗⒃诤竺嬷v到)和一個(gè)相當(dāng)不恰當(dāng)?shù)挠猛荆簩⒎种ё鳛橘Y產(chǎn)復(fù)用管理的核心。

如果采用如下方式處理變體,例如首先創(chuàng)建分支,然后使用分支區(qū)分不同的產(chǎn)品。那么在大多數(shù)情況下,與其他的復(fù)用方式相比,這種方式會(huì)出現(xiàn)(不必要的)開銷,這是因?yàn)橥ǔS蟹种У墓ぜê?jiǎn)單的,我們假設(shè)針對(duì)單個(gè)文件的分支)不會(huì)被完全修改,并且在原始和分支副本之間存在一定數(shù)量(通常相當(dāng)大的)相同部分。

  • Q1--您怎么知道什么被復(fù)用了,以及在哪里被復(fù)用了?

設(shè)想一個(gè)場(chǎng)景,我們?cè)诜种Щ蛘咴剂髦邪l(fā)現(xiàn)了一個(gè)問題,(我們假定是在原始版本中發(fā)現(xiàn)的)。我們完成了修復(fù)工作并且遞交到版本管理系統(tǒng)中。目前為止,看起來一切安好?,F(xiàn)在,我們需要對(duì)這個(gè)分支做些事情。首先,我們注意到:分支的工件正在某些產(chǎn)品中使用,那么我們必須對(duì)其進(jìn)行修復(fù)。有些版本管理系統(tǒng)支持您在發(fā)生變化時(shí),在分支中找到相關(guān)的工件。目前看起來不錯(cuò)。在文件的某些部分發(fā)現(xiàn)了修復(fù),這些部分在原始文件和分支中看起來都是一樣的,似乎很容易簡(jiǎn)單地復(fù)制修復(fù)。不過雖然看起來這不是個(gè)問題,但它肯定會(huì)引起其他問題。

  • Q2--您怎么知道應(yīng)用的修正是正確的?

等一下! 您怎么知道在分支中文件的這一部分內(nèi)容是被允許修改的呢?變體的受管理粒度在文件中,因此,無論是對(duì)于版本管理系統(tǒng)還是對(duì)于人員,都沒有簡(jiǎn)單的方法去了解分別屬于原始和分支文件的多個(gè)相同實(shí)體(例如,文件中的行)是否應(yīng)該相同(不是實(shí)際變體的一部分,因此應(yīng)該共享),或者某些實(shí)體是否實(shí)際屬于變體(如分支時(shí)所預(yù)期的那樣)且不得更改。

我們可以舉一個(gè)例子,例如配置一個(gè)用于設(shè)置緩存區(qū)大小的常量參數(shù)。如果該參數(shù)同時(shí)在源算法和分支算法中使用,那么在源算法的實(shí)現(xiàn)中的修改并不意味著在分支的算法中進(jìn)行修改,分支中甚至可能不允許修改。因此,即便從技術(shù)上,在版本管理中應(yīng)用某修復(fù)程序不會(huì)顯示產(chǎn)生沖突,您也必須對(duì)該修復(fù)程序的哪個(gè)部分可以應(yīng)用于分支工件進(jìn)行檢查。在擁有恰當(dāng)?shù)淖詣?dòng)化測(cè)試套件的情況下,您必須對(duì)包含合并工件的所有產(chǎn)品進(jìn)行測(cè)試,以確保沒有產(chǎn)品受到損害。但在其他所有情況下(對(duì)于某些領(lǐng)域的自動(dòng)化測(cè)試套件是不可能的),基本上只能依靠工程師的經(jīng)驗(yàn)。

  • Q3--共享和非共享的資產(chǎn)與變更集

m如果分支的工件基本上代表了一個(gè)變體,并且(幾乎)不包含任何共享的代碼,那么這個(gè)問題的討論就不存在了。這意味著變體在文件的顆粒度上被適當(dāng)?shù)胤庋b了。在這種情況下,一個(gè)文件在原始副本和分支副本之間或者被共享,或者不被共享。如果所有的文件都如此,那么您只須處理包含了共享文件和非共享文件的變更集即可,但必須把它們分成只與共享文件有關(guān)的變更集和針對(duì)單一分支的變更集。

對(duì)于包含共享文件的變更集,必須對(duì)所有共享文件的實(shí)例進(jìn)行變更。但是如果您后來從以前的分支副本中創(chuàng)建了一個(gè)新的分支,該分支副本與原始的分支副本共享,但沒有與原始副本共享,那么情況就會(huì)變得復(fù)雜。再?gòu)?qiáng)調(diào)一次,在版本控制系統(tǒng)中跟蹤處理這種情況會(huì)很復(fù)雜。

  • Q4--它不只發(fā)生在文件上

到目前為止,我一直在談?wù)摗耙粋€(gè)文件”,但實(shí)際上,可能會(huì)存在成百上千的問題件。而且,因?yàn)閷?duì)于每一個(gè)變化,您都必須對(duì)每個(gè)分支進(jìn)行同樣的處理,所以隨著分支數(shù)量的增加,工作量也會(huì)急劇增加。雖然針對(duì)少量共享工件和少量的分支而言是可行的,但是少量的共享工件限制了可重用工件的數(shù)量,而少量的分支則限制了變體的數(shù)量。我們可以通過一張圖看到其復(fù)雜性。圖1顯示了一個(gè)典型的(簡(jiǎn)化的)來自版本控制系統(tǒng)的分支/合并日志(時(shí)間從左到右進(jìn)行)。使用典型的“分支&合并”策略,即創(chuàng)建現(xiàn)有系統(tǒng)的克隆,之后通過獨(dú)立維護(hù)的方式來管理七個(gè)產(chǎn)品(P1-P7)。顯然,使所有分支實(shí)例保持變化同步是一項(xiàng)相當(dāng)大的任務(wù)。由于進(jìn)行合并需要工作量,因此在大多數(shù)情況下,只有“成對(duì)的”合并發(fā)生,即從另一個(gè)產(chǎn)品中直接挑選一些部件,從而導(dǎo)致系統(tǒng)性的復(fù)用卻看起來互不相同。

圖1?pure-systems

  • 關(guān)于誤用的結(jié)論

總結(jié)一下,除非版本管理中工件顆粒度與變體顆粒度基本一致,否則版本管理中的分支并不利于表達(dá)變體。因此,無論您的版本管理系統(tǒng)的供應(yīng)商多么強(qiáng)調(diào)其處理變化的能力,您都需要注意顆粒度是否匹配。并且在工件是文件的情況下,出現(xiàn)顆粒度不匹配的情況幾乎是不可避免的。但是,也請(qǐng)不要誤會(huì)我的意思:您必須使用適當(dāng)?shù)陌姹竟芾韥砀櫮墓ぜ谄渖芷趦?nèi)的變化。只是不要將變體和變體管理混在其中。變體管理是一個(gè)獨(dú)立的、正交的維度,表達(dá)了在某一特定時(shí)間點(diǎn)可用于和被用于變體的內(nèi)容。

正確使用產(chǎn)品系列的配置管理系統(tǒng)

如果您現(xiàn)在想知道哪些分支在產(chǎn)品線開發(fā)中是有用的,可以這樣描述它們——在單個(gè)產(chǎn)品開發(fā)中,分支只適用于兩件事:將獨(dú)立開發(fā)活動(dòng)與主開發(fā)分支(通常稱為“功能分支”)進(jìn)行短期解耦,以及將(即將發(fā)布的)版本與主分支上正在進(jìn)行的更改(通常稱為“發(fā)布分支”)解耦。這兩個(gè)概念的描述可以在一些版本管理的電子書中看到(描述大多數(shù)獨(dú)立于版本,只需要將“trunk”替換為“主開發(fā)分支”即可)。應(yīng)用這些概念可以繪制一個(gè)相對(duì)于圖1而言更加清晰和美觀的圖(見圖2)。主開發(fā)流上方的分支(在下圖中稱為"集成")表示為發(fā)布創(chuàng)建的分支,下面的分支用于開發(fā)新功能。通常,分支要短得多,合并主要從開發(fā)分支到主(集成)開發(fā)流,很少?gòu)模ɑ虻剑┌l(fā)布分支。

圖2?pure-systems

這種方法不僅使畫面更美觀,也使真正的復(fù)用變得更容易實(shí)現(xiàn)。在圖中,您看到的是變體(V1-V4),而不是產(chǎn)品,它們來自同一個(gè)共同的基礎(chǔ)。從共享庫(kù)中實(shí)際派生變體這一動(dòng)作將作為獨(dú)立活動(dòng)執(zhí)行,且通常通過配置或使用適當(dāng)?shù)目勺冃院妥凅w管理工具(如 pure::variants)來實(shí)現(xiàn)。關(guān)鍵點(diǎn)在于此派生/實(shí)例化活動(dòng)是在受版本控制的工件之上完成的,因此版本控制系統(tǒng)可用于記錄實(shí)例,但不提供變體點(diǎn)機(jī)制。

總結(jié)

這讓我回到了我最初的主張:如果可變性和變體的表示沒有通過版本管理來實(shí)現(xiàn)(通過版本管理實(shí)現(xiàn)是個(gè)好主意,如上文),那么當(dāng)涉及到產(chǎn)品線時(shí),除了性能和可擴(kuò)展性(由于更多的用戶和更多的變化)之外,版本管理沒有什么特別之處。

作者:Danilo Beuche

翻譯:經(jīng)緯恒潤(rùn)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 汽車電子
    +關(guān)注

    關(guān)注

    3019

    文章

    7791

    瀏覽量

    165711
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Bourns 推出六款全新 Riedon? 工業(yè)分流電阻產(chǎn)品線

    供貨商,擴(kuò)展 Riedon? 工業(yè)分流電阻產(chǎn)品線,推出六款新型號(hào)。全新分流電阻具備卓越的電流處理能力,以滿足高精度電流檢測(cè)的需求。精準(zhǔn)測(cè)量在多項(xiàng)應(yīng)用中皆至關(guān)重要,包括電池管理系統(tǒng) (BMS)、太陽(yáng)能逆變器、焊接設(shè)備、熱處理設(shè)備、電池充電器、電源供應(yīng)器、陰
    發(fā)表于 09-09 16:24 ?501次閱讀
    Bourns 推出六款全新 Riedon? 工業(yè)分流電阻<b class='flag-5'>產(chǎn)品線</b>

    Nexperia、東芝和Navitas擴(kuò)展MOSFET產(chǎn)品線以應(yīng)對(duì)高效能需求

    公司紛紛擴(kuò)展了各自的MOSFET產(chǎn)品線,以滿足行業(yè)的挑戰(zhàn)和機(jī)遇。Navitas、東芝和Nexperia的新型MOSFETNexperia最近擴(kuò)展了其NextPowe
    的頭像 發(fā)表于 08-27 11:47 ?270次閱讀
    Nexperia、東芝和Navitas擴(kuò)展MOSFET<b class='flag-5'>產(chǎn)品線</b>以應(yīng)對(duì)高效能需求

    微盟電子AC-DC、DC-DC、 LDO產(chǎn)品線介紹

    微盟電子AC-DC、DC-DC、 LDO產(chǎn)品線介紹
    的頭像 發(fā)表于 08-19 14:25 ?640次閱讀
    微盟電子AC-DC、DC-DC、 LDO<b class='flag-5'>產(chǎn)品線</b>介紹

    瑞薩電子嵌入式產(chǎn)品線在醫(yī)療應(yīng)用領(lǐng)域中的布局思路

    本文將結(jié)合目前醫(yī)療領(lǐng)域中不同應(yīng)用方向?qū)?yīng)的技術(shù)需求以及瑞薩產(chǎn)品(MCU&MPU)的特點(diǎn),為大家解讀瑞薩嵌入式產(chǎn)品線在醫(yī)療領(lǐng)域的布局。
    的頭像 發(fā)表于 08-15 18:27 ?2841次閱讀
    瑞薩電子嵌入式<b class='flag-5'>產(chǎn)品線</b>在醫(yī)療應(yīng)用領(lǐng)域中的布局思路

    Marvell推出新的 Alaska P PCIe Retimer產(chǎn)品線

    新的 Alaska P PCIe Retimer產(chǎn)品線基于 Marvell 行業(yè)領(lǐng)先的 5nm PAM4 技術(shù)構(gòu)建,可擴(kuò)展人工智能加速器、GPU、CPU 和服務(wù)器內(nèi)其他組件之間的連接。 人工智能更高
    的頭像 發(fā)表于 07-11 16:02 ?839次閱讀

    蘋果調(diào)整頭顯產(chǎn)品線策略,標(biāo)準(zhǔn)版頭顯成新焦點(diǎn)

    在科技界的最新動(dòng)態(tài)中,蘋果公司再次展現(xiàn)了其對(duì)于產(chǎn)品線調(diào)整的獨(dú)特眼光。近日,有媒體透露,蘋果的頭顯產(chǎn)品線已經(jīng)明確劃分為Pro系列和標(biāo)準(zhǔn)版系列,且公司將采取一項(xiàng)重要的策略調(diào)整。   據(jù)悉,蘋果的頭
    的頭像 發(fā)表于 06-20 10:57 ?557次閱讀

    賽微微電攜三大核心產(chǎn)品線亮相CIBF2024電池展!

    2024年4月27日至29日,為期三天的CIBF電池展在重慶國(guó)際博覽中心盛大舉辦。借此行業(yè)盛事,賽微微電(股票代碼:688325)攜三大核心產(chǎn)品線——鋰電池保護(hù)芯片、電量計(jì)芯片、充電管理等其他芯片,全方位展示了公司在模擬芯片領(lǐng)域的研發(fā)成果,吸引了眾多行業(yè)人士的蒞臨參觀。
    的頭像 發(fā)表于 04-30 09:22 ?879次閱讀
    賽微微電攜三大核心<b class='flag-5'>產(chǎn)品線</b>亮相CIBF2024電池展!

    Microchip推出容量更大、速度更快的串行SRAM產(chǎn)品線

    為滿足客戶對(duì)更大更快的SRAM的普遍需求,MicrochipTechnology(微芯科技公司)擴(kuò)展了旗下串行SRAM產(chǎn)品線,容量最高可達(dá)4Mb,并將串行外設(shè)接口/串行四通道輸入/輸出接口(SPI
    的頭像 發(fā)表于 04-12 08:23 ?322次閱讀
    Microchip推出容量更大、速度更快的串行SRAM<b class='flag-5'>產(chǎn)品線</b>

    Microchip推出容量更大、速度更快的串行 SRAM產(chǎn)品線

    產(chǎn)品線提供了并行SRAM的低成本替代方案,容量高達(dá) 4 Mb,具有143 MHz SPI/SQI? 通信功能 ? 為滿足客戶對(duì)更大更快的 SRAM 的普遍需求,Microchip
    發(fā)表于 04-03 15:24 ?1123次閱讀

    AMD狠心砍掉兩大產(chǎn)品線

    AMD近日宣布,其CoolRunner CPLD和Spartan FPGA兩條可編程產(chǎn)品線將全面停產(chǎn)。這一決定引發(fā)了業(yè)界的高度關(guān)注。CPLD和FPGA作為數(shù)字電路設(shè)計(jì)中的核心組件,被廣泛應(yīng)用于通信、計(jì)算機(jī)、控制等多個(gè)領(lǐng)域。
    的頭像 發(fā)表于 01-19 14:28 ?756次閱讀

    中微愛芯電源產(chǎn)品線介紹

    ,覆蓋通訊、數(shù)據(jù)處理、工業(yè)控制、消費(fèi)電子、汽車電子等多個(gè)領(lǐng)域。中微愛芯不斷提高電源管理芯片的自主研發(fā)能力,持續(xù)優(yōu)化核心設(shè)計(jì)技術(shù)。目前,我司產(chǎn)品線已覆蓋線性穩(wěn)壓器LDO、電池管理、電荷泵電路、電源監(jiān)控、PWM控制器、漏電保護(hù)等多個(gè)
    的頭像 發(fā)表于 12-19 09:17 ?533次閱讀
    中微愛芯電源<b class='flag-5'>產(chǎn)品線</b>介紹

    民機(jī)機(jī)載軟件的配置管理

    配置管理(Configuration Management)在航空領(lǐng)域經(jīng)常又稱為構(gòu)型管理,是現(xiàn)代復(fù)雜產(chǎn)品研制的核心技術(shù)。與很多傳統(tǒng)觀念中配置管理是對(duì)文檔和版本的簡(jiǎn)單
    的頭像 發(fā)表于 12-01 16:15 ?738次閱讀
    民機(jī)機(jī)載軟件的<b class='flag-5'>配置管理</b>

    晶晨股份:預(yù)計(jì)今年Wi-Fi產(chǎn)品線較去年有大幅增長(zhǎng)

    到第三季度為止,晶晨的股票產(chǎn)品結(jié)構(gòu)更加均衡,進(jìn)口比重從前單一產(chǎn)品線比重超過50%發(fā)展為現(xiàn)在的三大主力產(chǎn)品線,一起(s, t, a),兩條新產(chǎn)品線(w, v)快速增長(zhǎng)。
    的頭像 發(fā)表于 12-01 15:25 ?680次閱讀

    德州儀器裁撤中國(guó)區(qū)MCU團(tuán)隊(duì) 原MCU產(chǎn)品線遷往印度

    德州儀器裁撤中國(guó)區(qū)MCU團(tuán)隊(duì) 原MCU產(chǎn)品線遷往印度 曾經(jīng)的德州儀器MCU團(tuán)隊(duì)是本土化運(yùn)營(yíng)最好的產(chǎn)品線之一,但是突然傳出消息德州儀器會(huì)裁撤掉中國(guó)區(qū)MCU團(tuán)隊(duì);原MCU產(chǎn)品線遷往印度。 從業(yè)內(nèi)人士爆出
    的頭像 發(fā)表于 11-20 15:06 ?430次閱讀

    Dynaconf 輕松實(shí)現(xiàn) Python 動(dòng)態(tài)配置管理

    Dynaconf 是一個(gè)Python的第三方模塊,旨在成為在 Python 中管理配置的最佳選擇。 它可以從各種來源讀取設(shè)置,包括環(huán)境變量、文件、服務(wù)器配置等。 它適用于任何類型的 Python
    的頭像 發(fā)表于 10-30 15:02 ?810次閱讀