{"title":"Exploring Large-Scale System Similarity Using Incremental Clone Detection and Live Scatterplots","authors":"J. Cordy","doi":"10.1109/ICPC.2011.25","DOIUrl":null,"url":null,"abstract":"Incremental clone detection is designed to efficiently find only those clones that cross between a previous version of a system and a new version in order to update a previous clone analysis. If we instead use a different system as the new version, then it can be used to find only those clones that cross between two different systems. Live scatter plots are a visualization technique that helps localize clones quickly using pop-up information directly from points in the scatter plot. In this paper we explore how these two can be used together to rapidly expose and analyze similarities between two different systems at several levels of abstraction. Using the NiCad incremental clone detector, we find function clones between two recent versions of Linux and FreeBSD, analyze the nature and causes of some of these similarities in detail, and compare our observations with the earlier study of token-sequence clones between previous versions of these systems using CCFinder almost a decade ago.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"25 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"20","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 IEEE 19th International Conference on Program Comprehension","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICPC.2011.25","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 20
Abstract
Incremental clone detection is designed to efficiently find only those clones that cross between a previous version of a system and a new version in order to update a previous clone analysis. If we instead use a different system as the new version, then it can be used to find only those clones that cross between two different systems. Live scatter plots are a visualization technique that helps localize clones quickly using pop-up information directly from points in the scatter plot. In this paper we explore how these two can be used together to rapidly expose and analyze similarities between two different systems at several levels of abstraction. Using the NiCad incremental clone detector, we find function clones between two recent versions of Linux and FreeBSD, analyze the nature and causes of some of these similarities in detail, and compare our observations with the earlier study of token-sequence clones between previous versions of these systems using CCFinder almost a decade ago.