Differencing and Merging within an Evolving Produc

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DifferencingandMergingwithinanEvolvingProductLineArchitectureP.Chen,M.Critchlow,A.Garg,C.VanderWesthuizen,A.vanderHoekDepartmentofInformaticsSchoolofInformationandComputerScienceUniversityofCalifornia,IrvineIrvine,CA92697-3425USA{pchen,critchlm,agarg,cvanderw,andre}@ics.uci.eduAbstract.Propagatingchangesfromoneplaceinaproductlinearchitecture(PLA)toanotherisadifficultproblemthatoccursinavarietyofsettings.Currently,noautomatedtoolsexistthathelpanarchitectindoingso,andperformingthetaskbyhandinthefaceofalargePLAcanbeerror-proneanddifficult.Toaddressthisproblem,wehavebuiltasetoftoolsforautomatingtheprocess.Ourapproachbreaksdownintoatwo-stepsolution:(1)automaticallydeterminingthedifferencebetweentwoselected(versionsof)aproductarchitecture,and(2)automaticallymergingthedifferencebackintoadifferentlocationintheoriginalPLA.Inthispaper,wedetaileachofthesetwostepsandevaluateoursolutiononanexamplewordprocessorPLA.1IntroductionConsiderthefollowingthreescenariosthatmayoccurinarchitectingaproductlinearchitecture(PLA):1.Aseriesofchangeshavebeenmadetooneparticularvariantofasubsystem.Afterthechangeshavebeenmade,itturnsouttheyareusefulinsomeoftheothervariantsaswell.Thearchitectnowwishestotakethechangesandapplythemtothoseothervariants[2].2.Inordertoexperimentwithanewpieceoffunctionalitywithoutinterferingwiththemainlineofdevelopment,thearchitectcreatesanewbranchandimplementsthefunctionalityonthisbranchfirst.Itturnsoutthatthefunctionalitycanbeincorporated,andthearchitectnowwishestomovethenewfunctionalitybackintothemainlineofdevelopment[1].3.Toensureaccurateandresponsivecustomerservice,companypolicyrequiresaproductarchitecturetobemaintainedindependentlyfromthemainPLAafterithasbeendeployedtoacustomer.Duringmaintenance,however,thearchitectmakessomechangestotheindividualproductarchitecturethatwouldbenefittheoverallPLAiftheycouldbeincorporated.ThearchitectnowwishestomovethosechangesbackintothePLA[4].2P.Chen,M.Critchlow,A.Garg,C.VanderWesthuizen,A.vanderHoekAcommonconcernthroughoutthesescenariosistheneedforthearchitecttobeabletopropagateasetofchangeswithintherealmofasinglePLA,e.g.,fromoneplaceintheproductPLAtoanother.Althoughitispossibletodothisbyhand,itmaynotalwaysbefeasible(ordesirable)whenconsideringaPLAconsistingofmanyinter-relatedproductsthateachcomprisealargesetofcomponents.Insuchcases,manuallypropagatingchangesishighlyerror-proneandlabor-intensive.Inthispaper,wedescribeoursolutiontothisproblem.OurapproachcentersontheuseofdifferencingandmergingtechniquesthatarespecifictoPLAs.Inparticular,wehavedesignedandimplementedtwoautomatedalgorithms:(1)adifferencingalgorithmfordeterminingthesetofchangesbetweentwo(versionsof)aproductarchitectureselectedoutofanoverallPLA,and(2)amergingalgorithmwithwhichsuchchangesaremergedbackintoadifferentlocationinthePLA.ThealgorithmscomplementMénage,ourdesignenvironmentformanagingtheevolutionofPLAs[8],andenhanceitwithautomatedsupportforpropagatingchangesthroughoutanevolvingPLA.Theremainderofthispaperisorganizedasfollows.Section2discussesouroverallapproach.Section3definesourrepresentationforcapturinganarchitecturaldifferenceandpresentsourdifferencingalgorithmindetail.Section4describesthemergingalgorithm,andillustrateshowitcanbeusedtopropagatechangesthroughoutaPLA.Section5discussesourexperienceinusingthealgorithms.WeconcludebybrieflydiscussingrelatedworkinSection6anddiscussingfutureworkinSection7.2ApproachFigure1illustratesouroverallapproachbasedonthethirdscenariodiscussedintheintroduction.First,aPLAispreciselydefined(forinstance,byusingMénage[8]).ThisresultsinaPLAspecificationfromwhichindividualproductarchitecturescanthenbeselectedfordeliverytocustomers(PAversion1).Basedoncustomerfeedback,PAversion1ischangedandevolvesintoversion2,whichis,onceagaindeliveredtothecustomer.ThechangesturnouttobeusefultosomepartsoftheoriginalPLAaswell,andnowmustbepropagatedintoitsspecification.Todoso,thearchitectfirstusesthedifferencingalgorithmtopreciselydeterminethechangesthatweremadebetweenPAversions1and2.Thisresultsinanarchitectural“diff”file,whichcanthenbemergedbackintotheproductlineinaspecifiedlocation,resultinginanewPLAthatcontainsthenewfunctionality.WemustmaketwoobservationsregardingtheprocesspresentedinFigure1.First,similarprocessescanbedefinedfortheotherscenariosdiscussedintheintroduction.Althoughthetoplineofprocessstepsandspecificationswillbedifferent,thesamedifferencingandmergingalgorithmswillbeusedinexactlythesamewaytopropagatedesiredchangeswithintheoriginalPLA.Thesecondobservationregardsthegeneralityoftheprocess:thealgorithmsarenotlimitedtodifferencingandmergingindividualproductarchitecturesinwhichallvariationpointshavebeenresolved.Instead,theyfullysupportoperationoverspecificationsthatstillmaycontain“open”variationpoints.DifferencingandMergingwithinanEvolvingProductLineArchitecture3Figure1.OverallProcessforScenario3.Inourpreviouswork,wedevelopeddifferencingandmergingalgorithmsthatoperateonsinglesoftwarearchitectures[11].Thesealgorithmslaythebasisforthealgorithmswediscusshere,buttheyalsoexhibitanumberofshortcomingsth

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功