{"title":"Using n-grams to rapidly characterise the evolution of software code","authors":"A. Rainer, Peter Lane, J. Malcolm, S. Scholz","doi":"10.1109/ASEW.2008.4686320","DOIUrl":null,"url":null,"abstract":"Text-based approaches to the analysis of software evolution are attractive because of the fine-grained, token-level comparisons they can generate. The use of such approaches has, however, been constrained by the lack of an efficient implementation. In this paper we demonstrate the ability of Ferret, which uses n-grams of 3 tokens, to characterise the evolution of software code. Ferretpsilas implementation operates in almost linear time and is at least an order of magnitude faster than the diff tool. Ferretpsilas output can be analysed to reveal several characteristics of software evolution, such as: the lifecycle of a single file, the degree of change between two files, and possible regression. In addition, the similarity scores produced by Ferret can be aggregated to measure larger parts of the system being analysed.","PeriodicalId":215885,"journal":{"name":"2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops","volume":"68 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ASEW.2008.4686320","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8
Abstract
Text-based approaches to the analysis of software evolution are attractive because of the fine-grained, token-level comparisons they can generate. The use of such approaches has, however, been constrained by the lack of an efficient implementation. In this paper we demonstrate the ability of Ferret, which uses n-grams of 3 tokens, to characterise the evolution of software code. Ferretpsilas implementation operates in almost linear time and is at least an order of magnitude faster than the diff tool. Ferretpsilas output can be analysed to reveal several characteristics of software evolution, such as: the lifecycle of a single file, the degree of change between two files, and possible regression. In addition, the similarity scores produced by Ferret can be aggregated to measure larger parts of the system being analysed.