首页 > 最新文献

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

英文 中文
Debugging Data Flows in Reactive Programs 调试响应式程序中的数据流
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180156
Herman Banken, E. Meijer, Georgios Gousios
Reactive Programming is a style of programming that provides developers with a set of abstractions that facilitate event handling and stream processing. Traditional debug tools lack support for Reactive Programming, leading developers to fallback to the most rudimentary debug tool available: logging to the console. In this paper, we present the design and implementation of RxFiddle, a visualization and debugging tool targeted to Rx, the most popular form of Reactive Programming. RxFiddle visualizes the dependencies and structure of the data flow, as well as the data inside the flow. We evaluate RxFiddle with an experiment involving 111 developers. The results show that RxFiddle can help developers finish debugging tasks faster than with traditional debugging tools.
响应式编程是一种编程风格,它为开发人员提供了一组抽象,以方便事件处理和流处理。传统的调试工具缺乏对响应式编程的支持,导致开发人员退回到最基本的调试工具:登录到控制台。在本文中,我们介绍了RxFiddle的设计和实现,这是一个针对Rx的可视化和调试工具,Rx是最流行的响应式编程形式。RxFiddle可视化数据流的依赖关系和结构,以及流中的数据。我们通过涉及111名开发人员的实验来评估RxFiddle。结果表明,RxFiddle可以帮助开发人员比传统的调试工具更快地完成调试任务。
{"title":"Debugging Data Flows in Reactive Programs","authors":"Herman Banken, E. Meijer, Georgios Gousios","doi":"10.1145/3180155.3180156","DOIUrl":"https://doi.org/10.1145/3180155.3180156","url":null,"abstract":"Reactive Programming is a style of programming that provides developers with a set of abstractions that facilitate event handling and stream processing. Traditional debug tools lack support for Reactive Programming, leading developers to fallback to the most rudimentary debug tool available: logging to the console. In this paper, we present the design and implementation of RxFiddle, a visualization and debugging tool targeted to Rx, the most popular form of Reactive Programming. RxFiddle visualizes the dependencies and structure of the data flow, as well as the data inside the flow. We evaluate RxFiddle with an experiment involving 111 developers. The results show that RxFiddle can help developers finish debugging tasks faster than with traditional debugging tools.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"30 1","pages":"752-763"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85541804","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}
引用次数: 22
Automated Repair of Mobile Friendly Problems in Web Pages 网页中移动友好问题的自动修复
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180262
Sonal Mahajan, Negarsadat Abolhassani, Phil McMinn, William G. J. Halfond
Mobile devices have become a primary means of accessing the Internet. Unfortunately, many websites are not designed to be mobile friendly. This results in problems such as unreadable text, cluttered navigation, and content over owing a device's viewport; all of which can lead to a frustrating and poor user experience. Existing techniques are limited in helping developers repair these mobile friendly problems. To address this limitation of prior work, we designed a novel automated approach for repairing mobile friendly problems in web pages. Our empirical evaluation showed that our approach was able to successfully resolve mobile friendly problems in 95% of the evaluation subjects. In a user study, participants preferred our repaired versions of the subjects and also considered the repaired pages to be more readable than the originals.
移动设备已经成为访问互联网的主要手段。不幸的是,许多网站的设计都不适合移动设备。这将导致一些问题,如不可读的文本,混乱的导航,以及超过设备视口的内容;所有这些都可能导致令人沮丧和糟糕的用户体验。现有的技术在帮助开发人员修复这些移动友好问题方面是有限的。为了解决先前工作的这一局限性,我们设计了一种新的自动化方法来修复网页中的移动友好问题。我们的实证评估表明,我们的方法能够成功地解决95%的评估对象的移动友好问题。在一项用户研究中,参与者更喜欢我们修复后的主题,也认为修复后的页面比原件更具可读性。
{"title":"Automated Repair of Mobile Friendly Problems in Web Pages","authors":"Sonal Mahajan, Negarsadat Abolhassani, Phil McMinn, William G. J. Halfond","doi":"10.1145/3180155.3180262","DOIUrl":"https://doi.org/10.1145/3180155.3180262","url":null,"abstract":"Mobile devices have become a primary means of accessing the Internet. Unfortunately, many websites are not designed to be mobile friendly. This results in problems such as unreadable text, cluttered navigation, and content over owing a device's viewport; all of which can lead to a frustrating and poor user experience. Existing techniques are limited in helping developers repair these mobile friendly problems. To address this limitation of prior work, we designed a novel automated approach for repairing mobile friendly problems in web pages. Our empirical evaluation showed that our approach was able to successfully resolve mobile friendly problems in 95% of the evaluation subjects. In a user study, participants preferred our repaired versions of the subjects and also considered the repaired pages to be more readable than the originals.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"178 1","pages":"140-150"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82996122","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}
引用次数: 32
When Not to Comment: Questions and Tradeoffs with API Documentation for C++ Projects 何时不注释:c++项目API文档的问题和权衡
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180176
Andrew Head, Caitlin Sadowski, E. Murphy-Hill, Andrea Knight
Without usable and accurate documentation of how to use an API, developers can find themselves deterred from reusing relevant code. In C++, one place developers can find documentation is in a header file. When information is missing, they may look at the corresponding implementation code. To understand what's missing from C++ API documentation and the factors influencing whether it will be fixed, we conducted a mixed-methods study involving two experience sampling surveys with hundreds of developers at the moment they visited implementation code, interviews with 18 of those developers, and interviews with 8 API maintainers. In many cases, updating documentation may provide only limited value for developers, while requiring effort maintainers don't want to invest. We identify a set of questions maintainers and tool developers should consider when improving API-level documentation.
如果没有关于如何使用API的可用且准确的文档,开发人员可能会发现自己无法重用相关代码。在c++中,开发人员可以在头文件中找到文档。当缺少信息时,他们可能会查看相应的实现代码。为了了解c++ API文档中缺失的内容以及影响其是否会被修复的因素,我们进行了一项混合方法研究,包括对数百名访问实现代码的开发人员进行两次经验抽样调查,对其中18名开发人员进行访谈,并对8名API维护者进行访谈。在许多情况下,更新文档可能只对开发人员提供有限的价值,而需要维护者不愿意投入精力。我们确定了一组维护者和工具开发人员在改进api级文档时应该考虑的问题。
{"title":"When Not to Comment: Questions and Tradeoffs with API Documentation for C++ Projects","authors":"Andrew Head, Caitlin Sadowski, E. Murphy-Hill, Andrea Knight","doi":"10.1145/3180155.3180176","DOIUrl":"https://doi.org/10.1145/3180155.3180176","url":null,"abstract":"Without usable and accurate documentation of how to use an API, developers can find themselves deterred from reusing relevant code. In C++, one place developers can find documentation is in a header file. When information is missing, they may look at the corresponding implementation code. To understand what's missing from C++ API documentation and the factors influencing whether it will be fixed, we conducted a mixed-methods study involving two experience sampling surveys with hundreds of developers at the moment they visited implementation code, interviews with 18 of those developers, and interviews with 8 API maintainers. In many cases, updating documentation may provide only limited value for developers, while requiring effort maintainers don't want to invest. We identify a set of questions maintainers and tool developers should consider when improving API-level documentation.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"66 1","pages":"643-653"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83575452","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}
引用次数: 24
Goal-Conflict Likelihood Assessment Based on Model Counting 基于模型计数的目标冲突可能性评估
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180261
Renzo Degiovanni, Pablo F. Castro, Marcelo Arroyo, Marcelo Ruiz, Nazareno Aguirre, M. Frias
In goal-oriented requirements engineering approaches, conflict analysis has been proposed as an abstraction for risk analysis. Intuitively, given a set of expected goals to be achieved by the system-to-be, a conflict represents a subtle situation that makes goals diverge, i.e., not be satisfiable as a whole. Conflict analysis is typically driven by the identify-assess-control cycle, aimed at identifying, assessing and resolving conflicts that may obstruct the satisfaction of the expected goals. In particular, the assessment step is concerned with evaluating how likely the identified conflicts are, and how likely and severe are their consequences. So far, existing assessment approaches restrict their analysis to obstacles (conflicts that prevent the satisfaction of a single goal), and assume that certain probabilistic information on the domain is provided, that needs to be previously elicited from experienced users, statistical data or simulations. In this paper, we present a novel automated approach to assess how likely a conflict is, that applies to general conflicts (not only obstacles) without requiring probabilistic information on the domain. Intuitively, given the LTL formulation of the domain and of a set of goals to be achieved, we compute goal conflicts, and exploit string model counting techniques to estimate the likelihood of the occurrence of the corresponding conflicting situations and the severity in which these affect the satisfaction of the goals. This information can then be used to prioritize conflicts to be resolved, and suggest which goals to drive attention to for refinements.
在面向目标的需求工程方法中,冲突分析被提出作为风险分析的抽象。直观地说,给定系统要实现的一组预期目标,冲突代表了一种微妙的情况,这种情况会使目标产生分歧,也就是说,作为一个整体是不可满足的。冲突分析通常由识别-评估-控制循环驱动,旨在识别、评估和解决可能阻碍预期目标实现的冲突。特别地,评估步骤关注于评估确定冲突的可能性,以及其后果的可能性和严重程度。到目前为止,现有的评估方法将它们的分析限制在障碍(阻止单个目标满足的冲突)上,并假设提供了领域的某些概率信息,这些信息需要事先从有经验的用户、统计数据或模拟中得出。在本文中,我们提出了一种新的自动化方法来评估冲突的可能性,该方法适用于一般冲突(不仅仅是障碍),而不需要域上的概率信息。直观地,给定领域和一组要实现的目标的LTL公式,我们计算目标冲突,并利用字符串模型计数技术来估计相应冲突情况发生的可能性以及这些冲突情况影响目标满意度的严重程度。然后,这些信息可以用于确定要解决的冲突的优先级,并建议将注意力集中在哪些目标上以进行改进。
{"title":"Goal-Conflict Likelihood Assessment Based on Model Counting","authors":"Renzo Degiovanni, Pablo F. Castro, Marcelo Arroyo, Marcelo Ruiz, Nazareno Aguirre, M. Frias","doi":"10.1145/3180155.3180261","DOIUrl":"https://doi.org/10.1145/3180155.3180261","url":null,"abstract":"In goal-oriented requirements engineering approaches, conflict analysis has been proposed as an abstraction for risk analysis. Intuitively, given a set of expected goals to be achieved by the system-to-be, a conflict represents a subtle situation that makes goals diverge, i.e., not be satisfiable as a whole. Conflict analysis is typically driven by the identify-assess-control cycle, aimed at identifying, assessing and resolving conflicts that may obstruct the satisfaction of the expected goals. In particular, the assessment step is concerned with evaluating how likely the identified conflicts are, and how likely and severe are their consequences. So far, existing assessment approaches restrict their analysis to obstacles (conflicts that prevent the satisfaction of a single goal), and assume that certain probabilistic information on the domain is provided, that needs to be previously elicited from experienced users, statistical data or simulations. In this paper, we present a novel automated approach to assess how likely a conflict is, that applies to general conflicts (not only obstacles) without requiring probabilistic information on the domain. Intuitively, given the LTL formulation of the domain and of a set of goals to be achieved, we compute goal conflicts, and exploit string model counting techniques to estimate the likelihood of the occurrence of the corresponding conflicting situations and the severity in which these affect the satisfaction of the goals. This information can then be used to prioritize conflicts to be resolved, and suggest which goals to drive attention to for refinements.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"38 1","pages":"1125-1135"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89170895","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}
引用次数: 10
Debugging with Intelligence via Probabilistic Inference 通过概率推理进行智能调试
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180237
Zhaogui Xu, Shiqing Ma, X. Zhang, Shuofei Zhu, Baowen Xu
We aim to debug a single failing execution without the assistance from other passing/failing runs. In our context, debugging is a process with substantial uncertainty – lots of decisions have to be made such as what variables shall be inspected first. To deal with such uncertainty, we propose to equip machines with human-like intelligence. Specifically, we develop a highly automated debugging technique that aims to couple human-like reasoning (e.g., dealing with uncertainty and fusing knowledge) with program semantics based analysis, to achieve benefits from the two and mitigate their limitations. We model debugging as a probabilistic inference problem, in which the likelihood of each executed statement instance and variable being correct/faulty is modeled by a random variable. Human knowledge, human-like reasoning rules and program semantics are modeled as conditional probability distributions, also called probabilistic constraints. Solving these constraints identifies the most likely faulty statements. Our results show that the technique is highly effective. It can precisely identify root causes for a set of real-world bugs in a very small number of interactions with developers, much smaller than a recent proposal that does not encode human intelligence. Our user study also confirms that it substantially improves human productivity.
我们的目标是调试单个失败的执行,而不需要其他通过/失败运行的帮助。在我们的上下文中,调试是一个具有大量不确定性的过程——必须做出许多决定,例如首先检查哪些变量。为了应对这种不确定性,我们建议给机器配备类似人类的智能。具体来说,我们开发了一种高度自动化的调试技术,旨在将类似人类的推理(例如,处理不确定性和融合知识)与基于程序语义的分析相结合,以从两者中获益并减轻其局限性。我们将调试建模为一个概率推理问题,其中每个执行的语句实例和变量正确/错误的可能性由一个随机变量建模。人类知识、类人推理规则和程序语义被建模为条件概率分布,也称为概率约束。解决这些约束可以识别最有可能出错的语句。结果表明,该技术是非常有效的。它可以在与开发人员的少量交互中精确地识别出一组现实世界错误的根本原因,这比最近没有对人类智能进行编码的提议要小得多。我们的用户研究也证实,它大大提高了人类的生产力。
{"title":"Debugging with Intelligence via Probabilistic Inference","authors":"Zhaogui Xu, Shiqing Ma, X. Zhang, Shuofei Zhu, Baowen Xu","doi":"10.1145/3180155.3180237","DOIUrl":"https://doi.org/10.1145/3180155.3180237","url":null,"abstract":"We aim to debug a single failing execution without the assistance from other passing/failing runs. In our context, debugging is a process with substantial uncertainty – lots of decisions have to be made such as what variables shall be inspected first. To deal with such uncertainty, we propose to equip machines with human-like intelligence. Specifically, we develop a highly automated debugging technique that aims to couple human-like reasoning (e.g., dealing with uncertainty and fusing knowledge) with program semantics based analysis, to achieve benefits from the two and mitigate their limitations. We model debugging as a probabilistic inference problem, in which the likelihood of each executed statement instance and variable being correct/faulty is modeled by a random variable. Human knowledge, human-like reasoning rules and program semantics are modeled as conditional probability distributions, also called probabilistic constraints. Solving these constraints identifies the most likely faulty statements. Our results show that the technique is highly effective. It can precisely identify root causes for a set of real-world bugs in a very small number of interactions with developers, much smaller than a recent proposal that does not encode human intelligence. Our user study also confirms that it substantially improves human productivity.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"35 1","pages":"1171-1181"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79268523","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}
引用次数: 12
On the Dichotomy of Debugging Behavior Among Programmers 论程序员调试行为的二分法
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180175
M. Beller, N. Spruit, D. Spinellis, A. Zaidman
Debugging is an inevitable activity in most software projects, often difficult and more time-consuming than expected, giving it the nickname the "dirty little secret of computer science." Surprisingly, we have little knowledge on how software engineers debug software problems in the real world, whether they use dedicated debugging tools, and how knowledgeable they are about debugging. This study aims to shed light on these aspects by following a mixed-methods research approach. We conduct an online survey capturing how 176 developers reflect on debugging. We augment this subjective survey data with objective observations on how 458 developers use the debugger included in their integrated development environments (IDEs) by instrumenting the popular Eclipse and IntelliJ IDEs with the purpose-built plugin WatchDog 2.0. To clarify the insights and discrepancies observed in the previous steps, we followed up by conducting interviews with debugging experts and regular debugging users. Our results indicate that IDE-provided debuggers are not used as often as expected, as "printf debugging" remains a feasible choice for many programmers. Furthermore, both knowledge and use of advanced debugging features are low. These results call to strengthen hands-on debugging experience in computer science curricula and have already refined the implementation of modern IDE debuggers.
在大多数软件项目中,调试是一项不可避免的活动,通常比预期的困难和耗时,因此它被称为“计算机科学中肮脏的小秘密”。令人惊讶的是,我们几乎不知道软件工程师如何在现实世界中调试软件问题,他们是否使用专用的调试工具,以及他们对调试的了解程度。本研究旨在通过以下混合方法的研究方法来阐明这些方面。我们进行了一项在线调查,了解176名开发人员对调试的看法。我们对458名开发人员如何使用集成开发环境(ide)中包含的调试器进行了客观观察,并对这些主观调查数据进行了补充,方法是用专门构建的插件WatchDog 2.0对流行的Eclipse和IntelliJ ide进行检测。为了澄清在前面步骤中观察到的见解和差异,我们对调试专家和常规调试用户进行了访谈。我们的结果表明,ide提供的调试器并没有像预期的那样经常被使用,因为“printf调试”对于许多程序员来说仍然是一个可行的选择。此外,对高级调试特性的了解和使用都很低。这些结果要求在计算机科学课程中加强动手调试经验,并且已经改进了现代IDE调试器的实现。
{"title":"On the Dichotomy of Debugging Behavior Among Programmers","authors":"M. Beller, N. Spruit, D. Spinellis, A. Zaidman","doi":"10.1145/3180155.3180175","DOIUrl":"https://doi.org/10.1145/3180155.3180175","url":null,"abstract":"Debugging is an inevitable activity in most software projects, often difficult and more time-consuming than expected, giving it the nickname the \"dirty little secret of computer science.\" Surprisingly, we have little knowledge on how software engineers debug software problems in the real world, whether they use dedicated debugging tools, and how knowledgeable they are about debugging. This study aims to shed light on these aspects by following a mixed-methods research approach. We conduct an online survey capturing how 176 developers reflect on debugging. We augment this subjective survey data with objective observations on how 458 developers use the debugger included in their integrated development environments (IDEs) by instrumenting the popular Eclipse and IntelliJ IDEs with the purpose-built plugin WatchDog 2.0. To clarify the insights and discrepancies observed in the previous steps, we followed up by conducting interviews with debugging experts and regular debugging users. Our results indicate that IDE-provided debuggers are not used as often as expected, as \"printf debugging\" remains a feasible choice for many programmers. Furthermore, both knowledge and use of advanced debugging features are low. These results call to strengthen hands-on debugging experience in computer science curricula and have already refined the implementation of modern IDE debuggers.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"52 1","pages":"572-583"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79541256","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}
引用次数: 62
Statistical Errors in Software Engineering Experiments: A Preliminary Literature Review 软件工程实验中的统计误差:初步文献综述
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180161
Rolando P. Reyes Ch., Ó. Dieste, E. Fonseca C., N. Juristo
Background: Statistical concepts and techniques are often applied incorrectly, even in mature disciplines such as medicine or psychology. Surprisingly, there are very few works that study statistical problems in software engineering (SE). Aim: Assess the existence of statistical errors in SE experiments. Method: Compile the most common statistical errors in experimental disciplines. Survey experiments published in ICSE to assess whether errors occur in high quality SE publications. Results: The same errors as identified in others disciplines were found in ICSE experiments, where 30 of the reviewed papers included several error types such as: a) missing statistical hypotheses, b) missing sample size calculation, c) failure to assess statistical test assumptions, and d) uncorrected multiple testing. This rather large error rate is greater for research papers where experiments are confined to the validation section. The origin of the errors can be traced back to: a) researchers not having sufficient statistical training, and b) a profusion of exploratory research. Conclusions: This paper provides preliminary evidence that SE research suffers from the same statistical problems as other experimental disciplines. However, the SE community appears to be unaware of any shortcomings in its experiments, whereas other disciplines work hard to avoid these threats. Further research is necessary to find the underlying causes and set up corrective measures, but there are some potentially effective actions and are a priori easy to implement: a) improve the statistical training of SE researchers, and b) enforce quality assessment and reporting guidelines in SE publications.
背景:即使在医学或心理学等成熟学科中,统计概念和技术也经常被错误地应用。令人惊讶的是,很少有研究软件工程(SE)中的统计问题的著作。目的:评价SE实验中统计误差的存在性。方法:编制实验学科中最常见的统计误差。调查在ICSE上发表的实验,以评估高质量的SE出版物中是否发生错误。结果:在ICSE实验中发现了与其他学科相同的错误,其中30篇被审查的论文包括几种错误类型,如:a)遗漏统计假设,b)遗漏样本量计算,c)未能评估统计检验假设,d)未纠正的多重检验。对于实验仅限于验证部分的研究论文,这种相当大的错误率更大。错误的根源可以追溯到:a)研究人员没有足够的统计训练,b)大量的探索性研究。结论:本文提供了初步证据,表明SE研究存在与其他实验学科相同的统计问题。然而,SE社区似乎没有意识到其实验中的任何缺陷,而其他学科则努力避免这些威胁。进一步的研究是必要的,以找到潜在的原因和建立纠正措施,但有一些潜在的有效的行动,是先天容易实施的:a)提高SE研究人员的统计培训,b)在SE出版物中执行质量评估和报告指南。
{"title":"Statistical Errors in Software Engineering Experiments: A Preliminary Literature Review","authors":"Rolando P. Reyes Ch., Ó. Dieste, E. Fonseca C., N. Juristo","doi":"10.1145/3180155.3180161","DOIUrl":"https://doi.org/10.1145/3180155.3180161","url":null,"abstract":"Background: Statistical concepts and techniques are often applied incorrectly, even in mature disciplines such as medicine or psychology. Surprisingly, there are very few works that study statistical problems in software engineering (SE). Aim: Assess the existence of statistical errors in SE experiments. Method: Compile the most common statistical errors in experimental disciplines. Survey experiments published in ICSE to assess whether errors occur in high quality SE publications. Results: The same errors as identified in others disciplines were found in ICSE experiments, where 30 of the reviewed papers included several error types such as: a) missing statistical hypotheses, b) missing sample size calculation, c) failure to assess statistical test assumptions, and d) uncorrected multiple testing. This rather large error rate is greater for research papers where experiments are confined to the validation section. The origin of the errors can be traced back to: a) researchers not having sufficient statistical training, and b) a profusion of exploratory research. Conclusions: This paper provides preliminary evidence that SE research suffers from the same statistical problems as other experimental disciplines. However, the SE community appears to be unaware of any shortcomings in its experiments, whereas other disciplines work hard to avoid these threats. Further research is necessary to find the underlying causes and set up corrective measures, but there are some potentially effective actions and are a priori easy to implement: a) improve the statistical training of SE researchers, and b) enforce quality assessment and reporting guidelines in SE publications.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"13 1","pages":"1195-1206"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78678624","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
HireBuild: An Automatic Approach to History-Driven Repair of Build Scripts HireBuild:构建脚本的历史驱动修复的自动方法
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180181
Foyzul Hassan, Xiaoyin Wang
Advancements in software build tools such as Maven reduce build management effort, but developers still need specialized knowledge and long time to maintain build scripts and resolve build failures. More recent build tools such as Gradle give developers greater extent of customization flexibility, but can be even more difficult to maintain. According to the TravisTorrent dataset of open-source software continuous integration, 22% of code commits include changes in build script files to maintain build scripts or to resolve build failures. Automated program repair techniques have great potential to reduce cost of resolving software failures, but the existing techniques mostly focus on repairing source code so that they cannot directly help resolving software build failures. To address this limitation, we propose HireBuild: History-Driven Repair of Build Scripts, the first approach to automatic patch generation for build scripts, using fix patterns automatically generated from existing build script fixes and recommending fix patterns based on build log similarity. From TravisTorrent dataset, we extracted 175 build failures and their corresponding fixes which revise Gradle build scripts. Among these 175 build failures, we used the 135 earlier build fixes for automatic fix-pattern generation and the more recent 40 build failures (fixes) for evaluation of our approach. Our experiment shows that our approach can fix 11 of 24 reproducible build failures, or 45% of the reproducible build failures, within comparable time of manual fixes.
软件构建工具(如Maven)的进步减少了构建管理的工作量,但是开发人员仍然需要专门的知识和较长的时间来维护构建脚本和解决构建失败。最近的构建工具(如Gradle)为开发人员提供了更大程度的自定义灵活性,但维护起来却更加困难。根据开源软件持续集成的TravisTorrent数据集,22%的代码提交包括构建脚本文件中的更改,以维护构建脚本或解决构建失败。自动化程序修复技术在降低解决软件故障的成本方面具有很大的潜力,但是现有的技术主要集中于修复源代码,因此它们不能直接帮助解决软件构建故障。为了解决这个限制,我们提出了HireBuild:构建脚本的历史驱动修复,这是为构建脚本自动生成补丁的第一种方法,使用从现有构建脚本修复自动生成的修复模式,并根据构建日志相似性推荐修复模式。从TravisTorrent数据集中,我们提取了175个构建失败及其相应的修复,这些修复修改了Gradle构建脚本。在这175个构建失败中,我们使用了135个早期的构建修复来自动生成修复模式,使用了最近的40个构建失败(修复)来评估我们的方法。我们的实验表明,我们的方法可以在人工修复的可比时间内修复24个可重复构建失败中的11个,或者45%的可重复构建失败。
{"title":"HireBuild: An Automatic Approach to History-Driven Repair of Build Scripts","authors":"Foyzul Hassan, Xiaoyin Wang","doi":"10.1145/3180155.3180181","DOIUrl":"https://doi.org/10.1145/3180155.3180181","url":null,"abstract":"Advancements in software build tools such as Maven reduce build management effort, but developers still need specialized knowledge and long time to maintain build scripts and resolve build failures. More recent build tools such as Gradle give developers greater extent of customization flexibility, but can be even more difficult to maintain. According to the TravisTorrent dataset of open-source software continuous integration, 22% of code commits include changes in build script files to maintain build scripts or to resolve build failures. Automated program repair techniques have great potential to reduce cost of resolving software failures, but the existing techniques mostly focus on repairing source code so that they cannot directly help resolving software build failures. To address this limitation, we propose HireBuild: History-Driven Repair of Build Scripts, the first approach to automatic patch generation for build scripts, using fix patterns automatically generated from existing build script fixes and recommending fix patterns based on build log similarity. From TravisTorrent dataset, we extracted 175 build failures and their corresponding fixes which revise Gradle build scripts. Among these 175 build failures, we used the 135 earlier build fixes for automatic fix-pattern generation and the more recent 40 build failures (fixes) for evaluation of our approach. Our experiment shows that our approach can fix 11 of 24 reproducible build failures, or 45% of the reproducible build failures, within comparable time of manual fixes.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"98 1 1","pages":"1078-1089"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78163316","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}
引用次数: 63
Launch-Mode-Aware Context-Sensitive Activity Transition Analysis 启动模式感知上下文敏感活动转换分析
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180188
Yifei Zhang, Yulei Sui, Jingling Xue
Existing static analyses model activity transitions in Android apps context-insensitively, making it impossible to distinguish different activity launch modes, reducing the pointer analysis precision for an activity's callbacks, and potentially resulting in infeasible activity transition paths. In this paper, we introduce Chime, a launch-mode-aware context-sensitive activity transition analysis that models different instances of an activity class according to its launch mode and the transitions between activities context-sensitively, by working together with an object-sensitive pointer analysis. Our evaluation shows that our context-sensitive activity transition analysis is more precise than its context-insensitive counterpart in capturing activity transitions, facilitating GUI testing, and improving the pointer analysis precision.
现有的静态分析在Android应用程序中对活动转换进行上下文不敏感的建模,使得无法区分不同的活动启动模式,降低了活动回调的指针分析精度,并可能导致不可行的活动转换路径。在本文中,我们介绍了Chime,一个启动模式感知上下文敏感的活动转换分析,它根据一个活动类的启动模式和活动之间的转换上下文敏感地建模不同的实例,通过与对象敏感的指针分析一起工作。我们的评估表明,在捕获活动转换、促进GUI测试和提高指针分析精度方面,上下文敏感的活动转换分析比上下文不敏感的活动转换分析更精确。
{"title":"Launch-Mode-Aware Context-Sensitive Activity Transition Analysis","authors":"Yifei Zhang, Yulei Sui, Jingling Xue","doi":"10.1145/3180155.3180188","DOIUrl":"https://doi.org/10.1145/3180155.3180188","url":null,"abstract":"Existing static analyses model activity transitions in Android apps context-insensitively, making it impossible to distinguish different activity launch modes, reducing the pointer analysis precision for an activity's callbacks, and potentially resulting in infeasible activity transition paths. In this paper, we introduce Chime, a launch-mode-aware context-sensitive activity transition analysis that models different instances of an activity class according to its launch mode and the transitions between activities context-sensitively, by working together with an object-sensitive pointer analysis. Our evaluation shows that our context-sensitive activity transition analysis is more precise than its context-insensitive counterpart in capturing activity transitions, facilitating GUI testing, and improving the pointer analysis precision.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"12 1","pages":"598-608"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73170345","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 Static Verification Framework for Message Passing in Go Using Behavioural Types 基于行为类型的消息传递静态验证框架
Pub Date : 2018-05-27 DOI: 10.1145/3180155.3180157
J. Lange, Nicholas Ng, B. Toninho, N. Yoshida
The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go's concurrency primitives, inspired by process calculi such as CCS and CSP, feature channel-based communication and lightweight threads, providing a distinct means of structuring concurrent software. Despite its popularity, the Go programming ecosystem offers little to no support for guaranteeing the correctness of message-passing concurrent programs. This work proposes a practical verification framework for message passing concurrency in Go by developing a robust static analysis that infers an abstract model of a program's communication behaviour in the form of a behavioural type, a powerful process calculi typing discipline. We make use of our analysis to deploy a model and termination checking based verification of the inferred behavioural type that is suitable for a range of safety and liveness properties of Go programs, providing several improvements over existing approaches. We evaluate our framework and its implementation on publicly available real-world Go code.
Go编程语言作为一种有效地结合了系统编程和并发性的语言,在工业中被广泛采用。Go的并发原语受进程微积分(如CCS和CSP)的启发,具有基于通道的通信和轻量级线程的特性,提供了构建并发软件的独特方法。尽管Go编程生态系统很受欢迎,但它几乎没有提供任何支持来保证消息传递并发程序的正确性。这项工作提出了一个实用的验证框架,通过开发一个健壮的静态分析,以行为类型的形式推断程序通信行为的抽象模型,这是一个强大的过程演算类型学科。我们利用我们的分析部署了一个模型和基于终止检查的推断行为类型验证,该模型和终止检查适用于Go程序的一系列安全性和活动性属性,提供了对现有方法的若干改进。我们在公开可用的真实Go代码上评估我们的框架及其实现。
{"title":"A Static Verification Framework for Message Passing in Go Using Behavioural Types","authors":"J. Lange, Nicholas Ng, B. Toninho, N. Yoshida","doi":"10.1145/3180155.3180157","DOIUrl":"https://doi.org/10.1145/3180155.3180157","url":null,"abstract":"The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go's concurrency primitives, inspired by process calculi such as CCS and CSP, feature channel-based communication and lightweight threads, providing a distinct means of structuring concurrent software. Despite its popularity, the Go programming ecosystem offers little to no support for guaranteeing the correctness of message-passing concurrent programs. This work proposes a practical verification framework for message passing concurrency in Go by developing a robust static analysis that infers an abstract model of a program's communication behaviour in the form of a behavioural type, a powerful process calculi typing discipline. We make use of our analysis to deploy a model and termination checking based verification of the inferred behavioural type that is suitable for a range of safety and liveness properties of Go programs, providing several improvements over existing approaches. We evaluate our framework and its implementation on publicly available real-world Go code.","PeriodicalId":6560,"journal":{"name":"2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)","volume":"70 1","pages":"1137-1148"},"PeriodicalIF":0.0,"publicationDate":"2018-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73912673","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}
引用次数: 58
期刊
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