首页 > 最新文献

Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering最新文献

英文 中文
Static loop analysis and its applications 静态循环分析及其应用
Xie Xiaofei
Loops are challenging structures in program analysis, and an effective loop analysis is crucial in the applications, such as symbolic execution and program verification. In the research, we will first perform a deep analysis and propose a classification according to the complexity of the loops. Then try to propose techniques for analyzing and summarizing different loops. At last, we apply the techniques in multiple applications.
循环是程序分析中具有挑战性的结构,有效的循环分析在符号执行和程序验证等应用中至关重要。在研究中,我们将首先进行深入的分析,并根据循环的复杂性提出分类。然后尝试提出分析和总结不同循环的技术。最后,我们将这些技术应用于多种应用中。
{"title":"Static loop analysis and its applications","authors":"Xie Xiaofei","doi":"10.1145/2950290.2983972","DOIUrl":"https://doi.org/10.1145/2950290.2983972","url":null,"abstract":"Loops are challenging structures in program analysis, and an effective loop analysis is crucial in the applications, such as symbolic execution and program verification. In the research, we will first perform a deep analysis and propose a classification according to the complexity of the loops. Then try to propose techniques for analyzing and summarizing different loops. At last, we apply the techniques in multiple applications.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75766613","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Studying developer gaze to empower software engineering research and practice 研究开发人员的目光,以增强软件工程研究和实践的能力
Bonita Sharif, Benjamin Clark, Jonathan I. Maletic
A new research paradigm is proposed that leverages developer eye gaze to improve the state of the art in software engineering research and practice. The vision of this new paradigm for use on software engineering tasks such as code summarization, code recommendations, prediction, and continuous traceability is described. Based on this new paradigm, it is foreseen that new benchmarks will emerge based on developer gaze. The research borrows from cognitive psychology, artificial intelligence, information retrieval, and data mining. It is hypothesized that new algorithms will be discovered that work with eye gaze data to help improve current IDEs, thus improving developer productivity. Conducting empirical studies using an eye tracker will lead to inventing, evaluating, and applying innovative methods and tools that use eye gaze to support the developer. The implications and challenges of this paradigm for future software engineering research is discussed.
提出了一种新的研究范式,利用开发人员的目光来提高软件工程研究和实践的水平。本文描述了这种用于软件工程任务(如代码总结、代码建议、预测和持续跟踪)的新范例的远景。基于这个新范例,可以预见新的基准将基于开发人员的关注而出现。该研究借鉴了认知心理学、人工智能、信息检索和数据挖掘。据推测,新的算法将被发现与眼睛注视数据一起工作,以帮助改进当前的ide,从而提高开发人员的生产力。使用眼动仪进行实证研究将导致发明,评估和应用创新的方法和工具,使用眼睛注视来支持开发人员。讨论了该范式对未来软件工程研究的影响和挑战。
{"title":"Studying developer gaze to empower software engineering research and practice","authors":"Bonita Sharif, Benjamin Clark, Jonathan I. Maletic","doi":"10.1145/2950290.2983988","DOIUrl":"https://doi.org/10.1145/2950290.2983988","url":null,"abstract":"A new research paradigm is proposed that leverages developer eye gaze to improve the state of the art in software engineering research and practice. The vision of this new paradigm for use on software engineering tasks such as code summarization, code recommendations, prediction, and continuous traceability is described. Based on this new paradigm, it is foreseen that new benchmarks will emerge based on developer gaze. The research borrows from cognitive psychology, artificial intelligence, information retrieval, and data mining. It is hypothesized that new algorithms will be discovered that work with eye gaze data to help improve current IDEs, thus improving developer productivity. Conducting empirical studies using an eye tracker will lead to inventing, evaluating, and applying innovative methods and tools that use eye gaze to support the developer. The implications and challenges of this paradigm for future software engineering research is discussed.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74707977","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Guided code synthesis using deep neural networks 引导代码合成使用深度神经网络
Carol V. Alexandru
Can we teach computers how to program? Recent advances in neural network research reveal that certain neural networks are able not only to learn the syntax, grammar and semantics of arbitrary character sequences, but also synthesize new samples `in the style of' the original training data. We explore the adaptation of these techniques to code classification, comprehension and completion.
我们能教计算机如何编程吗?神经网络研究的最新进展表明,某些神经网络不仅能够学习任意字符序列的句法、语法和语义,而且能够“以”原始训练数据的“风格”合成新的样本。我们探讨了这些技术在代码分类、理解和补全方面的适应性。
{"title":"Guided code synthesis using deep neural networks","authors":"Carol V. Alexandru","doi":"10.1145/2950290.2983951","DOIUrl":"https://doi.org/10.1145/2950290.2983951","url":null,"abstract":"Can we teach computers how to program? Recent advances in neural network research reveal that certain neural networks are able not only to learn the syntax, grammar and semantics of arbitrary character sequences, but also synthesize new samples `in the style of' the original training data. We explore the adaptation of these techniques to code classification, comprehension and completion.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72998219","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
FSX: a tool for fine-grained incremental unit test generation for C/C++ programs FSX:为C/ c++程序生成细粒度增量单元测试的工具
H. Yoshida, Susumu Tokumoto, M. Prasad, Indradeep Ghosh, T. Uehara
Automated unit test generation bears the promise of significantly reducing test cost and hence improving software quality. However, the maintenance cost of the automatically generated tests presents a significant barrier to adoption of this technology. To address this challenge, in previous work, we proposed a novel technique for automated and fine-grained incremental generation of unit tests through minimal augmentation of an existing test suite. In this paper we describe a tool FSX, implementing this technique. We describe the architecture, user-interface, and salient features of FSX, and specific practical use-cases of its technology. We also report on a real, large-scale deployment of FSX, as a practical validation of the underlying research contribution and of automated test generation research in general.
自动化单元测试生成承担着显著降低测试成本并因此提高软件质量的承诺。然而,自动生成测试的维护成本是采用该技术的一个重大障碍。为了应对这一挑战,在之前的工作中,我们提出了一种新的技术,通过对现有测试套件的最小扩展来实现单元测试的自动化和细粒度增量生成。在本文中,我们描述了一个工具FSX来实现这一技术。我们描述了FSX的架构、用户界面和显著特性,以及其技术的具体实际用例。我们还报告了一个真实的、大规模的FSX部署,作为对底层研究贡献和自动化测试生成研究的实际验证。
{"title":"FSX: a tool for fine-grained incremental unit test generation for C/C++ programs","authors":"H. Yoshida, Susumu Tokumoto, M. Prasad, Indradeep Ghosh, T. Uehara","doi":"10.1145/2950290.2983937","DOIUrl":"https://doi.org/10.1145/2950290.2983937","url":null,"abstract":"Automated unit test generation bears the promise of significantly reducing test cost and hence improving software quality. However, the maintenance cost of the automatically generated tests presents a significant barrier to adoption of this technology. To address this challenge, in previous work, we proposed a novel technique for automated and fine-grained incremental generation of unit tests through minimal augmentation of an existing test suite. In this paper we describe a tool FSX, implementing this technique. We describe the architecture, user-interface, and salient features of FSX, and specific practical use-cases of its technology. We also report on a real, large-scale deployment of FSX, as a practical validation of the underlying research contribution and of automated test generation research in general.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74330278","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Detecting table clones and smells in spreadsheets 在电子表格中检测表克隆和气味
Wensheng Dou, S. Cheung, Chushu Gao, Chang Xu, Liang Xu, Jun Wei
Spreadsheets are widely used by end users for various business tasks, such as data analysis and financial reporting. End users may perform similar tasks by cloning a block of cells (table) in their spreadsheets. The corresponding cells in these cloned tables are supposed to keep the same or similar computational semantics. However, when spreadsheets evolve, thus cloned tables can become inconsistent due to ad-hoc modifications, and as a result suffer from smells. In this paper, we propose TableCheck to detect table clones and related smells due to inconsistency among them. We observe that two tables with the same header information at their corresponding cells are likely to be table clones. Inspired by existing fingerprint-based code clone detection techniques, we developed a detection algorithm to detect this kind of table clones. We further detected outliers among corresponding cells as smells in the detected table clones. We implemented our idea into TableCheck, and applied it to real-world spreadsheets from the EUSES corpus. Experimental results show that table clones commonly exist (21.8%), and 25.6% of the spreadsheets with table clones suffer from smells due to inconsistency among these clones. TableCheck detected table clones and their smells with a precision of 92.2% and 85.5%, respectively, while existing techniques detected no more than 35.6% true smells that TableCheck could detect.
电子表格被最终用户广泛用于各种业务任务,例如数据分析和财务报告。最终用户可以通过克隆电子表格中的单元格块(表)来执行类似的任务。这些克隆表中的相应单元应该保持相同或相似的计算语义。然而,随着电子表格的发展,克隆的表可能会因为特别的修改而变得不一致,从而产生异味。在本文中,我们提出了TableCheck来检测表克隆和由于它们之间不一致而产生的相关气味。我们观察到,在其相应单元格中具有相同标头信息的两个表可能是表克隆。受现有基于指纹的代码克隆检测技术的启发,我们开发了一种检测这种表克隆的检测算法。我们进一步在检测到的表克隆中检测到相应细胞中的异常值。我们将我们的想法实现到TableCheck中,并将其应用到EUSES语料库中的真实电子表格中。实验结果表明,表克隆是普遍存在的(21.8%),并且有25.6%的带有表克隆的电子表格由于这些表克隆之间的不一致而产生气味。TableCheck检测表克隆及其气味的准确率分别为92.2%和85.5%,而现有技术检测到的真实气味的准确率不超过35.6%。
{"title":"Detecting table clones and smells in spreadsheets","authors":"Wensheng Dou, S. Cheung, Chushu Gao, Chang Xu, Liang Xu, Jun Wei","doi":"10.1145/2950290.2950359","DOIUrl":"https://doi.org/10.1145/2950290.2950359","url":null,"abstract":"Spreadsheets are widely used by end users for various business tasks, such as data analysis and financial reporting. End users may perform similar tasks by cloning a block of cells (table) in their spreadsheets. The corresponding cells in these cloned tables are supposed to keep the same or similar computational semantics. However, when spreadsheets evolve, thus cloned tables can become inconsistent due to ad-hoc modifications, and as a result suffer from smells. In this paper, we propose TableCheck to detect table clones and related smells due to inconsistency among them. We observe that two tables with the same header information at their corresponding cells are likely to be table clones. Inspired by existing fingerprint-based code clone detection techniques, we developed a detection algorithm to detect this kind of table clones. We further detected outliers among corresponding cells as smells in the detected table clones. We implemented our idea into TableCheck, and applied it to real-world spreadsheets from the EUSES corpus. Experimental results show that table clones commonly exist (21.8%), and 25.6% of the spreadsheets with table clones suffer from smells due to inconsistency among these clones. TableCheck detected table clones and their smells with a precision of 92.2% and 85.5%, respectively, while existing techniques detected no more than 35.6% true smells that TableCheck could detect.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85146632","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 21
A cross-tool communication study on program analysis tool notifications 程序分析工具通知的跨工具交流研究
Brittany Johnson, Rahul Pandita, Justin Smith, Denae Ford, Sarah Elder, E. Murphy-Hill, S. Heckman, Caitlin Sadowski
Program analysis tools use notifications to communicate with developers, but previous research suggests that developers encounter challenges that impede this communication. This paper describes a qualitative study that identifies 10 kinds of challenges that cause notifications to miscommunicate with developers. Our resulting notification communication theory reveals that many challenges span multiple tools and multiple levels of developer experience. Our results suggest that, for example, future tools that model developer experience could improve communication and help developers build more accurate mental models.
程序分析工具使用通知与开发人员进行交流,但是先前的研究表明开发人员遇到了阻碍这种交流的挑战。本文描述了一项定性研究,该研究确定了导致通知无法与开发者沟通的10种挑战。我们得出的通知通信理论表明,许多挑战涉及多个工具和多个开发人员经验水平。我们的结果表明,例如,未来的工具,建模开发人员的经验可以改善沟通,并帮助开发人员建立更准确的心理模型。
{"title":"A cross-tool communication study on program analysis tool notifications","authors":"Brittany Johnson, Rahul Pandita, Justin Smith, Denae Ford, Sarah Elder, E. Murphy-Hill, S. Heckman, Caitlin Sadowski","doi":"10.1145/2950290.2950304","DOIUrl":"https://doi.org/10.1145/2950290.2950304","url":null,"abstract":"Program analysis tools use notifications to communicate with developers, but previous research suggests that developers encounter challenges that impede this communication. This paper describes a qualitative study that identifies 10 kinds of challenges that cause notifications to miscommunicate with developers. Our resulting notification communication theory reveals that many challenges span multiple tools and multiple levels of developer experience. Our results suggest that, for example, future tools that model developer experience could improve communication and help developers build more accurate mental models.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85800559","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 26
Budgeted testing through an algorithmic lens 通过算法镜头进行预算测试
Myra B. Cohen, A. Pavan, N. V. Vinodchandran
Automated testing has been a focus of research for a long time. As such, we tend to think about this in a coverage centric manner. Testing budgets have also driven research such as prioritization and test selection, but as a secondary concern. As our systems get larger, are more dynamic, and impact more people with each change, we argue that we should switch from a coverage centric view to a budgeted testing centric view. Researchers in other fields have designed approximation algorithms for such budgeted scenarios and these are often simple to implement and run. In this paper we present an exemplar study on combinatorial interaction testing (CIT) to show that a budgeted greedy algorithm, when adapted to our problem for various budgets, does almost as well coverage-wise as a state of the art greedy CIT algorithm, better in some cases than a state of the art simulated annealing, and always improves over random. This suggests that we might benefit from switching our focus in large systems, from coverage to budgets.
自动化测试长期以来一直是研究的焦点。因此,我们倾向于以报道为中心的方式来考虑这个问题。测试预算也推动了诸如优先级和测试选择等研究,但这只是次要问题。随着我们的系统变得更大,更动态,并且每个变更影响更多的人,我们认为我们应该从以覆盖为中心的视图切换到以预算测试为中心的视图。其他领域的研究人员已经为这种预算场景设计了近似算法,这些算法通常很容易实现和运行。在本文中,我们提出了一个关于组合交互测试(CIT)的范例研究,以表明预算贪婪算法,当适应我们的问题时,对于各种预算,几乎与最先进的贪婪CIT算法一样具有覆盖智慧,在某些情况下比最先进的模拟退火算法更好,并且总是优于随机。这表明我们可能会受益于将我们的焦点从覆盖范围转移到预算。
{"title":"Budgeted testing through an algorithmic lens","authors":"Myra B. Cohen, A. Pavan, N. V. Vinodchandran","doi":"10.1145/2950290.2983987","DOIUrl":"https://doi.org/10.1145/2950290.2983987","url":null,"abstract":"Automated testing has been a focus of research for a long time. As such, we tend to think about this in a coverage centric manner. Testing budgets have also driven research such as prioritization and test selection, but as a secondary concern. As our systems get larger, are more dynamic, and impact more people with each change, we argue that we should switch from a coverage centric view to a budgeted testing centric view. Researchers in other fields have designed approximation algorithms for such budgeted scenarios and these are often simple to implement and run. In this paper we present an exemplar study on combinatorial interaction testing (CIT) to show that a budgeted greedy algorithm, when adapted to our problem for various budgets, does almost as well coverage-wise as a state of the art greedy CIT algorithm, better in some cases than a state of the art simulated annealing, and always improves over random. This suggests that we might benefit from switching our focus in large systems, from coverage to budgets.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76752869","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Causal impact analysis for app releases in google play google play应用发布的因果影响分析
William J. Martin, Federica Sarro, M. Harman
App developers would like to understand the impact of their own and their competitors’ software releases. To address this we introduce Causal Impact Release Analysis for app stores, and our tool, CIRA, that implements this analysis. We mined 38,858 popular Google Play apps, over a period of 12 months. For these apps, we identified 26,339 releases for which there was adequate prior and posterior time series data to facilitate causal impact analysis. We found that 33% of these releases caused a statistically significant change in user ratings. We use our approach to reveal important characteristics that distinguish causal significance in Google Play. To explore the actionability of causal impact analysis, we elicited the opinions of app developers: 56 companies responded, 78% concurred with the causal assessment, of which 33% claimed that their company would consider changing its app release strategy as a result of our findings.
应用程序开发人员希望了解他们自己和竞争对手的软件发布的影响。为了解决这个问题,我们为应用商店引入了因果影响发布分析,我们的工具CIRA实现了这一分析。我们在12个月的时间里挖掘了38858款受欢迎的Google Play应用。对于这些应用,我们确定了26,339个版本,其中有足够的先验和后验时间序列数据来促进因果影响分析。我们发现其中33%的发行在用户评级上产生了显著的变化。我们用自己的方法揭示了区分Google Play因果关系的重要特征。为了探讨因果影响分析的可操作性,我们征求了应用开发者的意见:56家公司回应,78%同意因果评估,其中33%声称他们的公司会考虑根据我们的发现改变其应用发布策略。
{"title":"Causal impact analysis for app releases in google play","authors":"William J. Martin, Federica Sarro, M. Harman","doi":"10.1145/2950290.2950320","DOIUrl":"https://doi.org/10.1145/2950290.2950320","url":null,"abstract":"App developers would like to understand the impact of their own and their competitors’ software releases. To address this we introduce Causal Impact Release Analysis for app stores, and our tool, CIRA, that implements this analysis. We mined 38,858 popular Google Play apps, over a period of 12 months. For these apps, we identified 26,339 releases for which there was adequate prior and posterior time series data to facilitate causal impact analysis. We found that 33% of these releases caused a statistically significant change in user ratings. We use our approach to reveal important characteristics that distinguish causal significance in Google Play. To explore the actionability of causal impact analysis, we elicited the opinions of app developers: 56 companies responded, 78% concurred with the causal assessment, of which 33% claimed that their company would consider changing its app release strategy as a result of our findings.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81314159","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 77
Code relatives: detecting similarly behaving software 代码相关:检测类似行为的软件
Fang-Hsiang Su, Jonathan Bell, Kenneth Harvey, S. Sethumadhavan, G. Kaiser, T. Jebara
Detecting “similar code” is useful for many software engineering tasks. Current tools can help detect code with statically similar syntactic and–or semantic features (code clones) and with dynamically similar functional input/output (simions). Unfortunately, some code fragments that behave similarly at the finer granularity of their execution traces may be ignored. In this paper, we propose the term “code relatives” to refer to code with similar execution behavior. We define code relatives and then present DyCLINK, our approach to detecting code relatives within and across codebases. DyCLINK records instruction-level traces from sample executions, organizes the traces into instruction-level dynamic dependence graphs, and employs our specialized subgraph matching algorithm to efficiently compare the executions of candidate code relatives. In our experiments, DyCLINK analyzed 422+ million prospective subgraph matches in only 43 minutes. We compared DyCLINK to one static code clone detector from the community and to our implementation of a dynamic simion detector. The results show that DyCLINK effectively detects code relatives with a reasonable analysis time.
检测“相似代码”对于许多软件工程任务都很有用。当前的工具可以帮助检测具有静态相似语法和/或语义特性(代码克隆)和动态相似功能输入/输出(模拟)的代码。不幸的是,一些在执行轨迹的更细粒度上表现相似的代码片段可能会被忽略。在本文中,我们提出了“代码相关”一词来指代具有相似执行行为的代码。我们定义了代码相关性,然后介绍了DyCLINK,这是我们在代码库内部和代码库之间检测代码相关性的方法。DyCLINK记录样本执行的指令级跟踪,将这些跟踪组织到指令级动态依赖图中,并使用我们专门的子图匹配算法来有效地比较候选代码相关项的执行。在我们的实验中,DyCLINK仅在43分钟内分析了4.22亿个潜在子图匹配。我们将DyCLINK与来自社区的一个静态代码克隆检测器和我们实现的一个动态克隆检测器进行了比较。结果表明,DyCLINK可以在合理的分析时间内有效地检测代码相关性。
{"title":"Code relatives: detecting similarly behaving software","authors":"Fang-Hsiang Su, Jonathan Bell, Kenneth Harvey, S. Sethumadhavan, G. Kaiser, T. Jebara","doi":"10.1145/2950290.2950321","DOIUrl":"https://doi.org/10.1145/2950290.2950321","url":null,"abstract":"Detecting “similar code” is useful for many software engineering tasks. Current tools can help detect code with statically similar syntactic and–or semantic features (code clones) and with dynamically similar functional input/output (simions). Unfortunately, some code fragments that behave similarly at the finer granularity of their execution traces may be ignored. In this paper, we propose the term “code relatives” to refer to code with similar execution behavior. We define code relatives and then present DyCLINK, our approach to detecting code relatives within and across codebases. DyCLINK records instruction-level traces from sample executions, organizes the traces into instruction-level dynamic dependence graphs, and employs our specialized subgraph matching algorithm to efficiently compare the executions of candidate code relatives. In our experiments, DyCLINK analyzed 422+ million prospective subgraph matches in only 43 minutes. We compared DyCLINK to one static code clone detector from the community and to our implementation of a dynamic simion detector. The results show that DyCLINK effectively detects code relatives with a reasonable analysis time.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78648733","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 55
Developer workflow at google (showcase) google的开发者工作流程(展示)
Caitlin Sadowski
This talk describes the developer workflow at Google, and our use of program analysis, testing, metrics, and tooling to reduce errors when creating and committing changes to source code. Software development at Google has several unique characteristics such as our monolithic codebase and distributed hermetic build system. Changes are vetted both manually, via our internal code review tool, and automatically, via sources such as the Tricorder program analysis platform and our automated testing infrastructure.
这个演讲描述了Google的开发者工作流程,以及我们在创建和提交源代码变更时使用的程序分析、测试、度量和工具来减少错误。谷歌的软件开发有几个独特的特点,比如我们的单片代码库和分布式密封构建系统。通过我们的内部代码审查工具手动审查变更,以及通过诸如Tricorder程序分析平台和我们的自动化测试基础设施等来源自动审查变更。
{"title":"Developer workflow at google (showcase)","authors":"Caitlin Sadowski","doi":"10.1145/2950290.2994156","DOIUrl":"https://doi.org/10.1145/2950290.2994156","url":null,"abstract":"This talk describes the developer workflow at Google, and our use of program analysis, testing, metrics, and tooling to reduce errors when creating and committing changes to source code. Software development at Google has several unique characteristics such as our monolithic codebase and distributed hermetic build system. Changes are vetted both manually, via our internal code review tool, and automatically, via sources such as the Tricorder program analysis platform and our automated testing infrastructure.","PeriodicalId":20532,"journal":{"name":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2016-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87116577","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1