首页 > 最新文献

Journal of Systems and Software最新文献

英文 中文
Applying short text topic models to instant messaging communication of software developers 将短文主题模型应用于软件开发人员的即时信息交流
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-27 DOI: 10.1016/j.jss.2024.112111
Camila Costa Silva, Matthias Galster, Fabian Gilson

When modeling topics from chat messages of developer instant messaging communication, individual chat messages are short text documents. Our study aims at understanding how short text topic models perform with conversations from developer instant messaging. We applied four models to nine Gitter chat rooms (with sizes ranging from 100 to 160,000 messages). To assess the quality of topics and identify the best performing models, we compared topics based on four metrics for topic coherence. Furthermore, for a subset of Gitter chat rooms we used two human-based assessments: intrusion tasks with 18 experts analyzing 40 topics each, and topic naming (assigning a name to a topic that summarizes its main concept) with eight additional experts naming 60 topics each. Models performed differently in terms of coherence metrics and human assessment depending on the corpus (small, medium or large chat room). Our findings offer recommendations for the selection and use of short text topic models with developer chat messages based on characteristics of models and their performance with different sizes of corpora, and based on different strategies to assess topic quality.

在对开发人员即时通讯的聊天信息进行主题建模时,单个聊天信息都是短文本文档。我们的研究旨在了解短文本主题模型在开发人员即时通讯对话中的表现。我们在九个 Gitter 聊天室(聊天信息量从 ≈100 到 ≈160,000)中应用了四种模型。为了评估话题的质量并找出性能最佳的模型,我们根据话题一致性的四个指标对话题进行了比较。此外,对于 Gitter 聊天室子集,我们还采用了两种基于人工的评估方法:入侵任务(由 18 位专家分别分析 40 个主题)和主题命名(为主题命名,概括其主要概念)(由另外 8 位专家分别命名 60 个主题)。根据语料库(小型、中型或大型聊天室)的不同,模型在一致性指标和人工评估方面的表现也不同。我们的研究结果根据模型的特点及其在不同规模语料库中的表现,以及不同的主题质量评估策略,为选择和使用开发者聊天信息的短文本主题模型提供了建议。
{"title":"Applying short text topic models to instant messaging communication of software developers","authors":"Camila Costa Silva,&nbsp;Matthias Galster,&nbsp;Fabian Gilson","doi":"10.1016/j.jss.2024.112111","DOIUrl":"https://doi.org/10.1016/j.jss.2024.112111","url":null,"abstract":"<div><p>When modeling topics from chat messages of developer instant messaging communication, individual chat messages are short text documents. Our study aims at understanding how short text topic models perform with conversations from developer instant messaging. We applied four models to nine Gitter chat rooms (with sizes ranging from <span><math><mo>≈</mo></math></span>100 to <span><math><mo>≈</mo></math></span>160,000 messages). To assess the quality of topics and identify the best performing models, we compared topics based on four metrics for topic coherence. Furthermore, for a subset of Gitter chat rooms we used two human-based assessments: <em>intrusion tasks</em> with 18 experts analyzing 40 topics each, and <em>topic naming</em> (assigning a name to a topic that summarizes its main concept) with eight additional experts naming 60 topics each. Models performed differently in terms of coherence metrics <em>and</em> human assessment depending on the corpus (small, medium or large chat room). Our findings offer recommendations for the selection and use of short text topic models with developer chat messages based on characteristics of models and their performance with different sizes of corpora, and based on different strategies to assess topic quality.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0164121224001560/pdfft?md5=2b70d1a9e9cc0730f4d2f722aa3e48ad&pid=1-s2.0-S0164121224001560-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141298107","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Deep semi-supervised learning for recovering traceability links between issues and commits 通过深度半监督学习恢复问题与提交之间的可追溯性联系
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-24 DOI: 10.1016/j.jss.2024.112109
Jianfei Zhu , Guanping Xiao , Zheng Zheng , Yulei Sui

Traceability links between issues and commits record valuable information about the evolutionary history of software projects. Unfortunately, these links are often missing. While deep learning stands as the current state-of-the-art (SOTA) in automated traceability links recovery (TLR), its effectiveness is faced with the practical problem of limited labeled data during training. To overcome this challenge, in this paper, we propose DSSLink, a novel method based on deep semi-supervised learning, enhancing deep-learning-based link recovery tasks. DSSLink first learns knowledge from labeled data through pre-trained model and then leverages deep semi-supervised learning to infer pseudo-labels on unlabeled data. The extended dataset of pseudo-labeled and labeled data re-trains the deep learning model in an iterative process. Our extensive evaluations are conducted on two SOTA traceability methods (T-BERT and BTLink) across four GitHub projects and 11 Apache projects. Specifically, the maximum F1-score improvements for GitHub and Apache projects reached 22.9% and 43.5%, respectively. Evaluation results show that DSSLink is effective in enhancing TLR performance and outperforms TraceFUN, a recent approach that utilizes unlabeled data for TLR. The source code of DSSLink is available at https://github.com/DSSLink.

Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board.

问题和提交之间的可追溯性链接记录了有关软件项目演变历史的宝贵信息。遗憾的是,这些链接经常丢失。虽然深度学习是目前自动恢复可追溯性链接(TLR)的最先进方法(SOTA),但其有效性面临着训练过程中标记数据有限的实际问题。为了克服这一难题,我们在本文中提出了一种基于深度半监督学习的新方法 DSSLink,以增强基于深度学习的链接恢复任务。DSSLink 首先通过预训练模型从标签数据中学习知识,然后利用深度半监督学习推断未标签数据上的伪标签。在迭代过程中,由伪标签数据和标签数据组成的扩展数据集会重新训练深度学习模型。我们在四个 GitHub 项目和 11 个 Apache 项目中对两种 SOTA 可追溯性方法(T-BERT 和 BTLink)进行了广泛的评估。具体而言,GitHub 和 Apache 项目的最大 F1 分数改进率分别达到了 22.9% 和 43.5%。评估结果表明,DSSLink 能有效提高 TLR 性能,并优于 TraceFUN(最近一种利用未标记数据进行 TLR 的方法)。DSSLink 的源代码可在 https://github.com/DSSLink.Editor 上获取。注:开放科学材料已通过《系统与软件期刊》开放科学委员会的验证。
{"title":"Deep semi-supervised learning for recovering traceability links between issues and commits","authors":"Jianfei Zhu ,&nbsp;Guanping Xiao ,&nbsp;Zheng Zheng ,&nbsp;Yulei Sui","doi":"10.1016/j.jss.2024.112109","DOIUrl":"10.1016/j.jss.2024.112109","url":null,"abstract":"<div><p>Traceability links between issues and commits record valuable information about the evolutionary history of software projects. Unfortunately, these links are often missing. While deep learning stands as the current state-of-the-art (SOTA) in automated traceability links recovery (TLR), its effectiveness is faced with the practical problem of limited labeled data during training. To overcome this challenge, in this paper, we propose <span>DSSLink</span>, a novel method based on deep semi-supervised learning, enhancing deep-learning-based link recovery tasks. <span>DSSLink</span> first learns knowledge from labeled data through pre-trained model and then leverages deep semi-supervised learning to infer pseudo-labels on unlabeled data. The extended dataset of pseudo-labeled and labeled data re-trains the deep learning model in an iterative process. Our extensive evaluations are conducted on two SOTA traceability methods (T-BERT and BTLink) across four GitHub projects and 11 Apache projects. Specifically, the maximum F1-score improvements for GitHub and Apache projects reached 22.9% and 43.5%, respectively. Evaluation results show that <span>DSSLink</span> is effective in enhancing TLR performance and outperforms TraceFUN, a recent approach that utilizes unlabeled data for TLR. The source code of <span>DSSLink</span> is available at <span>https://github.com/DSSLink</span><svg><path></path></svg>.</p><p><em>Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board</em>.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141137308","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Automating the correctness assessment of AI-generated code for security contexts 自动评估人工智能生成的代码在安全方面的正确性
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-24 DOI: 10.1016/j.jss.2024.112113
Domenico Cotroneo, Alessio Foggia, Cristina Improta, Pietro Liguori, Roberto Natella

Evaluating the correctness of code generated by AI is a challenging open problem. In this paper, we propose a fully automated method, named ACCA, to evaluate the correctness of AI-generated code for security purposes. The method uses symbolic execution to assess whether the AI-generated code behaves as a reference implementation. We use ACCA to assess four state-of-the-art models trained to generate security-oriented assembly code and compare the results of the evaluation with different baseline solutions, including output similarity metrics, widely used in the field, and the well-known ChatGPT, the AI-powered language model developed by OpenAI.

Our experiments show that our method outperforms the baseline solutions and assesses the correctness of the AI-generated code similar to the human-based evaluation, which is considered the ground truth for the assessment in the field. Moreover, ACCA has a very strong correlation with the human evaluation (Pearson’s correlation coefficient r=0.84 on average). Finally, since it is a full y automated solution that does not require any human intervention, the proposed method performs the assessment of every code snippet in 0.17 s on average, which is definitely lower than the average time required by human analysts to manually inspect the code, based on our experience.

评估人工智能生成的代码的正确性是一个具有挑战性的开放问题。在本文中,我们提出了一种名为 ACCA 的全自动方法,用于评估人工智能生成代码的正确性,以达到安全目的。该方法使用符号执行来评估人工智能生成的代码是否与参考实现一样。我们使用 ACCA 评估了四种最先进的模型,这些模型经过训练可生成面向安全的汇编代码,并将评估结果与不同的基准解决方案进行了比较,其中包括该领域广泛使用的输出相似度度量,以及著名的 ChatGPT(由 OpenAI 开发的人工智能语言模型)。我们的实验表明,我们的方法优于基准解决方案,对人工智能生成代码正确性的评估与基于人类的评估相似,而人类评估被认为是该领域评估的基本事实。此外,ACCA 与人类评估具有很强的相关性(皮尔逊相关系数 r=0.84)。最后,由于它是一种不需要人工干预的全自动解决方案,因此根据我们的经验,所提出的方法平均只需 ∼0.17 秒就能完成对每个代码片段的评估,这绝对低于人工分析师手动检查代码所需的平均时间。
{"title":"Automating the correctness assessment of AI-generated code for security contexts","authors":"Domenico Cotroneo,&nbsp;Alessio Foggia,&nbsp;Cristina Improta,&nbsp;Pietro Liguori,&nbsp;Roberto Natella","doi":"10.1016/j.jss.2024.112113","DOIUrl":"https://doi.org/10.1016/j.jss.2024.112113","url":null,"abstract":"<div><p>Evaluating the correctness of code generated by AI is a challenging open problem. In this paper, we propose a fully automated method, named <em>ACCA</em>, to evaluate the correctness of AI-generated code for security purposes. The method uses symbolic execution to assess whether the AI-generated code behaves as a reference implementation. We use <em>ACCA</em> to assess four state-of-the-art models trained to generate security-oriented assembly code and compare the results of the evaluation with different baseline solutions, including output similarity metrics, widely used in the field, and the well-known ChatGPT, the AI-powered language model developed by OpenAI.</p><p>Our experiments show that our method outperforms the baseline solutions and assesses the correctness of the AI-generated code similar to the human-based evaluation, which is considered the ground truth for the assessment in the field. Moreover, <em>ACCA</em> has a very strong correlation with the human evaluation (Pearson’s correlation coefficient <span><math><mrow><mi>r</mi><mo>=</mo><mn>0</mn><mo>.</mo><mn>84</mn></mrow></math></span> on average). Finally, since it is a full y automated solution that does not require any human intervention, the proposed method performs the assessment of every code snippet in <span><math><mrow><mo>∼</mo><mn>0</mn><mo>.</mo><mn>17</mn></mrow></math></span> s on average, which is definitely lower than the average time required by human analysts to manually inspect the code, based on our experience.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0164121224001584/pdfft?md5=c7734d2003ab22f80edc9da32fb97026&pid=1-s2.0-S0164121224001584-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141298106","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Mining for cost awareness in the infrastructure as code artifacts of cloud-based applications: An exploratory study 在基于云的应用程序的基础设施代码工件中挖掘成本意识:探索性研究
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-24 DOI: 10.1016/j.jss.2024.112112
Daniel Feitosa, Matei-Tudor Penca, Massimiliano Berardi, Rares-Dorian Boza, Vasilios Andrikopoulos

Context:

Cloud computing’s rise as the primary platform for software development and delivery is largely driven by the potential cost savings. However, it is surprising that no empirical evidence has been collected to determine whether cost awareness permeates the development process and how it manifests in practice.

Objective:

This study aims to provide empirical evidence of cost awareness by mining open source repositories of cloud-based applications. The focus is on Infrastructure-as-Code artifacts that automate software (re)deployment on the cloud.

Methods:

A systematic examination of 152735 repositories yielded 2010 relevant hits. We then analyzed 538 relevant commits and 208 relevant issues using inductive and deductive coding and corroborated findings with discussions from Stack Overflow.

Results:

The findings indicate that developers are not only concerned with the cost of their application deployments but also take actions to reduce these costs beyond selecting cheaper cloud services. We also identify research areas for future consideration.

Conclusion:

Although we focus on a particular Infrastructure-as-Code technology (Terraform), the findings can be applicable to cloud-based application development in general. The provided empirical grounding can serve developers seeking to reduce costs through service selection, resource allocation, deployment optimization, and other techniques.

背景:云计算作为软件开发和交付的主要平台,其崛起在很大程度上是由潜在的成本节约所推动的。目标:本研究旨在通过挖掘基于云计算的应用程序的开源资源库,为成本意识提供实证证据。方法:我们对152735个资源库进行了系统检查,发现了2010个相关点击。结果:研究结果表明,开发人员不仅关注其应用程序部署的成本,而且还采取行动降低这些成本,而不仅仅是选择更便宜的云服务。结论:尽管我们关注的是一种特定的基础设施即代码技术(Terraform),但研究结果可普遍适用于基于云的应用程序开发。所提供的经验基础可以帮助开发人员通过服务选择、资源分配、部署优化和其他技术来降低成本。
{"title":"Mining for cost awareness in the infrastructure as code artifacts of cloud-based applications: An exploratory study","authors":"Daniel Feitosa,&nbsp;Matei-Tudor Penca,&nbsp;Massimiliano Berardi,&nbsp;Rares-Dorian Boza,&nbsp;Vasilios Andrikopoulos","doi":"10.1016/j.jss.2024.112112","DOIUrl":"https://doi.org/10.1016/j.jss.2024.112112","url":null,"abstract":"<div><h3>Context:</h3><p>Cloud computing’s rise as the primary platform for software development and delivery is largely driven by the potential cost savings. However, it is surprising that no empirical evidence has been collected to determine whether cost awareness permeates the development process and how it manifests in practice.</p></div><div><h3>Objective:</h3><p>This study aims to provide empirical evidence of cost awareness by mining open source repositories of cloud-based applications. The focus is on Infrastructure-as-Code artifacts that automate software (re)deployment on the cloud.</p></div><div><h3>Methods:</h3><p>A systematic examination of <span><math><mrow><mn>152</mn><mspace></mspace><mn>735</mn></mrow></math></span> repositories yielded <span><math><mrow><mn>2</mn><mspace></mspace><mn>010</mn></mrow></math></span> relevant hits. We then analyzed 538 relevant commits and 208 relevant issues using inductive and deductive coding and corroborated findings with discussions from Stack Overflow.</p></div><div><h3>Results:</h3><p>The findings indicate that developers are not only concerned with the cost of their application deployments but also take actions to reduce these costs beyond selecting cheaper cloud services. We also identify research areas for future consideration.</p></div><div><h3>Conclusion:</h3><p>Although we focus on a particular Infrastructure-as-Code technology (Terraform), the findings can be applicable to cloud-based application development in general. The provided empirical grounding can serve developers seeking to reduce costs through service selection, resource allocation, deployment optimization, and other techniques.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0164121224001572/pdfft?md5=df76469895106882163f8c42737bb5e4&pid=1-s2.0-S0164121224001572-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141244327","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Conversation in forums: How software forum posts discuss potential development insights 论坛中的对话:软件论坛帖子如何讨论潜在的开发见解
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-24 DOI: 10.1016/j.jss.2024.112108
Hechen Wang, Peter Devine, James Tizard, Seyed Reza Shahamiri, Kelly Blincoe

User feedback on software usage is utilised by developers to improve their software. Software product forums are platforms rich in software-related user feedback, such as forum threads containing bug reports or requests for new features. However, previous studies have mainly focused on analysing user feedback from software product forums as individual sentences, which can lead to missing insights and a lack of understanding of the overall context of forum posts. To fill this gap in research, this work examines user feedback found in software product forum posts to investigate the differences between content classifications found in forum sentences and posts. We manually evaluated software product forum posts collected from two open-sourced software product forums and discovered five new types of user feedback that can only be identified when examining user feedback in the form of forum posts. Additionally, we examined the association between sentence classifications found within software product forums. Our results indicate that contextual information complimenting product improvement insights can be found in software product forums, with a confidence of 0.75 and 0.69 for the association between apparent bug and application usage sentences. This information can be used to reduce manual efforts required to chase up missing contextual information when attempting to understand or fix software issues. We also provide insights into the progression of posts in software product forums at the thread-level, and our progression flowchart can be used to summarise the sequence of events in software product forum threads. Our findings reveal the importance of looking at user feedback within software product forums in the format of forum posts to identify new insights on user feedback for software improvements.

Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board.

用户对软件使用情况的反馈被开发人员用来改进软件。软件产品论坛是富含与软件相关的用户反馈的平台,例如包含错误报告或新功能请求的论坛主题。然而,以往的研究主要侧重于分析软件产品论坛中作为单个句子的用户反馈,这可能会导致洞察力缺失,并且缺乏对论坛帖子整体语境的理解。为了填补这一研究空白,本研究对软件产品论坛帖子中的用户反馈进行了研究,以探讨论坛句子和帖子内容分类之间的差异。我们对从两个开源软件产品论坛收集到的软件产品论坛帖子进行了人工评估,发现了五种新的用户反馈类型,这些类型只有在研究论坛帖子形式的用户反馈时才能识别。此外,我们还研究了软件产品论坛中发现的句子分类之间的关联。我们的研究结果表明,在软件产品论坛中可以找到与产品改进见解相辅相成的上下文信息,明显的错误和应用程序使用句子之间的置信度分别为 0.75 和 0.69。在试图理解或修复软件问题时,这些信息可用于减少人工查找缺失的上下文信息的工作量。我们还深入分析了软件产品论坛中线程级帖子的进展情况,我们的进展流程图可用于总结软件产品论坛线程中的事件顺序。我们的研究结果揭示了在软件产品论坛中以论坛帖子的形式查看用户反馈的重要性,从而为改进软件找出用户反馈的新见解。
{"title":"Conversation in forums: How software forum posts discuss potential development insights","authors":"Hechen Wang,&nbsp;Peter Devine,&nbsp;James Tizard,&nbsp;Seyed Reza Shahamiri,&nbsp;Kelly Blincoe","doi":"10.1016/j.jss.2024.112108","DOIUrl":"10.1016/j.jss.2024.112108","url":null,"abstract":"<div><p>User feedback on software usage is utilised by developers to improve their software. Software product forums are platforms rich in software-related user feedback, such as forum threads containing bug reports or requests for new features. However, previous studies have mainly focused on analysing user feedback from software product forums as individual sentences, which can lead to missing insights and a lack of understanding of the overall context of forum posts. To fill this gap in research, this work examines user feedback found in software product forum posts to investigate the differences between content classifications found in forum sentences and posts. We manually evaluated software product forum posts collected from two open-sourced software product forums and discovered five new types of user feedback that can only be identified when examining user feedback in the form of forum posts. Additionally, we examined the association between sentence classifications found within software product forums. Our results indicate that contextual information complimenting product improvement insights can be found in software product forums, with a confidence of 0.75 and 0.69 for the association between apparent bug and application usage sentences. This information can be used to reduce manual efforts required to chase up missing contextual information when attempting to understand or fix software issues. We also provide insights into the progression of posts in software product forums at the thread-level, and our progression flowchart can be used to summarise the sequence of events in software product forum threads. Our findings reveal the importance of looking at user feedback within software product forums in the format of forum posts to identify new insights on user feedback for software improvements.</p><p><em>Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board</em>.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0164121224001535/pdfft?md5=0b4a756ac3f9ca9d2d70448deb6b44f2&pid=1-s2.0-S0164121224001535-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141134056","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Pandemic startup software engineering: An experience report on the development of a COVID-19 certificate verification system 大流行病启动软件工程:开发 COVID-19 证书验证系统的经验报告
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-23 DOI: 10.1016/j.jss.2024.112106
Richard May , Niklas Baron , Jacob Krüger , Thomas Leich

The COVID-19 virus has caused a global pandemic that has heavily impacted daily life. Rapid advances in testing and vaccinating led to an additional use case besides the well-known contact-tracing apps: certificate-verification systems. Verification systems are often commissioned by local authorities to enable more public life, and are often developed by smaller organizations or startups. So, the development of verification systems differs from other software projects, featuring interesting and unique properties. In this article, we present an experience report on the development of one verification system by a German startup, focusing on three properties: working in a pandemic, developing a product for handling a pandemic, and the startup context. To this end, we surveyed nine startup developers and analyzed the results with two experts from the startup. We found that the developers focused on fast delivery to cope with the time pressure of releasing the verification system, which is why some phases of typical development processes were hardly carried out. As a result, while the verification system is successful, we also identified negative effects of the properties (e.g., programming mistakes, well-being). We discuss our findings to guide researchers and practitioners in preparing for software engineering in future emergencies.

Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board.

COVID-19 病毒引发了全球大流行,对日常生活造成了严重影响。除了众所周知的接触追踪应用程序外,检测和疫苗接种方面的快速进步还催生了另一种用例:证书验证系统。验证系统通常由地方政府委托开发,目的是让更多人能够参与公共生活,通常由较小的组织或初创公司开发。因此,验证系统的开发不同于其他软件项目,具有有趣而独特的特性。在本文中,我们将介绍一家德国初创企业开发一个验证系统的经验报告,重点关注三个特性:在大流行病中工作、开发处理大流行病的产品以及初创企业的背景。为此,我们对九家初创企业的开发人员进行了调查,并与初创企业的两位专家对调查结果进行了分析。我们发现,开发人员注重快速交付,以应对发布验证系统的时间压力,这就是典型开发流程中某些阶段几乎没有进行的原因。因此,在验证系统取得成功的同时,我们也发现了属性的负面影响(如编程错误、福利)。我们讨论我们的发现,以指导研究人员和从业人员为未来紧急情况下的软件工程做好准备。编者注:开放科学材料已通过《系统与软件期刊》开放科学委员会的验证。
{"title":"Pandemic startup software engineering: An experience report on the development of a COVID-19 certificate verification system","authors":"Richard May ,&nbsp;Niklas Baron ,&nbsp;Jacob Krüger ,&nbsp;Thomas Leich","doi":"10.1016/j.jss.2024.112106","DOIUrl":"10.1016/j.jss.2024.112106","url":null,"abstract":"<div><p>The COVID-19 virus has caused a global pandemic that has heavily impacted daily life. Rapid advances in testing and vaccinating led to an additional use case besides the well-known contact-tracing apps: certificate-verification systems. Verification systems are often commissioned by local authorities to enable more public life, and are often developed by smaller organizations or startups. So, the development of verification systems differs from other software projects, featuring interesting and unique properties. In this article, we present an experience report on the development of one verification system by a German startup, focusing on three properties: working in a pandemic, developing a product for handling a pandemic, and the startup context. To this end, we surveyed nine startup developers and analyzed the results with two experts from the startup. We found that the developers focused on fast delivery to cope with the time pressure of releasing the verification system, which is why some phases of typical development processes were hardly carried out. As a result, while the verification system is successful, we also identified negative effects of the properties (e.g., programming mistakes, well-being). We discuss our findings to guide researchers and practitioners in preparing for software engineering in future emergencies.</p><p><em>Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board</em>.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0164121224001511/pdfft?md5=f96991edc7b8443c9ddcb553c4e26044&pid=1-s2.0-S0164121224001511-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141134680","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
ReenRepair: Automatic and semantic equivalent repair of reentrancy in smart contracts ReenRepair:自动修复智能合约中的重入性并实现语义等同
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-22 DOI: 10.1016/j.jss.2024.112107
Ruiyao Huang , Qingni Shen , Yuchen Wang , Yiqi Wu , Zhonghai Wu , Xiapu Luo , Anbang Ruan

Reentrancy, the most notorious vulnerability in smart contracts, has attracted extensive attention. To eliminate reentrancy before deploying contracts, there is a need to locate and repair the contracts. However, existing tools suffer from false positive localization, original semantics destruction, and high gas overhead. In this work, we propose a template-based gas-optimized reentrancy repair method with semantic maintenance. We avoid false positive locations from verifying the attack’s effectiveness, using connectivity and read–write dependencies. We design the semantic equivalence check algorithm based on the def-use chain. We optimize the lock and reordering templates for reentrancy repair and add semantic maintenance operations. We implement our tool, ReenRepair, and compare it with two state-of-the-art detection tools and two repair tools. The results show that ReenRepair yields good location precision, the highest repair rate, and the lowest gas overhead. All semantic changes caused by lock and 89.66% of semantic changes caused by reordering are successfully maintained.

重入性是智能合约中最臭名昭著的漏洞,已引起广泛关注。为了在部署合约前消除重入性,需要对合约进行定位和修复。然而,现有工具存在定位错误、原始语义被破坏和气体开销高等问题。在这项工作中,我们提出了一种基于模板的气体优化重入性修复方法,并具有语义维护功能。我们利用连通性和读写依赖性避免了验证攻击有效性时的假阳性定位。我们设计了基于 Def-use 链的语义等价性检查算法。我们优化了重入性修复的锁和重排序模板,并添加了语义维护操作。我们实现了我们的工具 ReenRepair,并将其与两款最先进的检测工具和两款修复工具进行了比较。结果表明,ReenRepair 具有良好的定位精度、最高的修复率和最低的气体开销。所有由锁定引起的语义变化和 89.66% 由重新排序引起的语义变化都得到了成功维护。
{"title":"ReenRepair: Automatic and semantic equivalent repair of reentrancy in smart contracts","authors":"Ruiyao Huang ,&nbsp;Qingni Shen ,&nbsp;Yuchen Wang ,&nbsp;Yiqi Wu ,&nbsp;Zhonghai Wu ,&nbsp;Xiapu Luo ,&nbsp;Anbang Ruan","doi":"10.1016/j.jss.2024.112107","DOIUrl":"10.1016/j.jss.2024.112107","url":null,"abstract":"<div><p>Reentrancy, the most notorious vulnerability in smart contracts, has attracted extensive attention. To eliminate reentrancy before deploying contracts, there is a need to locate and repair the contracts. However, existing tools suffer from false positive localization, original semantics destruction, and high gas overhead. In this work, we propose a template-based gas-optimized reentrancy repair method with semantic maintenance. We avoid false positive locations from verifying the attack’s effectiveness, using connectivity and read–write dependencies. We design the semantic equivalence check algorithm based on the def-use chain. We optimize the lock and reordering templates for reentrancy repair and add semantic maintenance operations. We implement our tool, ReenRepair, and compare it with two state-of-the-art detection tools and two repair tools. The results show that ReenRepair yields good location precision, the highest repair rate, and the lowest gas overhead. All semantic changes caused by lock and 89.66% of semantic changes caused by reordering are successfully maintained.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141143359","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Microservice API Evolution in Practice: A Study on Strategies and Challenges 微服务 API 演进实践:策略与挑战研究
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-22 DOI: 10.1016/j.jss.2024.112110
Alexander Lercher, Johann Glock, Christian Macho, Martin Pinzger

Nowadays, many companies design and develop their software systems as a set of loosely coupled microservices that communicate via their Application Programming Interfaces (APIs). While the loose coupling improves maintainability, scalability, and fault tolerance, it poses new challenges to the API evolution process. Related works identified communication and integration as major API evolution challenges but did not provide the underlying reasons and research directions to mitigate them. In this paper, we aim to identify microservice API evolution strategies and challenges in practice and gain a broader perspective of their relationships. We conducted 17 semi-structured interviews with developers, architects, and managers in 11 companies and analyzed the interviews with open coding used in grounded theory. In total, we identified six strategies and six challenges for REpresentational State Transfer (REST) and event-driven communication via message brokers. The strategies mainly focus on API backward compatibility, versioning, and close collaboration between teams. The challenges include change impact analysis efforts, ineffective communication of changes, and consumer reliance on outdated versions, leading to API design degradation. We defined two important problems in microservice API evolution resulting from the challenges and their coping strategies: tight organizational coupling and consumer lock-in. To mitigate these two problems, we propose automating the change impact analysis and investigating effective communication of changes as open research directions.

Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board.

如今,许多公司将其软件系统设计和开发为一组松散耦合的微服务,这些微服务通过应用编程接口(API)进行通信。虽然松耦合提高了可维护性、可扩展性和容错性,但也给应用程序接口的演进过程带来了新的挑战。相关工作将通信和集成确定为 API 演进的主要挑战,但没有提供缓解这些挑战的根本原因和研究方向。在本文中,我们旨在确定微服务应用程序接口演进策略和实践中的挑战,并从更广阔的视角了解它们之间的关系。我们对 11 家公司的开发人员、架构师和管理人员进行了 17 次半结构化访谈,并采用基础理论中的开放式编码对访谈进行了分析。我们总共确定了六种策略和六种通过消息代理进行REST和事件驱动通信的挑战。策略主要集中在应用程序接口的向后兼容性、版本化和团队间的密切合作。面临的挑战包括变更影响分析工作、变更沟通不力,以及消费者对过时版本的依赖,从而导致应用程序接口设计退化。我们定义了微服务应用程序接口演进中的两个重要问题,这两个问题是由上述挑战及其应对策略造成的:紧密的组织耦合和消费者锁定。为了缓解这两个问题,我们建议将变更影响分析自动化和调查变更的有效沟通作为开放研究方向。编者注:开放科学材料已通过《系统与软件期刊》开放科学委员会的验证。
{"title":"Microservice API Evolution in Practice: A Study on Strategies and Challenges","authors":"Alexander Lercher,&nbsp;Johann Glock,&nbsp;Christian Macho,&nbsp;Martin Pinzger","doi":"10.1016/j.jss.2024.112110","DOIUrl":"https://doi.org/10.1016/j.jss.2024.112110","url":null,"abstract":"<div><p>Nowadays, many companies design and develop their software systems as a set of loosely coupled microservices that communicate via their Application Programming Interfaces (APIs). While the loose coupling improves maintainability, scalability, and fault tolerance, it poses new challenges to the API evolution process. Related works identified communication and integration as major API evolution challenges but did not provide the underlying reasons and research directions to mitigate them. In this paper, we aim to identify microservice API evolution strategies and challenges in practice and gain a broader perspective of their relationships. We conducted 17 semi-structured interviews with developers, architects, and managers in 11 companies and analyzed the interviews with open coding used in grounded theory. In total, we identified six strategies and six challenges for REpresentational State Transfer (REST) and event-driven communication via message brokers. The strategies mainly focus on API backward compatibility, versioning, and close collaboration between teams. The challenges include change impact analysis efforts, ineffective communication of changes, and consumer reliance on outdated versions, leading to API design degradation. We defined two important problems in microservice API evolution resulting from the challenges and their coping strategies: tight organizational coupling and consumer lock-in. To mitigate these two problems, we propose automating the change impact analysis and investigating effective communication of changes as open research directions.</p><p><em>Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board.</em></p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0164121224001559/pdfft?md5=b76a85b28918733ef471585dff36a45b&pid=1-s2.0-S0164121224001559-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141244326","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Refactoring react-based Web apps 重构基于反应的网络应用程序
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-22 DOI: 10.1016/j.jss.2024.112105
Fabio Ferreira , Hudson Silva Borges , Marco Tulio Valente

Refactoring is a well-known technique to improve software quality. However, there are relevant domains where refactoring has not been studied in-depth before, such as JavaScript front-end frameworks. To fill this gap, we empirically study refactorings that developers perform when maintaining and evolving React-based Web applications. By manually inspecting 320 refactoring commits performed in open source projects, we catalog 69 distinct refactoring operations of which 25 are specific to React code, 17 are adaptations of traditional refactorings for the React context, 22 are traditional refactorings, and six are specific to JavaScript and CSS code. The catalog of refactorings proposed in this article might support practitioners when improving the maintainability of React applications.

Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board.

重构是一种众所周知的提高软件质量的技术。然而,在一些相关领域,重构还没有被深入研究过,比如 JavaScript 前端框架。为了填补这一空白,我们对开发人员在维护和演进基于 React 的 Web 应用程序时进行的重构进行了实证研究。通过手动检查开源项目中执行的 320 次重构提交,我们对 69 种不同的重构操作进行了编目,其中 25 种是 React 代码特有的重构操作,17 种是针对 React 环境的传统重构操作,22 种是传统重构操作,6 种是 JavaScript 和 CSS 代码特有的重构操作。本文提出的重构目录可为从业人员提高 React 应用程序的可维护性提供支持。
{"title":"Refactoring react-based Web apps","authors":"Fabio Ferreira ,&nbsp;Hudson Silva Borges ,&nbsp;Marco Tulio Valente","doi":"10.1016/j.jss.2024.112105","DOIUrl":"10.1016/j.jss.2024.112105","url":null,"abstract":"<div><p>Refactoring is a well-known technique to improve software quality. However, there are relevant domains where refactoring has not been studied in-depth before, such as JavaScript front-end frameworks. To fill this gap, we empirically study refactorings that developers perform when maintaining and evolving <span>React</span>-based Web applications. By manually inspecting 320 refactoring commits performed in open source projects, we catalog 69 distinct refactoring operations of which 25 are specific to <span>React</span> code, 17 are adaptations of traditional refactorings for the <span>React</span> context, 22 are traditional refactorings, and six are specific to JavaScript and CSS code. The catalog of refactorings proposed in this article might support practitioners when improving the maintainability of <span>React</span> applications.</p><p><em>Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board</em>.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141133753","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
When the dragons defeat the knight: Basilisk an architectural pattern for platform and language independent development 当巨龙打败骑士Basilisk 一种独立于平台和语言的开发架构模式
IF 3.5 2区 计算机科学 Q1 Computer Science Pub Date : 2024-05-20 DOI: 10.1016/j.jss.2024.112088
Francesco Bertolotti , Walter Cazzola , Dario Ostuni , Carlo Castoldi

In this work, we introduce Basilisk, a high-level architectural pattern designed to facilitate interoperability among various languages, platforms, and ecosystems. The pursuit of language-independent software development is highly desirable, enabling developers to utilize existing software products with most programming languages. Achieving platform independence is equally advantageous, allowing code deployment on different platforms effortlessly. While the development community has often aimed for either language or platform independence, Basilisk aims to combine both into a single product. To realize this dual objective, Basilisk employs two fundamental components. The first is a transpilation infrastructure used to render software products language-independent. The second is an abstraction layer over platforms, enabling the creation of platform-independent software products. To illustrate Basilisk’s potential, we introduce Hydra, a one-to-many, declarative transpilation infrastructure. Hydra has been utilized to develop transpilers from HydraKernel (source language) to various target languages, including D, C++, C#, Scala, Ruby, Hy, and Python. Additionally, we instantiate the abstraction layer in Wyvern, a low-level embedded domain-specific language for GPU programming, supporting any Vulkan-compatible GPU. With the Hydra transpilation infrastructure, Wyvern becomes available for D, C++, C#, Scala, Ruby, Hy, and Python. We evaluate Basilisk through the instantiation of Hydra and Wyvern, writing five algorithms from the Rodinia suite for the seven available languages, totaling 35 benchmarks. These benchmarks are executed on four different hardware platforms.

在这项工作中,我们介绍了 Basilisk,这是一种高级架构模式,旨在促进各种语言、平台和生态系统之间的互操作性。追求与语言无关的软件开发是非常可取的,它能让开发人员使用大多数编程语言来开发现有的软件产品。实现平台独立性也同样有利,可以毫不费力地在不同平台上部署代码。虽然开发社区通常以语言或平台独立性为目标,但 Basilisk 的目标是将这两者结合到一个产品中。为了实现这一双重目标,Basilisk 采用了两个基本组件。第一个是转译基础架构,用于实现软件产品的语言独立性。第二部分是平台抽象层,用于创建与平台无关的软件产品。为了说明 Basilisk 的潜力,我们介绍了 Hydra,这是一种一对多的声明式转译基础架构。我们利用 Hydra 开发了从 HydraKernel(源语言)到各种目标语言的转译器,包括 D、C++、C#、Scala、Ruby、Hy 和 Python。此外,我们还在 Wyvern 中实例化了抽象层,这是一种用于 GPU 编程的低级嵌入式特定领域语言,支持任何兼容 Vulkan 的 GPU。借助 Hydra 转译基础设施,Wyvern 可用于 D、C++、C#、Scala、Ruby、Hy 和 Python。我们通过实例化 Hydra 和 Wyvern 对 Basilisk 进行了评估,为七种可用语言编写了 Rodinia 套件中的五种算法,共计 35 个基准。这些基准测试在四个不同的硬件平台上执行。
{"title":"When the dragons defeat the knight: Basilisk an architectural pattern for platform and language independent development","authors":"Francesco Bertolotti ,&nbsp;Walter Cazzola ,&nbsp;Dario Ostuni ,&nbsp;Carlo Castoldi","doi":"10.1016/j.jss.2024.112088","DOIUrl":"10.1016/j.jss.2024.112088","url":null,"abstract":"<div><p>In this work, we introduce Basilisk, a high-level architectural pattern designed to facilitate interoperability among various languages, platforms, and ecosystems. The pursuit of <em>language-independent</em> software development is highly desirable, enabling developers to utilize existing software products with most programming languages. Achieving <em>platform independence</em> is equally advantageous, allowing code deployment on different platforms effortlessly. While the development community has often aimed for either language or platform independence, Basilisk aims to combine both into a single product. To realize this dual objective, Basilisk employs two fundamental components. The first is a <em>transpilation infrastructure</em> used to render software products language-independent. The second is an <em>abstraction layer</em> over platforms, enabling the creation of platform-independent software products. To illustrate Basilisk’s potential, we introduce Hydra, a one-to-many, declarative transpilation infrastructure. Hydra has been utilized to develop transpilers from HydraKernel (source language) to various target languages, including D, C++, C#, Scala, Ruby, Hy, and Python. Additionally, we instantiate the abstraction layer in Wyvern, a low-level embedded domain-specific language for GPU programming, supporting any Vulkan-compatible GPU. With the Hydra transpilation infrastructure, Wyvern becomes available for D, C++, C#, Scala, Ruby, Hy, and Python. We evaluate Basilisk through the instantiation of Hydra and Wyvern, writing five algorithms from the Rodinia suite for the seven available languages, totaling 35 benchmarks. These benchmarks are executed on four different hardware platforms.</p></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":null,"pages":null},"PeriodicalIF":3.5,"publicationDate":"2024-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S016412122400133X/pdfft?md5=3c4ee0668e1e7655f0acbd4a1aaeaa65&pid=1-s2.0-S016412122400133X-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141141292","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Journal of Systems and Software
全部 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