F. J. Silva, E. Borel, Evandro Lopes, Leonardo Gresta Paulino Murta
{"title":"Towards a Difference Detection Algorithm Aware of Refactoring-Related Changes","authors":"F. J. Silva, E. Borel, Evandro Lopes, Leonardo Gresta Paulino Murta","doi":"10.1109/SBES.2014.21","DOIUrl":null,"url":null,"abstract":"During the software life cycle, artifacts change in response to both corrective and evolutive demands. These changes usually entail source-code refactorings. However, conventional diff algorithms do not precisely capture such type of changes due to missing or inefficient detection of moving blocks of code within and amongst files. This paper introduces an approach designed to support understanding how two software versions differ, even if refactoring-related changes were performed. It analyzes different granularities in order to precisely detect block moves without requiring expressive computational power. The experimental results show that our approach provides results with higher precision for both line and word granularities, if compared to conventional approaches.","PeriodicalId":426125,"journal":{"name":"2014 Brazilian Symposium on Software Engineering","volume":"163 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2014 Brazilian Symposium on Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SBES.2014.21","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
Abstract
During the software life cycle, artifacts change in response to both corrective and evolutive demands. These changes usually entail source-code refactorings. However, conventional diff algorithms do not precisely capture such type of changes due to missing or inefficient detection of moving blocks of code within and amongst files. This paper introduces an approach designed to support understanding how two software versions differ, even if refactoring-related changes were performed. It analyzes different granularities in order to precisely detect block moves without requiring expressive computational power. The experimental results show that our approach provides results with higher precision for both line and word granularities, if compared to conventional approaches.