Anushri Jana, Bharti Chimdyalwar, Susheel Kumar, R. Venkatesh
{"title":"演化软件系统的快速分析","authors":"Anushri Jana, Bharti Chimdyalwar, Susheel Kumar, R. Venkatesh","doi":"10.1109/ISSREW55968.2022.00038","DOIUrl":null,"url":null,"abstract":"In this paper, we present an algorithm that efficiently updates results of dataflow analysis in response to incremental changes. Our incremental algorithm work in two phases: it compute summaries for selected procedures in phase 1 by traversing the call graph in bottom-up order and, in phase 2, it updates the dataflow values for selected procedures by traversing call graph in top-down order, thus making the analysis faster. The selection of procedures is done by comparing summaries across the version. We have implemented this algorithm in our proprietary static analysis tool, used by many clientele over the years, for automated defect detection. An evaluation of our algorithm on a core banking application shows that on an average it takes 90 % lesser time in comparison to an exhaustive analysis, demonstrating practical benefit of our algorithm on a real-world evolving software system.","PeriodicalId":178302,"journal":{"name":"2022 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Fast Analysis of Evolving Software Systems\",\"authors\":\"Anushri Jana, Bharti Chimdyalwar, Susheel Kumar, R. Venkatesh\",\"doi\":\"10.1109/ISSREW55968.2022.00038\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"In this paper, we present an algorithm that efficiently updates results of dataflow analysis in response to incremental changes. Our incremental algorithm work in two phases: it compute summaries for selected procedures in phase 1 by traversing the call graph in bottom-up order and, in phase 2, it updates the dataflow values for selected procedures by traversing call graph in top-down order, thus making the analysis faster. The selection of procedures is done by comparing summaries across the version. We have implemented this algorithm in our proprietary static analysis tool, used by many clientele over the years, for automated defect detection. An evaluation of our algorithm on a core banking application shows that on an average it takes 90 % lesser time in comparison to an exhaustive analysis, demonstrating practical benefit of our algorithm on a real-world evolving software system.\",\"PeriodicalId\":178302,\"journal\":{\"name\":\"2022 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)\",\"volume\":\"13 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2022 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ISSREW55968.2022.00038\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISSREW55968.2022.00038","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
In this paper, we present an algorithm that efficiently updates results of dataflow analysis in response to incremental changes. Our incremental algorithm work in two phases: it compute summaries for selected procedures in phase 1 by traversing the call graph in bottom-up order and, in phase 2, it updates the dataflow values for selected procedures by traversing call graph in top-down order, thus making the analysis faster. The selection of procedures is done by comparing summaries across the version. We have implemented this algorithm in our proprietary static analysis tool, used by many clientele over the years, for automated defect detection. An evaluation of our algorithm on a core banking application shows that on an average it takes 90 % lesser time in comparison to an exhaustive analysis, demonstrating practical benefit of our algorithm on a real-world evolving software system.