首页 > 最新文献

2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)最新文献

英文 中文
Comparing Constraints Mined From Execution Logs to Understand Software Evolution 比较从执行日志中挖掘的约束来理解软件演化
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00082
Thomas Krismayer, Michael Vierhauser, Rick Rabiser, P. Grünbacher
Complex software systems evolve frequently, e.g., when introducing new features or fixing bugs during maintenance. However, understanding the impact of such changes on system behavior is often difficult. Many approaches have thus been proposed that analyze systems before and after changes, e.g., by comparing source code, model-based representations, or system execution logs. In this paper, we propose an approach for comparing run-time constraints, synthesized by a constraint mining algorithm, based on execution logs recorded before and after changes. Specifically, automatically mined constraints define the expected timing and order of recurring events and the values of data elements attached to events. Our approach presents the differences of the mined constraints to users, thereby providing a higher-level view on software evolution and supporting the analysis of the impact of changes on system behavior. We present a motivating example and a preliminary evaluation based on a cyber-physical system controlling unmanned aerial vehicles. The results of our preliminary evaluation show that our approach can help to analyze changed behavior and thus contributes to understanding software evolution.
复杂的软件系统经常发展,例如,在引入新特性或在维护期间修复错误时。然而,理解这些变化对系统行为的影响通常是困难的。因此,已经提出了许多方法来分析更改前后的系统,例如,通过比较源代码、基于模型的表示或系统执行日志。在本文中,我们提出了一种比较运行时约束的方法,该方法由约束挖掘算法合成,基于更改前后记录的执行日志。具体来说,自动挖掘的约束定义了重复事件的预期时间和顺序,以及附加到事件的数据元素的值。我们的方法向用户展示了挖掘约束的差异,从而提供了软件进化的更高层次的视图,并支持对系统行为变化影响的分析。本文给出了一个具有启发性的实例,并对基于信息物理系统的无人机控制系统进行了初步评估。我们初步评估的结果表明,我们的方法可以帮助分析变化的行为,从而有助于理解软件进化。
{"title":"Comparing Constraints Mined From Execution Logs to Understand Software Evolution","authors":"Thomas Krismayer, Michael Vierhauser, Rick Rabiser, P. Grünbacher","doi":"10.1109/ICSME.2019.00082","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00082","url":null,"abstract":"Complex software systems evolve frequently, e.g., when introducing new features or fixing bugs during maintenance. However, understanding the impact of such changes on system behavior is often difficult. Many approaches have thus been proposed that analyze systems before and after changes, e.g., by comparing source code, model-based representations, or system execution logs. In this paper, we propose an approach for comparing run-time constraints, synthesized by a constraint mining algorithm, based on execution logs recorded before and after changes. Specifically, automatically mined constraints define the expected timing and order of recurring events and the values of data elements attached to events. Our approach presents the differences of the mined constraints to users, thereby providing a higher-level view on software evolution and supporting the analysis of the impact of changes on system behavior. We present a motivating example and a preliminary evaluation based on a cyber-physical system controlling unmanned aerial vehicles. The results of our preliminary evaluation show that our approach can help to analyze changed behavior and thus contributes to understanding software evolution.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129024669","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
Performance-Influence Model for Highly Configurable Software with Fourier Learning and Lasso Regression 基于傅里叶学习和Lasso回归的高度可配置软件性能影响模型
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00080
Huong Ha, Hongyu Zhang
Many software systems are highly configurable, which provide a large number of configuration options for users to choose from. During the maintenance and operation of these configurable systems, it is important to estimate the system performance under any specific configurations and understand the performance-influencing configuration options. However, it is often not feasible to measure the system performance under all the possible configurations as the combination of configurations could be exponential. In this paper, we propose PerLasso, a performance modeling and prediction method based on Fourier Learning and Lasso (Least absolute shrinkage and selection operator) regression techniques. Using a small sample of measured performance values of a configurable system, PerLasso produces a performance-influence model, which can 1) predict system performance under a new configuration; 2) explain the influence of the individual features and their interactions on the software performance. Besides, to reduce the number of Fourier coefficients to be estimated for large-scale systems, we also design a novel dimension reduction algorithm. Our experimental results on four synthetic and six real-world datasets confirm the effectiveness of our approach. Compared to the existing performance-influence models, our models have higher or comparable prediction accuracy.
许多软件系统是高度可配置的,它提供了大量的配置选项供用户选择。在这些可配置系统的维护和操作过程中,评估任何特定配置下的系统性能并了解影响性能的配置选项非常重要。然而,在所有可能的配置下测量系统性能通常是不可行的,因为配置的组合可能是指数的。在本文中,我们提出了PerLasso,一种基于傅里叶学习和Lasso(最小绝对收缩和选择算子)回归技术的性能建模和预测方法。PerLasso利用一个可配置系统的性能测量值的小样本,建立了一个性能影响模型,该模型可以1)预测新配置下的系统性能;2)解释个体特征及其相互作用对软件性能的影响。此外,为了减少大规模系统需要估计的傅里叶系数的数量,我们还设计了一种新的降维算法。我们在4个合成数据集和6个真实数据集上的实验结果证实了我们方法的有效性。与现有的性能影响模型相比,我们的模型具有更高或相当的预测精度。
{"title":"Performance-Influence Model for Highly Configurable Software with Fourier Learning and Lasso Regression","authors":"Huong Ha, Hongyu Zhang","doi":"10.1109/ICSME.2019.00080","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00080","url":null,"abstract":"Many software systems are highly configurable, which provide a large number of configuration options for users to choose from. During the maintenance and operation of these configurable systems, it is important to estimate the system performance under any specific configurations and understand the performance-influencing configuration options. However, it is often not feasible to measure the system performance under all the possible configurations as the combination of configurations could be exponential. In this paper, we propose PerLasso, a performance modeling and prediction method based on Fourier Learning and Lasso (Least absolute shrinkage and selection operator) regression techniques. Using a small sample of measured performance values of a configurable system, PerLasso produces a performance-influence model, which can 1) predict system performance under a new configuration; 2) explain the influence of the individual features and their interactions on the software performance. Besides, to reduce the number of Fourier coefficients to be estimated for large-scale systems, we also design a novel dimension reduction algorithm. Our experimental results on four synthetic and six real-world datasets confirm the effectiveness of our approach. Compared to the existing performance-influence models, our models have higher or comparable prediction accuracy.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134527342","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
Identifying the Within-Statement Changes to Facilitate Change Understanding 识别报表内的变化,以促进变化的理解
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00030
Chunhua Yang, E. J. Whitehead
As current tree-differencing approaches ignore changes that occur within a statement or do not present them in an abstract way, it is difficult to automatically understand revisions involving statement updates. We propose a tree-differencing approach to identifying the within-statement changes. It calculates edit operations based on an element-sensitive strategy and the longest common sequence algorithm. Then, it generates the metadata for each edit operation. Meta-data include the type of operation, the type of entity and the name of the element part, the content, the content pattern and all references involved. We have implemented the approach as a free accessible tool. It is built upon ChangeDistiller and refines its statement-update type. Finally, to demonstrate how to use the proposed approach for change understanding, we studied the condition-expression changes in four open projects. We analyzed the non-essential condition changes, the effective changes that definitely affect the condition, and other changes. The results show that for revisions with condition-expression changes, nearly 20% contain non-essential changes, while more than 60% have effective changes. Furthermore, we found many common patterns. For example, we found that half of the revisions with effective changes were caused by adding or removing expressions in logical expressions. And, in these revisions, 47% enhanced the condition, while 49% weakened it.
由于当前的树差分方法忽略语句中发生的更改,或者不以抽象的方式表示它们,因此很难自动理解涉及语句更新的修订。我们提出了一种树区分方法来识别报表内的变化。它基于元素敏感策略和最长公共序列算法计算编辑操作。然后,它为每个编辑操作生成元数据。元数据包括操作类型、实体类型和元素部分的名称、内容、内容模式和所有涉及的引用。我们已经将该方法实现为一个免费的可访问工具。它建立在ChangeDistiller之上,并改进了它的语句更新类型。最后,为了演示如何使用所提出的方法来理解变化,我们研究了四个开放项目中的条件表达变化。我们分析了非必要条件的变化,肯定会影响条件的有效变化,以及其他变化。结果表明,在条件表达变化的修订中,近20%的修订包含非必要的变化,而60%以上的修订包含有效的变化。此外,我们还发现了许多常见的模式。例如,我们发现有一半有效变化的修订是由于在逻辑表达式中添加或删除表达式引起的。而且,在这些修订中,47%的人增强了病情,49%的人减弱了病情。
{"title":"Identifying the Within-Statement Changes to Facilitate Change Understanding","authors":"Chunhua Yang, E. J. Whitehead","doi":"10.1109/ICSME.2019.00030","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00030","url":null,"abstract":"As current tree-differencing approaches ignore changes that occur within a statement or do not present them in an abstract way, it is difficult to automatically understand revisions involving statement updates. We propose a tree-differencing approach to identifying the within-statement changes. It calculates edit operations based on an element-sensitive strategy and the longest common sequence algorithm. Then, it generates the metadata for each edit operation. Meta-data include the type of operation, the type of entity and the name of the element part, the content, the content pattern and all references involved. We have implemented the approach as a free accessible tool. It is built upon ChangeDistiller and refines its statement-update type. Finally, to demonstrate how to use the proposed approach for change understanding, we studied the condition-expression changes in four open projects. We analyzed the non-essential condition changes, the effective changes that definitely affect the condition, and other changes. The results show that for revisions with condition-expression changes, nearly 20% contain non-essential changes, while more than 60% have effective changes. Furthermore, we found many common patterns. For example, we found that half of the revisions with effective changes were caused by adding or removing expressions in logical expressions. And, in these revisions, 47% enhanced the condition, while 49% weakened it.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133708164","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
Improving Bug Triaging with High Confidence Predictions at Ericsson 改进Bug分类与爱立信的高可信度预测
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00018
Aindrila Sarkar, Peter C. Rigby, Béla Bartalos
Correctly assigning bugs to the right developer or team, i.e. bug triaging, is a costly activity. A concerted effort at Ericsson has been done to adopt automated bug triaging to reduce development costs. In this work, we replicate the research approaches that have been widely used in the literature. We apply them on over 10k bug reports for 9 large products at Ericsson. We find that a logistic regression classifier including the simple textual and categorical attributes of the bug reports has the highest precision and recall of 78.09% and 79.00%, respectively. Ericsson's bug reports often contain logs that have crash dumps and alarms. We add this information to the bug triage models. We find that this information does not improve the precision and recall of bug triaging in Ericsson's context. Although our models perform as well as the best ones reported in the literature, a criticism of bug triaging at Ericsson is that the accuracy is not sufficient for regular use. We develop a novel approach where we only triage bugs when the model has high confidence in the triage prediction. We find that we improve the accuracy to 90%, but we can make predictions for 62% of the bug reports.
将错误正确地分配给正确的开发人员或团队,即错误分类,是一项代价高昂的活动。在爱立信,人们齐心协力采用自动化的bug分类来降低开发成本。在这项工作中,我们复制了文献中广泛使用的研究方法。我们将它们应用于爱立信9个大型产品的1万多个bug报告中。我们发现包含bug报告的简单文本属性和分类属性的逻辑回归分类器具有最高的准确率和召回率,分别为78.09%和79.00%。爱立信的bug报告通常包含有崩溃转储和警报的日志。我们将这些信息添加到bug分类模型中。我们发现,这些信息并没有提高爱立信环境中错误分类的准确性和召回率。尽管我们的模型表现得和文献中报道的最好的模型一样好,但是对爱立信bug分类的批评是,其准确性不足以满足常规使用。我们开发了一种新的方法,当模型对分类预测有很高的信心时,我们只对错误进行分类。我们发现我们将准确率提高到了90%,但是我们可以对62%的bug报告进行预测。
{"title":"Improving Bug Triaging with High Confidence Predictions at Ericsson","authors":"Aindrila Sarkar, Peter C. Rigby, Béla Bartalos","doi":"10.1109/ICSME.2019.00018","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00018","url":null,"abstract":"Correctly assigning bugs to the right developer or team, i.e. bug triaging, is a costly activity. A concerted effort at Ericsson has been done to adopt automated bug triaging to reduce development costs. In this work, we replicate the research approaches that have been widely used in the literature. We apply them on over 10k bug reports for 9 large products at Ericsson. We find that a logistic regression classifier including the simple textual and categorical attributes of the bug reports has the highest precision and recall of 78.09% and 79.00%, respectively. Ericsson's bug reports often contain logs that have crash dumps and alarms. We add this information to the bug triage models. We find that this information does not improve the precision and recall of bug triaging in Ericsson's context. Although our models perform as well as the best ones reported in the literature, a criticism of bug triaging at Ericsson is that the accuracy is not sufficient for regular use. We develop a novel approach where we only triage bugs when the model has high confidence in the triage prediction. We find that we improve the accuracy to 90%, but we can make predictions for 62% of the bug reports.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131111159","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
An Empirical Study of UI Implementations in Android Applications Android应用中UI实现的实证研究
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00016
Mian Wan, Negarsadat Abolhassani, Ali S. Alotaibi, William G. J. Halfond
Mobile app developers are able to design sophisticated user interfaces (UIs) that can improve a user's experience and contribute to an app's success. Developers invest in automated UI testing techniques, such as crawlers, to ensure that their app's UIs have a high level of quality. However, UI implementation mechanisms have changed significantly due to the availability of new APIs and mechanisms, such as fragments. In this paper, we study a large set of real-world apps to identify whether the mechanisms developers use to implement app UIs cause problems for those automated techniques. In addition, we examined the changes in these practices over time. Our results indicate that dynamic analyses face challenges in terms of completeness and changing development practices motivate the use of additional analyses, such as static analyses. We also discuss the implications of our results for current testing techniques and the design of new analyses.
手机应用开发者能够设计出复杂的用户界面(ui),从而改善用户体验并促进应用的成功。开发者投资于自动UI测试技术,如爬虫,以确保其应用的UI具有高质量。然而,由于新的api和机制(如fragments)的可用性,UI实现机制发生了重大变化。在本文中,我们研究了大量现实世界的应用程序,以确定开发人员用于实现应用程序ui的机制是否会给这些自动化技术带来问题。此外,我们还检查了这些实践随时间的变化。我们的结果表明,动态分析面临着完整性方面的挑战,并且不断变化的开发实践激发了额外分析的使用,例如静态分析。我们还讨论了我们的结果对当前测试技术和新分析设计的影响。
{"title":"An Empirical Study of UI Implementations in Android Applications","authors":"Mian Wan, Negarsadat Abolhassani, Ali S. Alotaibi, William G. J. Halfond","doi":"10.1109/ICSME.2019.00016","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00016","url":null,"abstract":"Mobile app developers are able to design sophisticated user interfaces (UIs) that can improve a user's experience and contribute to an app's success. Developers invest in automated UI testing techniques, such as crawlers, to ensure that their app's UIs have a high level of quality. However, UI implementation mechanisms have changed significantly due to the availability of new APIs and mechanisms, such as fragments. In this paper, we study a large set of real-world apps to identify whether the mechanisms developers use to implement app UIs cause problems for those automated techniques. In addition, we examined the changes in these practices over time. Our results indicate that dynamic analyses face challenges in terms of completeness and changing development practices motivate the use of additional analyses, such as static analyses. We also discuss the implications of our results for current testing techniques and the design of new analyses.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122653626","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}
引用次数: 3
The Relationship Between Cognitive Complexity and the Probability of Defects 认知复杂性与缺陷概率的关系
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00095
Basma S. Alqadi
Researchers have identified several quality metrics to predict defects, relying on different information however, these approaches lack metrics to estimate the effort of program understandability of system artifacts. In this research, novel metrics to compute the cognitive complexity of a slice are introduced. These metrics help identify code that is more likely to have defects due to being challenging to comprehension. The metrics include such measures as the total number of slices in a file, the size, the average number of identifiers, and the average spatial distance of a slice. Empirical investigation into how cognitive complexity correlates with defects in the version histories of 3 open-source systems is performed. The results show that the increase of cognitive complexity significantly increases the number of defects in 93% of the cases.
研究人员已经确定了一些质量度量来预测缺陷,依赖于不同的信息,然而,这些方法缺乏度量来估计系统工件的程序可理解性的努力。在这项研究中,引入了新的度量来计算一个切片的认知复杂性。这些指标有助于识别由于难以理解而更有可能存在缺陷的代码。这些度量包括文件中的片总数、大小、标识符的平均数量和片的平均空间距离等度量。对3个开源系统的版本历史中认知复杂性与缺陷之间的关系进行了实证调查。结果表明,认知复杂性的增加显著增加了93%的案例中的缺陷数量。
{"title":"The Relationship Between Cognitive Complexity and the Probability of Defects","authors":"Basma S. Alqadi","doi":"10.1109/ICSME.2019.00095","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00095","url":null,"abstract":"Researchers have identified several quality metrics to predict defects, relying on different information however, these approaches lack metrics to estimate the effort of program understandability of system artifacts. In this research, novel metrics to compute the cognitive complexity of a slice are introduced. These metrics help identify code that is more likely to have defects due to being challenging to comprehension. The metrics include such measures as the total number of slices in a file, the size, the average number of identifiers, and the average spatial distance of a slice. Empirical investigation into how cognitive complexity correlates with defects in the version histories of 3 open-source systems is performed. The results show that the increase of cognitive complexity significantly increases the number of defects in 93% of the cases.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124878404","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Impact Analysis of Syntactic and Semantic Similarities on Patch Prioritization in Automated Program Repair 自动程序修复中语法和语义相似性对补丁优先级的影响分析
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00050
Moumita Asad, Kishan Kumar Ganguly, K. Sakib
Patch prioritization means sorting candidate patches based on probability of correctness. It helps to minimize the bug fixing time and maximize the precision of an automated program repairing technique. Approaches in the literature use either syntactic or semantic similarity between faulty code and fixing element to prioritize patches. Unlike others, this paper aims at analyzing the impact of combining syntactic and semantic similarities on patch prioritization. As a pilot study, it uses genealogical and variable similarity to measure semantic similarity, and normalized longest common subsequence to capture syntactic similarity. For evaluating the approach, 22 replacement mutation bugs from IntroClassJava benchmark were used. The approach repairs all the 22 bugs and achieves a precision of 100%.
补丁优先级是指根据正确概率对候选补丁进行排序。它有助于最大限度地减少错误修复时间和最大限度地提高自动化程序修复技术的精度。文献中的方法使用错误代码和修复元素之间的语法或语义相似性来确定补丁的优先级。与其他研究不同的是,本文旨在分析语法和语义相似度结合对补丁优先级的影响。作为一项初步研究,该方法使用系谱和变量相似性来度量语义相似性,并使用规范化最长公共子序列来捕获句法相似性。为了评估该方法,使用了来自IntroClassJava基准的22个替换突变错误。该方法修复了所有22个错误,并达到了100%的精度。
{"title":"Impact Analysis of Syntactic and Semantic Similarities on Patch Prioritization in Automated Program Repair","authors":"Moumita Asad, Kishan Kumar Ganguly, K. Sakib","doi":"10.1109/ICSME.2019.00050","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00050","url":null,"abstract":"Patch prioritization means sorting candidate patches based on probability of correctness. It helps to minimize the bug fixing time and maximize the precision of an automated program repairing technique. Approaches in the literature use either syntactic or semantic similarity between faulty code and fixing element to prioritize patches. Unlike others, this paper aims at analyzing the impact of combining syntactic and semantic similarities on patch prioritization. As a pilot study, it uses genealogical and variable similarity to measure semantic similarity, and normalized longest common subsequence to capture syntactic similarity. For evaluating the approach, 22 replacement mutation bugs from IntroClassJava benchmark were used. The approach repairs all the 22 bugs and achieves a precision of 100%.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116455683","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
Investigating Context Adaptation Bugs in Code Clones 调查代码克隆中的上下文适应错误
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00026
Manishankar Mondal, B. Roy, C. Roy, Kevin A. Schneider
The identical or nearly similar code fragments in a code-base are called code clones. There is a common belief that code cloning (copy/pasting code fragments) can introduce bugs in a software system if the copied code fragments are not properly adapted to their contexts (i.e., surrounding code). However, none of the existing studies have investigated whether such bugs are really present in code clones. We denote these bugs as Context Adaptation Bugs, or simply Context-Bugs, in our paper and investigate the extent to which they can be present in code clones. We define and automatically analyze two clone evolutionary patterns that indicate fixing of Context-Bugs. According to our analysis on thousands of revisions of six open-source subject systems written in Java, C, and C#, code cloning often introduces Context-Bugs in software systems. Around 50% of the clone related bug-fixes can occur for fixing Context-Bugs. Cloning (copy/pasting) a newly created code fragment (i.e., a code fragment that was not added in a former revision) is more likely to introduce Context-Bugs compared to cloning a preexisting fragment (i.e., a code fragment that was added in a former revision). Moreover, cloning across different files appears to have a significantly higher tendency of introducing Context-Bugs compared to cloning within the same file. Finally, Type 3 clones (gapped clones) have the highest tendency of containing Context-Bugs among the three major clone-types. Our findings can be important for early detection as well as removal of Context-Bugs in code clones.
代码库中相同或几乎相似的代码片段称为代码克隆。人们普遍认为,如果复制的代码片段不能适当地适应其上下文(即周围的代码),代码克隆(复制/粘贴代码片段)可能会在软件系统中引入bug。然而,现有的研究都没有调查这些错误是否真的存在于代码克隆中。在我们的论文中,我们将这些错误称为上下文适应性错误,或者简单地称为上下文错误,并调查它们在代码克隆中存在的程度。我们定义并自动分析两个克隆进化模式,表明修复上下文错误。根据我们对用Java、C和c#编写的六个开源主题系统的数千个修订版的分析,代码克隆通常会在软件系统中引入上下文错误。大约50%的与克隆相关的bug修复可以用于修复上下文bug。克隆(复制/粘贴)新创建的代码片段(即,未添加到以前版本中的代码片段)比克隆先前存在的代码片段(即,添加到以前版本中的代码片段)更有可能引入上下文bug。此外,与在同一文件内克隆相比,跨不同文件克隆似乎更容易引入上下文错误。最后,类型3克隆(缺口克隆)在3种主要克隆类型中包含上下文错误的倾向最高。我们的发现对于早期发现和移除代码克隆中的上下文bug非常重要。
{"title":"Investigating Context Adaptation Bugs in Code Clones","authors":"Manishankar Mondal, B. Roy, C. Roy, Kevin A. Schneider","doi":"10.1109/ICSME.2019.00026","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00026","url":null,"abstract":"The identical or nearly similar code fragments in a code-base are called code clones. There is a common belief that code cloning (copy/pasting code fragments) can introduce bugs in a software system if the copied code fragments are not properly adapted to their contexts (i.e., surrounding code). However, none of the existing studies have investigated whether such bugs are really present in code clones. We denote these bugs as Context Adaptation Bugs, or simply Context-Bugs, in our paper and investigate the extent to which they can be present in code clones. We define and automatically analyze two clone evolutionary patterns that indicate fixing of Context-Bugs. According to our analysis on thousands of revisions of six open-source subject systems written in Java, C, and C#, code cloning often introduces Context-Bugs in software systems. Around 50% of the clone related bug-fixes can occur for fixing Context-Bugs. Cloning (copy/pasting) a newly created code fragment (i.e., a code fragment that was not added in a former revision) is more likely to introduce Context-Bugs compared to cloning a preexisting fragment (i.e., a code fragment that was added in a former revision). Moreover, cloning across different files appears to have a significantly higher tendency of introducing Context-Bugs compared to cloning within the same file. Finally, Type 3 clones (gapped clones) have the highest tendency of containing Context-Bugs among the three major clone-types. Our findings can be important for early detection as well as removal of Context-Bugs in code clones.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121114855","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
Improving the Robustness and Efficiency of Continuous Integration and Deployment 提高持续集成和部署的健壮性和效率
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00099
Keheliya Gallaba
Modern software is developed at a rapid pace. To sustain that rapid pace, organizations rely heavily on automated build, test, and release steps. To that end, Continuous Integration and Continuous Deployment (CI/CD) services take the incremental codebase changes that are produced by developers, compile them, link, and package them into software deliverables, verify their functionality, and deliver them to end users. While CI/CD processes provide mission-critical features, if they are misconfigured or poorly operated, the pace of development may be slowed or even halted. To prevent such issues, in this thesis, we set out to study and improve the robustness and efficiency of CI/CD. The thesis will include (1) conceptual contributions in the form of empirical studies of large samples of adopters of CI/CD tools to discover best practices and common limitations, as well as (2) technical contributions in the form of tools that support stakeholders to avoid common limitations (e.g., data misinterpretation issues, CI configuration mistakes).
现代软件的发展速度很快。为了维持快速的步伐,组织严重依赖于自动化的构建、测试和发布步骤。为此,持续集成和持续部署(CI/CD)服务接受由开发人员生成的增量代码库更改,编译它们,链接它们,并将它们打包成软件交付物,验证它们的功能,并将它们交付给最终用户。虽然CI/CD过程提供了关键任务特性,但如果它们配置错误或操作不当,开发的速度可能会减慢甚至停止。为了防止此类问题的发生,在本文中,我们着手研究和提高CI/CD的鲁棒性和效率。本文将包括(1)对CI/CD工具采用者的大量样本进行实证研究的概念贡献,以发现最佳实践和常见限制,以及(2)以支持利益相关者避免常见限制(例如,数据误解问题,CI配置错误)的工具形式的技术贡献。
{"title":"Improving the Robustness and Efficiency of Continuous Integration and Deployment","authors":"Keheliya Gallaba","doi":"10.1109/ICSME.2019.00099","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00099","url":null,"abstract":"Modern software is developed at a rapid pace. To sustain that rapid pace, organizations rely heavily on automated build, test, and release steps. To that end, Continuous Integration and Continuous Deployment (CI/CD) services take the incremental codebase changes that are produced by developers, compile them, link, and package them into software deliverables, verify their functionality, and deliver them to end users. While CI/CD processes provide mission-critical features, if they are misconfigured or poorly operated, the pace of development may be slowed or even halted. To prevent such issues, in this thesis, we set out to study and improve the robustness and efficiency of CI/CD. The thesis will include (1) conceptual contributions in the form of empirical studies of large samples of adopters of CI/CD tools to discover best practices and common limitations, as well as (2) technical contributions in the form of tools that support stakeholders to avoid common limitations (e.g., data misinterpretation issues, CI configuration mistakes).","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126569857","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
Lib Metamorphosis: A Performance Analysis Framework for Exchanging Data Structures in Performance Sensitive Applications Lib Metamorphosis:在性能敏感应用程序中交换数据结构的性能分析框架
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00063
Michael D. Shah
When software does not meet performance requirements, difficult decisions are made to change central data structures which may be costly financially and increase development time. In addition, monitoring how these data structures are used, and trying to understand performance implications of any change may prevent any evolution of the original infrastructure. Thus, radical revisions to software may be avoided due to the barriers of time and engineering complexity costs. Our solution to helping developers make infrastructure changes to improve performance is to provide a refactoring tool where developers may swap data structures. Our tool preserves correctness by utilizing the software's test suite and also measures performance automatically of the swapped data structure. We believe there is need for such a tool to help encourage more radical revisions and experimentation in large software projects to improve performance. Our frameworks success will be evaluated based on preserving the correctness of the software within a developer created test suite while providing performance information based on modified data structures.
当软件不能满足性能要求时,更改中心数据结构的决定就会变得困难,这可能会带来高昂的财务成本,并增加开发时间。此外,监视这些数据结构的使用方式,并试图了解任何更改的性能影响,可能会阻止原始基础设施的任何发展。因此,由于时间和工程复杂性成本的障碍,可以避免对软件进行彻底的修改。我们帮助开发人员更改基础设施以提高性能的解决方案是提供一个重构工具,开发人员可以在其中交换数据结构。我们的工具通过使用软件的测试套件来保持正确性,并且还自动测量交换数据结构的性能。我们相信需要这样的工具来帮助鼓励在大型软件项目中进行更激进的修订和实验,以提高性能。我们的框架的成功将基于在开发人员创建的测试套件中保留软件的正确性来评估,同时提供基于修改数据结构的性能信息。
{"title":"Lib Metamorphosis: A Performance Analysis Framework for Exchanging Data Structures in Performance Sensitive Applications","authors":"Michael D. Shah","doi":"10.1109/ICSME.2019.00063","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00063","url":null,"abstract":"When software does not meet performance requirements, difficult decisions are made to change central data structures which may be costly financially and increase development time. In addition, monitoring how these data structures are used, and trying to understand performance implications of any change may prevent any evolution of the original infrastructure. Thus, radical revisions to software may be avoided due to the barriers of time and engineering complexity costs. Our solution to helping developers make infrastructure changes to improve performance is to provide a refactoring tool where developers may swap data structures. Our tool preserves correctness by utilizing the software's test suite and also measures performance automatically of the swapped data structure. We believe there is need for such a tool to help encourage more radical revisions and experimentation in large software projects to improve performance. Our frameworks success will be evaluated based on preserving the correctness of the software within a developer created test suite while providing performance information based on modified data structures.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127223374","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
期刊
2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)
全部 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