首页 > 最新文献

2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
Software Heritage: Collecting, Preserving, and Sharing All Our Source Code (Keynote) 软件遗产:收集、保存和共享我们所有的源代码(主题演讲)
R. D. Cosmo
Software Heritage is a non profit initiative whose ambitious goal is to collect, preserve and share the source code of all software ever written, with its full development history, building a universal source code software knowledge base. Software Heritage addresses a variety of needs: preserving our scientific and technological knowledge, enabling better software development and reuse for society and industry, fostering better science, and building an essential infrastructure for large scale, reproducible software studies. We have already collected over 4 billions unique source files from over 80 millions repositories, and organised them into a giant Merkle graph, with full deduplication across all repositories. This allows us to cope with the growth of collaborative software development, and provides a unique vantage point for observing its evolution. In this talk, we will highlight the new challenges and opportunities that Software Heritage brings up.
软件遗产是一个非盈利组织,其雄心勃勃的目标是收集、保存和共享所有曾经编写的软件的源代码,以及其完整的开发历史,建立一个通用的源代码软件知识库。软件遗产解决了各种各样的需求:保存我们的科学和技术知识,为社会和工业提供更好的软件开发和重用,培养更好的科学,并为大规模的、可复制的软件研究构建必要的基础设施。我们已经从超过8000万个存储库中收集了超过40亿个独特的源文件,并将它们组织成一个巨大的默克尔图,在所有存储库中进行了完全的重复数据删除。这使我们能够应对协作软件开发的增长,并为观察其演变提供了一个独特的有利位置。在这次演讲中,我们将强调软件遗产带来的新挑战和机遇。
{"title":"Software Heritage: Collecting, Preserving, and Sharing All Our Source Code (Keynote)","authors":"R. D. Cosmo","doi":"10.1145/3238147.3241985","DOIUrl":"https://doi.org/10.1145/3238147.3241985","url":null,"abstract":"Software Heritage is a non profit initiative whose ambitious goal is to collect, preserve and share the source code of all software ever written, with its full development history, building a universal source code software knowledge base. Software Heritage addresses a variety of needs: preserving our scientific and technological knowledge, enabling better software development and reuse for society and industry, fostering better science, and building an essential infrastructure for large scale, reproducible software studies. We have already collected over 4 billions unique source files from over 80 millions repositories, and organised them into a giant Merkle graph, with full deduplication across all repositories. This allows us to cope with the growth of collaborative software development, and provides a unique vantage point for observing its evolution. In this talk, we will highlight the new challenges and opportunities that Software Heritage brings up.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"49 1","pages":"1-2"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80426395","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}
引用次数: 2
Generating Reusable Web Components from Mockups 从模型生成可重用的Web组件
Mohammad Bajammal, D. Mazinanian, A. Mesbah
The transformation of a user interface mockup designed by a graphic designer to web components in the final app built by a web developer is often laborious, involving manual and time consuming steps. We propose an approach to automate this aspect of web development by generating reusable web components from a mockup. Our approach employs visual analysis of the mockup, and unsupervised learning of visual cues to create reusable web components (e.g., React components). We evaluated our approach, implemented in a tool called VizMoD, on five real-world web mockups, and assessed the transformations and generated components through comparison with web development experts. The results show that VizMOD achieves on average 94% precision and 75% recall in terms of agreement with the developers' assessment. Furthermore, the refactorings yielded 22% code reusability, on average.
将图形设计师设计的用户界面模型转换为由web开发人员构建的最终应用程序中的web组件通常是费力的,涉及手动和耗时的步骤。我们提出了一种方法,通过从模型生成可重用的web组件来自动化web开发的这一方面。我们的方法采用对模型的可视化分析,以及对视觉线索的无监督学习来创建可重用的web组件(例如React组件)。我们用一个叫做VizMoD的工具在五个真实的网络模型上评估了我们的方法,并通过与网络开发专家的比较来评估转换和生成的组件。结果表明,在与开发人员评估的一致性方面,VizMOD达到了平均94%的准确率和75%的召回率。此外,重构平均产生了22%的代码可重用性。
{"title":"Generating Reusable Web Components from Mockups","authors":"Mohammad Bajammal, D. Mazinanian, A. Mesbah","doi":"10.1145/3238147.3238194","DOIUrl":"https://doi.org/10.1145/3238147.3238194","url":null,"abstract":"The transformation of a user interface mockup designed by a graphic designer to web components in the final app built by a web developer is often laborious, involving manual and time consuming steps. We propose an approach to automate this aspect of web development by generating reusable web components from a mockup. Our approach employs visual analysis of the mockup, and unsupervised learning of visual cues to create reusable web components (e.g., React components). We evaluated our approach, implemented in a tool called VizMoD, on five real-world web mockups, and assessed the transformations and generated components through comparison with web development experts. The results show that VizMOD achieves on average 94% precision and 75% recall in terms of agreement with the developers' assessment. Furthermore, the refactorings yielded 22% code reusability, on average.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"601-611"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88693875","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}
引用次数: 18
An Empirical Investigation into Learning Bug-Fixing Patches in the Wild via Neural Machine Translation 基于神经机器翻译的野外bug修复补丁学习实证研究
Michele Tufano, Cody Watson, G. Bavota, M. D. Penta, Martin White, D. Poshyvanyk
Millions of open-source projects with numerous bug fixes are available in code repositories. This proliferation of software development histories can be leveraged to learn how to fix common programming bugs. To explore such a potential, we perform an empirical study to assess the feasibility of using Neural Machine Translation techniques for learning bug-fixing patches for real defects. We mine millions of bug-fixes from the change histories of GitHub repositories to extract meaningful examples of such bug-fixes. Then, we abstract the buggy and corresponding fixed code, and use them to train an Encoder-Decoder model able to translate buggy code into its fixed version. Our model is able to fix hundreds of unique buggy methods in the wild. Overall, this model is capable of predicting fixed patches generated by developers in 9% of the cases.
代码存储库中有数百万个带有大量bug修复的开源项目。软件开发历史的丰富可以用来学习如何修复常见的编程错误。为了探索这种潜力,我们进行了一项实证研究,以评估使用神经机器翻译技术来学习针对实际缺陷的错误修复补丁的可行性。我们从GitHub存储库的变更历史中挖掘了数百万个bug修复,以提取有意义的bug修复示例。然后,我们将有bug的代码和相应的固定代码抽象出来,并使用它们来训练一个能够将有bug的代码转换成固定版本的编码器-解码器模型。我们的模型能够在野外修复数百种独特的错误方法。总的来说,该模型能够在9%的情况下预测由开发人员生成的修复补丁。
{"title":"An Empirical Investigation into Learning Bug-Fixing Patches in the Wild via Neural Machine Translation","authors":"Michele Tufano, Cody Watson, G. Bavota, M. D. Penta, Martin White, D. Poshyvanyk","doi":"10.1145/3238147.3240732","DOIUrl":"https://doi.org/10.1145/3238147.3240732","url":null,"abstract":"Millions of open-source projects with numerous bug fixes are available in code repositories. This proliferation of software development histories can be leveraged to learn how to fix common programming bugs. To explore such a potential, we perform an empirical study to assess the feasibility of using Neural Machine Translation techniques for learning bug-fixing patches for real defects. We mine millions of bug-fixes from the change histories of GitHub repositories to extract meaningful examples of such bug-fixes. Then, we abstract the buggy and corresponding fixed code, and use them to train an Encoder-Decoder model able to translate buggy code into its fixed version. Our model is able to fix hundreds of unique buggy methods in the wild. Overall, this model is capable of predicting fixed patches generated by developers in 9% of the cases.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"7 1","pages":"832-837"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87152440","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}
引用次数: 114
An Evolutionary Approach for Analyzing Alloy Specifications 一种分析合金规格的演化方法
Jianghao Wang, H. Bagheri, Myra B. Cohen
Formal methods use mathematical notations and logical reasoning to precisely define a program's specifications, from which we can instantiate valid instances of a system. With these techniques we can perform a multitude of tasks to check system dependability. Despite the existence of many automated tools including ones considered lightweight, they still lack a strong adoption in practice. At the crux of this problem, is scalability and applicability to large real world applications. In this paper we show how to relax the completeness guarantee without much loss, since soundness is maintained. We have extended a popular lightweight analysis, Alloy, with a genetic algorithm. Our new tool, EvoAlloy, works at the level of finite relations generated by Kodkod and evolves the chromosomes based on the failed constraints. In a feasibility study we demonstrate that we can find solutions to a set of specifications beyond the scope where traditional Alloy fails. While small specifications take longer with EvoAlloy, the scalability means we can handle larger specifications. Our future vision is that when specifications are small we can maintain both soundness and completeness, but when this fails, EvoAlloy can switch to its genetic algorithm.
形式化方法使用数学符号和逻辑推理来精确地定义程序的规范,从中我们可以实例化系统的有效实例。通过这些技术,我们可以执行许多任务来检查系统的可靠性。尽管存在许多自动化工具,包括一些被认为是轻量级的工具,但它们在实践中仍然缺乏强有力的采用。这个问题的关键在于可伸缩性和对大型实际应用程序的适用性。本文给出了如何在保持完备性的前提下,在不造成很大损失的情况下放松完备性保证。我们用遗传算法扩展了一种流行的轻量级分析,Alloy。我们的新工具EvoAlloy在Kodkod生成的有限关系级别上工作,并根据失败的约束进化染色体。在一项可行性研究中,我们证明了我们可以找到一组超出传统Alloy失败范围的规格的解决方案。虽然EvoAlloy的小规格需要更长的时间,但可扩展性意味着我们可以处理更大的规格。我们未来的愿景是,当规格很小时,我们可以保持可靠性和完整性,但当这失败时,EvoAlloy可以切换到它的遗传算法。
{"title":"An Evolutionary Approach for Analyzing Alloy Specifications","authors":"Jianghao Wang, H. Bagheri, Myra B. Cohen","doi":"10.1145/3238147.3240468","DOIUrl":"https://doi.org/10.1145/3238147.3240468","url":null,"abstract":"Formal methods use mathematical notations and logical reasoning to precisely define a program's specifications, from which we can instantiate valid instances of a system. With these techniques we can perform a multitude of tasks to check system dependability. Despite the existence of many automated tools including ones considered lightweight, they still lack a strong adoption in practice. At the crux of this problem, is scalability and applicability to large real world applications. In this paper we show how to relax the completeness guarantee without much loss, since soundness is maintained. We have extended a popular lightweight analysis, Alloy, with a genetic algorithm. Our new tool, EvoAlloy, works at the level of finite relations generated by Kodkod and evolves the chromosomes based on the failed constraints. In a feasibility study we demonstrate that we can find solutions to a set of specifications beyond the scope where traditional Alloy fails. While small specifications take longer with EvoAlloy, the scalability means we can handle larger specifications. Our future vision is that when specifications are small we can maintain both soundness and completeness, but when this fails, EvoAlloy can switch to its genetic algorithm.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"22 1","pages":"820-825"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90257724","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}
引用次数: 7
Software Engineering Techniques Applied to Relational Databases 应用于关系数据库的软件工程技术
J. Delplanque
Relational databases play a central role in software systems. As any software artefact they are subject to software engineering related problems. That apply even more when these databases hold behaviour in the form of stored functions, triggers, etc… The purpose of this article is to present a research plan to handle this problematic.
关系数据库在软件系统中起着核心作用。正如任何软件工件一样,它们都受到软件工程相关问题的影响。当这些数据库以存储函数、触发器等形式保存行为时,这种情况就更常见了。本文的目的是提出一个研究计划来处理这个问题。
{"title":"Software Engineering Techniques Applied to Relational Databases","authors":"J. Delplanque","doi":"10.1145/3238147.3241534","DOIUrl":"https://doi.org/10.1145/3238147.3241534","url":null,"abstract":"Relational databases play a central role in software systems. As any software artefact they are subject to software engineering related problems. That apply even more when these databases hold behaviour in the form of stored functions, triggers, etc… The purpose of this article is to present a research plan to handle this problematic.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"948-951"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87369778","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
Assessing the Type Annotation Burden 评估类型注释负担
J. Ore, Sebastian G. Elbaum, Carrick Detweiler, Lambros Karkazis
Type annotations provide a link between program variables and domain-specific types. When combined with a type system, these annotations can enable early fault detection. For type annotations to be cost-effective in practice, they need to be both accurate and affordable for developers. We lack, however, an understanding of how burdensome type annotation is for developers. Hence, this work explores three fundamental questions: 1) how accurately do developers make type annotations; 2) how long does a single annotation take; and, 3) if a system could automatically suggest a type annotation, how beneficial to accuracy are correct suggestions and how detrimental are incorrect suggestions? We present results of a study of 71 programmers using 20 random code artifacts that contain variables with physical unit types that must be annotated. Subjects choose a correct type annotation only 51% of the time and take an average of 136 seconds to make a single correct annotation. Our qualitative analysis reveals that variable names and reasoning over mathematical operations are the leading clues for type selection. We find that suggesting the correct type boosts accuracy to 73%, while making a poor suggestion decreases accuracy to 28%. We also explore what state-of-the-art automated type annotation systems can and cannot do to help developers with type annotations, and identify implications for tool developers.
类型注释提供了程序变量和特定于域的类型之间的链接。当与类型系统结合使用时,这些注释可以支持早期的故障检测。为了使类型注释在实践中具有成本效益,它们需要对开发人员来说既准确又负担得起。然而,我们缺乏对类型注释对开发人员来说有多么繁重的理解。因此,这项工作探讨了三个基本问题:1)开发人员制作类型注释的准确性如何;2)一个注释需要多长时间;3)如果系统可以自动建议类型注释,那么正确的建议对准确性有多大好处,而不正确的建议对准确性有多大危害?我们展示了对71名程序员使用20个随机代码工件的研究结果,这些工件包含必须被注释的具有物理单元类型的变量。被试选择正确类型标注的概率仅为51%,平均每做一次正确标注需要136秒。我们的定性分析表明,变量名和数学运算推理是类型选择的主要线索。我们发现,建议正确的类型可以将准确率提高到73%,而提出糟糕的建议则会将准确率降低到28%。我们还探讨了最先进的自动化类型注释系统在帮助开发人员进行类型注释方面能做什么和不能做什么,并确定了对工具开发人员的影响。
{"title":"Assessing the Type Annotation Burden","authors":"J. Ore, Sebastian G. Elbaum, Carrick Detweiler, Lambros Karkazis","doi":"10.1145/3238147.3238173","DOIUrl":"https://doi.org/10.1145/3238147.3238173","url":null,"abstract":"Type annotations provide a link between program variables and domain-specific types. When combined with a type system, these annotations can enable early fault detection. For type annotations to be cost-effective in practice, they need to be both accurate and affordable for developers. We lack, however, an understanding of how burdensome type annotation is for developers. Hence, this work explores three fundamental questions: 1) how accurately do developers make type annotations; 2) how long does a single annotation take; and, 3) if a system could automatically suggest a type annotation, how beneficial to accuracy are correct suggestions and how detrimental are incorrect suggestions? We present results of a study of 71 programmers using 20 random code artifacts that contain variables with physical unit types that must be annotated. Subjects choose a correct type annotation only 51% of the time and take an average of 136 seconds to make a single correct annotation. Our qualitative analysis reveals that variable names and reasoning over mathematical operations are the leading clues for type selection. We find that suggesting the correct type boosts accuracy to 73%, while making a poor suggestion decreases accuracy to 28%. We also explore what state-of-the-art automated type annotation systems can and cannot do to help developers with type annotations, and identify implications for tool developers.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"190-201"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82911802","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}
引用次数: 18
API Method Recommendation without Worrying about the Task-API Knowledge Gap 无需担心任务-API知识差距的API方法推荐
Qiao Huang, Xin Xia, Zhenchang Xing, D. Lo, Xinyu Wang
Developers often need to search for appropriate APIs for their programming tasks. Although most libraries have API reference documentation, it is not easy to find appropriate APIs due to the lexical gap and knowledge gap between the natural language description of the programming task and the API description in API documentation. Here, the lexical gap refers to the fact that the same semantic meaning can be expressed by different words, and the knowledge gap refers to the fact that API documentation mainly describes API functionality and structure but lacks other types of information like concepts and purposes, which are usually the key information in the task description. In this paper, we propose an API recommendation approach named BIKER (Bi-Information source based KnowledgE Recommendation) to tackle these two gaps. To bridge the lexical gap, BIKER uses word embedding technique to calculate the similarity score between two text descriptions. Inspired by our survey findings that developers incorporate Stack Overflow posts and API documentation for bridging the knowledge gap, BIKER leverages Stack Overflow posts to extract candidate APIs for a program task, and ranks candidate APIs by considering the query's similarity with both Stack Overflow posts and API documentation. It also summarizes supplementary information (e.g., API description, code examples in Stack Overflow posts) for each API to help developers select the APIs that are most relevant to their tasks. Our evaluation with 413 API-related questions confirms the effectiveness of BIKER for both class- and method-level API recommendation, compared with state-of-the-art baselines. Our user study with 28 Java developers further demonstrates the practicality of BIKER for API search.
开发人员经常需要为他们的编程任务搜索合适的api。尽管大多数库都有API参考文档,但由于编程任务的自然语言描述与API文档中的API描述之间的词汇和知识差距,查找合适的API并不容易。这里的词汇差距是指可以用不同的词汇表达相同的语义,知识差距是指API文档主要描述API的功能和结构,而缺乏概念和目的等其他类型的信息,这些信息通常是任务描述中的关键信息。在本文中,我们提出了一种名为BIKER(基于双信息源的知识推荐)的API推荐方法来解决这两个问题。为了弥补词汇差距,BIKER使用词嵌入技术来计算两个文本描述之间的相似度得分。我们的调查发现,开发人员将Stack Overflow帖子和API文档结合起来,以弥合知识差距。受此启发,BIKER利用Stack Overflow帖子为程序任务提取候选API,并根据查询与Stack Overflow帖子和API文档的相似性对候选API进行排名。它还总结了每个API的补充信息(例如,API描述,Stack Overflow帖子中的代码示例),以帮助开发人员选择与他们的任务最相关的API。与最先进的基线相比,我们对413个API相关问题的评估证实了BIKER在类级和方法级API推荐方面的有效性。我们对28名Java开发人员的用户研究进一步证明了BIKER在API搜索方面的实用性。
{"title":"API Method Recommendation without Worrying about the Task-API Knowledge Gap","authors":"Qiao Huang, Xin Xia, Zhenchang Xing, D. Lo, Xinyu Wang","doi":"10.1145/3238147.3238191","DOIUrl":"https://doi.org/10.1145/3238147.3238191","url":null,"abstract":"Developers often need to search for appropriate APIs for their programming tasks. Although most libraries have API reference documentation, it is not easy to find appropriate APIs due to the lexical gap and knowledge gap between the natural language description of the programming task and the API description in API documentation. Here, the lexical gap refers to the fact that the same semantic meaning can be expressed by different words, and the knowledge gap refers to the fact that API documentation mainly describes API functionality and structure but lacks other types of information like concepts and purposes, which are usually the key information in the task description. In this paper, we propose an API recommendation approach named BIKER (Bi-Information source based KnowledgE Recommendation) to tackle these two gaps. To bridge the lexical gap, BIKER uses word embedding technique to calculate the similarity score between two text descriptions. Inspired by our survey findings that developers incorporate Stack Overflow posts and API documentation for bridging the knowledge gap, BIKER leverages Stack Overflow posts to extract candidate APIs for a program task, and ranks candidate APIs by considering the query's similarity with both Stack Overflow posts and API documentation. It also summarizes supplementary information (e.g., API description, code examples in Stack Overflow posts) for each API to help developers select the APIs that are most relevant to their tasks. Our evaluation with 413 API-related questions confirms the effectiveness of BIKER for both class- and method-level API recommendation, compared with state-of-the-art baselines. Our user study with 28 Java developers further demonstrates the practicality of BIKER for API search.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"151 1","pages":"293-304"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87887957","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}
引用次数: 134
Bounded Model Checking of C++ Programs Based on the Qt Cross-Platform Framework (Journal-First Abstract) 基于Qt跨平台框架的c++程序的有界模型检测
Felipe R. Monteiro, Mário A. P. Garcia, L. Cordeiro, E. Filho
This work proposes an abstraction of the Qt framework, named as Qt Operational Model (QtOM), which is integrated into two different verification approaches: explicit-state model checking and symbolic (bounded) model checking. The proposed methodology is the first one to formally verify Qt-based applications, which has the potential to devise new directions for software verification of portable code. The full version of this paper is published in Software Testing, Verification and Reliability, on 02 March 2017 and it is available at https://doi.org/10.1002/stvr.1632.
这项工作提出了Qt框架的抽象,称为Qt操作模型(QtOM),它集成到两种不同的验证方法中:显式状态模型检查和符号(有界)模型检查。所提出的方法是第一个正式验证基于qt的应用程序的方法,它有可能为可移植代码的软件验证设计新的方向。本文的完整版本发表在2017年3月2日的《软件测试、验证和可靠性》上,可在https://doi.org/10.1002/stvr.1632上获得。
{"title":"Bounded Model Checking of C++ Programs Based on the Qt Cross-Platform Framework (Journal-First Abstract)","authors":"Felipe R. Monteiro, Mário A. P. Garcia, L. Cordeiro, E. Filho","doi":"10.1145/3238147.3241981","DOIUrl":"https://doi.org/10.1145/3238147.3241981","url":null,"abstract":"This work proposes an abstraction of the Qt framework, named as Qt Operational Model (QtOM), which is integrated into two different verification approaches: explicit-state model checking and symbolic (bounded) model checking. The proposed methodology is the first one to formally verify Qt-based applications, which has the potential to devise new directions for software verification of portable code. The full version of this paper is published in Software Testing, Verification and Reliability, on 02 March 2017 and it is available at https://doi.org/10.1002/stvr.1632.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"14 1","pages":"954-954"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88177932","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
Replay without Recording of Production Bugs for Service Oriented Applications 面向服务的应用程序的不记录生产错误的重播
Nipun Arora, Jonathan Bell, Franjo Ivancic, G. Kaiser, Baishakhi Ray
Short time-to-localize and time-to-fix for production bugs is extremely important for any 24x7 service-oriented application (SOA). Debugging buggy behavior in deployed applications is hard, as it requires careful reproduction of a similar environment and workload. Prior approaches for automatically reproducing production failures do not scale to large SOA systems. Our key insight is that for many failures in SOA systems (e.g., many semantic and performance bugs), a failure can automatically be reproduced solely by relaying network packets to replicas of suspect services, an insight that we validated through a manual study of 16 real bugs across five different systems. This paper presents Parikshan, an application monitoring framework that leverages user-space virtualization and network proxy technologies to provide a sandbox “debug” environment. In this “debug” environment, developers are free to attach debuggers and analysis tools without impacting performance or correctness of the production environment. In comparison to existing monitoring solutions that can slow down production applications, Parikshan allows application monitoring at significantly lower overhead.
对于任何24x7面向服务的应用程序(SOA)来说,短时间本地化和短时间修复生产错误是极其重要的。调试已部署应用程序中的错误行为是困难的,因为它需要仔细地再现类似的环境和工作负载。以前用于自动再现生产故障的方法不能扩展到大型SOA系统。我们的主要见解是,对于SOA系统中的许多故障(例如,许多语义和性能错误),仅通过将网络数据包转发到可疑服务的副本就可以自动再现故障,我们通过手动研究五个不同系统中的16个真实错误验证了这一见解。本文介绍了Parikshan,一个利用用户空间虚拟化和网络代理技术提供沙盒“调试”环境的应用程序监控框架。在这个“调试”环境中,开发人员可以自由地附加调试器和分析工具,而不会影响生产环境的性能或正确性。与现有的可能降低生产应用程序速度的监控解决方案相比,Parikshan允许以更低的开销进行应用程序监控。
{"title":"Replay without Recording of Production Bugs for Service Oriented Applications","authors":"Nipun Arora, Jonathan Bell, Franjo Ivancic, G. Kaiser, Baishakhi Ray","doi":"10.1145/3238147.3238186","DOIUrl":"https://doi.org/10.1145/3238147.3238186","url":null,"abstract":"Short time-to-localize and time-to-fix for production bugs is extremely important for any 24x7 service-oriented application (SOA). Debugging buggy behavior in deployed applications is hard, as it requires careful reproduction of a similar environment and workload. Prior approaches for automatically reproducing production failures do not scale to large SOA systems. Our key insight is that for many failures in SOA systems (e.g., many semantic and performance bugs), a failure can automatically be reproduced solely by relaying network packets to replicas of suspect services, an insight that we validated through a manual study of 16 real bugs across five different systems. This paper presents Parikshan, an application monitoring framework that leverages user-space virtualization and network proxy technologies to provide a sandbox “debug” environment. In this “debug” environment, developers are free to attach debuggers and analysis tools without impacting performance or correctness of the production environment. In comparison to existing monitoring solutions that can slow down production applications, Parikshan allows application monitoring at significantly lower overhead.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"39 1","pages":"452-463"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88443930","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
SEEDE: Simultaneous Execution and Editing in a Development Environment seed:在开发环境中同时执行和编辑
S. Reiss, Qi Xin, Jeff Huang
We introduce a tool within the Code Bubbles development environment that allows for continuous execution as the programmer edits. The tool, SEEDE, shows both the intermediate and final results of execution in terms of variables, control and data flow, output, and graphics. These results are updated as the user edits. The tool can be used to help the user write new code or to find and fix bugs. The tool is explicitly designed to let the user quickly explore the execution of a method along with all the code it invokes, possibly while writing or modifying the code. The user can start continuous execution either at a breakpoint or for a test case. This paper describes the tool, its implementation, and its user interface. It presents an initial user study of the tool demonstrating its potential utility.
我们在Code Bubbles开发环境中引入了一个工具,允许程序员在编辑时持续执行。seed工具显示了执行的中间和最终结果,包括变量、控制和数据流、输出和图形。这些结果会随着用户的编辑而更新。该工具可用于帮助用户编写新代码或查找和修复错误。该工具被明确设计为使用户可以在编写或修改代码时,快速探索方法及其调用的所有代码的执行情况。用户可以在断点或测试用例处开始连续执行。本文描述了该工具、它的实现和它的用户界面。它展示了该工具的初始用户研究,展示了其潜在的实用性。
{"title":"SEEDE: Simultaneous Execution and Editing in a Development Environment","authors":"S. Reiss, Qi Xin, Jeff Huang","doi":"10.1145/3238147.3238182","DOIUrl":"https://doi.org/10.1145/3238147.3238182","url":null,"abstract":"We introduce a tool within the Code Bubbles development environment that allows for continuous execution as the programmer edits. The tool, SEEDE, shows both the intermediate and final results of execution in terms of variables, control and data flow, output, and graphics. These results are updated as the user edits. The tool can be used to help the user write new code or to find and fix bugs. The tool is explicitly designed to let the user quickly explore the execution of a method along with all the code it invokes, possibly while writing or modifying the code. The user can start continuous execution either at a breakpoint or for a test case. This paper describes the tool, its implementation, and its user interface. It presents an initial user study of the tool demonstrating its potential utility.","PeriodicalId":6622,"journal":{"name":"2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"32 1","pages":"270-281"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74931511","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}
引用次数: 3
期刊
2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)
全部 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