首页 > 最新文献

2013 35th International Conference on Software Engineering (ICSE)最新文献

英文 中文
Normalizing source code vocabulary to support program comprehension and software quality 规范源代码词汇表以支持程序理解和软件质量
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606723
Latifa Guerrouj
The literature reports that source code lexicon plays a paramount role in program comprehension, especially when software documentation is scarce, outdated or simply not available. In source code, a significant proportion of vocabulary can be either acronyms and-or abbreviations or concatenation of terms that can not be identified using consistent mechanisms such as naming conventions. It is, therefore, essential to disambiguate concepts conveyed by identifiers to support program comprehension and reap the full benefit of Information Retrieval-based techniques (e.g., feature location and traceability) whose linguistic information (i.e., source code identifiers and comments) used across all software artifacts (e.g., requirements, design, change requests, tests, and source code) must be consistent. To this aim, we propose source code vocabulary normalization approaches that exploit contextual information to align the vocabulary found in the source code with that found in other software artifacts. We were inspired in the choice of context levels by prior works and by our findings. Normalization consists of two tasks: splitting and expansion of source code identifiers. We also investigate the effect of source code vocabulary normalization approaches on software maintenance tasks. Results of our evaluation show that our contextual-aware techniques are accurate and efficient in terms of computation time than state of the art alternatives. In addition, our findings reveal that feature location techniques can benefit from vocabulary normalization when no dynamic information is available.
文献报告说,源代码词典在程序理解中起着至关重要的作用,特别是当软件文档稀缺、过时或根本不可用时。在源代码中,词汇表的很大一部分可能是首字母缩略词和/或缩写,也可能是使用命名约定等一致机制无法识别的术语的串联。因此,消除标识符所传达的概念的歧义,以支持程序理解,并获得基于信息检索的技术(例如,特性定位和可追溯性)的全部好处是必要的,这些技术的语言信息(例如,源代码标识符和注释)必须在所有软件工件(例如,需求、设计、变更请求、测试和源代码)中使用是一致的。为此,我们提出了源代码词汇表规范化方法,利用上下文信息将源代码中的词汇表与其他软件构件中的词汇表对齐。我们的灵感来自于之前的作品和我们的发现。规范化包括两个任务:拆分和扩展源代码标识符。我们还研究了源代码词汇规范化方法对软件维护任务的影响。我们的评估结果表明,就计算时间而言,我们的上下文感知技术比最先进的替代方案更准确、更高效。此外,我们的研究结果表明,当没有动态信息可用时,特征定位技术可以从词汇规范化中获益。
{"title":"Normalizing source code vocabulary to support program comprehension and software quality","authors":"Latifa Guerrouj","doi":"10.1109/ICSE.2013.6606723","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606723","url":null,"abstract":"The literature reports that source code lexicon plays a paramount role in program comprehension, especially when software documentation is scarce, outdated or simply not available. In source code, a significant proportion of vocabulary can be either acronyms and-or abbreviations or concatenation of terms that can not be identified using consistent mechanisms such as naming conventions. It is, therefore, essential to disambiguate concepts conveyed by identifiers to support program comprehension and reap the full benefit of Information Retrieval-based techniques (e.g., feature location and traceability) whose linguistic information (i.e., source code identifiers and comments) used across all software artifacts (e.g., requirements, design, change requests, tests, and source code) must be consistent. To this aim, we propose source code vocabulary normalization approaches that exploit contextual information to align the vocabulary found in the source code with that found in other software artifacts. We were inspired in the choice of context levels by prior works and by our findings. Normalization consists of two tasks: splitting and expansion of source code identifiers. We also investigate the effect of source code vocabulary normalization approaches on software maintenance tasks. Results of our evaluation show that our contextual-aware techniques are accurate and efficient in terms of computation time than state of the art alternatives. In addition, our findings reveal that feature location techniques can benefit from vocabulary normalization when no dynamic information is available.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128175263","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}
引用次数: 22
Automatic patch generation learned from human-written patches 从人类编写的补丁中自动生成补丁
Pub Date : 2013-05-18 DOI: 10.5555/2486788.2486893
Dongsun Kim, Jaechang Nam, Jaewoo Song, Sunghun Kim
Patch generation is an essential software maintenance task because most software systems inevitably have bugs that need to be fixed. Unfortunately, human resources are often insufficient to fix all reported and known bugs. To address this issue, several automated patch generation techniques have been proposed. In particular, a genetic-programming-based patch generation technique, GenProg, proposed by Weimer et al., has shown promising results. However, these techniques can generate nonsensical patches due to the randomness of their mutation operations. To address this limitation, we propose a novel patch generation approach, Pattern-based Automatic program Repair (Par), using fix patterns learned from existing human-written patches. We manually inspected more than 60,000 human-written patches and found there are several common fix patterns. Our approach leverages these fix patterns to generate program patches automatically. We experimentally evaluated Par on 119 real bugs. In addition, a user study involving 89 students and 164 developers confirmed that patches generated by our approach are more acceptable than those generated by GenProg. Par successfully generated patches for 27 out of 119 bugs, while GenProg was successful for only 16 bugs.
补丁生成是一项必要的软件维护任务,因为大多数软件系统不可避免地存在需要修复的错误。不幸的是,人力资源通常不足以修复所有报告的和已知的错误。为了解决这个问题,已经提出了几种自动补丁生成技术。特别是,由Weimer等人提出的基于遗传编程的贴片生成技术GenProg已经显示出有希望的结果。然而,由于突变操作的随机性,这些技术可能会产生无意义的补丁。为了解决这一限制,我们提出了一种新的补丁生成方法,基于模式的自动程序修复(Par),使用从现有的人类编写的补丁中学习的修复模式。我们手动检查了超过60,000个人工编写的补丁,发现有几个常见的修复模式。我们的方法利用这些修复模式来自动生成程序补丁。我们在119个真实bug上对Par进行了实验评估。此外,一项涉及89名学生和164名开发人员的用户研究证实,我们的方法生成的补丁比GenProg生成的补丁更容易被接受。Par成功生成了119个错误中的27个补丁,而GenProg仅成功生成了16个错误。
{"title":"Automatic patch generation learned from human-written patches","authors":"Dongsun Kim, Jaechang Nam, Jaewoo Song, Sunghun Kim","doi":"10.5555/2486788.2486893","DOIUrl":"https://doi.org/10.5555/2486788.2486893","url":null,"abstract":"Patch generation is an essential software maintenance task because most software systems inevitably have bugs that need to be fixed. Unfortunately, human resources are often insufficient to fix all reported and known bugs. To address this issue, several automated patch generation techniques have been proposed. In particular, a genetic-programming-based patch generation technique, GenProg, proposed by Weimer et al., has shown promising results. However, these techniques can generate nonsensical patches due to the randomness of their mutation operations. To address this limitation, we propose a novel patch generation approach, Pattern-based Automatic program Repair (Par), using fix patterns learned from existing human-written patches. We manually inspected more than 60,000 human-written patches and found there are several common fix patterns. Our approach leverages these fix patterns to generate program patches automatically. We experimentally evaluated Par on 119 real bugs. In addition, a user study involving 89 students and 164 developers confirmed that patches generated by our approach are more acceptable than those generated by GenProg. Par successfully generated patches for 27 out of 119 bugs, while GenProg was successful for only 16 bugs.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125739142","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}
引用次数: 622
Supporting swift reaction: Automatically uncovering performance problems by systematic experiments 支持快速反应:通过系统实验自动发现性能问题
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606601
Alexander Wert, J. Happe, Lucia Happe
Performance problems pose a significant risk to software vendors. If left undetected, they can lead to lost customers, increased operational costs, and damaged reputation. Despite all efforts, software engineers cannot fully prevent performance problems being introduced into an application. Detecting and resolving such problems as early as possible with minimal effort is still an open challenge in software performance engineering. In this paper, we present a novel approach for Performance Problem Diagnostics (PPD) that systematically searches for well-known performance problems (also called performance antipatterns) within an application. PPD automatically isolates the problem's root cause, hence facilitating problem solving. We applied PPD to a well established transactional web e-Commerce benchmark (TPC-W) in two deployment scenarios. PPD automatically identified four performance problems in the benchmark implementation and its deployment environment. By fixing the problems, we increased the maximum throughput of the benchmark from 1800 requests per second to more than 3500.
性能问题对软件供应商构成重大风险。如果不及时发现,可能会导致客户流失、运营成本增加和声誉受损。尽管软件工程师竭尽全力,但仍无法完全避免应用程序出现性能问题。如何以最小的代价尽早发现并解决这些问题,仍然是软件性能工程领域的一项挑战。在本文中,我们提出了一种新颖的性能问题诊断(PPD)方法,它可以系统地搜索应用程序中众所周知的性能问题(也称为性能反模式)。PPD 可自动隔离问题的根源,从而促进问题的解决。我们在两种部署方案中将 PPD 应用于一个成熟的交易型网络电子商务基准(TPC-W)。PPD 自动发现了基准实施及其部署环境中的四个性能问题。通过解决这些问题,我们将基准的最大吞吐量从每秒 1800 个请求提高到 3500 多个。
{"title":"Supporting swift reaction: Automatically uncovering performance problems by systematic experiments","authors":"Alexander Wert, J. Happe, Lucia Happe","doi":"10.1109/ICSE.2013.6606601","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606601","url":null,"abstract":"Performance problems pose a significant risk to software vendors. If left undetected, they can lead to lost customers, increased operational costs, and damaged reputation. Despite all efforts, software engineers cannot fully prevent performance problems being introduced into an application. Detecting and resolving such problems as early as possible with minimal effort is still an open challenge in software performance engineering. In this paper, we present a novel approach for Performance Problem Diagnostics (PPD) that systematically searches for well-known performance problems (also called performance antipatterns) within an application. PPD automatically isolates the problem's root cause, hence facilitating problem solving. We applied PPD to a well established transactional web e-Commerce benchmark (TPC-W) in two deployment scenarios. PPD automatically identified four performance problems in the benchmark implementation and its deployment environment. By fixing the problems, we increased the maximum throughput of the benchmark from 1800 requests per second to more than 3500.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126603940","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}
引用次数: 68
Efficient construction of approximate call graphs for JavaScript IDE services JavaScript IDE服务的近似调用图的有效构造
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606621
Asger Feldthaus, Max Schäfer, Manu Sridharan, Julian T Dolby, F. Tip
The rapid rise of JavaScript as one of the most popular programming languages of the present day has led to a demand for sophisticated IDE support similar to what is available for Java or C#. However, advanced tooling is hampered by the dynamic nature of the language, which makes any form of static analysis very difficult. We single out efficient call graph construction as a key problem to be solved in order to improve development tools for JavaScript. To address this problem, we present a scalable field-based flow analysis for constructing call graphs. Our evaluation on large real-world programs shows that the analysis, while in principle unsound, produces highly accurate call graphs in practice. Previous analyses do not scale to these programs, but our analysis handles them in a matter of seconds, thus proving its suitability for use in an interactive setting.
作为当今最流行的编程语言之一,JavaScript的迅速崛起导致了对复杂的IDE支持的需求,类似于Java或c#的支持。然而,高级工具受到语言动态特性的阻碍,这使得任何形式的静态分析都非常困难。为了改进JavaScript的开发工具,我们将高效的调用图构建作为需要解决的关键问题。为了解决这个问题,我们提出了一个可扩展的基于字段的流分析,用于构建调用图。我们对大型现实世界程序的评估表明,这种分析虽然在原则上是不健全的,但在实践中产生了高度准确的调用图。以前的分析不能扩展到这些程序,但是我们的分析可以在几秒钟内处理它们,从而证明它适合在交互式设置中使用。
{"title":"Efficient construction of approximate call graphs for JavaScript IDE services","authors":"Asger Feldthaus, Max Schäfer, Manu Sridharan, Julian T Dolby, F. Tip","doi":"10.1109/ICSE.2013.6606621","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606621","url":null,"abstract":"The rapid rise of JavaScript as one of the most popular programming languages of the present day has led to a demand for sophisticated IDE support similar to what is available for Java or C#. However, advanced tooling is hampered by the dynamic nature of the language, which makes any form of static analysis very difficult. We single out efficient call graph construction as a key problem to be solved in order to improve development tools for JavaScript. To address this problem, we present a scalable field-based flow analysis for constructing call graphs. Our evaluation on large real-world programs shows that the analysis, while in principle unsound, produces highly accurate call graphs in practice. Previous analyses do not scale to these programs, but our analysis handles them in a matter of seconds, thus proving its suitability for use in an interactive setting.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127163853","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}
引用次数: 118
Not going to take this anymore: Multi-objective overtime planning for Software Engineering projects 我不想再讨论这个问题了:软件工程项目的多目标加班计划
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606592
F. Ferrucci, M. Harman, Jian Ren, Federica Sarro
Software Engineering and development is well-known to suffer from unplanned overtime, which causes stress and illness in engineers and can lead to poor quality software with higher defects. In this paper, we introduce a multi-objective decision support approach to help balance project risks and duration against overtime, so that software engineers can better plan overtime. We evaluate our approach on 6 real world software projects, drawn from 3 organisations using 3 standard evaluation measures and 3 different approaches to risk assessment. Our results show that our approach was significantly better (p <; 0.05) than standard multi-objective search in 76% of experiments (with high Cohen effect size in 85% of these) and was significantly better than currently used overtime planning strategies in 100% of experiments (with high effect size in all). We also show how our approach provides actionable overtime planning results and investigate the impact of the three different forms of risk assessment.
众所周知,软件工程和开发会遭受计划外的加班,这会给工程师带来压力和疾病,并可能导致质量差的软件和更高的缺陷。在本文中,我们介绍了一种多目标决策支持方法,以帮助平衡项目风险和工期与加班,以便软件工程师可以更好地计划加班。我们在6个真实世界的软件项目中评估了我们的方法,这些项目来自3个组织,使用3种标准评估方法和3种不同的风险评估方法。我们的结果表明,我们的方法明显更好(p <;0.05)在76%的实验中优于标准的多目标搜索(其中85%的实验具有高科恩效应量),并且在100%的实验中显著优于目前使用的加班计划策略(所有实验均具有高效应量)。我们还展示了我们的方法如何提供可操作的加班计划结果,并调查了三种不同形式的风险评估的影响。
{"title":"Not going to take this anymore: Multi-objective overtime planning for Software Engineering projects","authors":"F. Ferrucci, M. Harman, Jian Ren, Federica Sarro","doi":"10.1109/ICSE.2013.6606592","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606592","url":null,"abstract":"Software Engineering and development is well-known to suffer from unplanned overtime, which causes stress and illness in engineers and can lead to poor quality software with higher defects. In this paper, we introduce a multi-objective decision support approach to help balance project risks and duration against overtime, so that software engineers can better plan overtime. We evaluate our approach on 6 real world software projects, drawn from 3 organisations using 3 standard evaluation measures and 3 different approaches to risk assessment. Our results show that our approach was significantly better (p <; 0.05) than standard multi-objective search in 76% of experiments (with high Cohen effect size in 85% of these) and was significantly better than currently used overtime planning strategies in 100% of experiments (with high effect size in all). We also show how our approach provides actionable overtime planning results and investigate the impact of the three different forms of risk assessment.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"34 12","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"113963605","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}
引用次数: 76
1st International workshop on natural language analysis in software engineering (NaturaLiSE 2013) 第一届软件工程自然语言分析国际研讨会(NaturaLiSE 2013)
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606775
L. Pollock, D. Binkley, Dawn J Lawrie, Emily Hill, R. Oliveto, G. Bavota, Alberto Bacchelli
Software engineers produce code that has formal syntax and semantics, which establishes its formal meaning. However, the code also includes significant natural language found primarily in identifier names and comments. Furthermore, the code is surrounded by non-source artifacts, predominantly written in natural language. The NaturaLiSE workshop focuses on natural language analysis of software. The workshop brings together researchers and practitioners interested in exploiting natural language information to create improved software engineering tools. Participants will explore natural language analysis applied to software artifacts, combining natural language and traditional program analysis, integration of natural language analyses into client tools, mining natural language data, and empirical studies focused on evaluating the usefulness of natural language analysis.
软件工程师生成具有正式语法和语义的代码,这些语法和语义建立了代码的正式含义。然而,代码也包含了主要在标识符名称和注释中发现的重要自然语言。此外,代码被主要用自然语言编写的非源工件所包围。NaturaLiSE研讨会的重点是软件的自然语言分析。研讨会汇集了对开发自然语言信息以创建改进的软件工程工具感兴趣的研究人员和实践者。与会者将探索应用于软件工件的自然语言分析,将自然语言与传统程序分析相结合,将自然语言分析集成到客户端工具中,挖掘自然语言数据,以及着重于评估自然语言分析有用性的实证研究。
{"title":"1st International workshop on natural language analysis in software engineering (NaturaLiSE 2013)","authors":"L. Pollock, D. Binkley, Dawn J Lawrie, Emily Hill, R. Oliveto, G. Bavota, Alberto Bacchelli","doi":"10.1109/ICSE.2013.6606775","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606775","url":null,"abstract":"Software engineers produce code that has formal syntax and semantics, which establishes its formal meaning. However, the code also includes significant natural language found primarily in identifier names and comments. Furthermore, the code is surrounded by non-source artifacts, predominantly written in natural language. The NaturaLiSE workshop focuses on natural language analysis of software. The workshop brings together researchers and practitioners interested in exploiting natural language information to create improved software engineering tools. Participants will explore natural language analysis applied to software artifacts, combining natural language and traditional program analysis, integration of natural language analyses into client tools, mining natural language data, and empirical studies focused on evaluating the usefulness of natural language analysis.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"344 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122475982","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
Automatic testing of sequential and concurrent substitutability 顺序和并发可替换性的自动测试
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606574
Michael Pradel, T. Gross
Languages with inheritance and polymorphism assume that a subclass instance can substitute a superclass instance without causing behavioral differences for clients of the superclass. However, programmers may accidentally create subclasses that are semantically incompatible with their superclasses. Such subclasses lead to bugs, because a programmer may assign a subclass instance to a superclass reference. This paper presents an automatic testing technique to reveal subclasses that cannot safely substitute their superclasses. The key idea is to generate generic tests that analyze the behavior of both the subclass and its superclass. If using the subclass leads to behavior that cannot occur with the superclass, the analysis reports a warning. We find a high percentage of widely used Java classes, including classes from JBoss, Eclipse, and Apache Commons Collections, to be unsafe substitutes for their superclasses: 30% of these classes lead to crashes, and even more have other behavioral differences.
具有继承和多态的语言假定子类实例可以替代超类实例,而不会对超类的客户端造成行为差异。但是,程序员可能会意外地创建与其超类在语义上不兼容的子类。这样的子类会导致错误,因为程序员可能会将子类实例分配给超类引用。本文提出了一种自动测试技术来揭示不能安全地替换其父类的子类。关键思想是生成分析子类及其超类行为的泛型测试。如果使用子类导致了超类无法发生的行为,分析就会报告一个警告。我们发现大量广泛使用的Java类,包括来自JBoss、Eclipse和Apache Commons Collections的类,都是其超类的不安全替代品:这些类中有30%会导致崩溃,甚至更多的类具有其他行为差异。
{"title":"Automatic testing of sequential and concurrent substitutability","authors":"Michael Pradel, T. Gross","doi":"10.1109/ICSE.2013.6606574","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606574","url":null,"abstract":"Languages with inheritance and polymorphism assume that a subclass instance can substitute a superclass instance without causing behavioral differences for clients of the superclass. However, programmers may accidentally create subclasses that are semantically incompatible with their superclasses. Such subclasses lead to bugs, because a programmer may assign a subclass instance to a superclass reference. This paper presents an automatic testing technique to reveal subclasses that cannot safely substitute their superclasses. The key idea is to generate generic tests that analyze the behavior of both the subclass and its superclass. If using the subclass leads to behavior that cannot occur with the superclass, the analysis reports a warning. We find a high percentage of widely used Java classes, including classes from JBoss, Eclipse, and Apache Commons Collections, to be unsafe substitutes for their superclasses: 30% of these classes lead to crashes, and even more have other behavioral differences.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125801637","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
1st International workshop on assurance cases for software-intensive systems (ASSURE 2013) 第一届软件密集型系统保证案例国际研讨会(ASSURE 2013)
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606759
E. Denney, Ganesh J. Pai, I. Habli, T. Kelly, J. Knight
Software plays a key role in high-risk systems, i.e., safety and security-critical systems. Several certification standards and guidelines, e.g., in the defense, transportation (aviation, automotive, rail), and healthcare domains, now recommend and/or mandate the development of assurance cases for software-intensive systems. As such, there is a need to understand and evaluate (a) the application of assurance cases to software, and (b) the relationship between the development and assessment of assurance cases, and software engineering concepts, processes and techniques. The ICSE 2013 Workshop on Assurance Cases for Software-intensive Systems (ASSURE) aims to provide an international forum for high-quality contributions (research, practice, and position papers) on the application of assurance case principles and techniques for software assurance, and on the treatment of assurance cases as artifacts to which the full range of software engineering techniques can be applied.
软件在高风险系统,即安全和安全关键系统中起着关键作用。一些认证标准和指导方针,例如,在国防、运输(航空、汽车、铁路)和医疗保健领域,现在建议和/或强制开发软件密集型系统的保证案例。因此,有必要理解和评估(a)保证用例对软件的应用,以及(b)保证用例的开发和评估与软件工程概念、过程和技术之间的关系。2013年ICSE软件密集型系统(ASSURE)保证案例研讨会旨在为高质量的贡献(研究、实践和立场文件)提供一个国际论坛,讨论软件保证的保证案例原则和技术的应用,以及将保证案例作为工件的处理,以应用全面的软件工程技术。
{"title":"1st International workshop on assurance cases for software-intensive systems (ASSURE 2013)","authors":"E. Denney, Ganesh J. Pai, I. Habli, T. Kelly, J. Knight","doi":"10.1109/ICSE.2013.6606759","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606759","url":null,"abstract":"Software plays a key role in high-risk systems, i.e., safety and security-critical systems. Several certification standards and guidelines, e.g., in the defense, transportation (aviation, automotive, rail), and healthcare domains, now recommend and/or mandate the development of assurance cases for software-intensive systems. As such, there is a need to understand and evaluate (a) the application of assurance cases to software, and (b) the relationship between the development and assessment of assurance cases, and software engineering concepts, processes and techniques. The ICSE 2013 Workshop on Assurance Cases for Software-intensive Systems (ASSURE) aims to provide an international forum for high-quality contributions (research, practice, and position papers) on the application of assurance case principles and techniques for software assurance, and on the treatment of assurance cases as artifacts to which the full range of software engineering techniques can be applied.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126701441","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
YODA: Young and newcOmer Developer Assistant 尤达:年轻和新人开发助理
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606710
G. Canfora, M. D. Penta, Stefano Giannantonio, R. Oliveto, Sebastiano Panichella
Mentoring project newcomers is a crucial activity in software projects, and requires to identify people having good communication and teaching skills, other than high expertise on specific technical topics. In this demo we present Yoda (Young and newcOmer Developer Assistant), an Eclipse plugin that identifies and recommends mentors for newcomers joining a software project. Yoda mines developers' communication (e.g., mailing lists) and project versioning systems to identify mentors using an approach inspired to what ArnetMiner does when mining advisor/student relations. Then, it recommends appropriate mentors based on the specific expertise required by the newcomer. The demo shows Yoda in action, illustrating how the tool is able to identify and visualize mentoring relations in a project, and suggest appropriate mentors for a developer who is going to work on certain source code files, or on a given topic. Demo URL: http://youtu.be/4yrbYT-LAXA.
在软件项目中,指导项目新人是一项至关重要的活动,并且需要识别具有良好沟通和教学技能的人,而不是具有特定技术主题的高专业知识的人。在这个演示中,我们展示了Yoda (Young and newcOmer Developer Assistant),这是一个Eclipse插件,可以为加入软件项目的新人识别和推荐导师。Yoda挖掘开发人员的沟通(例如,邮件列表)和项目版本控制系统来识别导师,使用的方法受到了ArnetMiner在挖掘导师/学生关系时所做的启发。然后,它根据新人所需的具体专业知识推荐合适的导师。演示展示了Yoda的工作,说明了该工具如何能够识别和可视化项目中的指导关系,并为将要处理特定源代码文件或给定主题的开发人员建议适当的指导。演示URL: http://youtu.be/4yrbYT-LAXA。
{"title":"YODA: Young and newcOmer Developer Assistant","authors":"G. Canfora, M. D. Penta, Stefano Giannantonio, R. Oliveto, Sebastiano Panichella","doi":"10.1109/ICSE.2013.6606710","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606710","url":null,"abstract":"Mentoring project newcomers is a crucial activity in software projects, and requires to identify people having good communication and teaching skills, other than high expertise on specific technical topics. In this demo we present Yoda (Young and newcOmer Developer Assistant), an Eclipse plugin that identifies and recommends mentors for newcomers joining a software project. Yoda mines developers' communication (e.g., mailing lists) and project versioning systems to identify mentors using an approach inspired to what ArnetMiner does when mining advisor/student relations. Then, it recommends appropriate mentors based on the specific expertise required by the newcomer. The demo shows Yoda in action, illustrating how the tool is able to identify and visualize mentoring relations in a project, and suggest appropriate mentors for a developer who is going to work on certain source code files, or on a given topic. Demo URL: http://youtu.be/4yrbYT-LAXA.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"102 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123917744","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation 使用自动静态分析和审阅者推荐,减少了同级代码审阅中的人力劳动并提高了质量
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606642
Vipin Balachandran
Peer code review is a cost-effective software defect detection technique. Tool assisted code review is a form of peer code review, which can improve both quality and quantity of reviews. However, there is a significant amount of human effort involved even in tool based code reviews. Using static analysis tools, it is possible to reduce the human effort by automating the checks for coding standard violations and common defect patterns. Towards this goal, we propose a tool called Review Bot for the integration of automatic static analysis with the code review process. Review Bot uses output of multiple static analysis tools to publish reviews automatically. Through a user study, we show that integrating static analysis tools with code review process can improve the quality of code review. The developer feedback for a subset of comments from automatic reviews shows that the developers agree to fix 93% of all the automatically generated comments. There is only 14.71% of all the accepted comments which need improvements in terms of priority, comment message, etc. Another problem with tool assisted code review is the assignment of appropriate reviewers. Review Bot solves this problem by generating reviewer recommendations based on change history of source code lines. Our experimental results show that the recommendation accuracy is in the range of 60%-92%, which is significantly better than a comparable method based on file change history.
对等代码评审是一种经济有效的软件缺陷检测技术。工具辅助代码审查是同行代码审查的一种形式,它可以提高审查的质量和数量。然而,即使在基于工具的代码审查中,也需要大量的人力。使用静态分析工具,可以通过自动检查编码标准违反和常见缺陷模式来减少人工工作。为了实现这一目标,我们提出了一个名为Review Bot的工具,用于将自动静态分析与代码审查过程集成在一起。Review Bot使用多个静态分析工具的输出来自动发布评论。通过用户研究,我们证明了将静态分析工具与代码评审过程集成可以提高代码评审的质量。来自自动评审的评论子集的开发人员反馈显示,开发人员同意修复所有自动生成的评论的93%。在所有被接受的评论中,只有14.71%需要在优先级、评论消息等方面进行改进。工具辅助代码审查的另一个问题是分配合适的审查人员。Review Bot解决了这个问题,它根据源代码行的变更历史生成审查者建议。我们的实验结果表明,推荐准确率在60%-92%之间,明显优于基于文件变更历史的可比方法。
{"title":"Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation","authors":"Vipin Balachandran","doi":"10.1109/ICSE.2013.6606642","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606642","url":null,"abstract":"Peer code review is a cost-effective software defect detection technique. Tool assisted code review is a form of peer code review, which can improve both quality and quantity of reviews. However, there is a significant amount of human effort involved even in tool based code reviews. Using static analysis tools, it is possible to reduce the human effort by automating the checks for coding standard violations and common defect patterns. Towards this goal, we propose a tool called Review Bot for the integration of automatic static analysis with the code review process. Review Bot uses output of multiple static analysis tools to publish reviews automatically. Through a user study, we show that integrating static analysis tools with code review process can improve the quality of code review. The developer feedback for a subset of comments from automatic reviews shows that the developers agree to fix 93% of all the automatically generated comments. There is only 14.71% of all the accepted comments which need improvements in terms of priority, comment message, etc. Another problem with tool assisted code review is the assignment of appropriate reviewers. Review Bot solves this problem by generating reviewer recommendations based on change history of source code lines. Our experimental results show that the recommendation accuracy is in the range of 60%-92%, which is significantly better than a comparable method based on file change history.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127875191","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}
引用次数: 215
期刊
2013 35th 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学术文献互助群
群 号:604180095
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1