首页 > 最新文献

2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)最新文献

英文 中文
Type Migration in Ultra-Large-Scale Codebases 超大规模代码库中的类型迁移
Pub Date : 2019-05-01 DOI: 10.1109/ICSE.2019.00117
Ameya Ketkar, A. Mesbah, D. Mazinanian, Danny Dig, E. Aftandilian
Type migration is a refactoring activity in which an existing type is replaced with another one throughout the source code. Manually performing type migration is tedious as programmers need to find all instances of the type to be migrated, along with its dependencies that propagate over assignment operations, method hierarchies, and subtypes. Existing automated approaches for type migration are not adequate for ultra-large-codebases - they perform an intensive whole-program analysis that does not scale. If we could represent the type structure of the program as graphs, then we could employ a MAPREDUCE parallel and distributed process that scales to hundreds of millions of LOC. We implemented this approach as an IDE-independent tool called T2R, which integrates with most build systems. We evaluated T2R's accuracy, usefulness and scalability on seven open source projects and one proprietary codebase of 300M LOC. T2R generated 130 type migration patches, of which the original developers accepted 98%.
类型迁移是一种重构活动,在此活动中,在整个源代码中将现有类型替换为另一个类型。手动执行类型迁移是乏味的,因为程序员需要找到要迁移的类型的所有实例,以及它在赋值操作、方法层次结构和子类型上传播的依赖关系。现有的自动化类型迁移方法不适用于超大型代码库——它们执行的是密集的整体程序分析,无法扩展。如果我们可以将程序的类型结构表示为图形,那么我们就可以使用MAPREDUCE并行和分布式进程,它可以扩展到数亿LOC。我们将此方法实现为一个称为T2R的独立于ide的工具,它与大多数构建系统集成。我们在7个开源项目和一个300M LOC的专有代码库上评估了T2R的准确性、有用性和可扩展性。T2R生成了130个类型迁移补丁,其中原始开发人员接受了98%。
{"title":"Type Migration in Ultra-Large-Scale Codebases","authors":"Ameya Ketkar, A. Mesbah, D. Mazinanian, Danny Dig, E. Aftandilian","doi":"10.1109/ICSE.2019.00117","DOIUrl":"https://doi.org/10.1109/ICSE.2019.00117","url":null,"abstract":"Type migration is a refactoring activity in which an existing type is replaced with another one throughout the source code. Manually performing type migration is tedious as programmers need to find all instances of the type to be migrated, along with its dependencies that propagate over assignment operations, method hierarchies, and subtypes. Existing automated approaches for type migration are not adequate for ultra-large-codebases - they perform an intensive whole-program analysis that does not scale. If we could represent the type structure of the program as graphs, then we could employ a MAPREDUCE parallel and distributed process that scales to hundreds of millions of LOC. We implemented this approach as an IDE-independent tool called T2R, which integrates with most build systems. We evaluated T2R's accuracy, usefulness and scalability on seven open source projects and one proprietary codebase of 300M LOC. T2R generated 130 type migration patches, of which the original developers accepted 98%.","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"13 1","pages":"1142-1153"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86979803","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}
引用次数: 14
Harnessing Evolution for Multi-Hunk Program Repair 利用进化进行多块程序修复
Pub Date : 2019-05-01 DOI: 10.1109/ICSE.2019.00020
Seemanta Saha, Ripon K. Saha, M. Prasad
Despite significant advances in automatic program repair (APR) techniques over the past decade, practical deployment remains an elusive goal. One of the important challenges in this regard is the general inability of current APR techniques to produce patches that require edits in multiple locations, i.e., multi-hunk patches. In this work, we present a novel APR technique that generalizes single-hunk repair techniques to include an important class of multi-hunk bugs, namely bugs that may require applying a substantially similar patch at a number of locations. We term such sets of repair locations as evolutionary siblings - similar looking code, instantiated in similar contexts, that are expected to undergo similar changes. At the heart of our proposed method is an analysis to accurately identify a set of evolutionary siblings, for a given bug. This analysis leverages three distinct sources of information, namely the test-suite spectrum, a novel code similarity analysis, and the revision history of the project. The discovered siblings are then simultaneously repaired in a similar fashion. We instantiate this technique in a tool called HERCULES and demonstrate that it is able to correctly fix 46 bugs in the Defects4J dataset, the highest of any individual APR technique to date. This includes 15 multi-hunk bugs and overall 11 bugs which have not been fixed by any other technique so far.
尽管在过去十年中,自动程序修复(APR)技术取得了重大进展,但实际部署仍然是一个难以实现的目标。在这方面的一个重要挑战是,当前的APR技术通常无法生成需要在多个位置进行编辑的补丁,即多块补丁。在这项工作中,我们提出了一种新的APR技术,该技术将单块修复技术推广到包括一类重要的多块错误,即可能需要在许多位置应用实质上相似的补丁的错误。我们将这些修复位置集合称为进化兄弟姐妹——在相似的环境中实例化的相似代码,预计会经历类似的变化。我们提出的方法的核心是对给定的bug进行分析,以准确地识别一组进化的兄弟姐妹。该分析利用了三个不同的信息源,即测试套件谱、新颖的代码相似性分析和项目的修订历史。然后以类似的方式同时修复被发现的兄弟姐妹。我们在一个名为HERCULES的工具中实例化了该技术,并演示了它能够正确修复缺陷4j数据集中的46个错误,这是迄今为止任何单独的APR技术中最高的。这包括15个多块bug和11个迄今为止没有被任何其他技术修复的bug。
{"title":"Harnessing Evolution for Multi-Hunk Program Repair","authors":"Seemanta Saha, Ripon K. Saha, M. Prasad","doi":"10.1109/ICSE.2019.00020","DOIUrl":"https://doi.org/10.1109/ICSE.2019.00020","url":null,"abstract":"Despite significant advances in automatic program repair (APR) techniques over the past decade, practical deployment remains an elusive goal. One of the important challenges in this regard is the general inability of current APR techniques to produce patches that require edits in multiple locations, i.e., multi-hunk patches. In this work, we present a novel APR technique that generalizes single-hunk repair techniques to include an important class of multi-hunk bugs, namely bugs that may require applying a substantially similar patch at a number of locations. We term such sets of repair locations as evolutionary siblings - similar looking code, instantiated in similar contexts, that are expected to undergo similar changes. At the heart of our proposed method is an analysis to accurately identify a set of evolutionary siblings, for a given bug. This analysis leverages three distinct sources of information, namely the test-suite spectrum, a novel code similarity analysis, and the revision history of the project. The discovered siblings are then simultaneously repaired in a similar fashion. We instantiate this technique in a tool called HERCULES and demonstrate that it is able to correctly fix 46 bugs in the Defects4J dataset, the highest of any individual APR technique to date. This includes 15 multi-hunk bugs and overall 11 bugs which have not been fixed by any other technique so far.","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"19 1","pages":"13-24"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85333627","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}
引用次数: 85
Deep Differential Testing of JVM Implementations JVM实现的深度差异测试
Pub Date : 2019-05-01 DOI: 10.1109/ICSE.2019.00127
Yuting Chen, Ting Su, Z. Su
The Java Virtual Machine (JVM) is the cornerstone of the widely-used Java platform. Thus, it is critical to ensure the reliability and robustness of popular JVM implementations. However, little research exists on validating production JVMs. One notable effort is classfuzz, which mutates Java bytecode syntactically to stress-test different JVMs. It is shown that classfuzz mainly produces illegal bytecode files and uncovers defects in JVMs' startup processes. It remains a challenge to effectively test JVMs' bytecode verifiers and execution engines to expose deeper bugs. This paper tackles this challenge by introducing classming, a novel, effective approach to performing deep, differential JVM testing. The key of classming is a technique, live bytecode mutation, to generate, from a seed bytecode file f, likely valid, executable (live) bytecode files: (1) capture the seed f 's live bytecode, the sequence of its executed bytecode instructions; (2) repeatedly manipulate the control- and data-flow in f 's live bytecode to generate semantically different mutants; and (3) selectively accept the generated mutants to steer the mutation process toward live, diverse mutants. The generated mutants are then employed to differentially test JVMs. We have evaluated classming on mainstream JVM implementations, including OpenJDK's HotSpot and IBM's J9, by mutating the DaCapo benchmarks. Our results show that classming is very effective in uncovering deep JVM differences. More than 1,800 of the generated classes exposed JVM differences, and more than 30 triggered JVM crashes. We analyzed and reported the JVM runtime differences and crashes, of which 14 have already been confirmed/fixed, including a highly critical security vulnerability in J9 that allowed untrusted code to disable the security manager and elevate its privileges (CVE-2017-1376).
Java虚拟机(JVM)是广泛使用的Java平台的基石。因此,确保流行的JVM实现的可靠性和健壮性至关重要。但是,关于验证生产jvm的研究很少。一个值得注意的工作是classfuzz,它在语法上改变Java字节码以对不同的jvm进行压力测试。结果表明,classfuzz主要产生非法字节码文件,并揭示jvm启动过程中的缺陷。有效地测试jvm的字节码验证器和执行引擎以暴露更深层次的bug仍然是一个挑战。本文通过引入分类来解决这个问题,分类是一种执行深度、差异JVM测试的新颖、有效的方法。分类的关键是一种技术,活字节码突变,从种子字节码文件f中生成可能有效的,可执行的(活)字节码文件:(1)捕获种子的活字节码,其执行的字节码指令的序列;(2)反复操纵f的活字节码中的控制流和数据流,生成语义上不同的突变体;(3)选择性地接受产生的突变体,以引导突变过程向活的、多样化的突变体转变。然后使用生成的突变来对jvm进行差异测试。我们通过改变DaCapo基准测试,在主流JVM实现(包括OpenJDK的HotSpot和IBM的J9)上评估了分类。我们的结果表明,分类在揭示JVM的深层差异方面非常有效。超过1800个生成的类暴露了JVM差异,超过30个类触发了JVM崩溃。我们分析并报告了JVM运行时差异和崩溃,其中14个已经被确认/修复,包括J9中一个非常关键的安全漏洞,该漏洞允许不受信任的代码禁用安全管理器并提升其权限(CVE-2017-1376)。
{"title":"Deep Differential Testing of JVM Implementations","authors":"Yuting Chen, Ting Su, Z. Su","doi":"10.1109/ICSE.2019.00127","DOIUrl":"https://doi.org/10.1109/ICSE.2019.00127","url":null,"abstract":"The Java Virtual Machine (JVM) is the cornerstone of the widely-used Java platform. Thus, it is critical to ensure the reliability and robustness of popular JVM implementations. However, little research exists on validating production JVMs. One notable effort is classfuzz, which mutates Java bytecode syntactically to stress-test different JVMs. It is shown that classfuzz mainly produces illegal bytecode files and uncovers defects in JVMs' startup processes. It remains a challenge to effectively test JVMs' bytecode verifiers and execution engines to expose deeper bugs. This paper tackles this challenge by introducing classming, a novel, effective approach to performing deep, differential JVM testing. The key of classming is a technique, live bytecode mutation, to generate, from a seed bytecode file f, likely valid, executable (live) bytecode files: (1) capture the seed f 's live bytecode, the sequence of its executed bytecode instructions; (2) repeatedly manipulate the control- and data-flow in f 's live bytecode to generate semantically different mutants; and (3) selectively accept the generated mutants to steer the mutation process toward live, diverse mutants. The generated mutants are then employed to differentially test JVMs. We have evaluated classming on mainstream JVM implementations, including OpenJDK's HotSpot and IBM's J9, by mutating the DaCapo benchmarks. Our results show that classming is very effective in uncovering deep JVM differences. More than 1,800 of the generated classes exposed JVM differences, and more than 30 triggered JVM crashes. We analyzed and reported the JVM runtime differences and crashes, of which 14 have already been confirmed/fixed, including a highly critical security vulnerability in J9 that allowed untrusted code to disable the security manager and elevate its privileges (CVE-2017-1376).","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"115 1","pages":"1257-1268"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76783309","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 58
Organizing Committee of ICSE 2019 ICSE 2019组委会
Pub Date : 2019-05-01 DOI: 10.1109/icse.2019.00012
J. Atlee, G. Mussbacher, Betty H. C. Cheng, J. Whittle, Michael Whalen
{"title":"Organizing Committee of ICSE 2019","authors":"J. Atlee, G. Mussbacher, Betty H. C. Cheng, J. Whittle, Michael Whalen","doi":"10.1109/icse.2019.00012","DOIUrl":"https://doi.org/10.1109/icse.2019.00012","url":null,"abstract":"","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"18 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79364136","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
Journal First Program Committee of ICSE 2019 ICSE 2019期刊第一项目委员会
Pub Date : 2019-05-01 DOI: 10.1109/icse.2019.00015
{"title":"Journal First Program Committee of ICSE 2019","authors":"","doi":"10.1109/icse.2019.00015","DOIUrl":"https://doi.org/10.1109/icse.2019.00015","url":null,"abstract":"","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"9 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89504930","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
Message from the Social Media Chairs of ICSE 2019 来自2019年ICSE社交媒体主席的信息
Pub Date : 2019-05-01 DOI: 10.1109/icse.2019.00011
{"title":"Message from the Social Media Chairs of ICSE 2019","authors":"","doi":"10.1109/icse.2019.00011","DOIUrl":"https://doi.org/10.1109/icse.2019.00011","url":null,"abstract":"","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"1 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78598033","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
The Seven Sins: Security Smells in Infrastructure as Code Scripts 七宗罪:基础设施中的安全气味就像代码脚本
Pub Date : 2019-05-01 DOI: 10.1109/ICSE.2019.00033
A. Rahman, Chris Parnin, L. Williams
Practitioners use infrastructure as code (IaC) scripts to provision servers and development environments. While developing IaC scripts, practitioners may inadvertently introduce security smells. Security smells are recurring coding patterns that are indicative of security weakness and can potentially lead to security breaches. The goal of this paper is to help practitioners avoid insecure coding practices while developing infrastructure as code (IaC) scripts through an empirical study of security smells in IaC scripts. We apply qualitative analysis on 1,726 IaC scripts to identify seven security smells. Next, we implement and validate a static analysis tool called Security Linter for Infrastructure as Code scripts (SLIC) to identify the occurrence of each smell in 15,232 IaC scripts collected from 293 open source repositories. We identify 21,201 occurrences of security smells that include 1,326 occurrences of hard-coded passwords. We submitted bug reports for 1,000 randomly-selected security smell occurrences. We obtain 212 responses to these bug reports, of which 148 occurrences were accepted by the development teams to be fixed. We observe security smells can have a long lifetime, e.g., a hard-coded secret can persist for as long as 98 months, with a median lifetime of 20 months.
从业者使用基础设施作为代码(IaC)脚本来提供服务器和开发环境。在开发IaC脚本时,从业者可能会无意中引入安全气味。安全气味是一种反复出现的编码模式,表明存在安全漏洞,可能导致安全漏洞。本文的目标是通过对IaC脚本中的安全气味的实证研究,帮助从业者在开发作为代码的基础架构(IaC)脚本时避免不安全的编码实践。我们对1726个IaC脚本进行定性分析,识别出7种安全气味。接下来,我们实现并验证一个静态分析工具,称为基础设施即代码脚本的安全检查器(Security Linter for Infrastructure as Code scripts, SLIC),以识别从293个开放源代码存储库收集的15232个IaC脚本中每种气味的出现情况。我们识别了21,201次安全气味,其中包括1,326次硬编码密码。我们为1000个随机选择的安全气味事件提交了bug报告。我们获得了对这些bug报告的212个响应,其中有148个bug被开发团队接受并修复了。我们观察到安全气味可以有很长的生命周期,例如,硬编码的秘密可以持续长达98个月,平均生命周期为20个月。
{"title":"The Seven Sins: Security Smells in Infrastructure as Code Scripts","authors":"A. Rahman, Chris Parnin, L. Williams","doi":"10.1109/ICSE.2019.00033","DOIUrl":"https://doi.org/10.1109/ICSE.2019.00033","url":null,"abstract":"Practitioners use infrastructure as code (IaC) scripts to provision servers and development environments. While developing IaC scripts, practitioners may inadvertently introduce security smells. Security smells are recurring coding patterns that are indicative of security weakness and can potentially lead to security breaches. The goal of this paper is to help practitioners avoid insecure coding practices while developing infrastructure as code (IaC) scripts through an empirical study of security smells in IaC scripts. We apply qualitative analysis on 1,726 IaC scripts to identify seven security smells. Next, we implement and validate a static analysis tool called Security Linter for Infrastructure as Code scripts (SLIC) to identify the occurrence of each smell in 15,232 IaC scripts collected from 293 open source repositories. We identify 21,201 occurrences of security smells that include 1,326 occurrences of hard-coded passwords. We submitted bug reports for 1,000 randomly-selected security smell occurrences. We obtain 212 responses to these bug reports, of which 148 occurrences were accepted by the development teams to be fixed. We observe security smells can have a long lifetime, e.g., a hard-coded secret can persist for as long as 98 months, with a median lifetime of 20 months.","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"9 1","pages":"164-175"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77768346","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}
引用次数: 112
Software Documentation Issues Unveiled 公开的软件文档问题
Pub Date : 2019-05-01 DOI: 10.1109/ICSE.2019.00122
Emad Aghajani, Csaba Nagy, Olga Lucero Vega-Márquez, M. Linares-Vásquez, Laura Moreno, G. Bavota, Michele Lanza
(Good) Software documentation provides developers and users with a description of what a software system does, how it operates, and how it should be used. For example, technical documentation (e.g., an API reference guide) aids developers during evolution/maintenance activities, while a user manual explains how users are to interact with a system. Despite its intrinsic value, the creation and the maintenance of documentation is often neglected, negatively impacting its quality and usefulness, ultimately leading to a generally unfavourable take on documentation. Previous studies investigating documentation issues have been based on surveying developers, which naturally leads to a somewhat biased view of problems affecting documentation. We present a large scale empirical study, where we mined, analyzed, and categorized 878 documentation-related artifacts stemming from four different sources, namely mailing lists, Stack Overflow discussions, issue repositories, and pull requests. The result is a detailed taxonomy of documentation issues from which we infer a series of actionable proposals both for researchers and practitioners.
(好)软件文档为开发人员和用户提供了软件系统的功能、操作方式和使用方法的描述。例如,技术文档(例如,API参考指南)在开发/维护活动期间帮助开发人员,而用户手册则解释用户如何与系统交互。尽管文件具有内在价值,但它的编制和维护往往被忽视,对其质量和用途产生不利影响,最终导致对文件的普遍不利看法。以前调查文档问题的研究是基于对开发人员的调查,这自然会导致对影响文档的问题的看法有些偏颇。我们提出了一项大规模的实证研究,其中我们挖掘、分析并分类了来自四个不同来源的878个与文档相关的工件,即邮件列表、Stack Overflow讨论、问题存储库和拉取请求。结果是文件问题的详细分类,从中我们推断出一系列可操作的建议,既为研究人员和从业者。
{"title":"Software Documentation Issues Unveiled","authors":"Emad Aghajani, Csaba Nagy, Olga Lucero Vega-Márquez, M. Linares-Vásquez, Laura Moreno, G. Bavota, Michele Lanza","doi":"10.1109/ICSE.2019.00122","DOIUrl":"https://doi.org/10.1109/ICSE.2019.00122","url":null,"abstract":"(Good) Software documentation provides developers and users with a description of what a software system does, how it operates, and how it should be used. For example, technical documentation (e.g., an API reference guide) aids developers during evolution/maintenance activities, while a user manual explains how users are to interact with a system. Despite its intrinsic value, the creation and the maintenance of documentation is often neglected, negatively impacting its quality and usefulness, ultimately leading to a generally unfavourable take on documentation. Previous studies investigating documentation issues have been based on surveying developers, which naturally leads to a somewhat biased view of problems affecting documentation. We present a large scale empirical study, where we mined, analyzed, and categorized 878 documentation-related artifacts stemming from four different sources, namely mailing lists, Stack Overflow discussions, issue repositories, and pull requests. The result is a detailed taxonomy of documentation issues from which we infer a series of actionable proposals both for researchers and practitioners.","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"14 1","pages":"1199-1210"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82487633","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}
引用次数: 106
Artifact Evaluation Committee of ICSE 2019 ICSE 2019人工制品评审委员会
Pub Date : 2019-05-01 DOI: 10.1109/icse.2019.00017
S. Abrahão, H. Bagheri, David Benavides, Reyhaneh Jabbarvand, E. Knauss, Hitesh Sajnani, Shuai Wang, Xusheng Xiao
Silvia Abrahão Universitat Politècnica de València, Spain Hamid Bagheri University of Nebraska-Lincoln, USA David Benavides Universidad de Sevilla, Spain Kelly Blincoe University of Auckland, New Zealand Casey Casalnuovo University of California at Davis, USA Antonio Filieri Imperial College London, United Kingdom Joshua Garcia University of California, Irvine, USA Alexander Grebhahn University of Passau, Germany Regina Hebig Chalmers University of Technology and University of Gothenburg, Sweden Vincent Hellendoorn University of California at Davis, USA Reyhaneh Jabbarvand University of California, Irvine, USA Eric Knauss Chalmers University of Technology and University of Gothenburg, Sweden Anne Koziolek Karlsruhe Institute of Technology, Germany Li Li Monash University, Australia Lukas Linsbauer Johannes Kepler University Linz, Austria Patrick Mäder Technische Universität Ilmenau, Germany Ripon Saha Fujitsu Laboratories of America, Inc. Hitesh Sajnani Microsoft Nicolas Sannier University of Luxembourg, SnT Norbert Seyff FHNW & University of Zurich, Switzerland Fang-Hsiang Su Facebook Michael Vierhauser University of Notre Dame, USA Shuai Wang ETH Zurich, Switzerland Xusheng Xiao Case Western Reserve University, USA Wei Yang University of Texas at Dallas, USA Tianyi Zhang University of California, Los Angeles, USA
{"title":"Artifact Evaluation Committee of ICSE 2019","authors":"S. Abrahão, H. Bagheri, David Benavides, Reyhaneh Jabbarvand, E. Knauss, Hitesh Sajnani, Shuai Wang, Xusheng Xiao","doi":"10.1109/icse.2019.00017","DOIUrl":"https://doi.org/10.1109/icse.2019.00017","url":null,"abstract":"Silvia Abrahão Universitat Politècnica de València, Spain Hamid Bagheri University of Nebraska-Lincoln, USA David Benavides Universidad de Sevilla, Spain Kelly Blincoe University of Auckland, New Zealand Casey Casalnuovo University of California at Davis, USA Antonio Filieri Imperial College London, United Kingdom Joshua Garcia University of California, Irvine, USA Alexander Grebhahn University of Passau, Germany Regina Hebig Chalmers University of Technology and University of Gothenburg, Sweden Vincent Hellendoorn University of California at Davis, USA Reyhaneh Jabbarvand University of California, Irvine, USA Eric Knauss Chalmers University of Technology and University of Gothenburg, Sweden Anne Koziolek Karlsruhe Institute of Technology, Germany Li Li Monash University, Australia Lukas Linsbauer Johannes Kepler University Linz, Austria Patrick Mäder Technische Universität Ilmenau, Germany Ripon Saha Fujitsu Laboratories of America, Inc. Hitesh Sajnani Microsoft Nicolas Sannier University of Luxembourg, SnT Norbert Seyff FHNW & University of Zurich, Switzerland Fang-Hsiang Su Facebook Michael Vierhauser University of Notre Dame, USA Shuai Wang ETH Zurich, Switzerland Xusheng Xiao Case Western Reserve University, USA Wei Yang University of Texas at Dallas, USA Tianyi Zhang University of California, Los Angeles, USA","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"22 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79983344","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
Towards Understanding and Reasoning About Android Interoperations 关于Android互操作的理解和推理
Pub Date : 2019-05-01 DOI: 10.1109/ICSE.2019.00038
Sora Bae, Sungho Lee, Sukyoung Ryu
Hybrid applications (apps) have become one of the most attractive options for mobile app developers thanks to its support for portability and device-specific features. Android hybrid apps, for example, support portability via JavaScript, device-specific features via Android Java, and seamless interactions between them. However, their interoperation semantics is often under-documented and unintuitive, which makes hybrid apps vulnerable to errors. While recent research has addressed such vulnerabilities, none of them are based on any formal grounds. In this paper, we present the first formal specification of Android interoperability to establish a firm ground for understanding and reasoning about the interoperations. We identify its semantics via extensive testing and thorough inspection of Android source code. We extend an existing multi-language semantics to formally express the key features of hybrid mechanisms, dynamic and indistinguishable interoperability. Based on the extensions, we incrementally define a formal interoperation semantics and disclose its numerous unintuitive and inconsistent behaviors. Moreover, on top of the formal semantics, we devise a lightweight type system that can detect bugs due to the unintuitive inter-language communication. We show that it detects more bugs more efficiently than HybriDroid, the state-of-the-art analyzer of Android hybrid apps, in real-world Android hybrid apps.
由于支持可移植性和特定于设备的特性,混合应用程序(app)已成为移动应用程序开发人员最具吸引力的选择之一。例如,Android混合应用通过JavaScript支持可移植性,通过Android Java支持设备特定功能,以及它们之间的无缝交互。然而,它们的互操作语义通常缺乏文档和不直观,这使得混合应用程序容易出错。虽然最近的研究已经解决了这些漏洞,但没有一个是基于任何正式的理由。在本文中,我们提出了Android互操作性的第一个正式规范,为理解和推理互操作性奠定了坚实的基础。我们通过广泛的测试和对Android源代码的彻底检查来确定其语义。我们扩展了现有的多语言语义,以正式表达混合机制、动态和不可区分互操作性的关键特征。在扩展的基础上,我们逐步定义了正式的互操作语义,并揭示了其众多不直观和不一致的行为。此外,在形式语义之上,我们设计了一个轻量级的类型系统,可以检测由于不直观的语言间通信而导致的错误。我们证明,在真实的Android混合应用中,它比最先进的Android混合应用分析器HybriDroid更有效地检测出更多的漏洞。
{"title":"Towards Understanding and Reasoning About Android Interoperations","authors":"Sora Bae, Sungho Lee, Sukyoung Ryu","doi":"10.1109/ICSE.2019.00038","DOIUrl":"https://doi.org/10.1109/ICSE.2019.00038","url":null,"abstract":"Hybrid applications (apps) have become one of the most attractive options for mobile app developers thanks to its support for portability and device-specific features. Android hybrid apps, for example, support portability via JavaScript, device-specific features via Android Java, and seamless interactions between them. However, their interoperation semantics is often under-documented and unintuitive, which makes hybrid apps vulnerable to errors. While recent research has addressed such vulnerabilities, none of them are based on any formal grounds. In this paper, we present the first formal specification of Android interoperability to establish a firm ground for understanding and reasoning about the interoperations. We identify its semantics via extensive testing and thorough inspection of Android source code. We extend an existing multi-language semantics to formally express the key features of hybrid mechanisms, dynamic and indistinguishable interoperability. Based on the extensions, we incrementally define a formal interoperation semantics and disclose its numerous unintuitive and inconsistent behaviors. Moreover, on top of the formal semantics, we devise a lightweight type system that can detect bugs due to the unintuitive inter-language communication. We show that it detects more bugs more efficiently than HybriDroid, the state-of-the-art analyzer of Android hybrid apps, in real-world Android hybrid apps.","PeriodicalId":6736,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)","volume":"3 1","pages":"223-233"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88949093","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
期刊
2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE)
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1