首页 > 最新文献

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

英文 中文
Cross-Modal Contrastive Learning for Code Search 代码搜索的跨模态对比学习
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00017
Zejian Shi, Yun Xiong, Xiaolong Zhang, Yao Zhang, Shanshan Li, Yangyong Zhu
Code search aims to retrieve code snippets from natural language queries, which serves as a core technology to improve development efficiency. Previous approaches have achieved promising results to learn code and query representations by using BERT-based pre-trained models which, however, leads to semantic collapse problems, i.e. native representations of code and query clustering in a high similarity interval. In this paper, we propose CrossCS, a cross-modal contrastive learning method for code search, to improve the representations of code and query by explicit fine-grained contrastive objectives. Specifically, we design a novel and effective contrastive objective that considers not only the similarity between modalities, but also the similarity within modalities. To maintain semantic consistency of code snippets with different names of functions and variables, we use data augmentation to rename functions and variables to meaningless tokens, which enables us to add comparisons between code and augmented code within modalities. Moreover, in order to further improve the effectiveness of pre-trained models, we rank candidate code snippets using similarity scores weighted by retrieval scores and classification scores. Comprehensive experiments demonstrate that our method can significantly improve the effectiveness of pre-trained models for code search.
代码搜索旨在从自然语言查询中检索代码片段,是提高开发效率的核心技术。以前的方法通过使用基于bert的预训练模型在学习代码和查询表示方面取得了很好的结果,然而,这导致了语义崩溃问题,即代码的本地表示和查询在高相似区间内聚类。本文提出了一种用于代码搜索的跨模态对比学习方法CrossCS,通过明确的细粒度对比目标来改进代码和查询的表示。具体来说,我们设计了一个新颖而有效的对比目标,不仅考虑了模式之间的相似性,而且考虑了模式内部的相似性。为了保持具有不同函数和变量名称的代码片段的语义一致性,我们使用数据增强将函数和变量重命名为无意义的标记,这使我们能够在模态中添加代码和增强代码之间的比较。此外,为了进一步提高预训练模型的有效性,我们使用检索分数和分类分数加权的相似性分数对候选代码片段进行排名。综合实验表明,该方法可以显著提高预训练模型的代码搜索效率。
{"title":"Cross-Modal Contrastive Learning for Code Search","authors":"Zejian Shi, Yun Xiong, Xiaolong Zhang, Yao Zhang, Shanshan Li, Yangyong Zhu","doi":"10.1109/ICSME55016.2022.00017","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00017","url":null,"abstract":"Code search aims to retrieve code snippets from natural language queries, which serves as a core technology to improve development efficiency. Previous approaches have achieved promising results to learn code and query representations by using BERT-based pre-trained models which, however, leads to semantic collapse problems, i.e. native representations of code and query clustering in a high similarity interval. In this paper, we propose CrossCS, a cross-modal contrastive learning method for code search, to improve the representations of code and query by explicit fine-grained contrastive objectives. Specifically, we design a novel and effective contrastive objective that considers not only the similarity between modalities, but also the similarity within modalities. To maintain semantic consistency of code snippets with different names of functions and variables, we use data augmentation to rename functions and variables to meaningless tokens, which enables us to add comparisons between code and augmented code within modalities. Moreover, in order to further improve the effectiveness of pre-trained models, we rank candidate code snippets using similarity scores weighted by retrieval scores and classification scores. Comprehensive experiments demonstrate that our method can significantly improve the effectiveness of pre-trained models for code search.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"129 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123277414","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
Mining Annotation Usage Rules: A Case Study with MicroProfile 挖掘注释使用规则:以MicroProfile为例
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00075
Batyr Nuryyev, Ajay Kumar Jha, Sarah Nadi, Yee-Kang Chang, Emily Jiang, V. Sundaresan
While Application Programming Interfaces (APIs) allow easier reuse of existing functionality, developers might make mistakes in using these APIs (a.k.a. API misuses). If an API usage specification exists, then automatically detecting such misuses becomes feasible. Since manually encoding specifications is a tedious process, there has been a lot of research regarding pattern-based specification mining. However, while annotations are widely used in Java enterprise microservices frameworks, most of these pattern-based rule discovery techniques have not considered annotation-based API usage rules. In this industrial case study of MicroProfile, an open-source Java microservices framework developed by IBM and others, we investigate whether the idea of pattern-based discovery of rules can be applied to annotation-based API usages. We find that our pattern-based approach mines 23 candidate rules, among which 4 are fully valid specifications and 8 are partially valid specifications. Overall, our technique mines 12 valid rules, 10 of which are not even documented in the official MicroProfile documentation. To evaluate the usefulness of the mined rules, we scan MicroProfile client projects for violations. We find 100 violations of 5 rules in 16 projects. Our results suggest that the mined rules can be useful in detecting and preventing annotation-based API misuses.
虽然应用程序编程接口(API)允许更容易地重用现有功能,但开发人员在使用这些API时可能会犯错误(也称为API误用)。如果存在API使用规范,那么自动检测此类滥用就变得可行。由于手工编码规范是一个繁琐的过程,因此有很多关于基于模式的规范挖掘的研究。然而,尽管注释在Java企业微服务框架中被广泛使用,但大多数基于模式的规则发现技术都没有考虑基于注释的API使用规则。在这个由IBM和其他公司开发的开源Java微服务框架MicroProfile的工业案例研究中,我们研究了基于模式的规则发现的思想是否可以应用于基于注释的API使用。我们发现基于模式的方法挖掘了23个候选规则,其中4个是完全有效规范,8个是部分有效规范。总的来说,我们的技术挖掘了12条有效规则,其中10条甚至没有记录在官方MicroProfile文档中。为了评估挖掘规则的有用性,我们扫描MicroProfile客户端项目中的违规行为。我们在16个项目中发现了100个违反5项规定的情况。我们的研究结果表明,挖掘的规则可以用于检测和防止基于注释的API滥用。
{"title":"Mining Annotation Usage Rules: A Case Study with MicroProfile","authors":"Batyr Nuryyev, Ajay Kumar Jha, Sarah Nadi, Yee-Kang Chang, Emily Jiang, V. Sundaresan","doi":"10.1109/ICSME55016.2022.00075","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00075","url":null,"abstract":"While Application Programming Interfaces (APIs) allow easier reuse of existing functionality, developers might make mistakes in using these APIs (a.k.a. API misuses). If an API usage specification exists, then automatically detecting such misuses becomes feasible. Since manually encoding specifications is a tedious process, there has been a lot of research regarding pattern-based specification mining. However, while annotations are widely used in Java enterprise microservices frameworks, most of these pattern-based rule discovery techniques have not considered annotation-based API usage rules. In this industrial case study of MicroProfile, an open-source Java microservices framework developed by IBM and others, we investigate whether the idea of pattern-based discovery of rules can be applied to annotation-based API usages. We find that our pattern-based approach mines 23 candidate rules, among which 4 are fully valid specifications and 8 are partially valid specifications. Overall, our technique mines 12 valid rules, 10 of which are not even documented in the official MicroProfile documentation. To evaluate the usefulness of the mined rules, we scan MicroProfile client projects for violations. We find 100 violations of 5 rules in 16 projects. Our results suggest that the mined rules can be useful in detecting and preventing annotation-based API misuses.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115816987","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}
引用次数: 1
Exploring the Notion of Risk in Code Reviewer Recommendation 探索代码评审建议中的风险概念
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00021
Farshad Kazemi, Maxime Lamothe, Shane McIntosh
Reviewing code changes allows stakeholders to improve the premise, content, and structure of changes prior to or after integration. However, assigning reviewing tasks to team members is challenging, particularly in large projects. Code reviewer recommendation has been proposed to assist with this challenge. Traditionally, the performance of reviewer recommenders has been derived based on historical data, where better solutions are those that recommend exactly which reviewers actually performed tasks in the past. More recent work expands the goals of recommenders to include mitigating turnover-based knowledge loss and avoiding overburdening the core development team. In this paper, we set out to explore how reviewer recommendation can incorporate the risk of defect proneness. To this end, we propose the Changeset Safety Ratio (CSR) – an evaluation measurement designed to capture the risk of defect proneness. Through an empirical study of three open source projects, we observe that: (1) existing approaches tend to improve one or two quantities of interest, such as core developers workload while degrading others (especially the CSR); (2) Risk Aware Recommender (RAR) – our proposed enhancement to multi-objective reviewer recommendation – achieves a 12.48% increase in expertise of review assignees and a 80% increase in CSR with respect to historical assignees, all while reducing the files at risk of knowledge loss by 19.39% and imposing a negligible 0.93% increase in workload for the core team; and (3) our dynamic method outperforms static and normalization-based tuning methods in adapting RAR to suit risk-averse and balanced risk usage scenarios to a significant degree (Conover's test, α < 0.05; small to large Kendall's W).
审查代码变更允许涉众在集成之前或之后改进变更的前提、内容和结构。然而,将评审任务分配给团队成员是具有挑战性的,特别是在大型项目中。已经提出了代码审查者的建议来帮助解决这个挑战。传统上,审稿人推荐器的性能是基于历史数据得出的,其中更好的解决方案是准确地推荐过去哪些审稿人实际执行了任务。最近的工作扩展了推荐器的目标,包括减少基于人员流动的知识损失和避免核心开发团队负担过重。在本文中,我们开始探索审稿人的推荐如何能够结合缺陷倾向的风险。为此,我们提出了变更集安全比率(CSR)——一种旨在捕获缺陷倾向风险的评估度量。通过对三个开源项目的实证研究,我们观察到:(1)现有方法倾向于改善一两个利益量,例如核心开发人员的工作量,同时降低其他利益量(特别是企业社会责任);(2)风险意识推荐(RAR)——我们提出的对多目标审稿人推荐的改进——与历史审稿人相比,审稿人的专业知识提高了12.48%,企业社会责任提高了80%,同时将面临知识丢失风险的文件降低了19.39%,核心团队的工作量增加了0.93%,这可以忽略不计;(3)在调整RAR以适应风险规避和平衡风险使用场景方面,我们的动态方法显著优于静态和基于归一化的调整方法(Conover检验,α < 0.05;从小到大Kendall的W)。
{"title":"Exploring the Notion of Risk in Code Reviewer Recommendation","authors":"Farshad Kazemi, Maxime Lamothe, Shane McIntosh","doi":"10.1109/ICSME55016.2022.00021","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00021","url":null,"abstract":"Reviewing code changes allows stakeholders to improve the premise, content, and structure of changes prior to or after integration. However, assigning reviewing tasks to team members is challenging, particularly in large projects. Code reviewer recommendation has been proposed to assist with this challenge. Traditionally, the performance of reviewer recommenders has been derived based on historical data, where better solutions are those that recommend exactly which reviewers actually performed tasks in the past. More recent work expands the goals of recommenders to include mitigating turnover-based knowledge loss and avoiding overburdening the core development team. In this paper, we set out to explore how reviewer recommendation can incorporate the risk of defect proneness. To this end, we propose the Changeset Safety Ratio (CSR) – an evaluation measurement designed to capture the risk of defect proneness. Through an empirical study of three open source projects, we observe that: (1) existing approaches tend to improve one or two quantities of interest, such as core developers workload while degrading others (especially the CSR); (2) Risk Aware Recommender (RAR) – our proposed enhancement to multi-objective reviewer recommendation – achieves a 12.48% increase in expertise of review assignees and a 80% increase in CSR with respect to historical assignees, all while reducing the files at risk of knowledge loss by 19.39% and imposing a negligible 0.93% increase in workload for the core team; and (3) our dynamic method outperforms static and normalization-based tuning methods in adapting RAR to suit risk-averse and balanced risk usage scenarios to a significant degree (Conover's test, α < 0.05; small to large Kendall's W).","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127491815","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
Apples, Oranges & Fruits – Understanding Similarity of Software Repositories Through The Lens of Dissimilar Artifacts 苹果、橘子和水果——通过不同工件的镜头理解软件存储库的相似性
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00044
A. Rao, S. Chimalakonda
Open-source repositories have facilitated developers to reuse existing software artifacts to develop and maintain new or similar kinds of software. However, finding similar repositories is a challenging task as the notion of similarity varies depending on multiple contexts, and most of the existing approaches tend to find similar repositories by comparing similar software artifacts. This paper aims to determine "whether dissimilar artifacts can be used as one of the criteria to find similar repositories?" Even though, there could be dissimilarity between two similar artifacts, there could also be similarities between two dissimilar artifacts. We define the notion of similarity by defining two categories of similar repositories. Four text-based artifacts are selected for the experiment, i.e., pull-requests, issues, commits, and readme files. The textual similarity is computed between different artifacts. The results show that similarity does exist in dissimilar artifacts. We observed that 10-20% of dissimilar artifact pairs could be used in searching similar repositories. The preliminary results show promising directions where dissimilar artifacts can also be considered while searching for similar repositories motivating the need for further research.
开源存储库促进了开发人员重用现有的软件构件来开发和维护新的或类似类型的软件。然而,查找相似的存储库是一项具有挑战性的任务,因为相似性的概念取决于多个上下文,并且大多数现有方法倾向于通过比较相似的软件工件来查找相似的存储库。本文旨在确定“是否可以将不同的工件用作查找相似存储库的标准之一?”尽管两个相似的工件之间可能存在不同之处,但两个不同的工件之间也可能存在相似之处。我们通过定义两类相似的存储库来定义相似性的概念。为实验选择了四个基于文本的工件,即拉取请求、问题、提交和自述文件。计算不同工件之间的文本相似度。结果表明,不同工件之间存在相似性。我们观察到10-20%的不同工件对可以用于搜索相似的存储库。初步的结果显示了有希望的方向,在搜索类似的存储库时也可以考虑不同的工件,从而激发进一步研究的需要。
{"title":"Apples, Oranges & Fruits – Understanding Similarity of Software Repositories Through The Lens of Dissimilar Artifacts","authors":"A. Rao, S. Chimalakonda","doi":"10.1109/ICSME55016.2022.00044","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00044","url":null,"abstract":"Open-source repositories have facilitated developers to reuse existing software artifacts to develop and maintain new or similar kinds of software. However, finding similar repositories is a challenging task as the notion of similarity varies depending on multiple contexts, and most of the existing approaches tend to find similar repositories by comparing similar software artifacts. This paper aims to determine \"whether dissimilar artifacts can be used as one of the criteria to find similar repositories?\" Even though, there could be dissimilarity between two similar artifacts, there could also be similarities between two dissimilar artifacts. We define the notion of similarity by defining two categories of similar repositories. Four text-based artifacts are selected for the experiment, i.e., pull-requests, issues, commits, and readme files. The textual similarity is computed between different artifacts. The results show that similarity does exist in dissimilar artifacts. We observed that 10-20% of dissimilar artifact pairs could be used in searching similar repositories. The preliminary results show promising directions where dissimilar artifacts can also be considered while searching for similar repositories motivating the need for further research.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"356 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123108952","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
Synthesising Linear API Usage Examples for API Documentation 为API文档合成线性API使用示例
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00084
Seham Alharbi, D. Kolovos, N. Matragkas
Code examples are essential resources for learning application programming interfaces (APIs). The shortage of such examples can be a major learning obstacle for API users. Writing and maintaining effective API usage examples can also be an effort-intensive and repetitive process for API developers because API users ideally want such examples to be simple, standalone, and linear. To address these challenges, several approaches have been proposed to automatically extract API code examples from various resources and embed them into official API documents; however, little emphasis has been placed on addressing the underlying issue directly and helping API developers write and maintain API usage examples. In this paper, we present a new approach for automatically synthesising linear code examples from less repetitive versions by in-lining reusable utility methods. The proposed approach aims to benefit API developers in terms of productivity and maintainability, as well as API users in terms of API learnability and comprehension. We have implemented the proposed approach in a prototype for the Java programming language, which we also discuss in this paper.
代码示例是学习应用程序编程接口(api)的基本资源。缺乏这样的例子可能是API用户学习的主要障碍。对于API开发人员来说,编写和维护有效的API使用示例也可能是一个耗费大量精力和重复的过程,因为API用户理想地希望这样的示例简单、独立和线性。为了应对这些挑战,已经提出了几种方法来自动从各种资源中提取API代码示例并将其嵌入到官方API文档中;然而,很少强调直接解决底层问题以及帮助API开发人员编写和维护API使用示例。在本文中,我们提出了一种新的方法,通过内联可重用的实用程序方法,从较少重复的版本中自动合成线性代码示例。所提出的方法旨在使API开发人员在生产力和可维护性方面受益,同时使API用户在API的可学习性和理解性方面受益。我们已经在Java编程语言的原型中实现了所提出的方法,我们也在本文中对此进行了讨论。
{"title":"Synthesising Linear API Usage Examples for API Documentation","authors":"Seham Alharbi, D. Kolovos, N. Matragkas","doi":"10.1109/ICSME55016.2022.00084","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00084","url":null,"abstract":"Code examples are essential resources for learning application programming interfaces (APIs). The shortage of such examples can be a major learning obstacle for API users. Writing and maintaining effective API usage examples can also be an effort-intensive and repetitive process for API developers because API users ideally want such examples to be simple, standalone, and linear. To address these challenges, several approaches have been proposed to automatically extract API code examples from various resources and embed them into official API documents; however, little emphasis has been placed on addressing the underlying issue directly and helping API developers write and maintain API usage examples. In this paper, we present a new approach for automatically synthesising linear code examples from less repetitive versions by in-lining reusable utility methods. The proposed approach aims to benefit API developers in terms of productivity and maintainability, as well as API users in terms of API learnability and comprehension. We have implemented the proposed approach in a prototype for the Java programming language, which we also discuss in this paper.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128059675","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
Assessing and Improving the Quality of Docker Artifacts 评估和改进Docker工件的质量
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00081
Giovanni Rosa, Simone Scalabrino, R. Oliveto
Docker is the most diffused containerization technology adopted in the DevOps workflow. Docker allows shipping applications in Docker images, along with their dependencies and execution environment. A Docker image is created using a configuration file called Dockerfile. The literature shows that quality issues, such as violations of best practices (i.e., Dockerfile smells), are diffused among Docker artifacts. Smells can negatively impact the reliability, leading to building failures, poor performance, and security issues. In addition, it is unclear to what extent developers are aware of those quality issues and what quality aspects are correlated with the adoption of a Docker image. As evaluated in the literature, composing high-quality Dockerfiles and Docker images is not a trivial task. In this research, we aim to propose approaches and techniques to assess and improve the quality of Dockerfiles and Docker images. First, starting from the resolution of Dockerfile smells, we aim to improve the internal and then the related external quality aspects that also affect the developers’ preference and the perceived quality when they adopt a Docker image. Next, we want to employ that knowledge in the automated generation of high-quality Dockerfiles and Docker images.
Docker是DevOps工作流中应用最广泛的容器化技术。Docker允许在Docker镜像中传输应用程序,以及它们的依赖关系和执行环境。Docker镜像是使用一个名为Dockerfile的配置文件创建的。文献表明,质量问题,如违反最佳实践(即Dockerfile异味),在Docker工件中扩散。气味会对可靠性产生负面影响,导致构建失败、性能差和安全问题。此外,目前还不清楚开发人员在多大程度上意识到了这些质量问题,以及哪些质量方面与采用Docker映像相关。正如文献所评估的那样,编写高质量的Dockerfiles和Docker映像并不是一项简单的任务。在本研究中,我们旨在提出评估和提高Dockerfiles和Docker映像质量的方法和技术。首先,从解决Dockerfile异味入手,我们的目标是改善内部质量,然后是相关的外部质量方面,这些方面也会影响开发者在采用Docker镜像时的偏好和感知质量。接下来,我们希望将这些知识应用到自动生成高质量的Dockerfiles和Docker映像中。
{"title":"Assessing and Improving the Quality of Docker Artifacts","authors":"Giovanni Rosa, Simone Scalabrino, R. Oliveto","doi":"10.1109/ICSME55016.2022.00081","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00081","url":null,"abstract":"Docker is the most diffused containerization technology adopted in the DevOps workflow. Docker allows shipping applications in Docker images, along with their dependencies and execution environment. A Docker image is created using a configuration file called Dockerfile. The literature shows that quality issues, such as violations of best practices (i.e., Dockerfile smells), are diffused among Docker artifacts. Smells can negatively impact the reliability, leading to building failures, poor performance, and security issues. In addition, it is unclear to what extent developers are aware of those quality issues and what quality aspects are correlated with the adoption of a Docker image. As evaluated in the literature, composing high-quality Dockerfiles and Docker images is not a trivial task. In this research, we aim to propose approaches and techniques to assess and improve the quality of Dockerfiles and Docker images. First, starting from the resolution of Dockerfile smells, we aim to improve the internal and then the related external quality aspects that also affect the developers’ preference and the perceived quality when they adopt a Docker image. Next, we want to employ that knowledge in the automated generation of high-quality Dockerfiles and Docker images.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128095811","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
FFL: Fine-grained Fault Localization for Student Programs via Syntactic and Semantic Reasoning 基于句法和语义推理的学生程序的细粒度错误定位
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00022
Thanh-Dat Nguyen, Thanh Le-Cong, Duc M. Luong, Van-Hai Duong, X. Le, D. Lo, Quyet-Thang Huynh
Fault localization has been used to provide feedback for incorrect student programs since locations of faults can be a valuable hint for students about what caused their programs to crash. Unfortunately, existing fault localization techniques for student programs are limited because they usually consider either the program's syntax or semantics alone. This motivates the new design of fault localization techniques that use both semantic and syntactical information of the program.In this paper, we introduce FFL (Fine grained Fault Localization), a novel technique using syntactic and semantic reasoning for localizing bugs in student programs. The novelty in FFL that allows it to capture both syntactic and semantic of a program is three-fold: (1) A fine-grained graph-based representation of a program that is adaptive for statement-level fault localization; (2) an effective and efficient model to leverage the designed representation for fault-localization task and (3) a node-level training objective that allows deep learning model to learn from fine-grained syntactic patterns. We compare FFL's effectiveness with state-of-the-art fault localization techniques for student programs (NBL, Tarantula, Ochiai and DStar) on two real-world datasets: Prutor and Codeflaws. Experimental results show that FFL successfully localizes bug for 84.6% out of 2136 programs on Prutor and 83.1% out of 780 programs on Codeflaws concerning the top-10 suspicious statements. FFL also remarkably outperforms the best baselines by 197%, 104%, 70%, 22% on Codeflaws dataset and 10%, 17%, 15% and 8% on Prutor dataset, in term of top-1, top-3, top-5, top-10, respectively.
故障定位已经被用于为错误的学生程序提供反馈,因为故障的位置可以为学生提供有价值的提示,让他们了解是什么导致了他们的程序崩溃。不幸的是,现有的学生程序故障定位技术是有限的,因为它们通常只考虑程序的语法或语义。这激发了使用程序的语义和语法信息的故障定位技术的新设计。在本文中,我们介绍了FFL(细粒度故障定位),这是一种使用语法和语义推理来定位学生程序中的错误的新技术。FFL的新颖之处在于,它允许它捕获程序的语法和语义,这有三个方面:(1)程序的细粒度基于图的表示,可适应语句级错误定位;(2)利用所设计的表示进行故障定位任务的有效模型;(3)允许深度学习模型从细粒度语法模式中学习的节点级训练目标。我们将FFL的有效性与最先进的学生项目(NBL, Tarantula, Ochiai和DStar)的故障定位技术在两个现实世界的数据集(Prutor和Codeflaws)上进行了比较。实验结果表明,FFL在Prutor上的2136个程序中成功定位了84.6%的错误,在Codeflaws上的780个程序中成功定位了83.1%的前10个可疑语句。在top-1, top-3, top-5, top-10方面,FFL在Codeflaws数据集上的表现也显著优于最佳基线,分别为197%,104%,70%,22%,在Prutor数据集上分别为10%,17%,15%和8%。
{"title":"FFL: Fine-grained Fault Localization for Student Programs via Syntactic and Semantic Reasoning","authors":"Thanh-Dat Nguyen, Thanh Le-Cong, Duc M. Luong, Van-Hai Duong, X. Le, D. Lo, Quyet-Thang Huynh","doi":"10.1109/ICSME55016.2022.00022","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00022","url":null,"abstract":"Fault localization has been used to provide feedback for incorrect student programs since locations of faults can be a valuable hint for students about what caused their programs to crash. Unfortunately, existing fault localization techniques for student programs are limited because they usually consider either the program's syntax or semantics alone. This motivates the new design of fault localization techniques that use both semantic and syntactical information of the program.In this paper, we introduce FFL (Fine grained Fault Localization), a novel technique using syntactic and semantic reasoning for localizing bugs in student programs. The novelty in FFL that allows it to capture both syntactic and semantic of a program is three-fold: (1) A fine-grained graph-based representation of a program that is adaptive for statement-level fault localization; (2) an effective and efficient model to leverage the designed representation for fault-localization task and (3) a node-level training objective that allows deep learning model to learn from fine-grained syntactic patterns. We compare FFL's effectiveness with state-of-the-art fault localization techniques for student programs (NBL, Tarantula, Ochiai and DStar) on two real-world datasets: Prutor and Codeflaws. Experimental results show that FFL successfully localizes bug for 84.6% out of 2136 programs on Prutor and 83.1% out of 780 programs on Codeflaws concerning the top-10 suspicious statements. FFL also remarkably outperforms the best baselines by 197%, 104%, 70%, 22% on Codeflaws dataset and 10%, 17%, 15% and 8% on Prutor dataset, in term of top-1, top-3, top-5, top-10, respectively.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115840627","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
An Empirical Study on Performance Bugs in Deep Learning Frameworks 深度学习框架中性能缺陷的实证研究
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00012
Tarek Makkouk, Dong Jae Kim, T. Chen
Machine Learning (ML) and Deep Learning (DL) applications are becoming more popular due to the availability of DL frameworks such as TensorFlow and PyTorch. Therefore, the quality of DL frameworks is essential to ensure DL/ML application quality. Given the computationally expensive nature of DL tasks (e.g., training), performance is a critical aspect of DL frameworks. However, optimizing DL frameworks may have its own unique challenges due to the peculiarities of DL (e.g., hardware integration and the nature of the computation). In this paper, we conduct an empirical study on the performance bugs in DL frameworks. We conduct our study on TensorFlow and PyTorch by identifying the performance and non-performance bugs by mining the GitHub repositories. We find that 1) the proportion of newly reported performance bugs increases faster than fixed performance bugs, and the ratio of performance bugs among all bugs increases over time; 2) performance bugs take more time to fix, have larger fix sizes, and more community engagement (e.g., discussion) compared to non-performance bugs; and 3) we manually derived a taxonomy of 12 categories and 19 sub-categories of the root causes of performance bugs by studying all performance bug fixes. Finally, we present some actionable implications for researchers and developers.
机器学习(ML)和深度学习(DL)应用程序正变得越来越流行,因为深度学习框架(如TensorFlow和PyTorch)的可用性。因此,深度学习框架的质量对于确保深度学习/ML应用程序的质量至关重要。考虑到深度学习任务(例如训练)的计算成本很高,性能是深度学习框架的一个关键方面。然而,由于深度学习的特殊性(例如,硬件集成和计算的性质),优化深度学习框架可能有其独特的挑战。在本文中,我们对深度学习框架中的性能缺陷进行了实证研究。我们通过挖掘GitHub存储库来识别性能和非性能错误,从而对TensorFlow和PyTorch进行研究。我们发现1)新报告的性能bug的比例比固定的性能bug增长得更快,并且性能bug占所有bug的比例随着时间的推移而增加;2)与非性能bug相比,性能bug需要更多的时间来修复,修复规模更大,并且需要更多的社区参与(例如讨论);3)通过研究所有性能bug修复,我们手动导出了性能bug根源的12类和19个子类别的分类。最后,我们为研究人员和开发人员提供了一些可操作的启示。
{"title":"An Empirical Study on Performance Bugs in Deep Learning Frameworks","authors":"Tarek Makkouk, Dong Jae Kim, T. Chen","doi":"10.1109/ICSME55016.2022.00012","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00012","url":null,"abstract":"Machine Learning (ML) and Deep Learning (DL) applications are becoming more popular due to the availability of DL frameworks such as TensorFlow and PyTorch. Therefore, the quality of DL frameworks is essential to ensure DL/ML application quality. Given the computationally expensive nature of DL tasks (e.g., training), performance is a critical aspect of DL frameworks. However, optimizing DL frameworks may have its own unique challenges due to the peculiarities of DL (e.g., hardware integration and the nature of the computation). In this paper, we conduct an empirical study on the performance bugs in DL frameworks. We conduct our study on TensorFlow and PyTorch by identifying the performance and non-performance bugs by mining the GitHub repositories. We find that 1) the proportion of newly reported performance bugs increases faster than fixed performance bugs, and the ratio of performance bugs among all bugs increases over time; 2) performance bugs take more time to fix, have larger fix sizes, and more community engagement (e.g., discussion) compared to non-performance bugs; and 3) we manually derived a taxonomy of 12 categories and 19 sub-categories of the root causes of performance bugs by studying all performance bug fixes. Finally, we present some actionable implications for researchers and developers.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121990061","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
Elevating Jupyter Notebook Maintenance Tooling by Identifying and Extracting Notebook Structures 通过识别和提取笔记本结构来提升Jupyter笔记本维护工具
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00047
Yuan Jiang, Christian Kästner, Shurui Zhou
Data analysis is an exploratory, interactive, and often collaborative process. Computational notebooks have become a popular tool to support this process, among others because of their ability to interleave code, narrative text, and results. However, notebooks in practice are often criticized as hard to maintain and being of low code quality, including problems such as unused or duplicated code and out-of-order code execution. Data scientists can benefit from better tool support when maintaining and evolving notebooks. We argue that central to such tool support is identifying the structure of notebooks. We present a lightweight and accurate approach to extract notebook structure and outline several ways such structure can be used to improve maintenance tooling for notebooks, including navigation and finding alternatives.
数据分析是一个探索性、互动性和协作性的过程。计算笔记本已经成为支持这一过程的流行工具,因为它们能够将代码、叙述性文本和结果交织在一起。然而,在实践中,笔记本经常被批评为难以维护和代码质量低,包括诸如未使用或重复代码以及无序代码执行等问题。数据科学家在维护和改进笔记本时可以从更好的工具支持中受益。我们认为,这种工具支持的核心是识别笔记本的结构。我们提出了一种轻量级和精确的方法来提取笔记本结构,并概述了几种方法,可以使用这种结构来改进笔记本的维护工具,包括导航和寻找替代品。
{"title":"Elevating Jupyter Notebook Maintenance Tooling by Identifying and Extracting Notebook Structures","authors":"Yuan Jiang, Christian Kästner, Shurui Zhou","doi":"10.1109/ICSME55016.2022.00047","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00047","url":null,"abstract":"Data analysis is an exploratory, interactive, and often collaborative process. Computational notebooks have become a popular tool to support this process, among others because of their ability to interleave code, narrative text, and results. However, notebooks in practice are often criticized as hard to maintain and being of low code quality, including problems such as unused or duplicated code and out-of-order code execution. Data scientists can benefit from better tool support when maintaining and evolving notebooks. We argue that central to such tool support is identifying the structure of notebooks. We present a lightweight and accurate approach to extract notebook structure and outline several ways such structure can be used to improve maintenance tooling for notebooks, including navigation and finding alternatives.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"349 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132167450","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
Smart Money Wasting: Analyzing Gas Cost Drivers of Ethereum Smart Contracts 智能金钱浪费:分析以太坊智能合约的Gas成本驱动因素
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00034
Benedikt Severin, M. Hesenius, F. Blum, Michael Hettmer, V. Gruhn
Users must pay a fee depending on resource consumption when using smart contracts on the Ethereum blockchain. As even the most basic operations cost several dollars under moderate network load, developers may actively reduce user-paid fees by optimizing the smart contract resource consumption (’gas costs’). Previous works suggested patterns and tools supporting developers in gas cost optimization, but up to now a comprehensive analysis of their real-world impact is missing. Another gap is the maintenance and evolution support for smart contracts leveraging the publicly available usage data. We propose high-level gas cost profiles and review which profiles are considered in the existing literature. Additionally, we sampled around 68,000 smart contract interactions from three years, analyzed them using the gas cost profiles, and compare the findings to the current focus in literature. In our data set, external code, storage, and the transaction base fee are first-level cost drivers in terms of absolute gas usage, but contract deployment becomes also costly when considering the average gas usage per transaction. Our analysis also shows that plenty of previous work focused cost categories barely influencing resource consumption.
用户在以太坊区块链上使用智能合约时,必须根据资源消耗支付费用。由于在中等网络负载下,即使是最基本的操作也要花费几美元,因此开发人员可以通过优化智能合约资源消耗(“gas成本”)来积极减少用户支付的费用。以前的工作提出了支持开发人员进行天然气成本优化的模式和工具,但到目前为止,还没有对其实际影响进行全面分析。另一个差距是对利用公开可用使用数据的智能合约的维护和演进支持。我们提出了高水平的天然气成本概况,并回顾了现有文献中考虑的概况。此外,我们对三年来大约68,000个智能合约交互进行了抽样,使用天然气成本概况对其进行了分析,并将研究结果与当前文献中的重点进行了比较。在我们的数据集中,就绝对天然气使用量而言,外部代码、存储和交易基本费用是第一级成本驱动因素,但考虑到每笔交易的平均天然气使用量,合同部署也变得昂贵。我们的分析还表明,以前的大量工作集中在成本类别几乎不影响资源消耗。
{"title":"Smart Money Wasting: Analyzing Gas Cost Drivers of Ethereum Smart Contracts","authors":"Benedikt Severin, M. Hesenius, F. Blum, Michael Hettmer, V. Gruhn","doi":"10.1109/ICSME55016.2022.00034","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00034","url":null,"abstract":"Users must pay a fee depending on resource consumption when using smart contracts on the Ethereum blockchain. As even the most basic operations cost several dollars under moderate network load, developers may actively reduce user-paid fees by optimizing the smart contract resource consumption (’gas costs’). Previous works suggested patterns and tools supporting developers in gas cost optimization, but up to now a comprehensive analysis of their real-world impact is missing. Another gap is the maintenance and evolution support for smart contracts leveraging the publicly available usage data. We propose high-level gas cost profiles and review which profiles are considered in the existing literature. Additionally, we sampled around 68,000 smart contract interactions from three years, analyzed them using the gas cost profiles, and compare the findings to the current focus in literature. In our data set, external code, storage, and the transaction base fee are first-level cost drivers in terms of absolute gas usage, but contract deployment becomes also costly when considering the average gas usage per transaction. Our analysis also shows that plenty of previous work focused cost categories barely influencing resource consumption.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123705955","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
期刊
2022 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