首页 > 最新文献

IEEE Transactions on Software Engineering最新文献

英文 中文
rCanary: Detecting Memory Leaks Across Semi-Automated Memory Management Boundary in Rust rCanary:检测 Rust 中半自动内存管理边界的内存泄漏
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-13 DOI: 10.1109/TSE.2024.3443624
Mohan Cui;Hui Xu;Hongliang Tian;Yangfan Zhou
Rust is an effective system programming language that guarantees memory safety via compile-time verifications. It employs a novel ownership-based resource management model to facilitate automated deallocation. This model is anticipated to eliminate memory leaks. However, we observed that user intervention drives it into semi-automated memory management and makes it error-prone to cause leaks. In contrast to violating memory-safety guarantees restricted by the unsafe keyword, the boundary of leaking memory is implicit, and the compiler would not emit any warnings for developers. In this paper, we present rCanary, a static, non-intrusive, and fully automated model checker to detect leaks across the semi-automated boundary. We design an encoder to abstract data with heap allocation and formalize a refined leak-free memory model based on boolean satisfiability. It can generate SMT-Lib2 format constraints for Rust MIR and is implemented as a Cargo component. We evaluate rCanary by using flawed package benchmarks collected from the pull requests of open-source Rust projects. The results indicate that it is possible to recall all these defects with acceptable false positives. We further apply our tool to more than 1,200 real-world crates from crates.io and GitHub, identifying 19 crates having memory leaks. Our analyzer is also efficient, that costs 8.4 seconds per package.
Rust 是一种有效的系统编程语言,可通过编译时验证保证内存安全。它采用了一种新颖的基于所有权的资源管理模型,便于自动去分配。该模型有望消除内存泄露。然而,我们观察到,用户的干预使其进入半自动化内存管理,并使其容易出错,从而导致泄露。与违反由不安全关键字限制的内存安全保证相反,泄露内存的边界是隐含的,编译器不会向开发人员发出任何警告。在本文中,我们提出了 rCanary,一种静态、非侵入式、全自动的模型检查器,用于检测跨越半自动边界的泄漏。我们设计了一个编码器来抽象具有堆分配的数据,并基于布尔可满足性形式化了一个精炼的无泄漏内存模型。它可以为 Rust MIR 生成 SMT-Lib2 格式的约束,并作为 Cargo 组件实现。我们使用从开源 Rust 项目的拉取请求中收集的有缺陷的软件包基准对 rCanary 进行了评估。结果表明,它能以可接受的误报率召回所有这些缺陷。我们还将这一工具应用于来自 crates.io 和 GitHub 的 1200 多个实际板条箱,发现了 19 个存在内存泄露的板条箱。我们的分析器也很高效,每个软件包只需 8.4 秒。
{"title":"rCanary: Detecting Memory Leaks Across Semi-Automated Memory Management Boundary in Rust","authors":"Mohan Cui;Hui Xu;Hongliang Tian;Yangfan Zhou","doi":"10.1109/TSE.2024.3443624","DOIUrl":"10.1109/TSE.2024.3443624","url":null,"abstract":"Rust is an effective system programming language that guarantees memory safety via compile-time verifications. It employs a novel ownership-based resource management model to facilitate automated deallocation. This model is anticipated to eliminate memory leaks. However, we observed that user intervention drives it into semi-automated memory management and makes it error-prone to cause leaks. In contrast to violating memory-safety guarantees restricted by the \u0000<italic>unsafe</i>\u0000 keyword, the boundary of leaking memory is implicit, and the compiler would not emit any warnings for developers. In this paper, we present \u0000<sc>rCanary</small>\u0000, a static, non-intrusive, and fully automated model checker to detect leaks across the semi-automated boundary. We design an encoder to abstract data with heap allocation and formalize a refined leak-free memory model based on boolean satisfiability. It can generate SMT-Lib2 format constraints for Rust MIR and is implemented as a Cargo component. We evaluate \u0000<sc>rCanary</small>\u0000 by using flawed package benchmarks collected from the pull requests of open-source Rust projects. The results indicate that it is possible to recall all these defects with acceptable false positives. We further apply our tool to more than 1,200 real-world crates from crates.io and GitHub, identifying 19 crates having memory leaks. Our analyzer is also efficient, that costs 8.4 seconds per package.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2472-2484"},"PeriodicalIF":6.5,"publicationDate":"2024-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141980717","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Learning to Generate Structured Code Summaries From Hybrid Code Context 学习从混合代码上下文中生成结构化代码摘要
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-13 DOI: 10.1109/TSE.2024.3439562
Ziyi Zhou;Mingchen Li;Huiqun Yu;Guisheng Fan;Penghui Yang;Zijie Huang
Code summarization aims to automatically generate natural language descriptions for code, and has become a rapidly expanding research area in the past decades. Unfortunately, existing approaches mainly focus on the “one-to-one” mapping from methods to short descriptions, which hinders them from becoming practical tools: 1) The program context is ignored, so they have difficulty in predicting keywords outside the target method; 2) They are typically trained to generate brief function descriptions with only one sentence in length, and therefore have difficulty in providing specific information. These drawbacks are partially due to the limitations of public code summarization datasets. In this paper, we first build a large code summarization dataset including different code contexts and summary content annotations, and then propose a deep learning framework that learns to generate structured code summaries from hybrid program context, named StructCodeSum. It provides both an LLM-based approach and a lightweight approach which are suitable for different scenarios. Given a target method, StructCodeSum predicts its function description, return description, parameter description, and usage description through hybrid code context, and ultimately builds a Javadoc-style code summary. The hybrid code context consists of path context, class context, documentation context and call context of the target method. Extensive experimental results demonstrate: 1) The hybrid context covers more than 70% of the summary tokens in average and significantly boosts the model performance; 2) When generating function descriptions, StructCodeSum outperforms the state-of-the-art approaches by a large margin; 3) According to human evaluation, the quality of the structured summaries generated by our approach is better than the documentation generated by Code Llama.
代码总结旨在自动生成代码的自然语言描述,在过去几十年中已成为一个迅速发展的研究领域。遗憾的是,现有方法主要关注从方法到简短描述的 "一对一 "映射,这阻碍了它们成为实用工具:1) 程序上下文被忽略了,因此它们很难预测目标方法之外的关键词;2) 它们通常被训练为生成只有一句话长度的简短功能描述,因此很难提供具体信息。这些缺点的部分原因在于公共代码摘要数据集的局限性。在本文中,我们首先构建了一个包含不同代码上下文和摘要内容注释的大型代码摘要数据集,然后提出了一个深度学习框架,该框架可学习从混合程序上下文生成结构化代码摘要,命名为 StructCodeSum。它提供了一种基于 LLM 的方法和一种轻量级方法,分别适用于不同的场景。给定一个目标方法,StructCodeSum 通过混合代码上下文预测其函数描述、返回描述、参数描述和用法描述,并最终构建一个 Javadoc 风格的代码摘要。混合代码上下文由目标方法的路径上下文、类上下文、文档上下文和调用上下文组成。大量实验结果表明1)混合上下文平均覆盖了 70% 以上的摘要标记,显著提高了模型性能;2)在生成函数描述时,StructCodeSum 的性能远远优于最先进的方法;3)根据人工评估,我们的方法生成的结构化摘要的质量优于 Code Llama 生成的文档。
{"title":"Learning to Generate Structured Code Summaries From Hybrid Code Context","authors":"Ziyi Zhou;Mingchen Li;Huiqun Yu;Guisheng Fan;Penghui Yang;Zijie Huang","doi":"10.1109/TSE.2024.3439562","DOIUrl":"10.1109/TSE.2024.3439562","url":null,"abstract":"Code summarization aims to automatically generate natural language descriptions for code, and has become a rapidly expanding research area in the past decades. Unfortunately, existing approaches mainly focus on the “one-to-one” mapping from methods to short descriptions, which hinders them from becoming practical tools: 1) The program context is ignored, so they have difficulty in predicting keywords outside the target method; 2) They are typically trained to generate brief function descriptions with only one sentence in length, and therefore have difficulty in providing specific information. These drawbacks are partially due to the limitations of public code summarization datasets. In this paper, we first build a large code summarization dataset including different code contexts and summary content annotations, and then propose a deep learning framework that learns to generate structured code summaries from hybrid program context, named StructCodeSum. It provides both an LLM-based approach and a lightweight approach which are suitable for different scenarios. Given a target method, StructCodeSum predicts its function description, return description, parameter description, and usage description through hybrid code context, and ultimately builds a Javadoc-style code summary. The hybrid code context consists of path context, class context, documentation context and call context of the target method. Extensive experimental results demonstrate: 1) The hybrid context covers more than 70% of the summary tokens in average and significantly boosts the model performance; 2) When generating function descriptions, StructCodeSum outperforms the state-of-the-art approaches by a large margin; 3) According to human evaluation, the quality of the structured summaries generated by our approach is better than the documentation generated by Code Llama.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 10","pages":"2512-2528"},"PeriodicalIF":6.5,"publicationDate":"2024-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141980716","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Predicting the First Response Latency of Maintainers and Contributors in Pull Requests 预测拉取请求中维护者和贡献者的首次响应延迟
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-13 DOI: 10.1109/TSE.2024.3443741
SayedHassan Khatoonabadi;Ahmad Abdellatif;Diego Elias Costa;Emad Shihab
The success of a Pull Request (PR) depends on the responsiveness of the maintainers and the contributor during the review process. Being aware of the expected waiting times can lead to better interactions and managed expectations for both the maintainers and the contributor. In this paper, we propose a machine-learning approach to predict the first response latency of the maintainers following the submission of a PR, and the first response latency of the contributor after receiving the first response from the maintainers. We curate a dataset of 20 large and popular open-source projects on GitHub and extract 21 features to characterize projects, contributors, PRs, and review processes. Using these features, we then evaluate seven types of classifiers to identify the best-performing models. We also conduct permutation feature importance and SHAP analyses to understand the importance and the impact of different features on the predicted response latencies. We find that our CatBoost models are the most effective for predicting the first response latencies of both maintainers and contributors. Compared to a dummy classifier that always returns the majority class, these models achieved an average improvement of 29% in AUC-ROC and 51% in AUC-PR for maintainers, as well as 39% in AUC-ROC and 89% in AUC-PR for contributors across the studied projects. The results indicate that our models can aptly predict the first response latencies using the selected features. We also observe that PRs submitted earlier in the week, containing an average number of commits, and with concise descriptions are more likely to receive faster first responses from the maintainers. Similarly, PRs with a lower first response latency from maintainers, that received the first response of maintainers earlier in the week, and containing an average number of commits tend to receive faster first responses from the contributors. Additionally, contributors with a higher acceptance rate and a history of timely responses in the project are likely to both obtain and provide faster first responses. Moreover, we show the effectiveness of our approach in a cross-project setting. Finally, we discuss key guidelines for maintainers, contributors, and researchers to help facilitate the PR review process.
拉取请求(PR)的成功与否取决于维护者和贡献者在审核过程中的响应速度。了解预期的等待时间可以让维护者和贡献者进行更好的互动,并对预期进行管理。在本文中,我们提出了一种机器学习方法来预测维护者在提交 PR 后的首次响应延迟,以及贡献者在收到维护者首次响应后的首次响应延迟。我们整理了 GitHub 上 20 个大型流行开源项目的数据集,并提取了 21 个特征来描述项目、贡献者、PR 和审查流程。利用这些特征,我们对七种分类器进行了评估,以确定表现最佳的模型。我们还进行了排列特征重要性和 SHAP 分析,以了解不同特征对预测响应延迟的重要性和影响。我们发现 CatBoost 模型在预测维护者和贡献者的首次响应延迟方面最为有效。与总是返回多数类的虚拟分类器相比,在所研究的项目中,这些模型对维护者的 AUC-ROC 和 AUC-PR 平均分别提高了 29% 和 51%,对贡献者的 AUC-ROC 和 AUC-PR 平均分别提高了 39% 和 89%。结果表明,我们的模型可以利用所选特征准确预测首次响应延迟。我们还观察到,在一周内较早提交、包含平均提交次数和简洁描述的 PR 更有可能得到维护者更快的首次响应。同样,维护者首次响应延迟较低、在一周内较早收到维护者首次响应、包含平均提交次数的 PR 往往能更快地收到贡献者的首次响应。此外,在项目中接受率较高且有及时响应历史的贡献者也有可能获得并提供更快的首次响应。此外,我们还展示了我们的方法在跨项目环境中的有效性。最后,我们讨论了维护者、贡献者和研究人员的关键指南,以帮助促进公关审查过程。
{"title":"Predicting the First Response Latency of Maintainers and Contributors in Pull Requests","authors":"SayedHassan Khatoonabadi;Ahmad Abdellatif;Diego Elias Costa;Emad Shihab","doi":"10.1109/TSE.2024.3443741","DOIUrl":"10.1109/TSE.2024.3443741","url":null,"abstract":"The success of a Pull Request (PR) depends on the responsiveness of the maintainers and the contributor during the review process. Being aware of the expected waiting times can lead to better interactions and managed expectations for both the maintainers and the contributor. In this paper, we propose a machine-learning approach to predict the first response latency of the maintainers following the submission of a PR, and the first response latency of the contributor after receiving the first response from the maintainers. We curate a dataset of 20 large and popular open-source projects on GitHub and extract 21 features to characterize projects, contributors, PRs, and review processes. Using these features, we then evaluate seven types of classifiers to identify the best-performing models. We also conduct permutation feature importance and SHAP analyses to understand the importance and the impact of different features on the predicted response latencies. We find that our CatBoost models are the most effective for predicting the first response latencies of both maintainers and contributors. Compared to a dummy classifier that always returns the majority class, these models achieved an average improvement of 29% in AUC-ROC and 51% in AUC-PR for maintainers, as well as 39% in AUC-ROC and 89% in AUC-PR for contributors across the studied projects. The results indicate that our models can aptly predict the first response latencies using the selected features. We also observe that PRs submitted earlier in the week, containing an average number of commits, and with concise descriptions are more likely to receive faster first responses from the maintainers. Similarly, PRs with a lower first response latency from maintainers, that received the first response of maintainers earlier in the week, and containing an average number of commits tend to receive faster first responses from the contributors. Additionally, contributors with a higher acceptance rate and a history of timely responses in the project are likely to both obtain and provide faster first responses. Moreover, we show the effectiveness of our approach in a cross-project setting. Finally, we discuss key guidelines for maintainers, contributors, and researchers to help facilitate the PR review process.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 10","pages":"2529-2543"},"PeriodicalIF":6.5,"publicationDate":"2024-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141980758","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Chain-of-Thought in Neural Code Generation: From and for Lightweight Language Models 神经代码生成中的思维链:从轻量级语言模型到轻量级语言模型
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-12 DOI: 10.1109/TSE.2024.3440503
Guang Yang;Yu Zhou;Xiang Chen;Xiangyu Zhang;Terry Yue Zhuo;Taolue Chen
Large Language Models (LLMs) have demonstrated remarkable potential in code generation. The integration of Chain of Thought (CoT) reasoning can further boost their performance. However, current CoT methods often require manual writing or LLMs with over 100 billion parameters to generate, impeding their applicability in resource-constrained scenarios. In this study, we investigate lightweight Language Models ($ell$LMs), which are defined to have fewer than 10 billion parameters. Empirically, we find that most $ell$LMs cannot generate high-quality CoTs when prompted by the few-shot method, but can take advantage of high-quality CoTs generated elsewhere to improve their performance in code generation. Based on these findings, we design a novel approach COTTON which can leverage $ell$LMs to automatically generate CoTs for code generation. We synthesize new datasets and conduct extensive experiments on various benchmarks. The results show that the CoTs generated by COTTON outperform the baselines in terms of automated and human evaluation metrics. In particular, the CoTs generated by COTTON boost various $ell$LMs to achieve higher performance gains than those generated by LLMs such as ChatGLM (130B), and are competitive with those generated by Gemini and gpt-3.5-turbo. The results also reveal that COTTON not only improves the performance of $ell$LMs, but also enhances the performance of LLMs. Our study showcases the potential of $ell$LMs in software engineering applications.
大型语言模型(LLM)在代码生成方面已显示出巨大的潜力。整合思维链(CoT)推理可进一步提高其性能。然而,当前的 CoT 方法通常需要人工编写或生成参数超过 1000 亿的 LLM,这阻碍了它们在资源受限场景中的适用性。在本研究中,我们研究了轻量级语言模型($ell$LMs),其定义为参数少于 100 亿。通过实证,我们发现大多数 $ell$LMs 在使用 few-shot 方法时无法生成高质量的 CoTs,但可以利用其他地方生成的高质量 CoTs 来提高代码生成的性能。基于这些发现,我们设计了一种新方法 COTTON,它可以利用 $ell$LMs 自动生成用于代码生成的 CoTs。我们合成了新的数据集,并在各种基准上进行了广泛的实验。结果表明,COTTON 生成的 CoT 在自动和人工评估指标方面都优于基准。特别是,COTTON生成的CoT促进各种$/ell$LM实现了更高的性能提升,超过了ChatGLM(130B)等LLM生成的CoT,与Gemini和gpt-3.5-turbo生成的CoT相比具有竞争力。研究结果还表明,COTTON 不仅能提高 $ell$LMs 的性能,还能增强 LLMs 的性能。我们的研究展示了 $ell$LMs 在软件工程应用中的潜力。
{"title":"Chain-of-Thought in Neural Code Generation: From and for Lightweight Language Models","authors":"Guang Yang;Yu Zhou;Xiang Chen;Xiangyu Zhang;Terry Yue Zhuo;Taolue Chen","doi":"10.1109/TSE.2024.3440503","DOIUrl":"10.1109/TSE.2024.3440503","url":null,"abstract":"Large Language Models (LLMs) have demonstrated remarkable potential in code generation. The integration of Chain of Thought (CoT) reasoning can further boost their performance. However, current CoT methods often require manual writing or LLMs with over 100 billion parameters to generate, impeding their applicability in resource-constrained scenarios. In this study, we investigate lightweight Language Models (\u0000<inline-formula><tex-math>$ell$</tex-math></inline-formula>\u0000LMs), which are defined to have fewer than 10 billion parameters. Empirically, we find that most \u0000<inline-formula><tex-math>$ell$</tex-math></inline-formula>\u0000LMs cannot generate high-quality CoTs when prompted by the few-shot method, but can take advantage of high-quality CoTs generated elsewhere to improve their performance in code generation. Based on these findings, we design a novel approach \u0000<monospace>COTTON</monospace>\u0000 which can leverage \u0000<inline-formula><tex-math>$ell$</tex-math></inline-formula>\u0000LMs to automatically generate CoTs for code generation. We synthesize new datasets and conduct extensive experiments on various benchmarks. The results show that the CoTs generated by \u0000<monospace>COTTON</monospace>\u0000 outperform the baselines in terms of automated and human evaluation metrics. In particular, the CoTs generated by \u0000<monospace>COTTON</monospace>\u0000 boost various \u0000<inline-formula><tex-math>$ell$</tex-math></inline-formula>\u0000LMs to achieve higher performance gains than those generated by LLMs such as ChatGLM (130B), and are competitive with those generated by Gemini and gpt-3.5-turbo. The results also reveal that \u0000<monospace>COTTON</monospace>\u0000 not only improves the performance of \u0000<inline-formula><tex-math>$ell$</tex-math></inline-formula>\u0000LMs, but also enhances the performance of LLMs. Our study showcases the potential of \u0000<inline-formula><tex-math>$ell$</tex-math></inline-formula>\u0000LMs in software engineering applications.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2437-2457"},"PeriodicalIF":6.5,"publicationDate":"2024-08-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141974084","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Parameterized Verification of Leader/Follower Systems via Arithmetic Constraints 通过算术约束对领导者/追随者系统进行参数化验证
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-09 DOI: 10.1109/TSE.2024.3440587
Georgios Kourtis;Clare Dixon;Michael Fisher
We introduce a variant of a formalism appearing in recent work geared towards modelling systems in which a distinguished entity (leader) orchestrates the operation of an arbitrary number of identical entities (followers). Our variant is better suited for the verification of system properties involving complex arithmetic conditions. Whereas the original formalism is translated into a tractable fragment of first-order temporal logic, aiming to utilize automated (first-order temporal logic) theorem provers for verification, our variant is translated into linear integer arithmetic, aiming to utilize satisfiability modulo theories (SMT) solvers for verification. In particular, for any given system specified in our formalism, we prove, for any natural number n, the existence of a linear integer arithmetic formula whose models are in one-to-one correspondence with certain counting abstractions (profiles) of executions of the system for n time steps. Thus, one is able to verify, for any natural number n, that all executions for n time steps of any such system have a given property by establishing that said formula logically entails the property. To highlight the practical utility of our approach, we specify and verify three consensus protocols, actively used in distributed database systems and low-power wireless networks.
我们介绍了近期工作中出现的一种形式主义的变体,该形式主义针对的是一个杰出实体(领导者)协调任意数量相同实体(追随者)运行的系统建模。我们的变体更适合验证涉及复杂运算条件的系统属性。原形式主义被转化为一阶时态逻辑的可控片段,目的是利用自动(一阶时态逻辑)定理证明器进行验证,而我们的变体被转化为线性整数运算,目的是利用可满足性模态理论(SMT)求解器进行验证。具体地说,对于我们的形式主义中指定的任何给定系统,对于任何自然数 n,我们都能证明线性整数算术公式的存在,该公式的模型与系统在 n 个时间步长内执行的某些计数抽象(轮廓)一一对应。因此,对于任何自然数 n,我们都可以通过确定上述公式在逻辑上蕴含了某一属性,来验证任何此类系统在 n 个时间步长内的所有执行都具有该属性。为了突出我们方法的实用性,我们指定并验证了分布式数据库系统和低功耗无线网络中常用的三种共识协议。
{"title":"Parameterized Verification of Leader/Follower Systems via Arithmetic Constraints","authors":"Georgios Kourtis;Clare Dixon;Michael Fisher","doi":"10.1109/TSE.2024.3440587","DOIUrl":"10.1109/TSE.2024.3440587","url":null,"abstract":"We introduce a variant of a formalism appearing in recent work geared towards modelling systems in which a distinguished entity (leader) orchestrates the operation of an arbitrary number of identical entities (followers). Our variant is better suited for the verification of system properties involving complex arithmetic conditions. Whereas the original formalism is translated into a tractable fragment of first-order temporal logic, aiming to utilize automated (first-order temporal logic) theorem provers for verification, our variant is translated into linear integer arithmetic, aiming to utilize satisfiability modulo theories (SMT) solvers for verification. In particular, for any given system specified in our formalism, we prove, for any natural number \u0000<italic>n</i>\u0000, the existence of a linear integer arithmetic formula whose models are in one-to-one correspondence with certain counting abstractions (profiles) of executions of the system for \u0000<italic>n</i>\u0000 time steps. Thus, one is able to verify, for any natural number \u0000<italic>n</i>\u0000, that all executions for \u0000<italic>n</i>\u0000 time steps of any such system have a given property by establishing that said formula logically entails the property. To highlight the practical utility of our approach, we specify and verify three consensus protocols, actively used in distributed database systems and low-power wireless networks.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2458-2471"},"PeriodicalIF":6.5,"publicationDate":"2024-08-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10632563","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141910269","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
DBInputs: Exploiting Persistent Data to Improve Automated GUI Testing DBINPUTS:利用持久性数据改进图形用户界面自动测试
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-06 DOI: 10.1109/TSE.2024.3439002
Diego Clerissi;Giovanni Denaro;Marco Mobilio;Leonardo Mariani
The generation of syntactically and semantically valid input data, able to exercise functionalities imposing constraints on the validity of the inputs, is a key challenge in automatic GUI (Graphical User Interface) testing. Existing test case generation techniques often rely on manually curated catalogs of values, although they might require significant effort to be created and maintained, and could hardly scale to applications with several input forms. Alternatively, it is possible to extract values from external data sources, such as the Web or publicly available knowledge bases. However, external sources are unlikely to provide the domain-specific and application-specific data that are often required to thoroughly exercise applications. This paper proposes DBInputs, a novel approach that automatically identifies domain-specific and application-specific inputs to effectively fulfill the validity constraints present in the tested GUI screens. The approach exploits syntactic and semantic similarities between the identifiers of the input fields shown on GUI screens and those of the tables of the target GUI application database, and extracts valid inputs from such database, automatically resolving the mismatch between the user interface and the database schema. DBInputs can properly cope with system testing and maintenance testing efforts, since databases are naturally and inexpensively available in those phases. Our experiments with 4 Web applications and 11 Mobile apps provide evidence that DBInputs can outperform techniques like random input selection and Link, a competing approach for searching inputs from knowledge bases, in both Web and Mobile domains.
生成在语法和语义上有效的输入数据,使其能够执行对输入有效性施加限制的功能,是图形用户界面(GUI)自动测试的一个关键挑战。现有的测试用例生成技术通常依赖于人工编辑的值目录,但这些目录的创建和维护可能需要大量的人力物力,而且很难扩展到具有多种输入形式的应用程序。另外,也可以从外部数据源(如网络或公开可用的知识库)中提取值。然而,外部数据源不太可能提供特定领域和特定应用的数据,而这些数据往往是彻底演练应用程序所必需的。本文提出的 DBInputs 是一种新颖的方法,它能自动识别特定领域和特定应用的输入,以有效满足测试的图形用户界面屏幕中存在的有效性约束。该方法利用图形用户界面屏幕上显示的输入字段标识符与目标图形用户界面应用程序数据库表标识符之间在语法和语义上的相似性,从数据库中提取有效输入,自动解决用户界面与数据库模式之间的不匹配问题。DBInputs 可以很好地应对系统测试和维护测试工作,因为在这些阶段,数据库是天然的、廉价的。我们在 4 个网络应用程序和 11 个移动应用中进行的实验证明,在网络和移动领域,DBInputs 的性能都优于随机输入选择和 Link(一种从知识库中搜索输入的竞争方法)等技术。
{"title":"DBInputs: Exploiting Persistent Data to Improve Automated GUI Testing","authors":"Diego Clerissi;Giovanni Denaro;Marco Mobilio;Leonardo Mariani","doi":"10.1109/TSE.2024.3439002","DOIUrl":"10.1109/TSE.2024.3439002","url":null,"abstract":"The generation of syntactically and semantically valid input data, able to exercise functionalities imposing constraints on the validity of the inputs, is a key challenge in automatic GUI (Graphical User Interface) testing. Existing test case generation techniques often rely on manually curated catalogs of values, although they might require significant effort to be created and maintained, and could hardly scale to applications with several input forms. Alternatively, it is possible to extract values from external data sources, such as the Web or publicly available knowledge bases. However, external sources are unlikely to provide the domain-specific and application-specific data that are often required to thoroughly exercise applications. This paper proposes \u0000<sc>DBInputs</small>\u0000, a novel approach that automatically identifies domain-specific and application-specific inputs to effectively fulfill the validity constraints present in the tested GUI screens. The approach exploits syntactic and semantic similarities between the identifiers of the input fields shown on GUI screens and those of the tables of the target GUI application database, and extracts valid inputs from such database, automatically resolving the mismatch between the user interface and the database schema. \u0000<sc>DBInputs</small>\u0000 can properly cope with system testing and maintenance testing efforts, since databases are naturally and inexpensively available in those phases. Our experiments with 4 Web applications and 11 Mobile apps provide evidence that \u0000<sc>DBInputs</small>\u0000 can outperform techniques like random input selection and \u0000<sc>Link</small>\u0000, a competing approach for searching inputs from knowledge bases, in both Web and Mobile domains.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2412-2436"},"PeriodicalIF":6.5,"publicationDate":"2024-08-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10624678","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141899593","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Pearl: A Multi-Derivation Approach to Efficient CFL-Reachability Solving PEARL:高效 CFL 可及性求解的多重衍生方法
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-05 DOI: 10.1109/TSE.2024.3437684
Chenghang Shi;Haofeng Li;Yulei Sui;Jie Lu;Lian Li;Jingling Xue
Context-free language (CFL) reachability is a fundamental framework for formulating program analyses. CFL-reachability analysis works on top of an edge-labeled graph by deriving reachability relations and adding them as labeled edges to the graph. Existing CFL-reachability algorithms typically adopt a single-reachability relation derivation (SRD) strategy, i.e., one reachability relation is derived at a time. Unfortunately, this strategy can lead to redundancy, hindering the efficiency of the analysis. To address this problem, this paper proposes Pearl, a multi-derivation approach that reduces derivation redundancy for CFL-reachability solving, which significantly improves the efficiency of CFL-reachability analysis. Our key insight is that multiple edges can be simultaneously derived via batch propagation of reachability relations. We also tailor our multi-derivation approach to tackle transitive relations that frequently arise when solving CFL-reachability. Specifically, we present a highly efficient transitive-aware variant, PearlPG, which enhances Pearl with propagation graphs, a lightweight but effective graph representation, to further diminish redundant derivations. We evaluate the performance of our approach on two clients, i.e., context-sensitive value-flow analysis and field-sensitive alias analysis for C/C++. By eliminating a large amount of redundancy, our approach outperforms two baselines including the standard CFL-reachability algorithm and a state-of-the-art solver Pocr specialized for fast transitivity solving. In particular, the empirical results demonstrate that, for value-flow analysis and alias analysis respectively, PearlPG runs 3.09$times$ faster on average (up to 4.44$times$) and 2.25$times$ faster on average (up to 3.31$times$) than Pocr, while also consuming less memory.
无上下文语言(CFL)可达性是制定程序分析的基本框架。CFL 可及性分析是在边标签图的基础上进行的,它推导出可及性关系,并将其作为标签边添加到图中。现有的 CFL 可及性算法通常采用单可及性关系推导(SRD)策略,即一次推导一个可及性关系。遗憾的是,这种策略会导致冗余,影响分析效率。为了解决这个问题,本文提出了一种多推导方法 Pearl,它可以减少 CFL可达性求解的推导冗余,从而显著提高 CFL可达性分析的效率。我们的主要见解是,通过可达性关系的批量传播,可以同时推导出多条边。我们还调整了多重推导方法,以解决 CFL 可及性求解中经常出现的传递关系问题。具体来说,我们提出了一种高效的传递感知变体 PearlPG,它通过传播图(一种轻量级但有效的图表示法)增强了 Pearl,从而进一步减少了冗余推导。我们在两个客户端上评估了我们方法的性能,即 C/C++ 的上下文敏感值流分析和字段敏感别名分析。通过消除大量冗余,我们的方法优于两种基线方法,包括标准 CFL 可及性算法和专门用于快速反式求解的最先进求解器 Pocr。经验结果特别表明,对于值流分析和别名分析,PearlPG 的平均运行速度比 Pocr 快 3.09 美元/次(最多 4.44 美元/次)和 2.25 美元/次(最多 3.31 美元/次),同时消耗的内存也更少。
{"title":"Pearl: A Multi-Derivation Approach to Efficient CFL-Reachability Solving","authors":"Chenghang Shi;Haofeng Li;Yulei Sui;Jie Lu;Lian Li;Jingling Xue","doi":"10.1109/TSE.2024.3437684","DOIUrl":"10.1109/TSE.2024.3437684","url":null,"abstract":"Context-free language (CFL) reachability is a fundamental framework for formulating program analyses. CFL-reachability analysis works on top of an edge-labeled graph by deriving reachability relations and adding them as labeled edges to the graph. Existing CFL-reachability algorithms typically adopt a single-reachability relation derivation (SRD) strategy, i.e., one reachability relation is derived at a time. Unfortunately, this strategy can lead to redundancy, hindering the efficiency of the analysis. To address this problem, this paper proposes \u0000<small>Pearl</small>\u0000, a \u0000<i>multi-derivation</i>\u0000 approach that reduces derivation redundancy for CFL-reachability solving, which significantly improves the efficiency of CFL-reachability analysis. Our key insight is that multiple edges can be simultaneously derived via batch propagation of reachability relations. We also tailor our multi-derivation approach to tackle transitive relations that frequently arise when solving CFL-reachability. Specifically, we present a highly efficient transitive-aware variant, \u0000<small>Pearl<sup>PG</sup></small>\u0000, which enhances \u0000<small>Pearl</small>\u0000 with \u0000<i>propagation graphs</i>\u0000, a lightweight but effective graph representation, to further diminish redundant derivations. We evaluate the performance of our approach on two clients, i.e., context-sensitive value-flow analysis and field-sensitive alias analysis for C/C++. By eliminating a large amount of redundancy, our approach outperforms two baselines including the standard CFL-reachability algorithm and a state-of-the-art solver \u0000<small>Pocr</small>\u0000 specialized for fast transitivity solving. In particular, the empirical results demonstrate that, for value-flow analysis and alias analysis respectively, \u0000<small>Pearl<sup>PG</sup></small>\u0000 runs 3.09\u0000<inline-formula><tex-math>$times$</tex-math></inline-formula>\u0000 faster on average (up to 4.44\u0000<inline-formula><tex-math>$times$</tex-math></inline-formula>\u0000) and 2.25\u0000<inline-formula><tex-math>$times$</tex-math></inline-formula>\u0000 faster on average (up to 3.31\u0000<inline-formula><tex-math>$times$</tex-math></inline-formula>\u0000) than \u0000<small>Pocr</small>\u0000, while also consuming less memory.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2379-2397"},"PeriodicalIF":6.5,"publicationDate":"2024-08-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141895696","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
AddressWatcher: Sanitizer-Based Localization of Memory Leak Fixes 地址观察者基于消毒器的内存泄漏修复本地化
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-05 DOI: 10.1109/TSE.2024.3438119
Aniruddhan Murali;Mahmoud Alfadel;Meiyappan Nagappan;Meng Xu;Chengnian Sun
Memory leak bugs are a major problem in C/C++ programs. They occur when memory objects are not deallocated. Developers need to manually deallocate these objects to prevent memory leaks. As such, several techniques have been proposed to automatically fix memory leaks. Although proposed approaches have merit in automatically fixing memory leaks, they present limitations. Static-based approaches attempt to trace the complete semantics of memory object across all paths. However, they have scalability-related challenges when the target program has a large number of paths (path explosion). On the other hand, dynamic approaches can spell out precise semantics of memory object only on a single execution path (it does not consider multiple execution paths). In this paper, we complement prior approaches by designing and implementing a novel framework named AddressWatcher. AddressWatcher allows the semantics of a memory object to be tracked on multiple execution paths. Addresswatcher accomplishes this by using a leak database that allows one to store and compare different execution paths of a leak over several test cases. Also, AddressWatcher performs lightweight instrumentation during compile time that is utilized during the program execution to watch and track memory leak read/writes. We conduct an evaluation of AddressWatcher over five popular packages, namely binutils, openssh, tmux, openssl and git. In 23 out of 50 real-world memory leak bugs, AddressWatcher correctly points to a free location to fix memory leaks. Finally, we submit 25 Pull Requests across 12 popular OSS repositories using AddressWatcher suggestions. Among these, 21 were merged leading to 5 open issues being addressed. In fact, our critical fix prompted a new version release for the calc repository, a program used to find large primes. Furthermore, our contributions through these PRs sparked intense discussions and appreciation in various repositories such as coturn, h2o, and radare2.
内存泄漏 bug 是 C/C++ 程序中的一个主要问题。它们发生在内存对象未被重新分配的情况下。开发人员需要手动去分配这些对象,以防止内存泄漏。因此,人们提出了几种自动修复内存泄漏的技术。虽然提出的方法在自动修复内存泄漏方面有其优点,但也存在局限性。基于静态的方法试图跟踪内存对象在所有路径上的完整语义。然而,当目标程序有大量路径(路径爆炸)时,它们就会面临可扩展性方面的挑战。另一方面,动态方法只能在单个执行路径上阐明内存对象的精确语义(它不考虑多个执行路径)。在本文中,我们设计并实现了一个名为 AddressWatcher 的新框架,对之前的方法进行了补充。AddressWatcher 允许在多条执行路径上跟踪内存对象的语义。Addresswatcher 通过使用泄漏数据库来实现这一点,该数据库允许存储和比较泄漏在多个测试用例中的不同执行路径。此外,AddressWatcher 还能在编译期间执行轻量级工具,并在程序执行期间利用这些工具观察和跟踪内存泄漏读/写。我们在 binutils、openssh、tmux、openssl 和 git 这五个流行软件包上对 AddressWatcher 进行了评估。在 50 个实际内存泄漏 bug 中的 23 个中,AddressWatcher 能正确指向空闲位置以修复内存泄漏。最后,我们使用 AddressWatcher 的建议在 12 个流行的开放源码软件仓库中提交了 25 个 Pull Request。其中 21 个请求被合并,导致 5 个开放问题得到解决。事实上,我们的关键问题修复促使 calc 软件源发布了新版本,这是一个用于查找大素数的程序。此外,我们通过这些 PR 所做的贡献在 coturn、h2o 和 radare2 等多个软件源中引发了激烈的讨论和赞赏。
{"title":"AddressWatcher: Sanitizer-Based Localization of Memory Leak Fixes","authors":"Aniruddhan Murali;Mahmoud Alfadel;Meiyappan Nagappan;Meng Xu;Chengnian Sun","doi":"10.1109/TSE.2024.3438119","DOIUrl":"10.1109/TSE.2024.3438119","url":null,"abstract":"Memory leak bugs are a major problem in C/C++ programs. They occur when memory objects are not deallocated. Developers need to manually deallocate these objects to prevent memory leaks. As such, several techniques have been proposed to automatically fix memory leaks. Although proposed approaches have merit in automatically fixing memory leaks, they present limitations. Static-based approaches attempt to trace the complete semantics of memory object across all paths. However, they have scalability-related challenges when the target program has a large number of paths (path explosion). On the other hand, dynamic approaches can spell out precise semantics of memory object only on a single execution path (it does not consider multiple execution paths). In this paper, we complement prior approaches by designing and implementing a novel framework named \u0000<italic>AddressWatcher</i>\u0000. AddressWatcher allows the semantics of a memory object to be tracked on multiple execution paths. Addresswatcher accomplishes this by using a leak database that allows one to store and compare different execution paths of a leak over several test cases. Also, AddressWatcher performs lightweight instrumentation during compile time that is utilized during the program execution to watch and track memory leak read/writes. We conduct an evaluation of AddressWatcher over five popular packages, namely binutils, openssh, tmux, openssl and git. In 23 out of 50 real-world memory leak bugs, AddressWatcher correctly points to a free location to fix memory leaks. Finally, we submit 25 Pull Requests across 12 popular OSS repositories using AddressWatcher suggestions. Among these, 21 were merged leading to 5 open issues being addressed. In fact, our critical fix prompted a new version release for the calc repository, a program used to find large primes. Furthermore, our contributions through these PRs sparked intense discussions and appreciation in various repositories such as coturn, h2o, and radare2.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2398-2411"},"PeriodicalIF":6.5,"publicationDate":"2024-08-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141895639","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Controlled Experiment in Age and Gender Bias When Reading Technical Articles in Software Engineering 阅读软件工程技术文章时的年龄和性别偏见控制实验
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-05 DOI: 10.1109/TSE.2024.3437355
Anda Liang;Emerson Murphy-Hill;Westley Weimer;Yu Huang
Online platforms and communities are a critical part of modern software engineering, yet are often affected by human biases. While previous studies investigated human biases and their potential harms against the efficiency and fairness of online communities, they have mainly focused on the open source and Q & A platforms, such as GitHub and Stack Overflow, but overlooked the audience-focused online platforms for delivering programming and SE-related technical articles, where millions of software engineering practitioners share, seek for, and learn from high-quality software engineering articles (i.e., technical articles for SE). Furthermore, most of the previous work has revealed gender and race bias, but we have little knowledge about the effect of age on software engineering practice. In this paper, we propose to investigate the effect of authors’ demographic information (gender and age) on the evaluation of technical articles on software engineering and potential behavioral differences among participants. We conducted a survey-based and controlled human study and collected responses from 540 participants to investigate developers’ evaluation of technical articles for software engineering. By controlling the gender and age of the author profiles of technical articles for SE, we found that raters tend to have more positive content depth evaluations for younger male authors when compared to older male authors and that male participants conduct technical article evaluations faster than female participants, consistent with prior study findings. Surprisingly, different from other software engineering evaluation activities (e.g., code review, pull request, etc.), we did not find a significant difference in the genders of authors on the evaluation outcome of technical articles in SE.
在线平台和社区是现代软件工程的重要组成部分,但往往受到人为偏见的影响。虽然以往的研究调查了人为偏见及其对在线社区的效率和公平性的潜在危害,但这些研究主要集中在开源和 Q & A 平台,如 GitHub 和 Stack Overflow,却忽略了以受众为中心的在线平台,这些平台提供编程和 SE 相关的技术文章,数百万软件工程从业人员在这些平台上分享、寻求和学习高质量的软件工程文章(即 SE 技术文章)。此外,以前的工作大多揭示了性别和种族偏见,但我们对年龄对软件工程实践的影响知之甚少。在本文中,我们拟研究作者的人口统计学信息(性别和年龄)对软件工程技术文章评价的影响,以及参与者之间潜在的行为差异。我们开展了一项以调查为基础的对照人类研究,收集了 540 名参与者的回答,以调查开发人员对软件工程技术文章的评价。通过控制软件工程技术文章作者的性别和年龄,我们发现,与年长的男性作者相比,评分者倾向于对年轻男性作者的内容深度做出更积极的评价,而且男性参与者比女性参与者更快地进行技术文章评价,这与之前的研究结果一致。令人惊讶的是,与其他软件工程评估活动(如代码审查、拉取请求等)不同,我们没有发现作者性别在 SE 技术文章评估结果上的显著差异。
{"title":"A Controlled Experiment in Age and Gender Bias When Reading Technical Articles in Software Engineering","authors":"Anda Liang;Emerson Murphy-Hill;Westley Weimer;Yu Huang","doi":"10.1109/TSE.2024.3437355","DOIUrl":"10.1109/TSE.2024.3437355","url":null,"abstract":"Online platforms and communities are a critical part of modern software engineering, yet are often affected by human biases. While previous studies investigated human biases and their potential harms against the efficiency and fairness of online communities, they have mainly focused on the open source and \u0000<italic>Q &amp; A</i>\u0000 platforms, such as \u0000<italic>GitHub</i>\u0000 and \u0000<italic>Stack Overflow</i>\u0000, but overlooked the audience-focused online platforms for delivering programming and SE-related technical articles, where millions of software engineering practitioners share, seek for, and learn from high-quality software engineering articles (i.e., \u0000<italic>technical articles</i>\u0000 for SE). Furthermore, most of the previous work has revealed gender and race bias, but we have little knowledge about the effect of age on software engineering practice. In this paper, we propose to investigate the effect of authors’ demographic information (gender and age) on the evaluation of technical articles on software engineering and potential behavioral differences among participants. We conducted a survey-based and controlled human study and collected responses from 540 participants to investigate developers’ evaluation of technical articles for software engineering. By controlling the gender and age of the author profiles of technical articles for SE, we found that raters tend to have more positive content depth evaluations for younger male authors when compared to older male authors and that male participants conduct technical article evaluations faster than female participants, consistent with prior study findings. Surprisingly, different from other software engineering evaluation activities (e.g., code review, pull request, etc.), we did not find a significant difference in the genders of authors on the evaluation outcome of technical articles in SE.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 10","pages":"2498-2511"},"PeriodicalIF":6.5,"publicationDate":"2024-08-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10623245","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141895697","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Long Live the Image: On Enabling Resilient Production Database Containers for Microservice Applications 图像万岁关于为微服务应用程序启用弹性生产数据库容器
IF 6.5 1区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-01 DOI: 10.1109/TSE.2024.3436623
Zheng Li;Nicolás Saldías-Vallejos;Diego Seco;María Andrea Rodríguez;Rajiv Ranjan
Microservices architecture advocates decentralized data ownership for building software systems. Particularly, in the Database per Service pattern, each microservice is supposed to maintain its own database and to handle the data related to its functionality. When implementing microservices in practice, however, there seems to be a paradox: The de facto technology (i.e., containerization) for microservice implementation is claimed to be unsuitable for the microservice component (i.e., database) in production environments, mainly due to the data persistence issues (e.g., dangling volumes) and security concerns. As a result, the existing discussions generally suggest replacing database containers with cloud database services, while leaving the on-premises microservice implementation out of consideration. After identifying three statelessness-dominant application scenarios, we proposed container-native data persistence as a conditional solution to enable resilient database containers in production. In essence, this data persistence solution distinguishes stateless data access (i.e., reading) from stateful data processing (i.e., creating, updating, and deleting), and thus it aims at the development of stateless microservices for suitable applications. In addition to developing our proposal, this research is particularly focused on its validation, via prototyping the solution and evaluating its performance, and via applying this solution to two real-world microservice applications. From the industrial perspective, the validation results have proved the feasibility, usability, and efficiency of fully containerized microservices for production in applicable situations. From the academic perspective, this research has shed light on the operation-side micro-optimization of individual microservices, which fundamentally expands the scope of “software micro-optimization” and reveals new research opportunities.
微服务架构主张在构建软件系统时分散数据所有权。特别是在 "每服务数据库 "模式中,每个微服务都应该维护自己的数据库,并处理与其功能相关的数据。然而,在实际实施微服务时,似乎出现了一个悖论:用于微服务实施的事实技术(即容器化)被认为不适合生产环境中的微服务组件(即数据库),主要原因是数据持久性问题(如悬空卷)和安全问题。因此,现有的讨论通常建议用云数据库服务取代数据库容器,而不考虑内部微服务的实现。在确定了三种以无状态为主的应用场景后,我们提出了容器原生数据持久化作为一种有条件的解决方案,以在生产中启用弹性数据库容器。从本质上讲,这种数据持久化解决方案将无状态数据访问(即读取)与有状态数据处理(即创建、更新和删除)区分开来,因此它旨在为合适的应用开发无状态微服务。除了开发我们的提案,本研究还特别关注其验证,通过原型设计解决方案和评估其性能,并将该解决方案应用于两个真实世界的微服务应用。从工业角度来看,验证结果证明了在适用情况下生产完全容器化微服务的可行性、可用性和效率。从学术角度看,这项研究揭示了单个微服务的操作侧微优化,从根本上拓展了 "软件微优化 "的范围,并揭示了新的研究机会。
{"title":"Long Live the Image: On Enabling Resilient Production Database Containers for Microservice Applications","authors":"Zheng Li;Nicolás Saldías-Vallejos;Diego Seco;María Andrea Rodríguez;Rajiv Ranjan","doi":"10.1109/TSE.2024.3436623","DOIUrl":"10.1109/TSE.2024.3436623","url":null,"abstract":"Microservices architecture advocates decentralized data ownership for building software systems. Particularly, in the Database per Service pattern, each microservice is supposed to maintain its own database and to handle the data related to its functionality. When implementing microservices in practice, however, there seems to be a paradox: The de facto technology (i.e., containerization) for microservice implementation is claimed to be unsuitable for the microservice component (i.e., database) in production environments, mainly due to the data persistence issues (e.g., dangling volumes) and security concerns. As a result, the existing discussions generally suggest replacing database containers with cloud database services, while leaving the on-premises microservice implementation out of consideration. After identifying three statelessness-dominant application scenarios, we proposed container-native data persistence as a conditional solution to enable resilient database containers in production. In essence, this data persistence solution distinguishes stateless data access (i.e., reading) from stateful data processing (i.e., creating, updating, and deleting), and thus it aims at the development of stateless microservices for suitable applications. In addition to developing our proposal, this research is particularly focused on its validation, via prototyping the solution and evaluating its performance, and via applying this solution to two real-world microservice applications. From the industrial perspective, the validation results have proved the feasibility, usability, and efficiency of fully containerized microservices for production in applicable situations. From the academic perspective, this research has shed light on the operation-side micro-optimization of individual microservices, which fundamentally expands the scope of “software micro-optimization” and reveals new research opportunities.","PeriodicalId":13324,"journal":{"name":"IEEE Transactions on Software Engineering","volume":"50 9","pages":"2363-2378"},"PeriodicalIF":6.5,"publicationDate":"2024-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141877537","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":1,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
IEEE Transactions on Software Engineering
全部 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