您好,欢迎访问三七文档
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
本文标题:Differencing and Merging within an Evolving Produc
链接地址:https://www.777doc.com/doc-3182506 .html