{"title":"Using fine-grained code change metrics to simulate software evolution","authors":"Zhongpeng Lin, E. J. Whitehead","doi":"10.1145/2593868.2593871","DOIUrl":null,"url":null,"abstract":"Software evolution simulation can provide support for making informed design decisions. In this research, we explored the distributions of fine-grained code change (FGCC) metrics and used them to build a simple simulator to evolve an existing source code file. The simulator generates synthetic changes to modify the source code analogous to how the code evolves in actual settings. By comparing the simulated evolution with the actual one, we found that the number and types of synthetic changes have no significant difference from those of the actual changes. Furthermore, the simulator is able to produce syntactically correct Java code, allowing us to analyze its static code metrics. The analysis shows that the distributions of method and field counts both have short tails at their left side, making it helpful in estimating the lower bounds for software growth. However, the actual method count falls below the distribution range produced by the simulation runs, indicating more sophisticated simulators are needed.","PeriodicalId":103819,"journal":{"name":"Workshop on Emerging Trends in Software Metrics","volume":"51 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-06-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Workshop on Emerging Trends in Software Metrics","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2593868.2593871","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Software evolution simulation can provide support for making informed design decisions. In this research, we explored the distributions of fine-grained code change (FGCC) metrics and used them to build a simple simulator to evolve an existing source code file. The simulator generates synthetic changes to modify the source code analogous to how the code evolves in actual settings. By comparing the simulated evolution with the actual one, we found that the number and types of synthetic changes have no significant difference from those of the actual changes. Furthermore, the simulator is able to produce syntactically correct Java code, allowing us to analyze its static code metrics. The analysis shows that the distributions of method and field counts both have short tails at their left side, making it helpful in estimating the lower bounds for software growth. However, the actual method count falls below the distribution range produced by the simulation runs, indicating more sophisticated simulators are needed.