首页 > 最新文献

2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)最新文献

英文 中文
Generalized Data Structure Synthesis 广义数据结构综合
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180211
Calvin Loncaric, Michael D. Ernst, E. Torlak
Data structure synthesis is the task of generating data structure implementations from high-level specifications. Recent work in this area has shown potential to save programmer time and reduce the risk of defects. Existing techniques focus on data structures for manipulating subsets of a single collection, but real-world programs often track multiple related collections and aggregate properties such as sums, counts, minimums, and maximums. This paper shows how to synthesize data structures that track subsets and aggregations of multiple related collections. Our technique decomposes the synthesis task into alternating steps of query synthesis and incrementalization. The query synthesis step implements pure operations over the data structure state by leveraging existing enumerative synthesis techniques, specialized to the data structures domain. The incrementalization step implements imperative state modifications by re-framing them as fresh queries that determine what to change, coupled with a small amount of code to apply the change. As an added benefit of this approach over previous work, the synthesized data structure is optimized for not only the queries in the specification but also the required update operations. We have evaluated our approach in four large case studies, demonstrating that these extensions are broadly applicable.
数据结构综合是从高级规范生成数据结构实现的任务。最近在这个领域的工作已经显示出节省程序员时间和减少缺陷风险的潜力。现有的技术关注于操作单个集合的子集的数据结构,但是实际的程序经常跟踪多个相关的集合和聚合属性,如总和、计数、最小值和最大值。本文展示了如何合成跟踪多个相关集合的子集和聚合的数据结构。我们的技术将合成任务分解为查询合成和增量化的交替步骤。查询合成步骤通过利用现有的专门用于数据结构领域的枚举合成技术,在数据结构状态上实现纯操作。增量化步骤通过将它们重新定义为确定要更改的内容的新查询,以及应用更改的少量代码,实现了命令式状态修改。与以前的工作相比,这种方法的另一个好处是,合成的数据结构不仅针对规范中的查询进行了优化,而且还针对所需的更新操作进行了优化。我们已经在四个大型案例研究中评估了我们的方法,证明了这些扩展是广泛适用的。
{"title":"Generalized Data Structure Synthesis","authors":"Calvin Loncaric, Michael D. Ernst, E. Torlak","doi":"10.1145/3180155.3180211","DOIUrl":"https://doi.org/10.1145/3180155.3180211","url":null,"abstract":"Data structure synthesis is the task of generating data structure implementations from high-level specifications. Recent work in this area has shown potential to save programmer time and reduce the risk of defects. Existing techniques focus on data structures for manipulating subsets of a single collection, but real-world programs often track multiple related collections and aggregate properties such as sums, counts, minimums, and maximums. This paper shows how to synthesize data structures that track subsets and aggregations of multiple related collections. Our technique decomposes the synthesis task into alternating steps of query synthesis and incrementalization. The query synthesis step implements pure operations over the data structure state by leveraging existing enumerative synthesis techniques, specialized to the data structures domain. The incrementalization step implements imperative state modifications by re-framing them as fresh queries that determine what to change, coupled with a small amount of code to apply the change. As an added benefit of this approach over previous work, the synthesized data structure is optimized for not only the queries in the specification but also the required update operations. We have evaluated our approach in four large case studies, demonstrating that these extensions are broadly applicable.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"19 1","pages":"958-968"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75342901","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}
引用次数: 33
Sentiment Analysis for Software Engineering: How Far Can We Go? 面向软件工程的情感分析:我们能走多远?
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180195
B. Lin, Fiorella Zampetti, G. Bavota, M. D. Penta, Michele Lanza, R. Oliveto
Sentiment analysis has been applied to various software engineering (SE) tasks, such as evaluating app reviews or analyzing developers' emotions in commit messages. Studies indicate that sentiment analysis tools provide unreliable results when used out-of-the-box, since they are not designed to process SE datasets. The silver bullet for a successful application of sentiment analysis tools to SE datasets might be their customization to the specific usage context. We describe our experience in building a software library recommender exploiting crowdsourced opinions mined from Stack Overflow (e.g., what is the sentiment of developers about the usability of a library). To reach our goal, we retrained—on a set of 40k manually labeled sentences/words extracted from Stack Overflow—a state-of-the-art sentiment analysis tool exploiting deep learning. Despite such an effort- and time-consuming training process, the results were negative. We changed our focus and performed a thorough investigation of the accuracy of these tools on a variety of SE datasets. Our results should warn the research community about the strong limitations of current sentiment analysis tools.
情感分析已经应用于各种软件工程(SE)任务,例如评估应用程序评论或分析提交消息中的开发人员情绪。研究表明,情绪分析工具在开箱即用时提供的结果不可靠,因为它们不是为处理SE数据集而设计的。情感分析工具成功应用于SE数据集的灵丹妙药可能是它们对特定使用上下文的定制。我们描述了我们建立软件库推荐的经验,利用从Stack Overflow中挖掘的众包意见(例如,开发人员对库的可用性的看法)。为了达到我们的目标,我们重新训练了一组从Stack overflow中提取的40k手动标记的句子/单词,这是一种利用深度学习的最先进的情感分析工具。尽管这样一个努力和耗时的训练过程,结果是消极的。我们改变了我们的重点,并对这些工具在各种SE数据集上的准确性进行了彻底的调查。我们的研究结果应该提醒研究界,当前的情感分析工具有很强的局限性。
{"title":"Sentiment Analysis for Software Engineering: How Far Can We Go?","authors":"B. Lin, Fiorella Zampetti, G. Bavota, M. D. Penta, Michele Lanza, R. Oliveto","doi":"10.1145/3180155.3180195","DOIUrl":"https://doi.org/10.1145/3180155.3180195","url":null,"abstract":"Sentiment analysis has been applied to various software engineering (SE) tasks, such as evaluating app reviews or analyzing developers' emotions in commit messages. Studies indicate that sentiment analysis tools provide unreliable results when used out-of-the-box, since they are not designed to process SE datasets. The silver bullet for a successful application of sentiment analysis tools to SE datasets might be their customization to the specific usage context. We describe our experience in building a software library recommender exploiting crowdsourced opinions mined from Stack Overflow (e.g., what is the sentiment of developers about the usability of a library). To reach our goal, we retrained—on a set of 40k manually labeled sentences/words extracted from Stack Overflow—a state-of-the-art sentiment analysis tool exploiting deep learning. Despite such an effort- and time-consuming training process, the results were negative. We changed our focus and performed a thorough investigation of the accuracy of these tools on a variety of SE datasets. Our results should warn the research community about the strong limitations of current sentiment analysis tools.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"33 1","pages":"94-104"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80051548","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}
引用次数: 155
Online App Review Analysis for Identifying Emerging Issues 用于识别新出现问题的在线应用程序评论分析
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180218
Cuiyun Gao, Jichuan Zeng, Michael R. Lyu, Irwin King
Detecting emerging issues (e.g., new bugs) timely and precisely is crucial for developers to update their apps. App reviews provide an opportunity to proactively collect user complaints and promptly improve apps' user experience, in terms of bug fixing and feature refinement. However, the tremendous quantities of reviews and noise words (e.g., misspelled words) increase the difficulties in accurately identifying newly-appearing app issues. In this paper, we propose a novel and automated framework IDEA, which aims to IDentify Emerging App issues effectively based on online review analysis. We evaluate IDEA on six popular apps from Google Play and Apple's App Store, employing the official app changelogs as our ground truth. Experiment results demonstrate the effectiveness of IDEA in identifying emerging app issues. Feedback from engineers and product managers shows that 88.9% of them think that the identified issues can facilitate app development in practice. Moreover, we have successfully applied IDEA to several products of Tencent, which serve hundreds of millions of users.
及时准确地发现新出现的问题(如新bug)对开发者更新应用至关重要。应用评论提供了一个主动收集用户投诉的机会,并在漏洞修复和功能完善方面迅速改善应用的用户体验。然而,大量的评论和噪音词(如拼写错误的单词)增加了准确识别新出现的应用问题的难度。在本文中,我们提出了一个新颖的自动化框架IDEA,旨在基于在线评论分析有效地识别新兴的应用程序问题。我们在Google Play和苹果App Store的6款热门应用中对IDEA进行了评估,并以官方应用更新日志为依据。实验结果证明了IDEA在识别新出现的应用程序问题方面的有效性。来自工程师和产品经理的反馈显示,88.9%的人认为已识别的问题可以在实践中促进应用开发。并且,我们已经成功地将IDEA应用到腾讯的多个产品中,服务于上亿的用户。
{"title":"Online App Review Analysis for Identifying Emerging Issues","authors":"Cuiyun Gao, Jichuan Zeng, Michael R. Lyu, Irwin King","doi":"10.1145/3180155.3180218","DOIUrl":"https://doi.org/10.1145/3180155.3180218","url":null,"abstract":"Detecting emerging issues (e.g., new bugs) timely and precisely is crucial for developers to update their apps. App reviews provide an opportunity to proactively collect user complaints and promptly improve apps' user experience, in terms of bug fixing and feature refinement. However, the tremendous quantities of reviews and noise words (e.g., misspelled words) increase the difficulties in accurately identifying newly-appearing app issues. In this paper, we propose a novel and automated framework IDEA, which aims to IDentify Emerging App issues effectively based on online review analysis. We evaluate IDEA on six popular apps from Google Play and Apple's App Store, employing the official app changelogs as our ground truth. Experiment results demonstrate the effectiveness of IDEA in identifying emerging app issues. Feedback from engineers and product managers shows that 88.9% of them think that the identified issues can facilitate app development in practice. Moreover, we have successfully applied IDEA to several products of Tencent, which serve hundreds of millions of users.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"6 1","pages":"48-58"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84886560","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}
引用次数: 95
Chopped Symbolic Execution 截断符号执行
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180251
David Trabish, Andrea Mattavelli, N. Rinetzky, Cristian Cadar
Symbolic execution is a powerful program analysis technique that systematically explores multiple program paths. However, despite important technical advances, symbolic execution often struggles to reach deep parts of the code due to the well-known path explosion problem and constraint solving limitations. In this paper, we propose chopped symbolic execution, a novel form of symbolic execution that allows users to specify uninter-esting parts of the code to exclude during the analysis, thus only targeting the exploration to paths of importance. However, the excluded parts are not summarily ignored, as this may lead to both false positives and false negatives. Instead, they are executed lazily, when their effect may be observable by code under anal-ysis. Chopped symbolic execution leverages various on-demand static analyses at runtime to automatically exclude code fragments while resolving their side effects, thus avoiding expensive manual annotations and imprecision. Our preliminary results show that the approach can effectively improve the effectiveness of symbolic execution in several different scenarios, including failure reproduction and test suite augmentation.
符号执行是一种强大的程序分析技术,可以系统地探索多个程序路径。然而,尽管有重要的技术进步,由于众所周知的路径爆炸问题和约束解决限制,符号执行常常难以到达代码的深层部分。在本文中,我们提出了切碎符号执行,这是一种新颖的符号执行形式,允许用户指定代码中不感兴趣的部分,以便在分析过程中排除,从而只针对重要路径的探索。然而,被排除的部分不能被草率地忽略,因为这可能导致假阳性和假阴性。相反,当它们的效果可以被正在分析的代码观察到时,它们被惰性地执行。切碎符号执行利用运行时的各种随需应变静态分析,在解决其副作用的同时自动排除代码片段,从而避免昂贵的手动注释和不精确。我们的初步结果表明,该方法可以在几种不同的场景下有效地提高符号执行的有效性,包括故障再现和测试套件扩展。
{"title":"Chopped Symbolic Execution","authors":"David Trabish, Andrea Mattavelli, N. Rinetzky, Cristian Cadar","doi":"10.1145/3180155.3180251","DOIUrl":"https://doi.org/10.1145/3180155.3180251","url":null,"abstract":"Symbolic execution is a powerful program analysis technique that systematically explores multiple program paths. However, despite important technical advances, symbolic execution often struggles to reach deep parts of the code due to the well-known path explosion problem and constraint solving limitations. In this paper, we propose chopped symbolic execution, a novel form of symbolic execution that allows users to specify uninter-esting parts of the code to exclude during the analysis, thus only targeting the exploration to paths of importance. However, the excluded parts are not summarily ignored, as this may lead to both false positives and false negatives. Instead, they are executed lazily, when their effect may be observable by code under anal-ysis. Chopped symbolic execution leverages various on-demand static analyses at runtime to automatically exclude code fragments while resolving their side effects, thus avoiding expensive manual annotations and imprecision. Our preliminary results show that the approach can effectively improve the effectiveness of symbolic execution in several different scenarios, including failure reproduction and test suite augmentation.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"73 1","pages":"350-360"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85706586","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}
引用次数: 73
Multi-objective Integer Programming Approaches for Solving Optimal Feature Selection Problem: A New Perspective on Multi-objective Optimization Problems in SBSE 求解最优特征选择问题的多目标整数规划方法:SBSE多目标优化问题的新视角
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180257
Yinxing Xue, Yanfu Li
The optimal feature selection problem in software product line is typically addressed by the approaches based on Indicator-based Evolutionary Algorithm (IBEA). In this study, we frst expose the mathematical nature of this problem — multi-objective binary integer linear programming. Then, we implement/propose three mathematical programming approaches to solve this problem at di?erent scales. For small-scale problems (roughly, less than 100 features), we implement two established approaches to fnd all exact solutions. For medium-to-large problems (roughly, more than 100 features), we propose one efcient approach that can generate a representation of the entire Pareto front in linear time complexity. The empirical results show that our proposed method can fnd signifcantly more non-dominated solutions in similar or less execution time, in comparison with IBEA and its recent enhancement (i.e., IBED that combines IBEA and Di?erential Evolution).
基于指标进化算法(IBEA)的方法是解决软件产品线最优特征选择问题的典型方法。在这项研究中,我们首先揭示了这个问题的数学本质-多目标二进制整数线性规划。然后,我们实现/提出了三种数学规划方法来解决这个问题。不同尺度。对于小规模问题(大约少于100个特征),我们实现了两种既定方法来找到所有精确解。对于大中型问题(大约超过100个特征),我们提出了一种有效的方法,可以在线性时间复杂度中生成整个帕累托前沿的表示。实证结果表明,与IBEA及其最近的改进(即结合IBEA和Di?为进化)。
{"title":"Multi-objective Integer Programming Approaches for Solving Optimal Feature Selection Problem: A New Perspective on Multi-objective Optimization Problems in SBSE","authors":"Yinxing Xue, Yanfu Li","doi":"10.1145/3180155.3180257","DOIUrl":"https://doi.org/10.1145/3180155.3180257","url":null,"abstract":"The optimal feature selection problem in software product line is typically addressed by the approaches based on Indicator-based Evolutionary Algorithm (IBEA). In this study, we frst expose the mathematical nature of this problem — multi-objective binary integer linear programming. Then, we implement/propose three mathematical programming approaches to solve this problem at di?erent scales. For small-scale problems (roughly, less than 100 features), we implement two established approaches to fnd all exact solutions. For medium-to-large problems (roughly, more than 100 features), we propose one efcient approach that can generate a representation of the entire Pareto front in linear time complexity. The empirical results show that our proposed method can fnd signifcantly more non-dominated solutions in similar or less execution time, in comparison with IBEA and its recent enhancement (i.e., IBED that combines IBEA and Di?erential Evolution).","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"315 1","pages":"1231-1242"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77782627","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}
引用次数: 14
Propagating Configuration Decisions with Modal Implication Graphs 用模态隐含图传播配置决策
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180159
S. Krieter, Thomas Thüm, Sandro Schulze, R. Schröter, G. Saake
Highly-configurable systems encompass thousands of interdependent configuration options, which require a non-trivial configuration process. Decision propagation enables a backtracking-free configuration process by computing values implied by user decisions. However, employing decision propagation for large-scale systems is a time-consuming task and, thus, can be a bottleneck in interactive configuration processes and analyses alike. We propose modal implication graphs to improve the performance of decision propagation by precomputing intermediate values used in the process. Our evaluation results show a significant improvement over state-of-the-art algorithms for 120 real-world systems.
高度可配置的系统包含数千个相互依赖的配置选项,这需要一个重要的配置过程。决策传播通过计算用户决策隐含的值来实现无回溯的配置过程。然而,在大规模系统中采用决策传播是一项耗时的任务,因此可能成为交互式配置过程和分析中的瓶颈。我们提出了模态隐含图,通过预计算决策传播过程中使用的中间值来提高决策传播的性能。我们的评估结果显示,在120个现实世界系统中,与最先进的算法相比,有了显著的改进。
{"title":"Propagating Configuration Decisions with Modal Implication Graphs","authors":"S. Krieter, Thomas Thüm, Sandro Schulze, R. Schröter, G. Saake","doi":"10.1145/3180155.3180159","DOIUrl":"https://doi.org/10.1145/3180155.3180159","url":null,"abstract":"Highly-configurable systems encompass thousands of interdependent configuration options, which require a non-trivial configuration process. Decision propagation enables a backtracking-free configuration process by computing values implied by user decisions. However, employing decision propagation for large-scale systems is a time-consuming task and, thus, can be a bottleneck in interactive configuration processes and analyses alike. We propose modal implication graphs to improve the performance of decision propagation by precomputing intermediate values used in the process. Our evaluation results show a significant improvement over state-of-the-art algorithms for 120 real-world systems.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"21 1","pages":"898-909"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80118624","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}
引用次数: 37
"Was My Contribution Fairly Reviewed?" A Framework to Study the Perception of Fairness in Modern Code Reviews “我的贡献是否得到了公正的审核?”一个研究现代代码评审中公平性感知的框架
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180217
D. Germán, G. Robles, Germán Poo-Caamaño, Xin Yang, Hajimu Iida, Katsuro Inoue
Modern code reviews improve the quality of software products. Although modern code reviews rely heavily on human interactions, little is known regarding whether they are performed fairly. Fairness plays a role in any process where decisions that affect others are made. When a system is perceived to be unfair, it affects negatively the productivity and motivation of its participants. In this paper, using fairness theory we create a framework that describes how fairness affects modern code reviews. To demonstrate its applicability, and the importance of fairness in code reviews, we conducted an em-pirical study that asked developers of a large industrial open source ecosystem (OpenStack) what their perceptions are regarding fairness in their code reviewing process. Our study shows that, in general, the code review process in OpenStack is perceived as fair; however, a significant portion of respondents perceive it as unfair. We also show that the variability in the way they prioritize code reviews signals a lack of consistency and the existence of bias (potentially increasing the perception of unfairness). The contributions of this paper are: (1) we propose a framework—based on fairness theory—for studying and managing social behaviour in modern code reviews, (2) we provide support for the framework through the results of a case study on a large industrial-backed open source project, (3) we present evidence that fairness is an issue in the code review process of a large open source ecosystem, and, (4) we present a set of guidelines for practitioners to address unfairness in modern code reviews.
现代代码审查提高了软件产品的质量。尽管现代代码审查在很大程度上依赖于人类的交互,但很少有人知道它们是否被公平地执行。在做出影响他人的决定的任何过程中,公平都发挥着作用。当一个系统被认为是不公平的,它会对参与者的生产力和动机产生负面影响。在本文中,我们使用公平理论创建了一个框架来描述公平如何影响现代代码审查。为了证明它的适用性,以及公平在代码审查中的重要性,我们进行了一项实证研究,询问了大型工业开源生态系统(OpenStack)的开发人员,他们对代码审查过程中的公平的看法。我们的研究表明,一般来说,OpenStack中的代码审查过程被认为是公平的;然而,很大一部分受访者认为这是不公平的。我们还表明,他们对代码审查进行优先级排序的方式的可变性表明缺乏一致性和偏见的存在(潜在地增加了不公平的感觉)。本文的贡献是:(1)我们对公平理论研究提出一个基于框架和管理社会行为在现代代码审查,(2)我们提供支持的框架通过一个案例研究的结果在大industrial-backed开源项目,(3)我们提供证据,代码评审过程公平是一个问题的一个大型开源生态系统,(4)我们为从业者提供一套准则来解决不公平在现代代码评审。
{"title":"\"Was My Contribution Fairly Reviewed?\" A Framework to Study the Perception of Fairness in Modern Code Reviews","authors":"D. Germán, G. Robles, Germán Poo-Caamaño, Xin Yang, Hajimu Iida, Katsuro Inoue","doi":"10.1145/3180155.3180217","DOIUrl":"https://doi.org/10.1145/3180155.3180217","url":null,"abstract":"Modern code reviews improve the quality of software products. Although modern code reviews rely heavily on human interactions, little is known regarding whether they are performed fairly. Fairness plays a role in any process where decisions that affect others are made. When a system is perceived to be unfair, it affects negatively the productivity and motivation of its participants. In this paper, using fairness theory we create a framework that describes how fairness affects modern code reviews. To demonstrate its applicability, and the importance of fairness in code reviews, we conducted an em-pirical study that asked developers of a large industrial open source ecosystem (OpenStack) what their perceptions are regarding fairness in their code reviewing process. Our study shows that, in general, the code review process in OpenStack is perceived as fair; however, a significant portion of respondents perceive it as unfair. We also show that the variability in the way they prioritize code reviews signals a lack of consistency and the existence of bias (potentially increasing the perception of unfairness). The contributions of this paper are: (1) we propose a framework—based on fairness theory—for studying and managing social behaviour in modern code reviews, (2) we provide support for the framework through the results of a case study on a large industrial-backed open source project, (3) we present evidence that fairness is an issue in the code review process of a large open source ecosystem, and, (4) we present a set of guidelines for practitioners to address unfairness in modern code reviews.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"54 1","pages":"523-534"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86868459","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}
引用次数: 43
Spatio-Temporal Context Reduction: A Pointer-Analysis-Based Static Approach for Detecting Use-After-Free Vulnerabilities 时空上下文还原:一种基于指针分析的静态方法,用于检测释放后使用漏洞
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180178
Hua Yan, Yulei Sui, Shiping Chen, Jingling Xue
Zero-day Use-After-Free (UAF) vulnerabilities are increasingly popular and highly dangerous, but few mitigations exist. We introduce a new pointer-analysis-based static analysis, CRed, for finding UAF bugs in multi-MLOC C source code efficiently and effectively. Cred achieves this by making three advances: (i) a spatio-temporal context reduction technique for scaling down soundly and precisely the exponential number of contexts that would otherwise be considered at a pair of free and use sites, (ii) a multi-stage analysis for filtering out false alarms efficiently, and (iii) a path-sensitive demand-driven approach for finding the points-to information required. We have implemented CRed in LLVM-3.8.0 and compared it with four different state-of-the-art static tools: CBMC (model checking), Clang (abstract interpretation), Coccinelle (pattern matching), and Supa (pointer analysis) using all the C test cases in Juliet Test Suite (JTS) and 10 open-source C applications. For the ground-truth validated with JTS, CRed detects all the 138 known UAF bugs as CBMC and Supa do while Clang and Coccinelle miss some bugs, with no false alarms from any tool. For practicality validated with the 10 applications (totaling 3+ MLOC), CRed reports 132 warnings including 85 bugs in 7.6 hours while the existing tools are either unscalable by terminating within 3 days only for one application (CBMC) or impractical by finding virtually no bugs (Clang and Coccinelle) or issuing an excessive number of false alarms (Supa).
零日免费后使用(UAF)漏洞日益流行和高度危险,但很少有缓解措施存在。本文介绍了一种新的基于指针分析的静态分析方法CRed,用于高效地查找多mloc C源代码中的UAF错误。Cred通过三个方面的进步实现了这一目标:(i)一种时空背景缩减技术,用于合理而精确地缩减一对免费和使用站点中需要考虑的指数级背景数量,(ii)一种多阶段分析,用于有效过滤假警报,以及(iii)一种路径敏感的需求驱动方法,用于找到所需的信息点。我们在LLVM-3.8.0中实现了CRed,并将其与四种不同的最先进的静态工具进行了比较:CBMC(模型检查),Clang(抽象解释),Coccinelle(模式匹配)和Supa(指针分析),使用朱丽叶测试套件(JTS)中的所有C测试用例和10个开源C应用程序。对于JTS验证的基础事实,CRed检测到所有138个已知的UAF错误,CBMC和Supa可以,而Clang和Coccinelle遗漏了一些错误,没有任何工具的假警报。在10个应用程序(总计3+ MLOC)验证的实用性方面,CRed在7.6小时内报告了132个警告,其中包括85个错误,而现有的工具要么无法扩展,只在3天内终止一个应用程序(CBMC),要么不切实际,几乎没有发现任何错误(Clang和Coccinelle)或发出过多的假警报(Supa)。
{"title":"Spatio-Temporal Context Reduction: A Pointer-Analysis-Based Static Approach for Detecting Use-After-Free Vulnerabilities","authors":"Hua Yan, Yulei Sui, Shiping Chen, Jingling Xue","doi":"10.1145/3180155.3180178","DOIUrl":"https://doi.org/10.1145/3180155.3180178","url":null,"abstract":"Zero-day Use-After-Free (UAF) vulnerabilities are increasingly popular and highly dangerous, but few mitigations exist. We introduce a new pointer-analysis-based static analysis, CRed, for finding UAF bugs in multi-MLOC C source code efficiently and effectively. Cred achieves this by making three advances: (i) a spatio-temporal context reduction technique for scaling down soundly and precisely the exponential number of contexts that would otherwise be considered at a pair of free and use sites, (ii) a multi-stage analysis for filtering out false alarms efficiently, and (iii) a path-sensitive demand-driven approach for finding the points-to information required. We have implemented CRed in LLVM-3.8.0 and compared it with four different state-of-the-art static tools: CBMC (model checking), Clang (abstract interpretation), Coccinelle (pattern matching), and Supa (pointer analysis) using all the C test cases in Juliet Test Suite (JTS) and 10 open-source C applications. For the ground-truth validated with JTS, CRed detects all the 138 known UAF bugs as CBMC and Supa do while Clang and Coccinelle miss some bugs, with no false alarms from any tool. For practicality validated with the 10 applications (totaling 3+ MLOC), CRed reports 132 warnings including 85 bugs in 7.6 hours while the existing tools are either unscalable by terminating within 3 days only for one application (CBMC) or impractical by finding virtually no bugs (Clang and Coccinelle) or issuing an excessive number of false alarms (Supa).","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"68 1","pages":"327-337"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88062504","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}
引用次数: 61
Nemo: Multi-criteria Test-Suite Minimization with Integer Nonlinear Programming 用整数非线性规划实现多准则测试集最小化
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180174
Jun-Wei Lin, Reyhaneh Jabbarvand, Joshua Garcia, S. Malek
Multi-criteria test-suite minimization aims to remove redundant test cases from a test suite based on some criteria such as code coverage, while trying to optimally maintain the capability of the reduced suite based on other criteria such as fault-detection effectiveness. Existing techniques addressing this problem with integer linear programming claim to produce optimal solutions. However, the multi-criteria test-suite minimization problem is inherently nonlinear, due to the fact that test cases are often dependent on each other in terms of test-case criteria. In this paper, we propose a framework that formulates the multi-criteria test-suite minimization problem as an integer nonlinear programming problem. To solve this problem optimally, we programmatically transform this nonlinear problem into a linear one and then solve the problem using modern linear solvers. We have implemented our framework as a tool, called Nemo, that supports a number of modern linear and nonlinear solvers. We have evaluated Nemo with a publicly available dataset and minimization problems involving multiple criteria including statement coverage, fault-revealing capability, and test execution time. The experimental results show that Nemo can be used to efficiently find an optimal solution for multi-criteria test-suite minimization problems with modern solvers, and the optimal solutions outperform the suboptimal ones by up to 164.29% in terms of the criteria considered in the problem.
多标准测试套件最小化的目的是基于某些标准(如代码覆盖率)从测试套件中删除冗余的测试用例,同时尝试基于其他标准(如故障检测有效性)以最佳方式维护减少的套件的功能。用整数线性规划解决这个问题的现有技术声称可以产生最优解。然而,多标准测试套件最小化问题本质上是非线性的,因为测试用例在测试用例标准方面经常是相互依赖的。本文提出了一个框架,将多准则测试集最小化问题表述为一个整数非线性规划问题。为了最优地求解该问题,我们将该非线性问题程序化地转化为线性问题,然后利用现代线性求解器求解该问题。我们已经将我们的框架作为一个工具实现,叫做Nemo,它支持许多现代的线性和非线性求解器。我们使用公开可用的数据集对Nemo进行了评估,并最小化了涉及多个标准的问题,包括语句覆盖率、故障揭示能力和测试执行时间。实验结果表明,Nemo可以使用现代求解器有效地找到多准则最小化测试集问题的最优解,就问题中考虑的准则而言,最优解比次优解高出164.29%。
{"title":"Nemo: Multi-criteria Test-Suite Minimization with Integer Nonlinear Programming","authors":"Jun-Wei Lin, Reyhaneh Jabbarvand, Joshua Garcia, S. Malek","doi":"10.1145/3180155.3180174","DOIUrl":"https://doi.org/10.1145/3180155.3180174","url":null,"abstract":"Multi-criteria test-suite minimization aims to remove redundant test cases from a test suite based on some criteria such as code coverage, while trying to optimally maintain the capability of the reduced suite based on other criteria such as fault-detection effectiveness. Existing techniques addressing this problem with integer linear programming claim to produce optimal solutions. However, the multi-criteria test-suite minimization problem is inherently nonlinear, due to the fact that test cases are often dependent on each other in terms of test-case criteria. In this paper, we propose a framework that formulates the multi-criteria test-suite minimization problem as an integer nonlinear programming problem. To solve this problem optimally, we programmatically transform this nonlinear problem into a linear one and then solve the problem using modern linear solvers. We have implemented our framework as a tool, called Nemo, that supports a number of modern linear and nonlinear solvers. We have evaluated Nemo with a publicly available dataset and minimization problems involving multiple criteria including statement coverage, fault-revealing capability, and test execution time. The experimental results show that Nemo can be used to efficiently find an optimal solution for multi-criteria test-suite minimization problems with modern solvers, and the optimal solutions outperform the suboptimal ones by up to 164.29% in terms of the criteria considered in the problem.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"15 1","pages":"1039-1049"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89776528","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}
引用次数: 16
From UI Design Image to GUI Skeleton: A Neural Machine Translator to Bootstrap Mobile GUI Implementation 从UI设计图像到GUI骨架:一个神经机器翻译引导移动GUI实现
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180240
Chunyang Chen, Ting Su, Guozhu Meng, Zhenchang Xing, Yang Liu
A GUI skeleton is the starting point for implementing a UI design image. To obtain a GUI skeleton from a UI design image, developers have to visually understand UI elements and their spatial layout in the image, and then translate this understanding into proper GUI components and their compositions. Automating this visual understanding and translation would be beneficial for bootstraping mobile GUI implementation, but it is a challenging task due to the diversity of UI designs and the complexity of GUI skeletons to generate. Existing tools are rigid as they depend on heuristically-designed visual understanding and GUI generation rules. In this paper, we present a neural machine translator that combines recent advances in computer vision and machine translation for translating a UI design image into a GUI skeleton. Our translator learns to extract visual features in UI images, encode these features' spatial layouts, and generate GUI skeletons in a unified neural network framework, without requiring manual rule development. For training our translator, we develop an automated GUI exploration method to automatically collect large-scale UI data from real-world applications. We carry out extensive experiments to evaluate the accuracy, generality and usefulness of our approach.
GUI框架是实现UI设计映像的起点。为了从UI设计图像中获得GUI框架,开发人员必须从视觉上理解UI元素及其在图像中的空间布局,然后将这种理解转化为适当的GUI组件及其组成。自动化这种视觉理解和翻译将有利于引导移动GUI实现,但由于UI设计的多样性和生成GUI框架的复杂性,这是一项具有挑战性的任务。现有的工具是刚性的,因为它们依赖于启发式设计的视觉理解和GUI生成规则。在本文中,我们提出了一个神经机器翻译器,它结合了计算机视觉和机器翻译的最新进展,用于将UI设计图像翻译成GUI骨架。我们的翻译器学习提取UI图像中的视觉特征,对这些特征的空间布局进行编码,并在统一的神经网络框架中生成GUI骨架,而无需手动开发规则。为了训练我们的翻译人员,我们开发了一种自动GUI探索方法,从实际应用程序中自动收集大规模UI数据。我们进行了大量的实验来评估我们的方法的准确性、通用性和实用性。
{"title":"From UI Design Image to GUI Skeleton: A Neural Machine Translator to Bootstrap Mobile GUI Implementation","authors":"Chunyang Chen, Ting Su, Guozhu Meng, Zhenchang Xing, Yang Liu","doi":"10.1145/3180155.3180240","DOIUrl":"https://doi.org/10.1145/3180155.3180240","url":null,"abstract":"A GUI skeleton is the starting point for implementing a UI design image. To obtain a GUI skeleton from a UI design image, developers have to visually understand UI elements and their spatial layout in the image, and then translate this understanding into proper GUI components and their compositions. Automating this visual understanding and translation would be beneficial for bootstraping mobile GUI implementation, but it is a challenging task due to the diversity of UI designs and the complexity of GUI skeletons to generate. Existing tools are rigid as they depend on heuristically-designed visual understanding and GUI generation rules. In this paper, we present a neural machine translator that combines recent advances in computer vision and machine translation for translating a UI design image into a GUI skeleton. Our translator learns to extract visual features in UI images, encode these features' spatial layouts, and generate GUI skeletons in a unified neural network framework, without requiring manual rule development. For training our translator, we develop an automated GUI exploration method to automatically collect large-scale UI data from real-world applications. We carry out extensive experiments to evaluate the accuracy, generality and usefulness of our approach.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"92 1","pages":"665-676"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73442203","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}
引用次数: 165
期刊
2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)
全部 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