首页 > 最新文献

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

英文 中文
NEURODIFF: Scalable Differential Verification of Neural Networks using Fine-Grained Approximation 使用细粒度逼近的神经网络的可扩展差分验证
Brandon Paulsen, Jingbo Wang, Jiawei Wang, Chao Wang
As neural networks make their way into safety-critical systems, where misbehavior can lead to catastrophes, there is a growing interest in certifying the equivalence of two structurally similar neural networks - a problem known as differential verification. For example, compression techniques are often used in practice for deploying trained neural networks on computationally- and energy-constrained devices, which raises the question of how faithfully the compressed network mimics the original network. Unfortunately, existing methods either focus on verifying a single network or rely on loose approximations to prove the equivalence of two networks. Due to overly conservative approximation, differential verification lacks scalability in terms of both accuracy and computational cost. To overcome these problems, we propose NEURODIFF, a symbolic and fine-grained approximation technique that drastically increases the accuracy of differential verification on feed-forward ReLU networks while achieving many orders-of-magnitude speedup. NEURODIFF has two key contributions. The first one is new convex approximations that more accurately bound the difference of two networks under all possible inputs. The second one is judicious use of symbolic variables to represent neurons whose difference bounds have accumulated significant error. We find that these two techniques are complementary, i.e., when combined, the benefit is greater than the sum of their individual benefits. We have evaluated NEURODIFF on a variety of differential verification tasks. Our results show that NEURODIFF is up to 1000X faster and 5X more accurate than the state-of-the-art tool.
随着神经网络进入安全关键系统,在这些系统中,不当行为可能导致灾难,人们对证明两个结构相似的神经网络的等效性越来越感兴趣——这个问题被称为差分验证。例如,在实践中,压缩技术经常用于在计算和能量受限的设备上部署经过训练的神经网络,这就提出了压缩网络如何忠实地模拟原始网络的问题。不幸的是,现有的方法要么侧重于验证单个网络,要么依赖于松散的近似来证明两个网络的等价性。由于过于保守的近似,差分验证在精度和计算成本方面都缺乏可扩展性。为了克服这些问题,我们提出了NEURODIFF,这是一种符号和细粒度近似技术,它大大提高了前馈ReLU网络差分验证的准确性,同时实现了许多数量级的加速。NEURODIFF有两个关键贡献。第一个是新的凸近似,它更精确地约束了两个网络在所有可能输入下的差异。第二是明智地使用符号变量来表示那些差界累积了显著误差的神经元。我们发现这两种技术是互补的,即当结合使用时,收益大于其单独收益的总和。我们已经在各种不同的验证任务上评估了NEURODIFF。我们的结果表明,NEURODIFF比最先进的工具快1000倍,准确5倍。
{"title":"NEURODIFF: Scalable Differential Verification of Neural Networks using Fine-Grained Approximation","authors":"Brandon Paulsen, Jingbo Wang, Jiawei Wang, Chao Wang","doi":"10.1145/3324884.3416560","DOIUrl":"https://doi.org/10.1145/3324884.3416560","url":null,"abstract":"As neural networks make their way into safety-critical systems, where misbehavior can lead to catastrophes, there is a growing interest in certifying the equivalence of two structurally similar neural networks - a problem known as differential verification. For example, compression techniques are often used in practice for deploying trained neural networks on computationally- and energy-constrained devices, which raises the question of how faithfully the compressed network mimics the original network. Unfortunately, existing methods either focus on verifying a single network or rely on loose approximations to prove the equivalence of two networks. Due to overly conservative approximation, differential verification lacks scalability in terms of both accuracy and computational cost. To overcome these problems, we propose NEURODIFF, a symbolic and fine-grained approximation technique that drastically increases the accuracy of differential verification on feed-forward ReLU networks while achieving many orders-of-magnitude speedup. NEURODIFF has two key contributions. The first one is new convex approximations that more accurately bound the difference of two networks under all possible inputs. The second one is judicious use of symbolic variables to represent neurons whose difference bounds have accumulated significant error. We find that these two techniques are complementary, i.e., when combined, the benefit is greater than the sum of their individual benefits. We have evaluated NEURODIFF on a variety of differential verification tasks. Our results show that NEURODIFF is up to 1000X faster and 5X more accurate than the state-of-the-art tool.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128009586","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
Finding Ethereum Smart Contracts Security Issues by Comparing History Versions 通过比较历史版本发现以太坊智能合约安全问题
Jiachi Chen
Smart contracts are Turing-complete programs running on the blockchain. They cannot be modified, even when bugs are detected. The Selfdestruct function is the only way to destroy a contract on the blockchain system and transfer all the Ethers on the contract balance. Thus, many developers use this function to destroy a contract and redeploy a new one when bugs are detected. In this paper, we propose a deep learning-based method to find security issues of Ethereum smart contracts by finding the updated version of a destructed contract. After finding the updated versions, we use open card sorting to find security issues.
智能合约是运行在区块链上的图灵完备程序。即使检测到错误,也不能修改它们。自毁功能是销毁区块链系统上的合约并转移合约余额上所有以太币的唯一方法。因此,许多开发人员使用此函数在检测到错误时销毁合约并重新部署新合约。在本文中,我们提出了一种基于深度学习的方法,通过查找被破坏合约的更新版本来发现以太坊智能合约的安全问题。在找到更新版本后,我们使用开放卡片排序来查找安全问题。
{"title":"Finding Ethereum Smart Contracts Security Issues by Comparing History Versions","authors":"Jiachi Chen","doi":"10.1145/3324884.3418923","DOIUrl":"https://doi.org/10.1145/3324884.3418923","url":null,"abstract":"Smart contracts are Turing-complete programs running on the blockchain. They cannot be modified, even when bugs are detected. The Selfdestruct function is the only way to destroy a contract on the blockchain system and transfer all the Ethers on the contract balance. Thus, many developers use this function to destroy a contract and redeploy a new one when bugs are detected. In this paper, we propose a deep learning-based method to find security issues of Ethereum smart contracts by finding the updated version of a destructed contract. After finding the updated versions, we use open card sorting to find security issues.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127335184","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}
引用次数: 13
Generating Concept based API Element Comparison Using a Knowledge Graph 使用知识图生成基于概念的API元素比较
Yang Liu, Mingwei Liu, Xin Peng, Christoph Treude, Zhenchang Xing, Xiaoxin Zhang
Developers are concerned with the comparison of similar APIs in terms of their commonalities and (often subtle) differences. Our empirical study of Stack Overflow questions and API documentation confirms that API comparison questions are common and can often be answered by knowledge contained in API reference documentation. Our study also identifies eight types of API statements that are useful for API comparison. Based on these findings, we propose a knowledge graph based approach APIComp that automatically extracts API knowledge from API reference documentation to support the comparison of a pair of API classes or methods from different aspects. Our approach includes an offline phase for constructing an API knowledge graph, and an online phase for generating an API comparison result for a given pair of API elements. Our evaluation shows that the quality of different kinds of extracted knowledge in the API knowledge graph is generally high. Furthermore, the comparison results generated by APIComp are significantly better than those generated by a baseline approach based on heuristic rules and text similarity, and our generated API comparison results are useful for helping developers in API selection tasks.
开发人员关心的是类似api在共性和(通常是细微的)差异方面的比较。我们对堆栈溢出问题和API文档的实证研究证实,API比较问题很常见,通常可以通过API参考文档中包含的知识来回答。我们的研究还确定了对API比较有用的八种API语句。基于这些发现,我们提出了一种基于知识图的方法APIComp,该方法可以自动从API参考文档中提取API知识,以支持从不同方面对一对API类或方法进行比较。我们的方法包括一个用于构建API知识图的离线阶段和一个用于生成给定API元素对的API比较结果的在线阶段。我们的评价表明,API知识图中提取的各类知识质量总体较高。此外,APIComp生成的比较结果明显优于基于启发式规则和文本相似度的基线方法生成的比较结果,我们生成的API比较结果对于帮助开发人员完成API选择任务非常有用。
{"title":"Generating Concept based API Element Comparison Using a Knowledge Graph","authors":"Yang Liu, Mingwei Liu, Xin Peng, Christoph Treude, Zhenchang Xing, Xiaoxin Zhang","doi":"10.1145/3324884.3416628","DOIUrl":"https://doi.org/10.1145/3324884.3416628","url":null,"abstract":"Developers are concerned with the comparison of similar APIs in terms of their commonalities and (often subtle) differences. Our empirical study of Stack Overflow questions and API documentation confirms that API comparison questions are common and can often be answered by knowledge contained in API reference documentation. Our study also identifies eight types of API statements that are useful for API comparison. Based on these findings, we propose a knowledge graph based approach APIComp that automatically extracts API knowledge from API reference documentation to support the comparison of a pair of API classes or methods from different aspects. Our approach includes an offline phase for constructing an API knowledge graph, and an online phase for generating an API comparison result for a given pair of API elements. Our evaluation shows that the quality of different kinds of extracted knowledge in the API knowledge graph is generally high. Furthermore, the comparison results generated by APIComp are significantly better than those generated by a baseline approach based on heuristic rules and text similarity, and our generated API comparison results are useful for helping developers in API selection tasks.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126650387","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
Stay Professional and Efficient: Automatically Generate Titles for Your Bug Reports 保持专业和高效:自动为Bug报告生成标题
Songqiang Chen, Xiaoyuan Xie, Bangguo Yin, Yuanxiang Ji, Lin Chen, Baowen Xu
Bug reports in a repository are generally organized line by line in a list-view, with their titles and other meta-data displayed. In this list-view, a concise and precise title plays an important role that enables project practitioners to quickly and correctly digest the core idea of the bug, without carefully reading the corresponding details. However, the quality of bug report titles varies in open-source communities, which may be due to the limited time and unprofessionalism of authors. To help report authors efficiently draft good-quality titles, we propose a method, named iTAPE, to automatically generate titles for their bug reports. iTAPE formulates title generation into a one-sentence summarization task. By properly tackling two domain-specific challenges (i.e. lacking off-the-shelf dataset and handling the low-frequency human-named tokens), iTAPE then generates titles using a Seq2Seq-based model. A comprehensive experimental study shows that iTAPE can obtain fairly satisfactory results, in terms of the comparison with three latest one-sentence summarization works, as well as the feedback from human evaluation.
存储库中的Bug报告通常在列表视图中逐行组织,并显示其标题和其他元数据。在这个列表视图中,一个简洁而精确的标题起着重要的作用,它使项目从业者能够快速而正确地消化bug的核心思想,而不需要仔细阅读相应的细节。然而,在开源社区中,bug报告标题的质量参差不齐,这可能是由于时间有限和作者的不专业。为了帮助报告作者有效地起草高质量的标题,我们提出了一种名为iTAPE的方法,为他们的bug报告自动生成标题。iTAPE将标题生成表述为一句话总结任务。通过正确解决两个特定领域的挑战(即缺乏现成的数据集和处理低频的人类命名令牌),iTAPE然后使用基于seq2seq的模型生成标题。综合实验研究表明,无论是与最新的三部一句话总结作品对比,还是从人的评价反馈来看,iTAPE都能获得相当满意的结果。
{"title":"Stay Professional and Efficient: Automatically Generate Titles for Your Bug Reports","authors":"Songqiang Chen, Xiaoyuan Xie, Bangguo Yin, Yuanxiang Ji, Lin Chen, Baowen Xu","doi":"10.1145/3324884.3416538","DOIUrl":"https://doi.org/10.1145/3324884.3416538","url":null,"abstract":"Bug reports in a repository are generally organized line by line in a list-view, with their titles and other meta-data displayed. In this list-view, a concise and precise title plays an important role that enables project practitioners to quickly and correctly digest the core idea of the bug, without carefully reading the corresponding details. However, the quality of bug report titles varies in open-source communities, which may be due to the limited time and unprofessionalism of authors. To help report authors efficiently draft good-quality titles, we propose a method, named iTAPE, to automatically generate titles for their bug reports. iTAPE formulates title generation into a one-sentence summarization task. By properly tackling two domain-specific challenges (i.e. lacking off-the-shelf dataset and handling the low-frequency human-named tokens), iTAPE then generates titles using a Seq2Seq-based model. A comprehensive experimental study shows that iTAPE can obtain fairly satisfactory results, in terms of the comparison with three latest one-sentence summarization works, as well as the feedback from human evaluation.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"147 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127257729","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
Automated Implementation of Windows-related Security-Configuration Guides 自动实现与windows相关的安全配置指南
Patrick Stöckle, Bernd Grobauer, A. Pretschner
Hardening is the process of configuring IT systems to ensure the security of the systems' components and data they process or store. The complexity of contemporary IT infrastructures, however, renders manual security hardening and maintenance a daunting task. In many organizations, security-configuration guides expressed in the SCAP (Security Content Automation Protocol) are used as a basis for hardening, but these guides by themselves provide no means for automatically implementing the required configurations. In this paper, we propose an approach to automatically extract the relevant information from publicly available security-configuration guides for Windows operating systems using natural language processing. In a second step, the extracted information is verified using the information of available settings stored in the Windows Administrative Template files, in which the majority of Windows configuration settings is defined. We show that our implementation of this approach can extract and implement 83% of the rules without any manual effort and 96% with minimal manual effort. Furthermore, we conduct a study with 12 state-of-the-art guides consisting of 2014 rules with automatic checks and show that our tooling can implement at least 97% of them correctly. We have thus significantly reduced the effort of securing systems based on existing security-configuration guides. In many organizations, security-configuration guides expressed in the SCAP (Security Content Automation Protocol) are used as a basis for hardening, but these guides by themselves provide no means for automatically implementing the required configurations. In this paper, we propose an approach to automatically extract the relevant information from publicly available security-configuration guides for Windows operating systems using natural language processing. In a second step, the extracted information is verified using the information of available settings stored in the Windows Administrative Template files, in which the majority of Windows configuration settings is defined. We show that our implementation of this approach can extract and implement 83% of the rules without any manual effort and 96% with minimal manual effort. Furthermore, we conduct a study with 12 state-of-the-art guides consisting of 2014 rules with automatic checks and show that our tooling can implement at least 97% of them correctly. We have thus significantly reduced the effort of securing systems based on existing security-configuration guides. In this paper, we propose an approach to automatically extract the relevant information from publicly available security-configuration guides for Windows operating systems using natural language processing. In a second step, the extracted information is verified using the information of available settings stored in the Windows Administrative Template files, in which the majority of Windows configuration settings is defined. We show that our implementation of thi
加固是对IT系统进行配置,以确保系统组件及其处理或存储的数据的安全性的过程。然而,当代IT基础设施的复杂性使得手动安全加固和维护成为一项艰巨的任务。在许多组织中,使用SCAP(安全内容自动化协议)表示的安全配置指南作为加固的基础,但是这些指南本身并没有提供自动实现所需配置的方法。在本文中,我们提出了一种使用自然语言处理从公开可用的Windows操作系统安全配置指南中自动提取相关信息的方法。在第二步中,使用存储在Windows Administrative Template文件中的可用设置信息验证提取的信息,其中定义了大多数Windows配置设置。我们表明,这种方法的实现可以在不需要任何人工操作的情况下提取和实现83%的规则,96%的规则只需最少的人工操作。此外,我们对包含2014年自动检查规则的12个最先进的指南进行了研究,并表明我们的工具可以正确实现至少97%的规则。因此,我们大大减少了基于现有安全配置指南保护系统的工作。在许多组织中,使用SCAP(安全内容自动化协议)表示的安全配置指南作为加固的基础,但是这些指南本身并没有提供自动实现所需配置的方法。在本文中,我们提出了一种使用自然语言处理从公开可用的Windows操作系统安全配置指南中自动提取相关信息的方法。在第二步中,使用存储在Windows Administrative Template文件中的可用设置信息验证提取的信息,其中定义了大多数Windows配置设置。我们表明,这种方法的实现可以在不需要任何人工操作的情况下提取和实现83%的规则,96%的规则只需最少的人工操作。此外,我们对包含2014年自动检查规则的12个最先进的指南进行了研究,并表明我们的工具可以正确实现至少97%的规则。因此,我们大大减少了基于现有安全配置指南保护系统的工作。在本文中,我们提出了一种使用自然语言处理从公开可用的Windows操作系统安全配置指南中自动提取相关信息的方法。在第二步中,使用存储在Windows Administrative Template文件中的可用设置信息验证提取的信息,其中定义了大多数Windows配置设置。我们表明,这种方法的实现可以在不需要任何人工操作的情况下提取和实现83%的规则,96%的规则只需最少的人工操作。此外,我们对包含2014年自动检查规则的12个最先进的指南进行了研究,并表明我们的工具可以正确实现至少97%的规则。因此,我们大大减少了基于现有安全配置指南保护系统的工作。我们表明,这种方法的实现可以在不需要任何人工操作的情况下提取和实现83%的规则,96%的规则只需最少的人工操作。此外,我们对包含2014年自动检查规则的12个最先进的指南进行了研究,并表明我们的工具可以正确实现至少97%的规则。因此,我们大大减少了基于现有安全配置指南保护系统的工作。
{"title":"Automated Implementation of Windows-related Security-Configuration Guides","authors":"Patrick Stöckle, Bernd Grobauer, A. Pretschner","doi":"10.1145/3324884.3416540","DOIUrl":"https://doi.org/10.1145/3324884.3416540","url":null,"abstract":"Hardening is the process of configuring IT systems to ensure the security of the systems' components and data they process or store. The complexity of contemporary IT infrastructures, however, renders manual security hardening and maintenance a daunting task. In many organizations, security-configuration guides expressed in the SCAP (Security Content Automation Protocol) are used as a basis for hardening, but these guides by themselves provide no means for automatically implementing the required configurations. In this paper, we propose an approach to automatically extract the relevant information from publicly available security-configuration guides for Windows operating systems using natural language processing. In a second step, the extracted information is verified using the information of available settings stored in the Windows Administrative Template files, in which the majority of Windows configuration settings is defined. We show that our implementation of this approach can extract and implement 83% of the rules without any manual effort and 96% with minimal manual effort. Furthermore, we conduct a study with 12 state-of-the-art guides consisting of 2014 rules with automatic checks and show that our tooling can implement at least 97% of them correctly. We have thus significantly reduced the effort of securing systems based on existing security-configuration guides. In many organizations, security-configuration guides expressed in the SCAP (Security Content Automation Protocol) are used as a basis for hardening, but these guides by themselves provide no means for automatically implementing the required configurations. In this paper, we propose an approach to automatically extract the relevant information from publicly available security-configuration guides for Windows operating systems using natural language processing. In a second step, the extracted information is verified using the information of available settings stored in the Windows Administrative Template files, in which the majority of Windows configuration settings is defined. We show that our implementation of this approach can extract and implement 83% of the rules without any manual effort and 96% with minimal manual effort. Furthermore, we conduct a study with 12 state-of-the-art guides consisting of 2014 rules with automatic checks and show that our tooling can implement at least 97% of them correctly. We have thus significantly reduced the effort of securing systems based on existing security-configuration guides. In this paper, we propose an approach to automatically extract the relevant information from publicly available security-configuration guides for Windows operating systems using natural language processing. In a second step, the extracted information is verified using the information of available settings stored in the Windows Administrative Template files, in which the majority of Windows configuration settings is defined. We show that our implementation of thi","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124764536","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
Towards Programming and Verification for Activity-Oriented Smart Home Systems 面向活动的智能家居系统的编程与验证
Xuansong Li, Wei Song, X. Zhang
Smart home systems are becoming increasingly popular. Software engineering of such systems hence becomes a prominent challenge. In this engineering paradigm, users are often interested in considering sensor states while they are performing various activities. Existing works have proposed initial efforts on incremental development method for activity-oriented requirements. However, there is no systematic way of ensuring reliability and security of such systems which may be developed by various developers and may execute in a complex environment. Some properties, especially those including timing constraints, need to be satisfied. In this paper, we introduce Actom, a framework for identification of activity-oriented requirements and runtime verification. Actom supports the development of the mapping between activities and required sensor readings (activity-sensor mapping). At runtime, Actom receives results of activity recognition and is able to trigger actuators to provide the required physical conditions for the activities, as determined by the activity-sensor mapping. Moreover, Actom continuously monitors whether activity-sensor mapping holds over a time period during the activity. We also discuss the evaluation plan to demonstrate the effectiveness and efficiency of Actom. The end product will be a systematic framework to facilitate the development of activity-oriented requirements and monitor properties with timing constraints to improve reliability and security.
智能家居系统正变得越来越流行。因此,此类系统的软件工程成为一个突出的挑战。在此工程范例中,用户在执行各种活动时通常对考虑传感器状态感兴趣。现有的工作已经提出了针对面向活动的需求的增量开发方法的初步努力。然而,没有系统的方法来确保这些系统的可靠性和安全性,这些系统可能由不同的开发人员开发,并可能在复杂的环境中执行。需要满足一些属性,特别是那些包含时间约束的属性。在本文中,我们介绍了Actom,一个用于识别面向活动的需求和运行时验证的框架。Actom支持开发活动和所需传感器读数之间的映射(活动-传感器映射)。在运行时,Actom接收活动识别的结果,并能够触发执行器为活动提供所需的物理条件,这是由活动传感器映射确定的。此外,Actom会持续监视活动传感器映射是否在活动期间保持一段时间。我们还讨论了评估计划,以证明Actom的有效性和效率。最终产品将是一个系统框架,以促进面向活动的需求的开发,并监视具有时间限制的属性,以提高可靠性和安全性。
{"title":"Towards Programming and Verification for Activity-Oriented Smart Home Systems","authors":"Xuansong Li, Wei Song, X. Zhang","doi":"10.1145/3324884.3418906","DOIUrl":"https://doi.org/10.1145/3324884.3418906","url":null,"abstract":"Smart home systems are becoming increasingly popular. Software engineering of such systems hence becomes a prominent challenge. In this engineering paradigm, users are often interested in considering sensor states while they are performing various activities. Existing works have proposed initial efforts on incremental development method for activity-oriented requirements. However, there is no systematic way of ensuring reliability and security of such systems which may be developed by various developers and may execute in a complex environment. Some properties, especially those including timing constraints, need to be satisfied. In this paper, we introduce Actom, a framework for identification of activity-oriented requirements and runtime verification. Actom supports the development of the mapping between activities and required sensor readings (activity-sensor mapping). At runtime, Actom receives results of activity recognition and is able to trigger actuators to provide the required physical conditions for the activities, as determined by the activity-sensor mapping. Moreover, Actom continuously monitors whether activity-sensor mapping holds over a time period during the activity. We also discuss the evaluation plan to demonstrate the effectiveness and efficiency of Actom. The end product will be a systematic framework to facilitate the development of activity-oriented requirements and monitor properties with timing constraints to improve reliability and security.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133804600","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
SAT-Based Arithmetic Support for Alloy 基于sat的合金算法支持
César Cornejo
Formal specifications in Alloy are organized around user-defined data domains, associated with signatures, with almost no support for built-in datatypes. This minimality in the built-in datatypes provided by the language is one of its main features, as it contributes to the automated analyzability of models. One of the few built-in datatypes available in Alloy specifications are integers, whose SAT-based treatment allows only for small bit-widths. In many contexts, where relational datatypes dominate, the use of integers may be auxiliary, e.g., in the use of cardinality constraints and other features. However, as the applications of Alloy are increased, e.g., with the use of the language and its tool support as backend engine for different analysis tasks, the provision of efficient support for numerical datatypes becomes a need. In this work, we present our current preliminary approach to providing an efficient, scalable and user-friendly extension to Alloy, with arithmetic support for numerical datatypes. Our implementation allows for arithmetic with varying precisions, and is implemented via standard Alloy constructions, thus resorting to SAT solving for resolving arithmetic constraints in models.
Alloy中的正式规范是围绕用户定义的数据域组织的,与签名相关联,几乎不支持内置数据类型。该语言提供的内置数据类型中的这种最小化是其主要特性之一,因为它有助于模型的自动分析性。Alloy规范中可用的少数内置数据类型之一是整数,其基于sat的处理只允许较小的位宽度。在关系数据类型占主导地位的许多上下文中,整数的使用可能是辅助的,例如,在使用基数约束和其他特征时。然而,随着Alloy应用的增加,例如,使用该语言及其工具支持作为不同分析任务的后端引擎,需要提供对数值数据类型的有效支持。在这项工作中,我们提出了我们目前的初步方法,为Alloy提供一个高效、可扩展和用户友好的扩展,并为数值数据类型提供算术支持。我们的实现允许不同精度的算术,并通过标准的Alloy结构实现,因此通过SAT求解来解决模型中的算术约束。
{"title":"SAT-Based Arithmetic Support for Alloy","authors":"César Cornejo","doi":"10.1145/3324884.3415285","DOIUrl":"https://doi.org/10.1145/3324884.3415285","url":null,"abstract":"Formal specifications in Alloy are organized around user-defined data domains, associated with signatures, with almost no support for built-in datatypes. This minimality in the built-in datatypes provided by the language is one of its main features, as it contributes to the automated analyzability of models. One of the few built-in datatypes available in Alloy specifications are integers, whose SAT-based treatment allows only for small bit-widths. In many contexts, where relational datatypes dominate, the use of integers may be auxiliary, e.g., in the use of cardinality constraints and other features. However, as the applications of Alloy are increased, e.g., with the use of the language and its tool support as backend engine for different analysis tasks, the provision of efficient support for numerical datatypes becomes a need. In this work, we present our current preliminary approach to providing an efficient, scalable and user-friendly extension to Alloy, with arithmetic support for numerical datatypes. Our implementation allows for arithmetic with varying precisions, and is implemented via standard Alloy constructions, thus resorting to SAT solving for resolving arithmetic constraints in models.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"617 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131994556","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
Learning to Handle Exceptions 学习处理异常
Jian Zhang, Xu Wang, Hongyu Zhang, Hailong Sun, Yanjun Pu, Xudong Liu
Exception handling is an important built-in feature of many modern programming languages such as Java. It allows developers to deal with abnormal or unexpected conditions that may occur at runtime in advance by using try-catch blocks. Missing or improper implementation of exception handling can cause catastrophic consequences such as system crash. However, previous studies reveal that developers are unwilling or feel it hard to adopt exception handling mechanism, and tend to ignore it until a system failure forces them to do so. To help developers with exception handling, existing work produces recommendations such as code examples and exception types, which still requires developers to localize the try blocks and modify the catch block code to fit the context. In this paper, we propose a novel neural approach to automated exception handling, which can predict locations of try blocks and automatically generate the complete catch blocks. We collect a large number of Java methods from GitHub and conduct experiments to evaluate our approach. The evaluation results, including quantitative measurement and human evaluation, show that our approach is highly effective and outperforms all baselines. Our work makes one step further towards automated exception handling.
异常处理是许多现代编程语言(如Java)的重要内置特性。它允许开发人员通过使用try-catch块提前处理可能在运行时发生的异常或意外情况。异常处理的缺失或不正确的实现可能导致灾难性的后果,例如系统崩溃。然而,以前的研究表明,开发人员不愿意或觉得很难采用异常处理机制,并且倾向于忽略它,直到系统故障迫使他们这样做。为了帮助开发人员处理异常,现有的工作产生了一些建议,比如代码示例和异常类型,这仍然需要开发人员本地化try块并修改catch块代码以适应上下文。在本文中,我们提出了一种新的神经网络方法来自动处理异常,该方法可以预测try块的位置并自动生成完整的catch块。我们从GitHub收集了大量的Java方法,并进行了实验来评估我们的方法。评估结果,包括定量测量和人的评估,表明我们的方法是非常有效的,优于所有基线。我们的工作使自动化异常处理又向前迈进了一步。
{"title":"Learning to Handle Exceptions","authors":"Jian Zhang, Xu Wang, Hongyu Zhang, Hailong Sun, Yanjun Pu, Xudong Liu","doi":"10.1145/3324884.3416568","DOIUrl":"https://doi.org/10.1145/3324884.3416568","url":null,"abstract":"Exception handling is an important built-in feature of many modern programming languages such as Java. It allows developers to deal with abnormal or unexpected conditions that may occur at runtime in advance by using try-catch blocks. Missing or improper implementation of exception handling can cause catastrophic consequences such as system crash. However, previous studies reveal that developers are unwilling or feel it hard to adopt exception handling mechanism, and tend to ignore it until a system failure forces them to do so. To help developers with exception handling, existing work produces recommendations such as code examples and exception types, which still requires developers to localize the try blocks and modify the catch block code to fit the context. In this paper, we propose a novel neural approach to automated exception handling, which can predict locations of try blocks and automatically generate the complete catch blocks. We collect a large number of Java methods from GitHub and conduct experiments to evaluate our approach. The evaluation results, including quantitative measurement and human evaluation, show that our approach is highly effective and outperforms all baselines. Our work makes one step further towards automated exception handling.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132028942","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
No Strings Attached: An Empirical Study of String-related Software Bugs 无附加条件:字符串相关软件bug的实证研究
A. Eghbali, Michael Pradel
Strings play many roles in programming because they often contain complex and semantically rich information. For example, programmers use strings to filter inputs via regular expression matching, to express the names of program elements accessed through some form of reflection, to embed code written in another formal language, and to assemble textual output produced by a program. The omnipresence of strings leads to a wide range of mistakes that developers may make, yet little is currently known about these mistakes. The lack of knowledge about string-related bugs leads to developers repeating the same mistakes again and again, and to poor support for finding and fixing such bugs. This paper presents the first empirical study of the root causes, consequences, and other properties of string-related bugs. We systematically study 204 string-related bugs in a diverse set of projects written in JavaScript, a language where strings play a particularly important role. Our findings include (i) that many string-related mistakes are caused by a recurring set of root cause patterns, such as incorrect string literals and regular expressions, (ii) that string-related bugs have a diverse set of consequences, including incorrect output or silent omission of expected behavior, (iii) that fixing string-related bugs often requires changing just a single line, with many of the required repair ingredients available in the surrounding code, (iv) that string-related bugs occur across all parts of applications, including the core components, and (v) that almost none of these bugs are detected by existing static analyzers. Our findings not only show the importance and prevalence of string-related bugs, but they help developers to avoid common mistakes and tool builders to tackle the challenge of finding and fixing string-related bugs.
字符串在编程中扮演着许多角色,因为它们通常包含复杂且语义丰富的信息。例如,程序员使用字符串通过正则表达式匹配来过滤输入,通过某种形式的反射来表示访问的程序元素的名称,嵌入用另一种形式语言编写的代码,以及组装由程序产生的文本输出。字符串的无所不在导致开发人员可能犯各种各样的错误,但目前对这些错误知之甚少。缺乏与字符串相关的错误知识导致开发人员一次又一次地重复相同的错误,并且对查找和修复此类错误的支持不足。本文首次对与字符串相关的bug的根本原因、后果和其他特性进行了实证研究。我们系统地研究了用JavaScript编写的各种项目中的204个与字符串相关的bug, JavaScript是一种字符串起着特别重要作用的语言。我们的发现包括:(i)许多与字符串相关的错误是由一组反复出现的根本原因模式引起的,例如不正确的字符串字面量和正则表达式;(ii)与字符串相关的错误有各种各样的后果,包括不正确的输出或预期行为的沉默遗漏;(iii)修复与字符串相关的错误通常只需要改变一行,在周围代码中提供许多所需的修复成分。(iv)与字符串相关的错误发生在应用程序的所有部分,包括核心组件,以及(v)几乎没有这些错误被现有的静态分析器检测到。我们的发现不仅显示了字符串相关bug的重要性和普遍性,而且还帮助开发人员避免常见错误,帮助工具构建者解决查找和修复字符串相关bug的挑战。
{"title":"No Strings Attached: An Empirical Study of String-related Software Bugs","authors":"A. Eghbali, Michael Pradel","doi":"10.1145/3324884.3416576","DOIUrl":"https://doi.org/10.1145/3324884.3416576","url":null,"abstract":"Strings play many roles in programming because they often contain complex and semantically rich information. For example, programmers use strings to filter inputs via regular expression matching, to express the names of program elements accessed through some form of reflection, to embed code written in another formal language, and to assemble textual output produced by a program. The omnipresence of strings leads to a wide range of mistakes that developers may make, yet little is currently known about these mistakes. The lack of knowledge about string-related bugs leads to developers repeating the same mistakes again and again, and to poor support for finding and fixing such bugs. This paper presents the first empirical study of the root causes, consequences, and other properties of string-related bugs. We systematically study 204 string-related bugs in a diverse set of projects written in JavaScript, a language where strings play a particularly important role. Our findings include (i) that many string-related mistakes are caused by a recurring set of root cause patterns, such as incorrect string literals and regular expressions, (ii) that string-related bugs have a diverse set of consequences, including incorrect output or silent omission of expected behavior, (iii) that fixing string-related bugs often requires changing just a single line, with many of the required repair ingredients available in the surrounding code, (iv) that string-related bugs occur across all parts of applications, including the core components, and (v) that almost none of these bugs are detected by existing static analyzers. Our findings not only show the importance and prevalence of string-related bugs, but they help developers to avoid common mistakes and tool builders to tackle the challenge of finding and fixing string-related bugs.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133474789","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
Trace-Checking Signal-based Temporal Properties: A Model-Driven Approach 基于时间属性的跟踪检查信号:一种模型驱动的方法
Chaima Boufaied, C. Menghi, D. Bianculli, Yago Isasi Parache
Signal-based temporal properties (SBTPs) characterize the behavior of a system when its inputs and outputs are signals over time; they are very common for the requirements specification of cyber-physical systems. Although there exist several specification languages for expressing SBTPs, such languages either do not easily allow the specification of important types of properties (such as spike or oscillatory behaviors), or are not supported by (efficient) trace-checking procedures. In this paper, we propose SB-TemPsy, a novel model-driven trace-checking approach for SBTPs. SB-TemPsy provides (i) SB-TemPsy-DSL, a domain-specific language that allows the specification of SBTPs covering the most frequent requirement types in cyber-physical systems, and (ii) SB-TemPsy-Check, an efficient, model-driven trace-checking procedure. This procedure reduces the problem of checking an SB-TemPsy-DSL property over an execution trace to the problem of evaluating an Object Constraint Language constraint on a model of the execution trace. We evaluated our contributions by assessing the expressiveness of SB-TemPsy-DSL and the applicability of SB-TemPsy-Check using a representative industrial case study in the satellite domain. SB-TemPsy-DSL could express 97% of the requirements of our case study and SB-TemPsy-Check yielded a trace-checking verdict in 87% of the cases, with an average checking time of 48.7 s. From a practical standpoint and compared to state-of-the-art alternatives, our approach strikes a better trade-off between expressiveness and performance as it supports a large set of property types that can be checked, in most cases, within practical time limits.
当系统的输入和输出是随时间变化的信号时,基于信号的时间属性(SBTPs)表征系统的行为;它们在网络物理系统的需求规范中非常常见。尽管存在几种用于表示sbtp的规范语言,但这些语言要么不容易允许规范重要类型的属性(如尖峰或振荡行为),要么不受(有效的)跟踪检查过程的支持。在本文中,我们提出了一种新的模型驱动的sbtp跟踪检查方法SB-TemPsy。SB-TemPsy提供了(i) SB-TemPsy- dsl,一种特定于领域的语言,允许对涵盖网络物理系统中最常见需求类型的sbtp进行规范,以及(ii) SB-TemPsy- check,一种高效的、模型驱动的跟踪检查过程。此过程将检查执行跟踪上的SB-TemPsy-DSL属性的问题简化为在执行跟踪的模型上评估对象约束语言约束的问题。我们通过评估SB-TemPsy-DSL的表达性和SB-TemPsy-Check在卫星领域的代表性工业案例研究的适用性来评估我们的贡献。SB-TemPsy-DSL可以表达我们案例研究中97%的需求,SB-TemPsy-Check在87%的案例中产生了跟踪检查判决,平均检查时间为48.7 s。从实际的角度来看,与最先进的替代方案相比,我们的方法在表达性和性能之间实现了更好的权衡,因为它支持大量可以在大多数情况下在实际时间限制内检查的属性类型。
{"title":"Trace-Checking Signal-based Temporal Properties: A Model-Driven Approach","authors":"Chaima Boufaied, C. Menghi, D. Bianculli, Yago Isasi Parache","doi":"10.1145/3324884.3416631","DOIUrl":"https://doi.org/10.1145/3324884.3416631","url":null,"abstract":"Signal-based temporal properties (SBTPs) characterize the behavior of a system when its inputs and outputs are signals over time; they are very common for the requirements specification of cyber-physical systems. Although there exist several specification languages for expressing SBTPs, such languages either do not easily allow the specification of important types of properties (such as spike or oscillatory behaviors), or are not supported by (efficient) trace-checking procedures. In this paper, we propose SB-TemPsy, a novel model-driven trace-checking approach for SBTPs. SB-TemPsy provides (i) SB-TemPsy-DSL, a domain-specific language that allows the specification of SBTPs covering the most frequent requirement types in cyber-physical systems, and (ii) SB-TemPsy-Check, an efficient, model-driven trace-checking procedure. This procedure reduces the problem of checking an SB-TemPsy-DSL property over an execution trace to the problem of evaluating an Object Constraint Language constraint on a model of the execution trace. We evaluated our contributions by assessing the expressiveness of SB-TemPsy-DSL and the applicability of SB-TemPsy-Check using a representative industrial case study in the satellite domain. SB-TemPsy-DSL could express 97% of the requirements of our case study and SB-TemPsy-Check yielded a trace-checking verdict in 87% of the cases, with an average checking time of 48.7 s. From a practical standpoint and compared to state-of-the-art alternatives, our approach strikes a better trade-off between expressiveness and performance as it supports a large set of property types that can be checked, in most cases, within practical time limits.","PeriodicalId":106337,"journal":{"name":"2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127930727","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
期刊
2020 35th 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