简介:Modernsoftwaresystemsaresubjecttoacontinuousevolutionunderfrequentlyvaryingrequirementsandchangesinsystems'operationalenvironments.Lehman'slawofcontinuingchangedemandsforlong-livingandcontinuouslyevolvingsoftwaretoprolongitsproductivelifeandeconomicvaluebyaccommodatingchangesinexistingsoftware.Reusableknowledgeandpracticeshaveproventobesuccessfulforcontinuousdevelopmentandevolutionofthesoftwareeffectivelyandefficiently.However,challengessuchasempiricalacquisitionandsystematicapplicationofthereusableknowledgeandpracticesmustbeaddressedtoenableorenhancesoftwareevolution.Weinvestigatearchitecturechangelogs--mininghistoriesofarchitecture-centricsoftwareevolution--todiscoverchangepatternsthat1)supportreusabilityofarchitecturalchangesand2)enhancetheefficiencyofthearchitectureevolutionprocess.Wemodelarchitecturechangelogsasagraphandapplygraph-basedformalism(i.e.,graphminingtechniques)todiscoversoftwarearchitecturechangepatterns.Wehavedevelopedaprototypethatenablestool-drivenautomationanduserdecisionsupportduringsoftwareevolution.WehaveusedtheISO-IEC-9126modeltoqualitativelyevaluatetheproposedsolution.Theevaluationresultssuggestthattheproposedsolution1)enablesthereusabilityoffrequentarchitecturalchangesand2)enhancestheefficiencyofarchitecture-centricsoftwareevolutionprocess.Theproposedsolutionpromotesresearcheffortstoexploitthehistoryofarchitecturalchangestoempiricallydiscoverknowledgethatcanguidearchitecture-centricsoftwareevolution.