首页 > 最新文献

2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)最新文献

英文 中文
Towards search-based modelling and analysis of requirements and architecture decisions 面向基于搜索的建模和需求分析以及架构决策
Saheed A. Busari
Many requirements engineering and software architecture decisions are complicated by uncertainty and multiple conflicting stakeholders objectives. Using quantitative decision models helps clarify these decisions and allows the use of multi-objective simulation optimisation techniques in analysing the impact of decisions on objectives. Existing requirements and architecture decision support methods that use quantitative decision models are limited by the difficulty in elaborating problem-specific decision models and/or lack integrated tool support for automated decision analysis under uncertainty. To address these problems and facilitate requirements and architecture decision analysis, this research proposes a novel modelling language and automated decision analysis technique, implemented in a tool called RADAR. The modelling language is a simplified version of quantitative AND/OR goal models used in requirements engineering and similar to feature models used in software product lines. This research involves developing the RADAR tool and evaluating the tool's applicability, usefulness and scalability on a set of real-world examples.
许多需求工程和软件架构决策由于不确定性和多个冲突的涉众目标而变得复杂。使用定量决策模型有助于澄清这些决策,并允许在分析决策对目标的影响时使用多目标模拟优化技术。现有的使用定量决策模型的需求和体系结构决策支持方法由于难以详细阐述特定问题的决策模型和/或缺乏对不确定性下自动化决策分析的集成工具支持而受到限制。为了解决这些问题并促进需求和架构决策分析,本研究提出了一种新的建模语言和自动化决策分析技术,并在称为RADAR的工具中实现。建模语言是需求工程中使用的定量AND/OR目标模型的简化版本,类似于软件产品线中使用的特征模型。这项研究包括开发RADAR工具,并在一组真实世界的例子上评估该工具的适用性、有用性和可扩展性。
{"title":"Towards search-based modelling and analysis of requirements and architecture decisions","authors":"Saheed A. Busari","doi":"10.1109/ASE.2017.8115725","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115725","url":null,"abstract":"Many requirements engineering and software architecture decisions are complicated by uncertainty and multiple conflicting stakeholders objectives. Using quantitative decision models helps clarify these decisions and allows the use of multi-objective simulation optimisation techniques in analysing the impact of decisions on objectives. Existing requirements and architecture decision support methods that use quantitative decision models are limited by the difficulty in elaborating problem-specific decision models and/or lack integrated tool support for automated decision analysis under uncertainty. To address these problems and facilitate requirements and architecture decision analysis, this research proposes a novel modelling language and automated decision analysis technique, implemented in a tool called RADAR. The modelling language is a simplified version of quantitative AND/OR goal models used in requirements engineering and similar to feature models used in software product lines. This research involves developing the RADAR tool and evaluating the tool's applicability, usefulness and scalability on a set of real-world examples.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129605930","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
Gremlin-ATL: A scalable model transformation framework Gremlin-ATL:可伸缩的模型转换框架
Gwendal Daniel, F. Jouault, G. Sunyé, Jordi Cabot
Industrial use of Model Driven Engineering techniques has emphasized the need for efficiently store, access, and transform very large models. While scalable persistence frameworks, typically based on some kind of NoSQL database, have been proposed to solve the model storage issue, the same level of performance improvement has not been achieved for the model transformation problem. Existing model transformation tools (such as the well-known ATL) often require the input models to be loaded in memory prior to the start of the transformation and are not optimized to benefit from lazy-loading mechanisms, mainly due to their dependency on current low-level APIs offered by the most popular modeling frameworks nowadays. In this paper we present Gremlin-ATL, a scalable and efficient model-to-model transformation framework that translates ATL transformations into Gremlin, a query language supported by several NoSQL databases. With Gremlin-ATL, the transformation is computed within the database itself, bypassing the modeling framework limitations and improving its performance both in terms of execution time and memory consumption. Tool support is available online.
模型驱动工程技术的工业应用强调了对高效存储、访问和转换非常大的模型的需要。虽然可扩展的持久性框架(通常基于某种NoSQL数据库)已经被提出用于解决模型存储问题,但在模型转换问题上却没有达到同样的性能改进水平。现有的模型转换工具(例如众所周知的ATL)通常需要在转换开始之前将输入模型加载到内存中,并且没有优化以从延迟加载机制中获益,这主要是因为它们依赖于当前最流行的建模框架提供的当前低级api。在本文中,我们提出了Gremlin-ATL,一个可扩展和高效的模型到模型转换框架,将ATL转换转换为Gremlin,一种由多个NoSQL数据库支持的查询语言。使用Gremlin-ATL,转换在数据库本身内计算,绕过建模框架的限制,并在执行时间和内存消耗方面提高其性能。在线提供工具支持。
{"title":"Gremlin-ATL: A scalable model transformation framework","authors":"Gwendal Daniel, F. Jouault, G. Sunyé, Jordi Cabot","doi":"10.1109/ASE.2017.8115658","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115658","url":null,"abstract":"Industrial use of Model Driven Engineering techniques has emphasized the need for efficiently store, access, and transform very large models. While scalable persistence frameworks, typically based on some kind of NoSQL database, have been proposed to solve the model storage issue, the same level of performance improvement has not been achieved for the model transformation problem. Existing model transformation tools (such as the well-known ATL) often require the input models to be loaded in memory prior to the start of the transformation and are not optimized to benefit from lazy-loading mechanisms, mainly due to their dependency on current low-level APIs offered by the most popular modeling frameworks nowadays. In this paper we present Gremlin-ATL, a scalable and efficient model-to-model transformation framework that translates ATL transformations into Gremlin, a query language supported by several NoSQL databases. With Gremlin-ATL, the transformation is computed within the database itself, bypassing the modeling framework limitations and improving its performance both in terms of execution time and memory consumption. Tool support is available online.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125496015","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
Floating-point symbolic execution: A case study in N-version programming 浮点符号执行:n版本编程中的一个案例研究
D. Liew, Daniel Schemmel, Cristian Cadar, A. Donaldson, Rafael Zähl, Klaus Wehrle
Symbolic execution is a well-known program analysis technique for testing software, which makes intensive use of constraint solvers. Recent support for floating-point constraint solving has made it feasible to support floating-point reasoning in symbolic execution tools. In this paper, we present the experience of two research teams that independently added floating-point support to KLEE, a popular symbolic execution engine. Since the two teams independently developed their extensions, this created the rare opportunity to conduct a rigorous comparison between the two implementations, essentially a modern case study on N-version programming. As part of our comparison, we report on the different design and implementation decisions taken by each team, and show their impact on a rigorously assembled and tested set of benchmarks, itself a contribution of the paper.
符号执行是一种众所周知的用于测试软件的程序分析技术,它大量使用了约束求解器。最近对浮点约束求解的支持使得在符号执行工具中支持浮点推理成为可能。在本文中,我们介绍了两个研究团队的经验,他们独立地为KLEE(一种流行的符号执行引擎)添加了浮点支持。由于两个团队独立开发了各自的扩展,因此这为在两个实现之间进行严格比较创造了难得的机会,本质上是对n版本编程的现代案例研究。作为比较的一部分,我们报告了每个团队所采取的不同设计和实现决策,并展示了它们对严格组装和测试的基准集的影响,这本身就是本文的贡献。
{"title":"Floating-point symbolic execution: A case study in N-version programming","authors":"D. Liew, Daniel Schemmel, Cristian Cadar, A. Donaldson, Rafael Zähl, Klaus Wehrle","doi":"10.1109/ASE.2017.8115670","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115670","url":null,"abstract":"Symbolic execution is a well-known program analysis technique for testing software, which makes intensive use of constraint solvers. Recent support for floating-point constraint solving has made it feasible to support floating-point reasoning in symbolic execution tools. In this paper, we present the experience of two research teams that independently added floating-point support to KLEE, a popular symbolic execution engine. Since the two teams independently developed their extensions, this created the rare opportunity to conduct a rigorous comparison between the two implementations, essentially a modern case study on N-version programming. As part of our comparison, we report on the different design and implementation decisions taken by each team, and show their impact on a rigorously assembled and tested set of benchmarks, itself a contribution of the paper.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"66 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128601880","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
Opiner: An opinion search and summarization engine for APIs Opiner: api的意见搜索和摘要引擎
Gias Uddin, Foutse Khomh
Opinions are key determinants to many of the activities related to software development. The perceptions of developers about an API, and the choices they make about whether and how they should use it, may, to a considerable degree, be conditioned upon how other developers see and evaluate the API. Given the plethora of APIs available for a given development task and the advent of developer forums as the media to share opinions about those APIs, it can be challenging for a developer to make informed decisions about an API to support the task. We introduce Opiner, our opinion search and summarization engine for API reviews. The server side of Opiner collects and summarizes opinions about APIs by crawling online developer forums and by associating the opinions found in the forum posts to the APIs discussed in the posts. The client side of Opiner is a Website that presents different summarized viewpoints of the opinions about the APIs in an online search engine. We evaluated Opiner by asking Industrial developers to select APIs for two development tasks. We found that developers were interested to use our proposed summaries of API reviews and that while combined with Stack Overflow, Opiner helped developers to make the right decision with more accuracy and confidence. The Opiner online search engine is available at: http://opiner.polymtl.ca. A video demo is available at: https://youtu.be/XAXpfmg5Lqs.
意见是与软件开发相关的许多活动的关键决定因素。开发人员对API的看法,以及他们是否应该以及如何使用它的选择,可能在很大程度上取决于其他开发人员如何看待和评估该API。考虑到给定的开发任务有大量可用的API,以及开发人员论坛作为分享关于这些API的意见的媒体的出现,对于开发人员来说,就支持该任务的API做出明智的决定可能是一项挑战。我们介绍Opiner,我们的API评论意见搜索和总结引擎。Opiner的服务器端通过抓取在线开发者论坛,并将论坛帖子中找到的意见与帖子中讨论的api相关联,收集和总结有关api的意见。Opiner的客户端是一个网站,它提供了对在线搜索引擎中api的不同观点的总结。我们通过要求工业开发人员为两个开发任务选择api来评估Opiner。我们发现,开发人员对我们提出的API审查摘要很感兴趣,而且与Stack Overflow相结合,Opiner帮助开发人员更准确、更有信心地做出正确的决定。Opiner在线搜索引擎的网址是:http://opiner.polymtl.ca。视频演示可在:https://youtu.be/XAXpfmg5Lqs。
{"title":"Opiner: An opinion search and summarization engine for APIs","authors":"Gias Uddin, Foutse Khomh","doi":"10.1109/ASE.2017.8115715","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115715","url":null,"abstract":"Opinions are key determinants to many of the activities related to software development. The perceptions of developers about an API, and the choices they make about whether and how they should use it, may, to a considerable degree, be conditioned upon how other developers see and evaluate the API. Given the plethora of APIs available for a given development task and the advent of developer forums as the media to share opinions about those APIs, it can be challenging for a developer to make informed decisions about an API to support the task. We introduce Opiner, our opinion search and summarization engine for API reviews. The server side of Opiner collects and summarizes opinions about APIs by crawling online developer forums and by associating the opinions found in the forum posts to the APIs discussed in the posts. The client side of Opiner is a Website that presents different summarized viewpoints of the opinions about the APIs in an online search engine. We evaluated Opiner by asking Industrial developers to select APIs for two development tasks. We found that developers were interested to use our proposed summaries of API reviews and that while combined with Stack Overflow, Opiner helped developers to make the right decision with more accuracy and confidence. The Opiner online search engine is available at: http://opiner.polymtl.ca. A video demo is available at: https://youtu.be/XAXpfmg5Lqs.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127878807","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}
引用次数: 29
Static detection of asymptotic resource side-channel vulnerabilities in web applications web应用中渐近资源侧通道漏洞的静态检测
Jia Chen, Oswaldo Olivo, Işıl Dillig, Calvin Lin
Web applications can leak confidential user information due to the presence of unintended side-channel vulnerabilities in code. One particularly subtle class of side-channel vulnerabilities arises due to resource usage imbalances along different execution paths of a program. Such side-channel vulnerabilities are especially severe if the resource usage imbalance is asymptotic. This paper formalizes the notion of asymptotic resource side-channels and presents a lightweight static analysis algorithm for automatically detecting them. Based on these ideas, we have developed a tool called SCANNER that detects resource-related side-channel vulnerabilities in PHP applications. SCANNER has found 18 zero-day security vulnerabilities in 10 different web applications and reports only 2 false positives. The vulnerabilities uncovered by SCANNER can be exploited using cross-site search attacks to extract various kinds of confidential information, such as a user's medications or purchase history.
由于代码中存在意外的侧通道漏洞,Web应用程序可能会泄露机密用户信息。由于程序的不同执行路径上的资源使用不平衡,产生了一类特别微妙的侧通道漏洞。如果资源使用不平衡是渐近的,这种侧信道漏洞尤其严重。本文形式化了渐近资源侧信道的概念,提出了一种自动检测渐近资源侧信道的轻量级静态分析算法。基于这些想法,我们开发了一个名为SCANNER的工具,用于检测PHP应用程序中与资源相关的侧通道漏洞。SCANNER在10个不同的web应用程序中发现了18个零日安全漏洞,仅报告了2个误报。可以利用跨站点搜索攻击利用SCANNER发现的漏洞来提取各种机密信息,例如用户的药物或购买历史记录。
{"title":"Static detection of asymptotic resource side-channel vulnerabilities in web applications","authors":"Jia Chen, Oswaldo Olivo, Işıl Dillig, Calvin Lin","doi":"10.1109/ASE.2017.8115636","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115636","url":null,"abstract":"Web applications can leak confidential user information due to the presence of unintended side-channel vulnerabilities in code. One particularly subtle class of side-channel vulnerabilities arises due to resource usage imbalances along different execution paths of a program. Such side-channel vulnerabilities are especially severe if the resource usage imbalance is asymptotic. This paper formalizes the notion of asymptotic resource side-channels and presents a lightweight static analysis algorithm for automatically detecting them. Based on these ideas, we have developed a tool called SCANNER that detects resource-related side-channel vulnerabilities in PHP applications. SCANNER has found 18 zero-day security vulnerabilities in 10 different web applications and reports only 2 false positives. The vulnerabilities uncovered by SCANNER can be exploited using cross-site search attacks to extract various kinds of confidential information, such as a user's medications or purchase history.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121742554","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
Contract-based program repair without the contracts 无需合同的基于合同的程序修复
Liushan Chen, Yu Pei, Carlo A. Furia
Automated program repair (APR) is a promising approach to automatically fixing software bugs. Most APR techniques use tests to drive the repair process; this makes them readily applicable to realistic code bases, but also brings the risk of generating spurious repairs that overfit the available tests. Some techniques addressed the overfitting problem by targeting code using contracts (such as pre- and postconditions), which provide additional information helpful to characterize the states of correct and faulty computations; unfortunately, mainstream programming languages do not normally include contract annotations, which severely limits the applicability of such contract-based techniques. This paper presents JAID, a novel APR technique for Java programs, which is capable of constructing detailed state abstractions—similar to those employed by contract-based techniques—that are derived from regular Java code without any special annotations. Grounding the repair generation and validation processes on rich state abstractions mitigates the overfitting problem, and helps extend APR's applicability: in experiments with the DEFECTS4J benchmark, a prototype implementation of JAID produced genuinely correct repairs, equivalent to those written by programmers, for 25 bugs—improving over the state of the art of comparable Java APR techniques in the number and kinds of correct fixes.
自动程序修复(APR)是一种很有前途的自动修复软件错误的方法。大多数APR技术使用测试来驱动修复过程;这使得它们很容易适用于实际的代码库,但也带来了生成虚假修复的风险,这些修复会超出可用测试的范围。一些技术通过使用契约(如前置条件和后置条件)来解决过拟合问题,这些契约提供了有助于描述正确和错误计算状态的额外信息;不幸的是,主流编程语言通常不包括契约注释,这严重限制了这种基于契约的技术的适用性。本文介绍了JAID,一种用于Java程序的新颖的APR技术,它能够构造详细的状态抽象(类似于基于契约的技术所使用的那些抽象),这些抽象派生自常规Java代码,不需要任何特殊的注释。将修复生成和验证过程建立在丰富状态抽象的基础上,可以减轻过拟合问题,并有助于扩展APR的适用性:在使用DEFECTS4J基准的实验中,JAID的原型实现对25个错误产生了真正正确的修复,相当于程序员编写的修复——在正确修复的数量和种类方面,比可比的Java APR技术的技术水平有所提高。
{"title":"Contract-based program repair without the contracts","authors":"Liushan Chen, Yu Pei, Carlo A. Furia","doi":"10.1109/ASE.2017.8115674","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115674","url":null,"abstract":"Automated program repair (APR) is a promising approach to automatically fixing software bugs. Most APR techniques use tests to drive the repair process; this makes them readily applicable to realistic code bases, but also brings the risk of generating spurious repairs that overfit the available tests. Some techniques addressed the overfitting problem by targeting code using contracts (such as pre- and postconditions), which provide additional information helpful to characterize the states of correct and faulty computations; unfortunately, mainstream programming languages do not normally include contract annotations, which severely limits the applicability of such contract-based techniques. This paper presents JAID, a novel APR technique for Java programs, which is capable of constructing detailed state abstractions—similar to those employed by contract-based techniques—that are derived from regular Java code without any special annotations. Grounding the repair generation and validation processes on rich state abstractions mitigates the overfitting problem, and helps extend APR's applicability: in experiments with the DEFECTS4J benchmark, a prototype implementation of JAID produced genuinely correct repairs, equivalent to those written by programmers, for 25 bugs—improving over the state of the art of comparable Java APR techniques in the number and kinds of correct fixes.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125789092","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}
引用次数: 126
TREM: A tool for mining timed regular specifications from system traces TREM:从系统跟踪中挖掘定时规则规范的工具
Lukas Schmidt, Apurva Narayan, S. Fischmeister
Software specifications are useful for software validation, model checking, runtime verification, debugging, monitoring, etc. In context of safety-critical real-time systems, temporal properties play an important role. However, temporal properties are rarely present due to the complexity and evolutionary nature of software systems. We propose Timed Regular Expression Mining (TREM) a hosted tool for specification mining using timed regular expressions (TREs). It is designed for easy and robust mining of dominant temporal properties. TREM uses an abstract structure of the property; the framework constructs a finite state machine to serve as an acceptor. TREM is scalable, easy to access/use, and platform independent specification mining framework. The tool is tested on industrial strength software system traces such as the QNX real-time operating system using traces with more than 1.5 Million entries. The tool demonstration video can be accessed here: youtu.be/cSd_aj3_LH8
软件规范对软件验证、模型检查、运行时验证、调试、监控等都很有用。在对安全至关重要的实时系统中,时间特性起着重要作用。然而,由于软件系统的复杂性和进化性质,时间属性很少出现。我们提出了定时正则表达式挖掘(TREM),这是一个使用定时正则表达式(TREs)进行规范挖掘的托管工具。它的设计是为了方便和健壮地挖掘主要的时间属性。TREM使用属性的抽象结构;框架构造一个有限状态机作为接受者。TREM是一个可扩展的、易于访问/使用的、与平台无关的规范挖掘框架。该工具在QNX实时操作系统等工业强度的软件系统轨迹上进行了测试,使用的轨迹超过150万条。该工具演示视频可以在这里访问:youtube .be/cSd_aj3_LH8
{"title":"TREM: A tool for mining timed regular specifications from system traces","authors":"Lukas Schmidt, Apurva Narayan, S. Fischmeister","doi":"10.1109/ASE.2017.8115702","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115702","url":null,"abstract":"Software specifications are useful for software validation, model checking, runtime verification, debugging, monitoring, etc. In context of safety-critical real-time systems, temporal properties play an important role. However, temporal properties are rarely present due to the complexity and evolutionary nature of software systems. We propose Timed Regular Expression Mining (TREM) a hosted tool for specification mining using timed regular expressions (TREs). It is designed for easy and robust mining of dominant temporal properties. TREM uses an abstract structure of the property; the framework constructs a finite state machine to serve as an acceptor. TREM is scalable, easy to access/use, and platform independent specification mining framework. The tool is tested on industrial strength software system traces such as the QNX real-time operating system using traces with more than 1.5 Million entries. The tool demonstration video can be accessed here: youtu.be/cSd_aj3_LH8","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130435198","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
A language model for statements of software code 软件代码语句的语言模型
Yixiao Yang, Yu Jiang, M. Gu, Jiaguang Sun, Jian Gao, Han Liu
Building language models for source code enables a large set of improvements on traditional software engineering tasks. One promising application is automatic code completion. State-of-the-art techniques capture code regularities at token level with lexical information. Such language models are more suitable for predicting short token sequences, but become less effective with respect to long statement level predictions. In this paper, we have proposed PCC to optimize the token-level based language modeling. Specifically, PCC introduced an intermediate representation (IR) for source code, which puts tokens into groups using lexeme and variable relative order. In this way, PCC is able to handle long token sequences, i.e., group sequences, to suggest a complete statement with the precise synthesizer. Further more, PCC employed a fuzzy matching technique which combined genetic and longest common subsequence algorithms to make the prediction more accurate. We have implemented a code completion plugin for Eclipse and evaluated it on open-source Java projects. The results have demonstrated the potential of PCC in generating precise long statement level predictions. In 30%–60% of the cases, it can correctly suggest the complete statement with only six candidates, and 40%–90% of the cases with ten candidates.
为源代码构建语言模型可以对传统的软件工程任务进行大量改进。一个很有前途的应用是自动代码完成。最先进的技术通过词法信息在令牌级别捕获代码规则。这种语言模型更适合于预测短的标记序列,但是对于长语句级的预测就不那么有效了。在本文中,我们提出了PCC来优化基于标记级的语言建模。具体来说,PCC为源代码引入了一种中间表示(IR),它使用词素和可变的相对顺序将令牌分组。通过这种方式,PCC能够处理长令牌序列,即组序列,从而使用精确的合成器提出完整的语句。此外,PCC还采用了遗传算法和最长公共子序列算法相结合的模糊匹配技术来提高预测精度。我们已经为Eclipse实现了一个代码完成插件,并在开源Java项目上对其进行了评估。结果证明了PCC在生成精确的长语句级预测方面的潜力。在30%-60%的情况下,只有6个候选人,它可以正确地提出完整的陈述,在40%-90%的情况下,有10个候选人。
{"title":"A language model for statements of software code","authors":"Yixiao Yang, Yu Jiang, M. Gu, Jiaguang Sun, Jian Gao, Han Liu","doi":"10.1109/ASE.2017.8115678","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115678","url":null,"abstract":"Building language models for source code enables a large set of improvements on traditional software engineering tasks. One promising application is automatic code completion. State-of-the-art techniques capture code regularities at token level with lexical information. Such language models are more suitable for predicting short token sequences, but become less effective with respect to long statement level predictions. In this paper, we have proposed PCC to optimize the token-level based language modeling. Specifically, PCC introduced an intermediate representation (IR) for source code, which puts tokens into groups using lexeme and variable relative order. In this way, PCC is able to handle long token sequences, i.e., group sequences, to suggest a complete statement with the precise synthesizer. Further more, PCC employed a fuzzy matching technique which combined genetic and longest common subsequence algorithms to make the prediction more accurate. We have implemented a code completion plugin for Eclipse and evaluated it on open-source Java projects. The results have demonstrated the potential of PCC in generating precise long statement level predictions. In 30%–60% of the cases, it can correctly suggest the complete statement with only six candidates, and 40%–90% of the cases with ten candidates.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131919370","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
Understanding feature requests by leveraging fuzzy method and linguistic analysis 利用模糊方法和语言分析来理解特性请求
Lin Shi, Celia Chen, Qing Wang, Shoubin Li, B. Boehm
In open software development environment, a large number of feature requests with mixed quality are often posted by stakeholders and usually managed in issue tracking systems. Thoroughly understanding and analyzing the real intents that feature requests imply is a labor-intensive and challenging task. In this paper, we introduce an approach to understand feature requests automatically. We generate a set of fuzzy rules based on natural language processing techniques that classify each sentence in feature requests into a set of categories: Intent, Explanation, Benefit, Drawback, Example and Trivia. Consequently, the feature requests can be automatically structured based on the classification results. We conduct experiments on 2,112 sentences taken from 602 feature requests of nine popular open source projects. The results show that our method can reach a high performance on classifying sentences from feature requests. Moreover, when applying fuzzy rules on machine learning methods, the performance can be improved significantly.
在开放的软件开发环境中,涉众经常发布大量质量参差不齐的特性请求,并且通常在问题跟踪系统中进行管理。彻底理解和分析特性请求所隐含的真实意图是一项劳动密集型且具有挑战性的任务。本文介绍了一种自动理解特征请求的方法。我们基于自然语言处理技术生成一组模糊规则,将特征请求中的每个句子划分为一组类别:意图、解释、好处、缺点、示例和琐事。因此,可以根据分类结果自动构建特征请求。我们对来自9个流行开源项目的602个特性请求的2112个句子进行了实验。实验结果表明,该方法能够较好地从特征请求中对句子进行分类。此外,当将模糊规则应用于机器学习方法时,可以显著提高性能。
{"title":"Understanding feature requests by leveraging fuzzy method and linguistic analysis","authors":"Lin Shi, Celia Chen, Qing Wang, Shoubin Li, B. Boehm","doi":"10.1109/ASE.2017.8115656","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115656","url":null,"abstract":"In open software development environment, a large number of feature requests with mixed quality are often posted by stakeholders and usually managed in issue tracking systems. Thoroughly understanding and analyzing the real intents that feature requests imply is a labor-intensive and challenging task. In this paper, we introduce an approach to understand feature requests automatically. We generate a set of fuzzy rules based on natural language processing techniques that classify each sentence in feature requests into a set of categories: Intent, Explanation, Benefit, Drawback, Example and Trivia. Consequently, the feature requests can be automatically structured based on the classification results. We conduct experiments on 2,112 sentences taken from 602 feature requests of nine popular open source projects. The results show that our method can reach a high performance on classifying sentences from feature requests. Moreover, when applying fuzzy rules on machine learning methods, the performance can be improved significantly.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131053738","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}
引用次数: 19
Quick verification of concurrent programs by iteratively relaxed scheduling 通过迭代放松调度快速验证并发程序
P. Metzler, Habib Saissi, P. Bokor, N. Suri
The most prominent advantage of software verification over testing is a rigorous check of every possible software behavior. However, large state spaces of concurrent systems, due to non-deterministic scheduling, result in a slow automated verification process. Therefore, verification introduces a large delay between completion and deployment of concurrent software. This paper introduces a novel iterative approach to verification of concurrent programs that drastically reduces this delay. By restricting the execution of concurrent programs to a small set of admissible schedules, verification complexity and time is drastically reduced. Iteratively adding admissible schedules after their verification eventually restores non-deterministic scheduling. Thereby, our framework allows to find a sweet spot between a low verification delay and sufficient execution time performance. Our evaluation of a prototype implementation on well-known benchmark programs shows that after verifying only few schedules of the program, execution time overhead is competitive to existing deterministic multi-threading frameworks.
与测试相比,软件验证最突出的优点是对每一个可能的软件行为进行严格的检查。然而,由于非确定性调度,并发系统的大状态空间导致自动化验证过程缓慢。因此,验证在并发软件的完成和部署之间引入了很大的延迟。本文介绍了一种新的迭代方法来验证并发程序,大大减少了这种延迟。通过将并发程序的执行限制在一小组可接受的时间表中,验证的复杂性和时间大大减少。在验证后迭代地添加可接受的调度,最终恢复非确定性调度。因此,我们的框架允许在低验证延迟和足够的执行时间性能之间找到一个最佳点。我们在知名的基准程序上对原型实现进行了评估,结果表明,在验证了程序的几个调度之后,执行时间开销与现有的确定性多线程框架相比是具有竞争力的。
{"title":"Quick verification of concurrent programs by iteratively relaxed scheduling","authors":"P. Metzler, Habib Saissi, P. Bokor, N. Suri","doi":"10.1109/ASE.2017.8115688","DOIUrl":"https://doi.org/10.1109/ASE.2017.8115688","url":null,"abstract":"The most prominent advantage of software verification over testing is a rigorous check of every possible software behavior. However, large state spaces of concurrent systems, due to non-deterministic scheduling, result in a slow automated verification process. Therefore, verification introduces a large delay between completion and deployment of concurrent software. This paper introduces a novel iterative approach to verification of concurrent programs that drastically reduces this delay. By restricting the execution of concurrent programs to a small set of admissible schedules, verification complexity and time is drastically reduced. Iteratively adding admissible schedules after their verification eventually restores non-deterministic scheduling. Thereby, our framework allows to find a sweet spot between a low verification delay and sufficient execution time performance. Our evaluation of a prototype implementation on well-known benchmark programs shows that after verifying only few schedules of the program, execution time overhead is competitive to existing deterministic multi-threading frameworks.","PeriodicalId":382876,"journal":{"name":"2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)","volume":"81 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124098437","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}
引用次数: 8
期刊
2017 32nd 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