首页 > 最新文献

Science of Computer Programming最新文献

英文 中文
Actionable code smell identification with fusion learning of metrics and semantics 通过度量标准和语义的融合学习识别可操作的代码气味
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-03-27 DOI: 10.1016/j.scico.2024.103110
Dongjin Yu, Quanxin Yang, Xin Chen, Jie Chen, Sixuan Wang, Yihang Xu

Code smell detection is one of the essential tasks in the field of software engineering. Identifying whether a code snippet has a code smell is subjective and varies by programming language, developer, and development method. Moreover, developers tend to focus on code smells that have a real impact on development and ignore insignificant ones. However, existing static code analysis tools and code smell detection approaches exhibit a high false positive rate in detecting code smells, which makes insignificant smells drown out those smells that developers value. Therefore, accurately reporting those actionable code smells that developers tend to spend energy on refactoring can prevent developers from getting lost in the sea of smells and improve refactoring efficiency. In this paper, we aim to detect actionable code smells that developers tend to refactor. Specifically, we first collect actionable and non-actionable code smells from projects with numerous historical versions to construct our datasets. Then, we propose a dual-stream model for fusion learning of code metrics and code semantics to detect actionable code smells. On the one hand, code metrics quantify the code's structure and even some rules or patterns, providing fundamental information for detecting code smells. On the other hand, code semantics encompass information about developers' refactoring tendencies, which prove valuable in detecting actionable code smells. Extensive experiments show that our approach can detect actionable code smells more accurately compared to existing approaches.

代码气味检测是软件工程领域的基本任务之一。识别代码片段是否有代码气味是主观的,而且因编程语言、开发人员和开发方法的不同而各异。此外,开发人员倾向于关注对开发有实际影响的代码气味,而忽略无关紧要的代码气味。然而,现有的静态代码分析工具和代码气味检测方法在检测代码气味时表现出很高的假阳性率,这使得无关紧要的气味淹没了开发人员重视的气味。因此,准确报告开发人员倾向于花费精力重构的可操作代码气味,可以防止开发人员迷失在气味的海洋中,提高重构效率。本文旨在检测开发人员倾向于重构的可操作代码气味。具体来说,我们首先从具有大量历史版本的项目中收集可操作和不可操作的代码气味,构建数据集。然后,我们提出了一种融合学习代码度量和代码语义的双流模型,以检测可操作的代码气味。一方面,代码度量可以量化代码的结构,甚至是一些规则或模式,为检测代码气味提供基础信息。另一方面,代码语义包含有关开发人员重构倾向的信息,这些信息对检测可操作的代码气味非常有价值。广泛的实验表明,与现有方法相比,我们的方法能更准确地检测到可操作的代码气味。
{"title":"Actionable code smell identification with fusion learning of metrics and semantics","authors":"Dongjin Yu,&nbsp;Quanxin Yang,&nbsp;Xin Chen,&nbsp;Jie Chen,&nbsp;Sixuan Wang,&nbsp;Yihang Xu","doi":"10.1016/j.scico.2024.103110","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103110","url":null,"abstract":"<div><p>Code smell detection is one of the essential tasks in the field of software engineering. Identifying whether a code snippet has a code smell is subjective and varies by programming language, developer, and development method. Moreover, developers tend to focus on code smells that have a real impact on development and ignore insignificant ones. However, existing static code analysis tools and code smell detection approaches exhibit a high false positive rate in detecting code smells, which makes insignificant smells drown out those smells that developers value. Therefore, accurately reporting those actionable code smells that developers tend to spend energy on refactoring can prevent developers from getting lost in the sea of smells and improve refactoring efficiency. In this paper, we aim to detect actionable code smells that developers tend to refactor. Specifically, we first collect actionable and non-actionable code smells from projects with numerous historical versions to construct our datasets. Then, we propose a dual-stream model for fusion learning of code metrics and code semantics to detect actionable code smells. On the one hand, code metrics quantify the code's structure and even some rules or patterns, providing fundamental information for detecting code smells. On the other hand, code semantics encompass information about developers' refactoring tendencies, which prove valuable in detecting actionable code smells. Extensive experiments show that our approach can detect actionable code smells more accurately compared to existing approaches.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103110"},"PeriodicalIF":1.3,"publicationDate":"2024-03-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140344782","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Implementing an environment for hybrid software evaluation 实施混合软件评估环境
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-03-24 DOI: 10.1016/j.scico.2024.103109
Ana Díaz-Muñoz , Moisés Rodríguez , Mario Piattini

Quantum computing is a revolutionary paradigm in computer science based on the principles of quantum mechanics. It has the potential to solve problems that are currently unsolvable for classical computing. Applications of quantum computing already span a variety of sectors.

Ongoing enhancements to the integrated programming and development environment simplify the creation and optimization of quantum algorithms. Ultimately, the focus on supporting tools represents the starting point towards achieving quantum computing maturity, facilitating its transition from an experimental domain to a practical industry.

As quantum software gains ground and relevance in various domains, it is essential to address the evaluation of hybrid systems that combine classical and quantum elements to ensure diverse quality characteristics. However, in the realm of quantum software, models, metrics, and tools are still to be established.

The primary contribution of this paper is to present the first technological environment for measuring and evaluating the analyzability of hybrid software.

Real-world examples of hybrid software are provided to showcase the functionality of the different tools in the environment, yielding readable and representative results for the evaluator.

量子计算是基于量子力学原理的计算机科学革命性范式。它有可能解决目前经典计算无法解决的问题。量子计算的应用已经遍及各个领域。对集成编程和开发环境的持续增强简化了量子算法的创建和优化。最终,对支持工具的关注代表了实现量子计算成熟的起点,促进了量子计算从实验领域向实用行业的过渡。随着量子软件在各个领域的普及和相关性的提高,必须解决对结合经典和量子元素的混合系统的评估问题,以确保不同的质量特性。本文的主要贡献在于首次提出了测量和评估混合软件可分析性的技术环境。本文提供了混合软件的真实案例,展示了环境中不同工具的功能,为评估者提供了可读性和代表性的结果。
{"title":"Implementing an environment for hybrid software evaluation","authors":"Ana Díaz-Muñoz ,&nbsp;Moisés Rodríguez ,&nbsp;Mario Piattini","doi":"10.1016/j.scico.2024.103109","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103109","url":null,"abstract":"<div><p>Quantum computing is a revolutionary paradigm in computer science based on the principles of quantum mechanics. It has the potential to solve problems that are currently unsolvable for classical computing. Applications of quantum computing already span a variety of sectors.</p><p>Ongoing enhancements to the integrated programming and development environment simplify the creation and optimization of quantum algorithms. Ultimately, the focus on supporting tools represents the starting point towards achieving quantum computing maturity, facilitating its transition from an experimental domain to a practical industry.</p><p>As quantum software gains ground and relevance in various domains, it is essential to address the evaluation of hybrid systems that combine classical and quantum elements to ensure diverse quality characteristics. However, in the realm of quantum software, models, metrics, and tools are still to be established.</p><p>The primary contribution of this paper is to present the first technological environment for measuring and evaluating the analyzability of hybrid software.</p><p>Real-world examples of hybrid software are provided to showcase the functionality of the different tools in the environment, yielding readable and representative results for the evaluator.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103109"},"PeriodicalIF":1.3,"publicationDate":"2024-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140350570","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
“Will I be replaced?” Assessing ChatGPT's effect on software development and programmer perceptions of AI tools "我会被取代吗?评估 ChatGPT 对软件开发的影响以及程序员对人工智能工具的看法
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-03-22 DOI: 10.1016/j.scico.2024.103111
Mohammad Amin Kuhail , Sujith Samuel Mathew , Ashraf Khalil , Jose Berengueres , Syed Jawad Hussain Shah

ChatGPT is a language model with artificial intelligence (AI) capabilities that has found utility across various sectors. Given its impact, we conducted two empirical studies to assess the potential and limitations of ChatGPT and other AI tools in software development. In the first study, we evaluated ChatGPT 3.5′s effectiveness in generating code for 180 coding problems from LeetCode, an online coding interview preparation platform. Our findings suggest that ChatGPT 3.5 is more effective in solving easy and medium coding problems but less reliable for harder problems. Further, ChatGPT 3.5 is somewhat more effective at coding problems with higher popularity scores. In the second study, we administered a questionnaire (N = 99) to programmers to gain insights into their views on ChatGPT and other AI tools. Our findings indicate that programmers use AI tools for various tasks, such as generating boilerplate code, explaining complex code, and conducting research. AI tools also help programmers to become more productive by creating better-performing, shorter, and more readable code, among other benefits. However, AI tools can sometimes misunderstand requirements and generate erroneous code. While most programmers are not currently concerned about AI tools replacing them, they are apprehensive about what the future may hold. Our research has also revealed associations between AI tool usage, trust, perceived productivity, and job security threats caused by the tools.

ChatGPT 是一种具有人工智能(AI)功能的语言模型,在各行各业都有应用。鉴于其影响力,我们进行了两项实证研究,以评估 ChatGPT 和其他人工智能工具在软件开发中的潜力和局限性。在第一项研究中,我们评估了 ChatGPT 3.5 为在线编码面试准备平台 LeetCode 的 180 个编码问题生成代码的有效性。我们的研究结果表明,ChatGPT 3.5 在解决简单和中等难度的编码问题时更有效,但在解决较难问题时则不太可靠。此外,ChatGPT 3.5 在解决受欢迎程度较高的问题时更有效。在第二项研究中,我们对程序员进行了问卷调查(N = 99),以了解他们对 ChatGPT 和其他人工智能工具的看法。我们的研究结果表明,程序员使用人工智能工具完成各种任务,如生成模板代码、解释复杂代码和进行研究。人工智能工具还能帮助程序员创建性能更好、更短、更易读的代码,从而提高工作效率。不过,人工智能工具有时也会误解需求,生成错误的代码。虽然大多数程序员目前并不担心人工智能工具会取代他们,但他们对未来可能出现的情况感到担忧。我们的研究还揭示了人工智能工具的使用、信任度、感知生产率和工具造成的工作安全威胁之间的关联。
{"title":"“Will I be replaced?” Assessing ChatGPT's effect on software development and programmer perceptions of AI tools","authors":"Mohammad Amin Kuhail ,&nbsp;Sujith Samuel Mathew ,&nbsp;Ashraf Khalil ,&nbsp;Jose Berengueres ,&nbsp;Syed Jawad Hussain Shah","doi":"10.1016/j.scico.2024.103111","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103111","url":null,"abstract":"<div><p>ChatGPT is a language model with artificial intelligence (AI) capabilities that has found utility across various sectors. Given its impact, we conducted two empirical studies to assess the potential and limitations of ChatGPT and other AI tools in software development. In the first study, we evaluated ChatGPT 3.5′s effectiveness in generating code for 180 coding problems from LeetCode, an online coding interview preparation platform. Our findings suggest that ChatGPT 3.5 is more effective in solving easy and medium coding problems but less reliable for harder problems. Further, ChatGPT 3.5 is somewhat more effective at coding problems with higher popularity scores. In the second study, we administered a questionnaire (<em>N</em> = 99) to programmers to gain insights into their views on ChatGPT and other AI tools. Our findings indicate that programmers use AI tools for various tasks, such as generating boilerplate code, explaining complex code, and conducting research. AI tools also help programmers to become more productive by creating better-performing, shorter, and more readable code, among other benefits. However, AI tools can sometimes misunderstand requirements and generate erroneous code. While most programmers are not currently concerned about AI tools replacing them, they are apprehensive about what the future may hold. Our research has also revealed associations between AI tool usage, trust, perceived productivity, and job security threats caused by the tools.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"235 ","pages":"Article 103111"},"PeriodicalIF":1.3,"publicationDate":"2024-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140327665","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
PX-MBT: A framework for model-based player experience testing PX-MBT:基于模型的玩家体验测试框架
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-03-20 DOI: 10.1016/j.scico.2024.103108
Saba Gholizadeh Ansari , I.S.W.B. Prasetya , Mehdi Dastani , Gabriele Keller , Davide Prandi , Fitsum Meshesha Kifetew , Frank Dignum

As video games become more complex and widespread, player experience (PX) testing becomes crucial in the game industry. Attracting and retaining players are key elements to guarantee the success of a game in the highly competitive market. Although a number of techniques have been introduced to measure the emotional aspect of the experience, automated testing of player experience still needs to be explored. This paper presents PX-MBT, a framework for automated player experience testing with emotion pattern verification. PX-MBT (1) utilizes a model-based testing approach for test suite generation, (2) employs a computational model of emotions developed based on a psychological theory of emotions to model players' emotions during game-plays with an intelligent agent, and (3) verifies emotion patterns given by game designers on executed test suites to identify PX-issues. We explain PX-MBT architecture and provide an example along with its result in emotion pattern verification, which asserts the evolution of emotions over time, and heat-maps to showcase the spatial distribution of emotions on the game map.

随着视频游戏变得越来越复杂和广泛,玩家体验(PX)测试在游戏行业变得至关重要。吸引和留住玩家是保证游戏在激烈的市场竞争中取得成功的关键因素。尽管已经引入了许多技术来测量情感方面的体验,但玩家体验的自动测试仍有待探索。本文介绍了 PX-MBT,一个通过情感模式验证进行玩家体验自动测试的框架。PX-MBT (1) 利用基于模型的测试方法生成测试套件;(2) 利用基于心理学情感理论开发的情感计算模型,为玩家在与智能代理玩游戏时的情感建模;(3) 在执行的测试套件上验证游戏设计者给出的情感模式,以识别 PX 问题。我们解释了 PX-MBT 的架构,并提供了一个示例及其在情绪模式验证方面的成果,该成果证实了情绪随时间的演变,并通过热图展示了情绪在游戏地图上的空间分布。
{"title":"PX-MBT: A framework for model-based player experience testing","authors":"Saba Gholizadeh Ansari ,&nbsp;I.S.W.B. Prasetya ,&nbsp;Mehdi Dastani ,&nbsp;Gabriele Keller ,&nbsp;Davide Prandi ,&nbsp;Fitsum Meshesha Kifetew ,&nbsp;Frank Dignum","doi":"10.1016/j.scico.2024.103108","DOIUrl":"10.1016/j.scico.2024.103108","url":null,"abstract":"<div><p>As video games become more complex and widespread, player experience (PX) testing becomes crucial in the game industry. Attracting and retaining players are key elements to guarantee the success of a game in the highly competitive market. Although a number of techniques have been introduced to measure the emotional aspect of the experience, automated testing of player experience still needs to be explored. This paper presents <span>PX-MBT</span>, a framework for automated player experience testing with emotion pattern verification. <span>PX-MBT</span> (1) utilizes a model-based testing approach for test suite generation, (2) employs a computational model of emotions developed based on a psychological theory of emotions to model players' emotions during game-plays with an intelligent agent, and (3) verifies emotion patterns given by game designers on executed test suites to identify PX-issues. We explain <span>PX-MBT</span> architecture and provide an example along with its result in emotion pattern verification, which asserts the evolution of emotions over time, and heat-maps to showcase the spatial distribution of emotions on the game map.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103108"},"PeriodicalIF":1.3,"publicationDate":"2024-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324000315/pdfft?md5=3feb08ed6c236db63ae3355a5f46a72f&pid=1-s2.0-S0167642324000315-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140280471","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A method to identify overfitting program repair patches based on expression tree 基于表达树识别过度拟合程序修复补丁的方法
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-03-05 DOI: 10.1016/j.scico.2024.103105
Yukun Dong, Xiaotong Cheng, Yufei Yang, Lulu Zhang, Shuqi Wang, Lingjie Kong

The primary aim of Automatic Program Repair (APR) is to automatically repair defective programs, with the intention of reducing the amount of effort required by developers. However, APR techniques may produce overfitting patches that do not truly repair the program, allowing the program to pass all test cases. This paper provides a comprehensive review of the overfitting problem and adds to the existing research on overfitting in conditional statements. Our proposed method, ETPAT (Expression Tree-based Patch Assessment Technique), implements expression trees and targeted coverage criteria to identify differences between the original and the patched program. We utilize ETPAT to verify test case adequacy. In parallel, ETPAT also guides the generation of corresponding test cases via equivalence class information, which may be added to the original test suite, making it more robust while also preventing the repair technique from generating comparable overfitting patches. With reference to the patch set in the BuggyJavaJML benchmark, ETPAT recognized 77/82 (93.9%) overfitting patches out of 120 patches related to conditional constraints, displaying superior accuracy rates and fewer test cases required than the original repair tool.

自动程序修复(APR)的主要目的是自动修复有缺陷的程序,以减少开发人员的工作量。然而,自动程序修复技术可能会产生过拟合补丁,无法真正修复程序,使程序通过所有测试用例。本文全面回顾了过拟合问题,并对现有的条件语句过拟合研究进行了补充。我们提出的 ETPAT(基于表达式树的补丁评估技术)方法采用表达式树和目标覆盖标准来识别原始程序和补丁程序之间的差异。我们利用 ETPAT 验证测试用例的充分性。与此同时,ETPAT 还能通过等价类信息指导生成相应的测试用例,这些测试用例可添加到原始测试套件中,使其更加稳健,同时还能防止修复技术生成类似的过拟合补丁。参照 BuggyJavaJML 基准中的补丁集,ETPAT 在 120 个与条件约束相关的补丁中识别出 77/82 个(93.9%)过拟合补丁,显示出比原始修复工具更高的准确率和更少的所需测试用例。
{"title":"A method to identify overfitting program repair patches based on expression tree","authors":"Yukun Dong,&nbsp;Xiaotong Cheng,&nbsp;Yufei Yang,&nbsp;Lulu Zhang,&nbsp;Shuqi Wang,&nbsp;Lingjie Kong","doi":"10.1016/j.scico.2024.103105","DOIUrl":"10.1016/j.scico.2024.103105","url":null,"abstract":"<div><p>The primary aim of Automatic Program Repair (APR) is to automatically repair defective programs, with the intention of reducing the amount of effort required by developers. However, APR techniques may produce overfitting patches that do not truly repair the program, allowing the program to pass all test cases. This paper provides a comprehensive review of the overfitting problem and adds to the existing research on overfitting in conditional statements. Our proposed method, ETPAT (Expression Tree-based Patch Assessment Technique), implements expression trees and targeted coverage criteria to identify differences between the original and the patched program. We utilize ETPAT to verify test case adequacy. In parallel, ETPAT also guides the generation of corresponding test cases via equivalence class information, which may be added to the original test suite, making it more robust while also preventing the repair technique from generating comparable overfitting patches. With reference to the patch set in the BuggyJavaJML benchmark, ETPAT recognized 77/82 (93.9%) overfitting patches out of 120 patches related to conditional constraints, displaying superior accuracy rates and fewer test cases required than the original repair tool.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"235 ","pages":"Article 103105"},"PeriodicalIF":1.3,"publicationDate":"2024-03-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140053861","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Diagnosis of package installation incompatibility via knowledge base 通过知识库诊断软件包安装的不兼容性
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-03-01 DOI: 10.1016/j.scico.2024.103098
Yulu Cao , Zhifei Chen , Xiaowei Zhang , Yanhui Li , Lin Chen , Linzhang Wang

Python package installation is far from trivial. Users encounter a variety of errors when installing Python libraries, including dependency conflicts and incompatibilities. Existing solutions focus on parsing third-party dependencies but ignore the impact of local settings and user requirements. In this paper, we propose a novel approach, HELP, to help Python users tackle installation errors. We first establish a local knowledge base by extracting the PyPI database and dependency analysis. When the user provides the installation requirements, HELP extracts multiple constraints including user requirements, Python version constraints, and dependency constraints, and models them into SMT expressions. Then HELP solves the installation problem by using the SMT solver.

To understand the status of Python version compatibility, we conduct an empirical study on Python version compatibility on 8,502 libraries. The study reveals that 80% of Python libraries do not declare Python version constraints in most versions. We also find that installation errors are strongly related to Python versions. To evaluate HELP, we conduct the experiment on 495 sampled installation failures. The results show that HELP can effectively resolve 263 installation failures, 42% more than the baseline approach. Especially, HELP provides a more comprehensive diagnosis when encountering configuration-related installation failures. Besides, HELP is more efficient than pip at predicting installation failures (30X speedups), which may save much effort if the installation cannot succeed.

Python 软件包的安装绝非易事。用户在安装 Python 库时会遇到各种错误,包括依赖关系冲突和不兼容。现有的解决方案侧重于解析第三方依赖关系,但忽略了本地设置和用户需求的影响。在本文中,我们提出了一种新方法 HELP,以帮助 Python 用户解决安装错误问题。我们首先通过提取 PyPI 数据库和依赖关系分析建立本地知识库。当用户提供安装需求时,HELP 会提取多个约束,包括用户需求、Python 版本约束和依赖约束,并将其建模为 SMT 表达式。为了了解 Python 版本兼容性的现状,我们对 8502 个库的 Python 版本兼容性进行了实证研究。研究发现,80% 的 Python 库在大多数版本中都没有声明 Python 版本约束。我们还发现,安装错误与 Python 版本密切相关。为了评估 HELP,我们对 495 个安装失败的样本进行了实验。结果表明,HELP 可以有效解决 263 个安装故障,比基准方法多 42%。尤其是在遇到与配置相关的安装故障时,HELP 能提供更全面的诊断。此外,在预测安装失败方面,HELP 比 pip 更有效(速度提高了 30 倍),这可能会在安装无法成功时节省大量精力。
{"title":"Diagnosis of package installation incompatibility via knowledge base","authors":"Yulu Cao ,&nbsp;Zhifei Chen ,&nbsp;Xiaowei Zhang ,&nbsp;Yanhui Li ,&nbsp;Lin Chen ,&nbsp;Linzhang Wang","doi":"10.1016/j.scico.2024.103098","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103098","url":null,"abstract":"<div><p>Python package installation is far from trivial. Users encounter a variety of errors when installing Python libraries, including dependency conflicts and incompatibilities. Existing solutions focus on parsing third-party dependencies but ignore the impact of local settings and user requirements. In this paper, we propose a novel approach, HELP, to help Python users tackle installation errors. We first establish a local knowledge base by extracting the PyPI database and dependency analysis. When the user provides the installation requirements, HELP extracts multiple constraints including user requirements, Python version constraints, and dependency constraints, and models them into SMT expressions. Then HELP solves the installation problem by using the SMT solver.</p><p>To understand the status of Python version compatibility, we conduct an empirical study on Python version compatibility on 8,502 libraries. The study reveals that 80% of Python libraries do not declare Python version constraints in most versions. We also find that installation errors are strongly related to Python versions. To evaluate HELP, we conduct the experiment on 495 sampled installation failures. The results show that HELP can effectively resolve 263 installation failures, 42% more than the baseline approach. Especially, HELP provides a more comprehensive diagnosis when encountering configuration-related installation failures. Besides, HELP is more efficient than pip at predicting installation failures (30X speedups), which may save much effort if the installation cannot succeed.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"235 ","pages":"Article 103098"},"PeriodicalIF":1.3,"publicationDate":"2024-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140042827","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Sibilla: A tool for reasoning about collective systems Sibilla:集体系统推理工具
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-02-28 DOI: 10.1016/j.scico.2024.103095
Nicola Del Giudice, Lorenzo Matteucci, Michela Quadrini, Aniqa Rehman, Michele Loreti

Formal approaches and tools have been defined, implemented and successfully applied to support the design and development of Collective Adaptive Systems. These tools are highly specialised in their fields, and their integration requires an effort.

In this paper, we introduce Sibilla, a Java modular tool that facilitates the integration of multiple specification languages for supporting quantitative analysis of systems. After a description of the general architecture of Sibilla, the main features of the tool are discussed via simple examples.

形式化方法和工具已被定义、实施并成功应用于支持集体自适应系统的设计和开发。在本文中,我们将介绍一种 Java 模块化工具 Sibilla,它有助于集成多种规范语言,支持系统的定量分析。在介绍了 Sibilla 的总体架构后,我们将通过简单的示例讨论该工具的主要功能。
{"title":"Sibilla: A tool for reasoning about collective systems","authors":"Nicola Del Giudice,&nbsp;Lorenzo Matteucci,&nbsp;Michela Quadrini,&nbsp;Aniqa Rehman,&nbsp;Michele Loreti","doi":"10.1016/j.scico.2024.103095","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103095","url":null,"abstract":"<div><p>Formal approaches and tools have been defined, implemented and successfully applied to support the design and development of Collective Adaptive Systems. These tools are highly specialised in their fields, and their integration requires an effort.</p><p>In this paper, we introduce <span>Sibilla</span>, a Java modular tool that facilitates the integration of multiple specification languages for supporting quantitative analysis of systems. After a description of the general architecture of <span>Sibilla</span>, the main features of the tool are discussed via simple examples.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"235 ","pages":"Article 103095"},"PeriodicalIF":1.3,"publicationDate":"2024-02-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140030212","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Narrowing and heuristic search for symbolic reachability analysis of concurrent object-oriented systems 面向对象并发系统符号可达性分析的缩小和启发式搜索
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-02-23 DOI: 10.1016/j.scico.2024.103097
Byeongjee Kang , Kyungmin Bae

A concurrent system specified as a rewrite theory can be analyzed symbolically using narrowing-based reachability analysis. Narrowing-based approaches have been applied to formally analyze cryptographic protocols and parameterized protocols. However, existing narrowing-based analysis methods, based on a breadth-first-search strategy, cannot deal with generic distributed systems with objects and messages due to the symbolic state-space explosion problem and implicit constraints imposed on object-oriented systems. This paper proposes a heuristic search approach for narrowing-based reachability analysis to guide the search for counterexamples with a small number of objects. As a result, our method can effectively find a counterexample if an error state is reachable. In addition, this paper also shows how to encode implicit object-oriented constraints using order-sorted signatures and equational constraints. We demonstrate the effectiveness of our technique using a nontrivial distributed consensus algorithm.

以重写理论指定的并发系统可以使用基于窄化的可达性分析进行符号分析。基于缩窄的方法已被用于正式分析加密协议和参数化协议。然而,由于符号状态空间爆炸问题和面向对象系统的隐式约束,基于广度优先搜索策略的现有缩窄分析方法无法处理具有对象和消息的通用分布式系统。本文提出了一种启发式搜索方法,用于基于缩小范围的可达性分析,引导搜索具有少量对象的反例。因此,如果错误状态是可达到的,我们的方法就能有效地找到反例。此外,本文还展示了如何使用顺序排列签名和等式约束来编码隐式面向对象约束。我们用一个非难分布式共识算法证明了我们技术的有效性。
{"title":"Narrowing and heuristic search for symbolic reachability analysis of concurrent object-oriented systems","authors":"Byeongjee Kang ,&nbsp;Kyungmin Bae","doi":"10.1016/j.scico.2024.103097","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103097","url":null,"abstract":"<div><p>A concurrent system specified as a rewrite theory can be analyzed symbolically using narrowing-based reachability analysis. Narrowing-based approaches have been applied to formally analyze cryptographic protocols and parameterized protocols. However, existing narrowing-based analysis methods, based on a breadth-first-search strategy, cannot deal with generic distributed systems with objects and messages due to the symbolic state-space explosion problem and implicit constraints imposed on object-oriented systems. This paper proposes a heuristic search approach for narrowing-based reachability analysis to guide the search for counterexamples with a small number of objects. As a result, our method can effectively find a counterexample if an error state is reachable. In addition, this paper also shows how to encode implicit object-oriented constraints using order-sorted signatures and equational constraints. We demonstrate the effectiveness of our technique using a nontrivial distributed consensus algorithm.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"235 ","pages":"Article 103097"},"PeriodicalIF":1.3,"publicationDate":"2024-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140000111","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Preface for the special issue on tool papers of the 17th International Federated Conference on Distributed Computing Techniques, DisCoTec 2022 第 17 届分布式计算技术国际联盟会议(DisCoTec 2022)工具论文特刊序言
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-02-23 DOI: 10.1016/j.scico.2024.103096
Ferruccio Damiani, David Eyers, Anna Philippou
{"title":"Preface for the special issue on tool papers of the 17th International Federated Conference on Distributed Computing Techniques, DisCoTec 2022","authors":"Ferruccio Damiani,&nbsp;David Eyers,&nbsp;Anna Philippou","doi":"10.1016/j.scico.2024.103096","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103096","url":null,"abstract":"","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"235 ","pages":"Article 103096"},"PeriodicalIF":1.3,"publicationDate":"2024-02-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139985802","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Neighborhood contrastive learning-based graph neural network for bug triaging 基于邻域对比学习的图神经网络用于错误分拣
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-02-20 DOI: 10.1016/j.scico.2024.103093
Haozhen Dong, Hongmin Ren, Jialiang Shi, Yichen Xie, Xudong Hu

Researchers have been developing automatic bug triaging techniques by leveraging bug information sourced from bug tracking systems. Recent studies have modeled the bug-developer relationship as a graph, introducing graph neural networks for bug triaging. Despite achieving positive outcomes, these methods overlook issues related to data sparsity and fail to fully exploit implicit relationships within the graph. In addressing these challenges, we present the Neighborhood Contrastive Learning-based Graph Neural Network Bug Triaging framework, abbreviated as NCGBT. Our approach models the relationship between bugs and developers as a bipartite graph. We utilize a pre-trained language model to acquire the initial representation of bug nodes. Employing a basic graph neural network framework, we learn the representation of all nodes and leverage these representations to predict developers for a given bug. Our proposed strategy involves neighborhood contrastive learning applied to the basic graph neural network approach. We take into account the neighbors of nodes from both structural and semantic perspectives, utilizing them as contrastive objects. Extensive experiments conducted on three public datasets demonstrate the effectiveness of the NCGBT framework.

研究人员一直在利用来自错误跟踪系统的错误信息开发自动错误分流技术。最近的研究将错误与开发人员的关系建模为一个图,并引入图神经网络进行错误分流。尽管取得了积极的成果,但这些方法忽略了与数据稀疏性相关的问题,也未能充分利用图中的隐含关系。为了应对这些挑战,我们提出了基于邻域对比学习的图神经网络错误分拣框架,简称 NCGBT。我们的方法将错误和开发人员之间的关系建模为双向图。我们利用预先训练好的语言模型来获取错误节点的初始表示。我们采用基本的图神经网络框架,学习所有节点的表示,并利用这些表示来预测给定错误的开发者。我们提出的策略涉及应用于基本图神经网络方法的邻域对比学习。我们从结构和语义两个角度考虑节点的邻域,将其作为对比对象加以利用。在三个公共数据集上进行的广泛实验证明了 NCGBT 框架的有效性。
{"title":"Neighborhood contrastive learning-based graph neural network for bug triaging","authors":"Haozhen Dong,&nbsp;Hongmin Ren,&nbsp;Jialiang Shi,&nbsp;Yichen Xie,&nbsp;Xudong Hu","doi":"10.1016/j.scico.2024.103093","DOIUrl":"10.1016/j.scico.2024.103093","url":null,"abstract":"<div><p>Researchers have been developing automatic bug triaging techniques by leveraging bug information sourced from bug tracking systems. Recent studies have modeled the bug-developer relationship as a graph, introducing graph neural networks for bug triaging. Despite achieving positive outcomes, these methods overlook issues related to data sparsity and fail to fully exploit implicit relationships within the graph. In addressing these challenges, we present the Neighborhood Contrastive Learning-based Graph Neural Network Bug Triaging framework, abbreviated as NCGBT. Our approach models the relationship between bugs and developers as a bipartite graph. We utilize a pre-trained language model to acquire the initial representation of bug nodes. Employing a basic graph neural network framework, we learn the representation of all nodes and leverage these representations to predict developers for a given bug. Our proposed strategy involves neighborhood contrastive learning applied to the basic graph neural network approach. We take into account the neighbors of nodes from both structural and semantic perspectives, utilizing them as contrastive objects. Extensive experiments conducted on three public datasets demonstrate the effectiveness of the NCGBT framework.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"235 ","pages":"Article 103093"},"PeriodicalIF":1.3,"publicationDate":"2024-02-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139919482","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Science of Computer Programming
全部 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