首页 > 最新文献

2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
String Analysis of Android Applications (N) Android应用程序的字符串分析(N)
J. D. Vecchio, Feng Shen, Kenny M. Yee, Boyu Wang, Steven Y. Ko, Lukasz Ziarek
The desire to understand mobile applications has resulted in researchers adapting classical static analysis techniques to the mobile domain. Examination of data and control flows in Android apps is now a common practice to classify them. Important to these analyses is a fine-grained examination and understanding of strings, since in Android they are heavily used in intents, URLs, reflection, and content providers. Rigorous analysis of string creation, usage, and value characteristics offers additional information to increase precision of app classification. This paper shows that inter-procedural static analysis that specifically targets string construction and usage can be used to reveal valuable insights for classifying Android apps. To this end, we first present case studies to illustrate typical uses of strings in Android apps. We then present the results of our analysis on real-world malicious and benign apps. Our analysis examines how strings are created and used for URL objects, Java reflection, and Android intents, and infers the actual string values used as much as possible. Our results demonstrate that string disambiguation based on creation, usage, and value indeed provides additional information that may be used to improve precision of classifying application behaviors.
了解移动应用程序的愿望导致研究人员将经典的静态分析技术应用于移动领域。检查Android应用程序中的数据和控制流现在是一种常见的做法,即对它们进行分类。对于这些分析来说,重要的是对字符串的细粒度检查和理解,因为在Android中,它们大量用于意图、url、反射和内容提供程序。对字符串创建、使用和值特征的严格分析提供了额外的信息,以提高应用程序分类的精度。本文表明,专门针对字符串结构和使用的过程间静态分析可以用于揭示对Android应用进行分类的有价值的见解。为此,我们首先通过案例研究来说明字符串在Android应用程序中的典型用法。然后,我们将展示我们对现实世界中的恶意和良性应用程序的分析结果。我们的分析考察了字符串是如何被创建和用于URL对象、Java反射和Android意图的,并尽可能多地推断出实际使用的字符串值。我们的结果表明,基于创建、使用和值的字符串消歧确实提供了可用于提高应用程序行为分类精度的额外信息。
{"title":"String Analysis of Android Applications (N)","authors":"J. D. Vecchio, Feng Shen, Kenny M. Yee, Boyu Wang, Steven Y. Ko, Lukasz Ziarek","doi":"10.1109/ASE.2015.20","DOIUrl":"https://doi.org/10.1109/ASE.2015.20","url":null,"abstract":"The desire to understand mobile applications has resulted in researchers adapting classical static analysis techniques to the mobile domain. Examination of data and control flows in Android apps is now a common practice to classify them. Important to these analyses is a fine-grained examination and understanding of strings, since in Android they are heavily used in intents, URLs, reflection, and content providers. Rigorous analysis of string creation, usage, and value characteristics offers additional information to increase precision of app classification. This paper shows that inter-procedural static analysis that specifically targets string construction and usage can be used to reveal valuable insights for classifying Android apps. To this end, we first present case studies to illustrate typical uses of strings in Android apps. We then present the results of our analysis on real-world malicious and benign apps. Our analysis examines how strings are created and used for URL objects, Java reflection, and Android intents, and infers the actual string values used as much as possible. Our results demonstrate that string disambiguation based on creation, usage, and value indeed provides additional information that may be used to improve precision of classifying application behaviors.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"45 1","pages":"680-685"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86435297","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}
引用次数: 6
Synthesizing Web Element Locators (T) 综合Web元素定位器(T)
Kartik Bajaj, K. Pattabiraman, A. Mesbah
To programmatically interact with the user interface of a web application, element locators are used to select and retrieve elements from the Document Object Model (DOM). Element locators are used in JavaScript code, Cascading stylesheets, and test cases to interact with the runtime DOM of the webpage. Constructing these element locators is, however, challenging due to the dynamic nature of the DOM. We find that locators written by web developers can be quite complex, and involve selecting multiple DOM elements. We present an automated technique for synthesizing DOM element locators using examples provided interactively by the developer. The main insight in our approach is that the problem of synthesizing complex multi-element locators can be expressed as a constraint solving problem over the domain of valid DOM states in a web application. We implemented our synthesis technique in a tool called LED, which provides an interactive drag and drop support inside the browser for selecting positive and negative examples. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.
为了与web应用程序的用户界面进行编程交互,元素定位器用于从文档对象模型(DOM)中选择和检索元素。元素定位器用于JavaScript代码、层叠样式表和测试用例中,以与网页的运行时DOM交互。然而,由于DOM的动态性,构造这些元素定位器是一项挑战。我们发现由web开发人员编写的定位器可能相当复杂,并且涉及到选择多个DOM元素。我们提出了一种自动合成DOM元素定位器的技术,使用开发人员交互式提供的示例。我们方法的主要见解是,综合复杂的多元素定位器的问题可以表示为web应用程序中有效DOM状态域的约束解决问题。我们在一个名为LED的工具中实现了我们的合成技术,该工具在浏览器中提供了交互式拖放支持,用于选择正面和负面示例。我们发现,在部署的web应用程序的JavaScript代码中,LED至少支持86%的定位器,并且由LED合成的定位器具有98%的召回率和63%的精度。LED的速度很快,合成一个定位器平均只需要0.23秒。
{"title":"Synthesizing Web Element Locators (T)","authors":"Kartik Bajaj, K. Pattabiraman, A. Mesbah","doi":"10.1109/ASE.2015.23","DOIUrl":"https://doi.org/10.1109/ASE.2015.23","url":null,"abstract":"To programmatically interact with the user interface of a web application, element locators are used to select and retrieve elements from the Document Object Model (DOM). Element locators are used in JavaScript code, Cascading stylesheets, and test cases to interact with the runtime DOM of the webpage. Constructing these element locators is, however, challenging due to the dynamic nature of the DOM. We find that locators written by web developers can be quite complex, and involve selecting multiple DOM elements. We present an automated technique for synthesizing DOM element locators using examples provided interactively by the developer. The main insight in our approach is that the problem of synthesizing complex multi-element locators can be expressed as a constraint solving problem over the domain of valid DOM states in a web application. We implemented our synthesis technique in a tool called LED, which provides an interactive drag and drop support inside the browser for selecting positive and negative examples. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"60 1","pages":"331-341"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88325049","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
Model-Driven Allocation Engineering (T) 模型驱动分配工程(T)
Uwe Pohlmann, Marcus Hüwe
Cyber-physical systems (CPSs) provide sophisticated functionality and are controlled by networked electronic control units (ECUs). Nowadays, software engineers use component-based development approaches to develop their software. Moreover, software components have to be allocated to an ECU to be executed. Engineers have to cope with topology-, software-, and timing-dependencies and memory-, scheduling-, and routing-constraints. Currently, engineers use linear programs to specify allocation constraints and to derive a feasible allocation automatically. However, encoding the allocation problem as a linear program is a complex and error-prone task. This paper contributes a model-driven, OCL-based allocation engineering approach for reducing the engineering effort and to avoid failures. We validate our approach with an automotive case study modeled with MechatronicUML. Our validation shows that we can specify allocation constraints with less engineering effort and are able to derive feasible allocations automatically.
网络物理系统(cps)提供复杂的功能,并由网络电子控制单元(ecu)控制。如今,软件工程师使用基于组件的开发方法来开发他们的软件。此外,软件组件必须分配给ECU才能执行。工程师必须处理拓扑、软件和时间依赖关系以及内存、调度和路由约束。目前,工程师使用线性规划来指定分配约束,并自动推导出可行的分配。然而,将分配问题编码为线性程序是一项复杂且容易出错的任务。本文提供了一种模型驱动的、基于ocl的分配工程方法,以减少工程工作量并避免失败。我们用一个用MechatronicUML建模的汽车案例研究来验证我们的方法。我们的验证表明,我们可以用较少的工程努力来指定分配约束,并且能够自动导出可行的分配。
{"title":"Model-Driven Allocation Engineering (T)","authors":"Uwe Pohlmann, Marcus Hüwe","doi":"10.1109/ASE.2015.18","DOIUrl":"https://doi.org/10.1109/ASE.2015.18","url":null,"abstract":"Cyber-physical systems (CPSs) provide sophisticated functionality and are controlled by networked electronic control units (ECUs). Nowadays, software engineers use component-based development approaches to develop their software. Moreover, software components have to be allocated to an ECU to be executed. Engineers have to cope with topology-, software-, and timing-dependencies and memory-, scheduling-, and routing-constraints. Currently, engineers use linear programs to specify allocation constraints and to derive a feasible allocation automatically. However, encoding the allocation problem as a linear program is a complex and error-prone task. This paper contributes a model-driven, OCL-based allocation engineering approach for reducing the engineering effort and to avoid failures. We validate our approach with an automotive case study modeled with MechatronicUML. Our validation shows that we can specify allocation constraints with less engineering effort and are able to derive feasible allocations automatically.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"13 1","pages":"374-384"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78880530","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
Crust: A Bounded Verifier for Rust (N) Crust: Rust (N)的有界验证器
J. Toman, Stuart Pernsteiner, E. Torlak
Rust is a modern systems language that provides guaranteed memory safety through static analysis. However, Rust includes an escape hatch in the form of "unsafe code," which the compiler assumes to be memory safe and to preserve crucial pointer aliasing invariants. Unsafe code appears in many data structure implementations and other essential libraries, and bugs in this code can lead to memory safety violations in parts of the program that the compiler otherwise proved safe. We present CRUST, a tool combining exhaustive test generation and bounded model checking to detect memory safety errors, as well as violations of Rust's pointer aliasing invariants within unsafe library code. CRUST requires no programmer annotations, only an indication of the modules to check. We evaluate CRUSTon data structures from the Rust standard library. It detects memory safety bugs that arose during the library's development and remained undetected for several months.
Rust是一种现代系统语言,它通过静态分析提供有保证的内存安全。然而,Rust以“不安全代码”的形式包含了一个转义口,编译器认为它是内存安全的,并保留了关键的指针混搭不变量。不安全代码出现在许多数据结构实现和其他基本库中,这些代码中的错误可能导致程序中编译器证明安全的部分违反内存安全。我们介绍了CRUST,这是一个结合了详尽测试生成和有界模型检查的工具,用于检测内存安全错误,以及不安全库代码中违反Rust指针混联不变量的情况。CRUST不需要程序员注释,只需要指示要检查的模块。我们从Rust标准库中评估CRUSTon数据结构。它可以检测在库开发过程中出现的内存安全错误,并且几个月都没有被发现。
{"title":"Crust: A Bounded Verifier for Rust (N)","authors":"J. Toman, Stuart Pernsteiner, E. Torlak","doi":"10.1109/ASE.2015.77","DOIUrl":"https://doi.org/10.1109/ASE.2015.77","url":null,"abstract":"Rust is a modern systems language that provides guaranteed memory safety through static analysis. However, Rust includes an escape hatch in the form of \"unsafe code,\" which the compiler assumes to be memory safe and to preserve crucial pointer aliasing invariants. Unsafe code appears in many data structure implementations and other essential libraries, and bugs in this code can lead to memory safety violations in parts of the program that the compiler otherwise proved safe. We present CRUST, a tool combining exhaustive test generation and bounded model checking to detect memory safety errors, as well as violations of Rust's pointer aliasing invariants within unsafe library code. CRUST requires no programmer annotations, only an indication of the modules to check. We evaluate CRUSTon data structures from the Rust standard library. It detects memory safety bugs that arose during the library's development and remained undetected for several months.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"10 1","pages":"75-80"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85343703","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
LED: Tool for Synthesizing Web Element Locators LED:合成Web元素定位器的工具
Kartik Bajaj, K. Pattabiraman, A. Mesbah
Web applications are growing fast in popularity and complexity. One of the major problems faced by web developers is writing JavaScript code that can retrieve Document Object Model (DOM) tree elements, and is consistent among multiple DOM states. We attempt to solve this problem by automatically synthesizing JavaScript code that interacts with the DOM. We present an automated tool called LED, to analyze the DOM elements, and synthesize code to select the DOM elements based on the DOM hierarchy as well as the nature of task that the user wants to perform. LED provides an interactive drag and drop support inside the browser for selecting positive and negative examples of DOM elements. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.
Web应用程序的流行程度和复杂性都在快速增长。web开发人员面临的主要问题之一是编写能够检索文档对象模型(DOM)树元素的JavaScript代码,并在多个DOM状态之间保持一致。我们试图通过自动合成与DOM交互的JavaScript代码来解决这个问题。我们提供了一个名为LED的自动化工具,用于分析DOM元素,并根据DOM层次结构和用户想要执行的任务的性质合成代码来选择DOM元素。LED在浏览器中提供交互式拖放支持,用于选择DOM元素的正面和负面示例。我们发现,在部署的web应用程序的JavaScript代码中,LED至少支持86%的定位器,并且由LED合成的定位器具有98%的召回率和63%的精度。LED的速度很快,合成一个定位器平均只需要0.23秒。
{"title":"LED: Tool for Synthesizing Web Element Locators","authors":"Kartik Bajaj, K. Pattabiraman, A. Mesbah","doi":"10.1109/ASE.2015.110","DOIUrl":"https://doi.org/10.1109/ASE.2015.110","url":null,"abstract":"Web applications are growing fast in popularity and complexity. One of the major problems faced by web developers is writing JavaScript code that can retrieve Document Object Model (DOM) tree elements, and is consistent among multiple DOM states. We attempt to solve this problem by automatically synthesizing JavaScript code that interacts with the DOM. We present an automated tool called LED, to analyze the DOM elements, and synthesize code to select the DOM elements based on the DOM hierarchy as well as the nature of task that the user wants to perform. LED provides an interactive drag and drop support inside the browser for selecting positive and negative examples of DOM elements. We find that LED supports at least 86% of the locators used in the JavaScript code of deployed web applications, and that the locators synthesized by LED have a recall of 98% and a precision of 63%. LED is fast, taking only 0.23 seconds on average to synthesize a locator.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"70 5","pages":"848-851"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91444030","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}
引用次数: 6
Model Checking Task Parallel Programs Using Gradual Permissions (N) 使用渐进权限检查任务并行程序的模型(N)
Eric Mercer, Peter Anderson, Nick Vrvilo, Vivek Sarkar
Habanero is a task parallel programming model that provides correctness guarantees to the programmer. Even so, programs may contain data races that lead to non-determinism, which complicates debugging and verification. This paper presents a sound algorithm based on permission regions to prove data race and deadlock freedom in Habanero programs. Permission regions are user annotations to indicate the use of shared variables over spans of code. The verification algorithm restricts scheduling to permission region boundaries and isolation to reduce verification cost. The effectiveness of the algorithm is shown in benchmarks with an implementation in the Java Pathfinder (JPF) model checker. The implementation uses a verification specific library for Habanero that is tested using JPF for correctness. The results show significant reductions in cost, where cost is controlled with the size of the permission regions, at the risk of rejecting programs that are actually free of any data race or deadlock.
Habanero是一个任务并行编程模型,它为程序员提供了正确性保证。即便如此,程序可能包含导致不确定性的数据竞争,这会使调试和验证变得复杂。提出了一种基于许可域的可靠算法来证明Habanero程序中的数据竞争和死锁自由。权限区域是用户注释,用于指示在代码范围内使用共享变量。验证算法将调度限制在权限区域边界和隔离上,以降低验证成本。该算法的有效性在Java Pathfinder (JPF)模型检查器中的实现的基准测试中得到了证明。该实现为Habanero使用了一个特定于验证的库,该库使用JPF进行了正确性测试。结果显示了成本的显著降低,成本由权限区域的大小控制,风险是拒绝实际上没有任何数据争用或死锁的程序。
{"title":"Model Checking Task Parallel Programs Using Gradual Permissions (N)","authors":"Eric Mercer, Peter Anderson, Nick Vrvilo, Vivek Sarkar","doi":"10.1109/ASE.2015.75","DOIUrl":"https://doi.org/10.1109/ASE.2015.75","url":null,"abstract":"Habanero is a task parallel programming model that provides correctness guarantees to the programmer. Even so, programs may contain data races that lead to non-determinism, which complicates debugging and verification. This paper presents a sound algorithm based on permission regions to prove data race and deadlock freedom in Habanero programs. Permission regions are user annotations to indicate the use of shared variables over spans of code. The verification algorithm restricts scheduling to permission region boundaries and isolation to reduce verification cost. The effectiveness of the algorithm is shown in benchmarks with an implementation in the Java Pathfinder (JPF) model checker. The implementation uses a verification specific library for Habanero that is tested using JPF for correctness. The results show significant reductions in cost, where cost is controlled with the size of the permission regions, at the risk of rejecting programs that are actually free of any data race or deadlock.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"84 1","pages":"535-540"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76370739","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Extracting Visual Contracts from Java Programs (T) 从Java程序中提取可视化契约(T)
Abdullah M. Alshanqiti, R. Heckel
Visual contracts model the operations of components or services by pre-and post-conditions formalised as graph transformation rules. They provide a precise intuitive notation to support testing, understanding and analysis of software. However, due to their detailed specification of data states and transformations, modelling real applications is an error-prone process. In this paper we propose a dynamic approach to reverse engineering visual contracts from Java based on tracing the execution of Java operations. The resulting contracts give an accurate description of the observed object transformations, their effects and preconditions in terms of object structures, parameter and attribute values, and their generalised specification by universally quantified (multi) objects. While this paper focusses on the fundamental technique rather than a particular application, we explore potential uses in our evaluation, including in program understanding, review of test reports and debugging.
可视化契约通过形式化为图转换规则的前置和后置条件对组件或服务的操作进行建模。它们提供了一个精确直观的符号来支持软件的测试、理解和分析。然而,由于它们对数据状态和转换的详细规范,对实际应用程序建模是一个容易出错的过程。在本文中,我们提出了一种基于跟踪Java操作执行的动态方法来从Java逆向工程可视化契约。由此产生的契约从对象结构、参数和属性值等方面准确地描述了观察到的对象转换、其效果和前提条件,并通过普遍量化(多)对象对其进行了一般化规范。虽然本文关注的是基本技术而不是特定的应用,但我们在评估中探索了潜在的用途,包括程序理解、测试报告的审查和调试。
{"title":"Extracting Visual Contracts from Java Programs (T)","authors":"Abdullah M. Alshanqiti, R. Heckel","doi":"10.1109/ASE.2015.63","DOIUrl":"https://doi.org/10.1109/ASE.2015.63","url":null,"abstract":"Visual contracts model the operations of components or services by pre-and post-conditions formalised as graph transformation rules. They provide a precise intuitive notation to support testing, understanding and analysis of software. However, due to their detailed specification of data states and transformations, modelling real applications is an error-prone process. In this paper we propose a dynamic approach to reverse engineering visual contracts from Java based on tracing the execution of Java operations. The resulting contracts give an accurate description of the observed object transformations, their effects and preconditions in terms of object structures, parameter and attribute values, and their generalised specification by universally quantified (multi) objects. While this paper focusses on the fundamental technique rather than a particular application, we explore potential uses in our evaluation, including in program understanding, review of test reports and debugging.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"104-114"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90683071","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}
引用次数: 5
Efficient Data Model Verification with Many-Sorted Logic (T) 基于多排序逻辑的高效数据模型验证
Ivan Bocic, T. Bultan
Misuse or loss of web application data can have catastrophic consequences in today's Internet oriented world. Hence, verification of web application data models is of paramount importance. We have developed a framework for verification of web application data models via translation to First Order Logic (FOL), followed by automated theorem proving. Due to the undecidability of FOL, this automated approach does not always produce a conclusive answer. In this paper, we investigate the use of many-sorted logic in data model verification in order to improve the effectiveness of this approach. Many-sorted logic allows us to specify type information explicitly, thus lightening the burden of reasoning about type information during theorem proving. Our experiments demonstrate that using many-sorted logic improves the verification performance significantly, and completely eliminates inconclusive results in all cases over 7 real world web applications, down from an 17% inconclusive rate.
在当今面向Internet的世界中,滥用或丢失web应用程序数据可能会造成灾难性的后果。因此,验证web应用程序数据模型是至关重要的。我们开发了一个框架,通过转换到一阶逻辑(FOL)来验证web应用程序数据模型,然后进行自动定理证明。由于FOL的不可判定性,这种自动化方法并不总是产生结论性的答案。在本文中,我们研究了多排序逻辑在数据模型验证中的使用,以提高该方法的有效性。多排序逻辑允许我们显式地指定类型信息,从而减轻了定理证明过程中关于类型信息的推理负担。我们的实验表明,使用多排序逻辑显著提高了验证性能,并且在超过7个真实web应用程序的所有情况下完全消除了不确定的结果,低于17%的不确定率。
{"title":"Efficient Data Model Verification with Many-Sorted Logic (T)","authors":"Ivan Bocic, T. Bultan","doi":"10.1109/ASE.2015.48","DOIUrl":"https://doi.org/10.1109/ASE.2015.48","url":null,"abstract":"Misuse or loss of web application data can have catastrophic consequences in today's Internet oriented world. Hence, verification of web application data models is of paramount importance. We have developed a framework for verification of web application data models via translation to First Order Logic (FOL), followed by automated theorem proving. Due to the undecidability of FOL, this automated approach does not always produce a conclusive answer. In this paper, we investigate the use of many-sorted logic in data model verification in order to improve the effectiveness of this approach. Many-sorted logic allows us to specify type information explicitly, thus lightening the burden of reasoning about type information during theorem proving. Our experiments demonstrate that using many-sorted logic improves the verification performance significantly, and completely eliminates inconclusive results in all cases over 7 real world web applications, down from an 17% inconclusive rate.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"6 1","pages":"42-52"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74338882","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}
引用次数: 6
Fast and Precise Symbolic Analysis of Concurrency Bugs in Device Drivers (T) 设备驱动程序并发错误的快速精确符号分析(T)
Pantazis Deligiannis, A. Donaldson, Zvonimir Rakamaric
Concurrency errors, such as data races, make device drivers notoriously hard to develop and debug without automated tool support. We present Whoop, a new automated approach that statically analyzes drivers for data races. Whoop is empowered by symbolic pairwise lockset analysis, a novel analysis that can soundly detect all potential races in a driver. Our analysis avoids reasoning about thread interleavings and thus scales well. Exploiting the race-freedom guarantees provided by Whoop, we achieve a sound partial-order reduction that significantly accelerates Corral, an industrial-strength bug-finder for concurrent programs. Using the combination of Whoop and Corral, we analyzed 16 drivers from the Linux 4.0 kernel, achieving 1.5 -- 20× speedups over standalone Corral.
并发性错误,如数据竞争,使设备驱动程序在没有自动化工具支持的情况下难以开发和调试。我们提出了Whoop,这是一种新的自动化方法,可以静态分析数据竞赛的驱动程序。Whoop是由符号配对锁集分析,一种新颖的分析,可以很好地检测到所有潜在的比赛在一个驱动程序。我们的分析避免了关于线程交织的推理,因此伸缩性很好。利用Whoop提供的种族自由保证,我们实现了合理的部分阶减少,显著加快了Corral(并发程序的工业级bug查找器)的速度。使用Whoop和Corral的组合,我们分析了来自Linux 4.0内核的16个驱动程序,比独立的Corral实现了1.5 - 20倍的速度提升。
{"title":"Fast and Precise Symbolic Analysis of Concurrency Bugs in Device Drivers (T)","authors":"Pantazis Deligiannis, A. Donaldson, Zvonimir Rakamaric","doi":"10.1109/ASE.2015.30","DOIUrl":"https://doi.org/10.1109/ASE.2015.30","url":null,"abstract":"Concurrency errors, such as data races, make device drivers notoriously hard to develop and debug without automated tool support. We present Whoop, a new automated approach that statically analyzes drivers for data races. Whoop is empowered by symbolic pairwise lockset analysis, a novel analysis that can soundly detect all potential races in a driver. Our analysis avoids reasoning about thread interleavings and thus scales well. Exploiting the race-freedom guarantees provided by Whoop, we achieve a sound partial-order reduction that significantly accelerates Corral, an industrial-strength bug-finder for concurrent programs. Using the combination of Whoop and Corral, we analyzed 16 drivers from the Linux 4.0 kernel, achieving 1.5 -- 20× speedups over standalone Corral.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"4 1","pages":"166-177"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76335311","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}
引用次数: 30
An Automated Framework for Recommending Program Elements to Novices (N) 向新手推荐程序元素的自动框架(N)
Kurtis Zimmerman, C. R. Rupakheti
Novice programmers often learn programming by implementing well-known algorithms. There are several challenges in the process. Recommendation systems in software currently focus on programmer productivity and ease of development. Teaching aides for such novice programmers based on recommendation systems still remain an under-explored area. In this paper, we present a general framework for recognizing the desired target for partially-written code and recommending a reliable series of edits to transform the input program into the target solution. Our code analysis is based on graph matching and tree edit algorithms. Our experimental results show that efficient graph comparison techniques can accurately match two portions of source code and produce an accurate set of source code edits. We provide details on implementation of our framework, which is developed as a plugin for Java in Eclipse IDE.
新手程序员通常通过实现众所周知的算法来学习编程。在这个过程中有几个挑战。软件中的推荐系统目前关注的是程序员的生产力和开发的便利性。针对这些新手程序员的基于推荐系统的教学辅助仍然是一个未开发的领域。在本文中,我们提出了一个通用框架,用于识别部分编写的代码的期望目标,并推荐一系列可靠的编辑来将输入程序转换为目标解决方案。我们的代码分析是基于图匹配和树编辑算法。我们的实验结果表明,高效的图形比较技术可以准确地匹配源代码的两个部分,并产生一组准确的源代码编辑。我们提供了框架实现的细节,该框架是作为Eclipse IDE中的Java插件开发的。
{"title":"An Automated Framework for Recommending Program Elements to Novices (N)","authors":"Kurtis Zimmerman, C. R. Rupakheti","doi":"10.1109/ASE.2015.54","DOIUrl":"https://doi.org/10.1109/ASE.2015.54","url":null,"abstract":"Novice programmers often learn programming by implementing well-known algorithms. There are several challenges in the process. Recommendation systems in software currently focus on programmer productivity and ease of development. Teaching aides for such novice programmers based on recommendation systems still remain an under-explored area. In this paper, we present a general framework for recognizing the desired target for partially-written code and recommending a reliable series of edits to transform the input program into the target solution. Our code analysis is based on graph matching and tree edit algorithms. Our experimental results show that efficient graph comparison techniques can accurately match two portions of source code and produce an accurate set of source code edits. We provide details on implementation of our framework, which is developed as a plugin for Java in Eclipse IDE.","PeriodicalId":6586,"journal":{"name":"2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"11 1","pages":"283-288"},"PeriodicalIF":0.0,"publicationDate":"2015-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75553836","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
期刊
2015 30th 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学术文献互助群
群 号:604180095
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1