首页 > 最新文献

Science of Computer Programming最新文献

英文 中文
VisFork: Towards a toolsuite for visualizing fork ecosystems VisFork:打造叉叉生态系统可视化工具套件
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-21 DOI: 10.1016/j.scico.2024.103223
Siyue Chen , Loek Cleophas , Sandro Schulze , Jacob Krüger
In our previous work, we have developed and tested different visualizations that help analyze fork ecosystems. Our goal is to contribute analyses and tools that support developers as well as researchers in obtaining a better understanding of what happens within such ecosystems. In this article, we focus on the tool implementation of our most recent visualizations, which can help users to better understand the relations between and activities within forks. Since fork ecosystems are widely used in practice and well established research subjects, we hope that our tooling constitutes a helpful means for other researchers, too.
在之前的工作中,我们开发并测试了不同的可视化工具,以帮助分析叉形生态系统。我们的目标是提供分析和工具,支持开发人员和研究人员更好地了解此类生态系统中发生的事情。在本文中,我们将重点介绍我们最新的可视化工具的实施情况,它可以帮助用户更好地理解分叉之间的关系和分叉内部的活动。由于分叉生态系统在实践中被广泛使用,也是成熟的研究课题,我们希望我们的工具也能为其他研究人员提供帮助。
{"title":"VisFork: Towards a toolsuite for visualizing fork ecosystems","authors":"Siyue Chen ,&nbsp;Loek Cleophas ,&nbsp;Sandro Schulze ,&nbsp;Jacob Krüger","doi":"10.1016/j.scico.2024.103223","DOIUrl":"10.1016/j.scico.2024.103223","url":null,"abstract":"<div><div>In our previous work, we have developed and tested different visualizations that help analyze fork ecosystems. Our goal is to contribute analyses and tools that support developers as well as researchers in obtaining a better understanding of what happens within such ecosystems. In this article, we focus on the tool implementation of our most recent visualizations, which can help users to better understand the relations between and activities within forks. Since fork ecosystems are widely used in practice and well established research subjects, we hope that our tooling constitutes a helpful means for other researchers, too.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"241 ","pages":"Article 103223"},"PeriodicalIF":1.5,"publicationDate":"2024-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142592762","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
The CAOS framework for Scala: Computer-aided design of SOS 用于 Scala 的 CAOS 框架:SOS 的计算机辅助设计
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-18 DOI: 10.1016/j.scico.2024.103222
José Proença , Luc Edixhoven
We present
: a programming framework for computer-aided design of structural operational semantics for formal models. This framework includes a set of Scala libraries and a workflow to produce visual and interactive diagrams that animate and provide insights over the structure and the semantics of a given abstract model with operational rules.
follows an approach where theoretical foundations and a practical tool are built together, as an alternative to foundations-first design (“tool justifies theory”) or tool-first design (“foundations justify practice”). The advantage of
is that the tool-under-development can immediately be used to automatically run numerous and sizeable examples in order to identify subtle mistakes, unexpected outcomes, and unforeseen limitations in the foundations-under-development, as early as possible.
More concretely,
supports the quick creation of interactive websites that help the end-users better understand a new language, structure, or analysis. End-users can be research colleagues trying to understand a companion paper or students learning about a new simple language or operational semantics. We include a list of open-source projects with a web frontend supported by
that are used both in research and teaching contexts.
我们介绍的是:一个用于计算机辅助设计形式模型结构运算语义的编程框架。该框架包括一套 Scala 库和一个工作流程,用于生成可视化交互式图表,使给定的具有操作规则的抽象模型的结构和语义生动活泼,并提供深入见解。这样做的好处是,开发中的工具可以立即用于自动运行大量的大型示例,以便尽早发现开发中的基础中的微妙错误、意外结果和不可预见的局限性。最终用户可以是试图理解论文的研究同事,也可以是学习新的简单语言或操作语义的学生。我们列出了在研究和教学中使用的具有网络前端支持的开源项目。
{"title":"The CAOS framework for Scala: Computer-aided design of SOS","authors":"José Proença ,&nbsp;Luc Edixhoven","doi":"10.1016/j.scico.2024.103222","DOIUrl":"10.1016/j.scico.2024.103222","url":null,"abstract":"<div><div>We present <figure><img></figure>: a programming framework for <em>computer-aided design of structural operational semantics for formal models</em>. This framework includes a set of Scala libraries and a workflow to produce visual and interactive diagrams that animate and provide insights over the structure and the semantics of a given abstract model with operational rules.</div><div><figure><img></figure> follows an approach where theoretical foundations and a practical tool are built together, as an alternative to foundations-first design (“tool justifies theory”) or tool-first design (“foundations justify practice”). The advantage of <figure><img></figure> is that the tool-under-development can immediately be used to automatically run numerous and sizeable examples in order to identify subtle mistakes, unexpected outcomes, and unforeseen limitations in the foundations-under-development, as early as possible.</div><div>More concretely, <figure><img></figure> supports the quick creation of interactive websites that help the end-users better understand a new language, structure, or analysis. End-users can be research colleagues trying to understand a companion paper or students learning about a new simple language or operational semantics. We include a list of open-source projects with a web frontend supported by <figure><img></figure> that are used both in research and teaching contexts.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103222"},"PeriodicalIF":1.5,"publicationDate":"2024-10-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142532754","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Configurable Software Model of a Self-Adaptive Robotic System 自适应机器人系统的可配置软件模型
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-17 DOI: 10.1016/j.scico.2024.103221
Juliane Päßler , Maurice H. ter Beek , Ferruccio Damiani , Einar Broch Johnsen , S. Lizeth Tapia Tarifa
Self-adaptation, meant to increase reliability, is a crucial feature of cyber-physical systems operating in uncertain physical environments. Ensuring safety properties of self-adaptive systems is of utter importance, especially when operating in remote environments where communication with a human operator is limited, like under water or in space. This paper presents a software model that allows the analysis of one such self-adaptive system, a configurable underwater robot used for pipeline inspection, by means of the probabilistic model checker ProFeat. Furthermore, it shows that the configurable software model is easily extensible to further, possibly more complex use cases and analyses.
自适应旨在提高可靠性,是在不确定物理环境中运行的网络物理系统的一个重要特征。确保自适应系统的安全性能至关重要,尤其是在水下或太空等与人类操作员通信受限的远程环境中运行时。本文介绍了一个软件模型,通过概率模型检查程序 ProFeat 可以分析这样一个自适应系统,即用于管道检测的可配置水下机器人。此外,它还表明可配置软件模型很容易扩展到更多可能更复杂的用例和分析中。
{"title":"A Configurable Software Model of a Self-Adaptive Robotic System","authors":"Juliane Päßler ,&nbsp;Maurice H. ter Beek ,&nbsp;Ferruccio Damiani ,&nbsp;Einar Broch Johnsen ,&nbsp;S. Lizeth Tapia Tarifa","doi":"10.1016/j.scico.2024.103221","DOIUrl":"10.1016/j.scico.2024.103221","url":null,"abstract":"<div><div>Self-adaptation, meant to increase reliability, is a crucial feature of cyber-physical systems operating in uncertain physical environments. Ensuring safety properties of self-adaptive systems is of utter importance, especially when operating in remote environments where communication with a human operator is limited, like under water or in space. This paper presents a software model that allows the analysis of one such self-adaptive system, a configurable underwater robot used for pipeline inspection, by means of the probabilistic model checker ProFeat. Furthermore, it shows that the configurable software model is easily extensible to further, possibly more complex use cases and analyses.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103221"},"PeriodicalIF":1.5,"publicationDate":"2024-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142532655","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Towards partial monitoring: Never too early to give in 实现部分监控:让步永远不嫌早
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-17 DOI: 10.1016/j.scico.2024.103220
Angelo Ferrando , Rafael C. Cardoso
Runtime Verification is a lightweight formal verification technique used to verify whether a system behaves as expected at runtime. Expected behaviour is typically formally specified using properties, which are used to automatically synthesise monitors. Properties that can be verified at runtime by a monitor are called monitorable, while those that cannot are termed non-monitorable. In this paper, we revisit the notion of monitorability and demonstrate how non-monitorable properties can still be used to generate partial monitors. We tackle this from two different perspectives: (i) by recognising that a monitor can give up on monitoring the property under analysis if it recognises that the monitoring will never conclude the satisfaction or violation of the property; (ii) by recognising that a monitor can give up on events that are not necessary for successful monitoring of the property under analysis. By considering these two aspects, we present how to achieve partial monitoring of Linear Temporal Logic properties by building upon the standard monitor construction. Finally, we present a prototype implementation of our approach and its application to a remote inspection case study, as well as a set of evaluation experiments to stress test our approach using synthetic properties.
运行时验证是一种轻量级的形式化验证技术,用于验证系统在运行时的行为是否符合预期。预期行为通常使用属性来正式指定,这些属性用于自动合成监控器。可在运行时由监控器验证的属性称为可监控属性,不可监控的属性称为不可监控属性。在本文中,我们重新审视了可监控性的概念,并演示了不可监控的属性如何仍可用于生成部分监控器。我们从两个不同的角度来解决这个问题:(i) 如果监控者认识到监控永远不会得出满足或违反属性的结论,它就可以放弃监控所分析的属性;(ii) 如果监控者认识到对成功监控所分析的属性来说并非必要的事件,它就可以放弃监控。通过考虑这两个方面,我们介绍了如何在标准监控器结构的基础上实现对线性时态逻辑属性的部分监控。最后,我们介绍了我们方法的原型实现及其在远程检测案例研究中的应用,以及一组使用合成属性对我们的方法进行压力测试的评估实验。
{"title":"Towards partial monitoring: Never too early to give in","authors":"Angelo Ferrando ,&nbsp;Rafael C. Cardoso","doi":"10.1016/j.scico.2024.103220","DOIUrl":"10.1016/j.scico.2024.103220","url":null,"abstract":"<div><div>Runtime Verification is a lightweight formal verification technique used to verify whether a system behaves as expected at runtime. Expected behaviour is typically formally specified using properties, which are used to automatically synthesise monitors. Properties that can be verified at runtime by a monitor are called <em>monitorable</em>, while those that cannot are termed <em>non-monitorable</em>. In this paper, we revisit the notion of monitorability and demonstrate how <em>non-monitorable</em> properties can still be used to generate <em>partial</em> monitors. We tackle this from two different perspectives: (i) by recognising that a monitor can give up on monitoring the property under analysis if it recognises that the monitoring will never conclude the satisfaction or violation of the property; (ii) by recognising that a monitor can give up on events that are not necessary for successful monitoring of the property under analysis. By considering these two aspects, we present how to achieve partial monitoring of Linear Temporal Logic properties by building upon the standard monitor construction. Finally, we present a prototype implementation of our approach and its application to a remote inspection case study, as well as a set of evaluation experiments to stress test our approach using synthetic properties.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103220"},"PeriodicalIF":1.5,"publicationDate":"2024-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142445382","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Preface for the special issue on “Selected Papers and Tools of the 26th International Conference on Fundamental Approaches to Software Engineering” (FASE 2023) 第 26 届软件工程基本方法国际会议论文和工具选编"(FASE 2023)特刊序言
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-10 DOI: 10.1016/j.scico.2024.103219
Carlos Diego Nascimento Damasceno , Marie-Christine Jakobs , Leen Lambers , Sebastián Uchitel
{"title":"Preface for the special issue on “Selected Papers and Tools of the 26th International Conference on Fundamental Approaches to Software Engineering” (FASE 2023)","authors":"Carlos Diego Nascimento Damasceno ,&nbsp;Marie-Christine Jakobs ,&nbsp;Leen Lambers ,&nbsp;Sebastián Uchitel","doi":"10.1016/j.scico.2024.103219","DOIUrl":"10.1016/j.scico.2024.103219","url":null,"abstract":"","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103219"},"PeriodicalIF":1.5,"publicationDate":"2024-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142703567","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
An exploratory study on the usage of quantum programming languages 关于量子编程语言使用情况的探索性研究
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-04 DOI: 10.1016/j.scico.2024.103217
Felipe Ferreira , José Campos
As in the classical computing realm, quantum programming languages in quantum computing allow one to instruct a quantum computer to perform certain tasks. In the last 25 years, many imperative, functional, and multi-paradigm quantum programming languages with different features and goals have been developed. However, to the best of our knowledge, no study has investigated who uses quantum languages, how practitioners learn a quantum language, how experience are practitioners with quantum languages, what is the most used quantum languages, in which context practitioners use quantum languages, what are the challenges faced by quantum practitioners while using quantum languages, are program written with quantum languages tested, and what are quantum practitioners' perspectives on the variety of quantum languages and the potential need for new languages. In this paper, we first conduct a systematic survey to find and collect all quantum languages proposed in the literature and/or by organizations. Secondly, we identify and describe 37 quantum languages. Thirdly, we survey 251 quantum practitioners to answer several research questions about their quantum language usage. Fourthly, we conclude that (i) 58.2% of all practitioners are 25–44 years old, 63.0% have a master's or doctoral degree, and 86.2% have more than five years of experience using classical languages. (ii) 60.6% of practitioners learn quantum languages from the official documentation. (iii) Only 16.3% of practitioners have more than five years of experience with quantum languages. (iv) Qiskit (Python) is the most used quantum language, followed by Cirq (Python) and QDK (Q#). (v) 42.8% use quantum languages for research. (vi) Lack of documentation and usage examples are practitioners' most challenging issues. Practitioners prefer open-source quantum languages with an easy-to-learn syntax (e.g., based on an existing classical language), available documentation and examples, and an active community. (vii) 76.4% of all participants test their quantum programs, and 42.6% test them automatically. (viii) A standard quantum language, perhaps high-level language, for quantum computation could accelerate the development of quantum programs. Finally, we present a set of suggestions for developers and researchers on the development of new quantum languages or enhancement of existing ones.
与经典计算领域一样,量子计算中的量子编程语言允许人们指示量子计算机执行某些任务。在过去 25 年中,许多具有不同功能和目标的命令式、函数式和多范式量子编程语言相继问世。然而,据我们所知,还没有研究调查过谁在使用量子语言,从业人员如何学习量子语言,从业人员对量子语言的经验如何,最常用的量子语言是什么,从业人员在什么情况下使用量子语言,量子从业人员在使用量子语言时面临哪些挑战,用量子语言编写的程序是否经过测试,以及量子从业人员对量子语言多样性的看法和对新语言的潜在需求。在本文中,我们首先进行了一次系统调查,查找并收集了文献和/或组织提出的所有量子语言。其次,我们确定并描述了 37 种量子语言。第三,我们调查了 251 位量子实践者,回答了有关他们使用量子语言的几个研究问题。第四,我们得出以下结论:(i) 58.2%的从业者年龄在 25-44 岁之间,63.0%的从业者拥有硕士或博士学位,86.2%的从业者拥有五年以上使用经典语言的经验。(ii) 60.6%的从业人员从官方文件中学习量子语言。(iii) 只有 16.3% 的从业人员有五年以上使用量子语言的经验。(iv) Qiskit(Python)是使用最多的量子语言,其次是 Cirq(Python)和 QDK(Q#)。(v) 42.8%的人使用量子语言进行研究。(vi) 缺乏文档和使用实例是从业人员面临的最大挑战。从业人员更青睐语法简单易学(如基于现有经典语言)、文档和示例齐备、社区活跃的开源量子语言。(vii) 76.4% 的参与者测试了他们的量子程序,42.6% 的参与者自动测试了这些程序。(viii) 用于量子计算的标准量子语言,也许是高级语言,可以加速量子程序的开发。最后,我们向开发人员和研究人员提出了一系列开发新量子语言或改进现有语言的建议。
{"title":"An exploratory study on the usage of quantum programming languages","authors":"Felipe Ferreira ,&nbsp;José Campos","doi":"10.1016/j.scico.2024.103217","DOIUrl":"10.1016/j.scico.2024.103217","url":null,"abstract":"<div><div>As in the classical computing realm, quantum programming languages in quantum computing allow one to instruct a quantum computer to perform certain tasks. In the last 25 years, many imperative, functional, and multi-paradigm quantum programming languages with different features and goals have been developed. However, to the best of our knowledge, no study has investigated who uses quantum languages, how practitioners learn a quantum language, how experience are practitioners with quantum languages, what is the most used quantum languages, in which context practitioners use quantum languages, what are the challenges faced by quantum practitioners while using quantum languages, are program written with quantum languages tested, and what are quantum practitioners' perspectives on the variety of quantum languages and the potential need for new languages. In this paper, we first conduct a systematic survey to find and collect all quantum languages proposed in the literature and/or by organizations. Secondly, we identify and describe 37 quantum languages. Thirdly, we survey 251 quantum practitioners to answer several research questions about their quantum language usage. Fourthly, we conclude that (i) 58.2% of all practitioners are 25–44 years old, 63.0% have a master's or doctoral degree, and 86.2% have more than five years of experience using classical languages. (ii) 60.6% of practitioners learn quantum languages from the official documentation. (iii) Only 16.3% of practitioners have more than five years of experience with quantum languages. (iv) Qiskit (Python) is the most used quantum language, followed by Cirq (Python) and QDK (Q#). (v) 42.8% use quantum languages for research. (vi) Lack of documentation and usage examples are practitioners' most challenging issues. Practitioners prefer open-source quantum languages with an easy-to-learn syntax (e.g., based on an existing classical language), available documentation and examples, and an active community. (vii) 76.4% of all participants test their quantum programs, and 42.6% test them automatically. (viii) A standard quantum language, perhaps high-level language, for quantum computation could accelerate the development of quantum programs. Finally, we present a set of suggestions for developers and researchers on the development of new quantum languages or enhancement of existing ones.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103217"},"PeriodicalIF":1.5,"publicationDate":"2024-10-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142424074","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
JoT: A Jolie framework for testing microservices JoT:用于测试微服务的 Jolie 框架
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-03 DOI: 10.1016/j.scico.2024.103215
Saverio Giallorenzo , Fabrizio Montesi , Marco Peressotti , Florian Rademacher , Narongrit Unwerawattana
We present JoT, a testing framework for Microservice Architectures (MSAs) based on technology agnosticism, a core principle of microservices. The main advantage of JoT is that it reduces the amount of work for a) testing for MSAs whose services use different technology stacks, b) writing tests that involve multiple services, and c) reusing tests of the same MSA under different deployment configurations or after changing some of its components. In JoT, tests are orchestrators that can both consume or offer operations from/to the MSA under test. The language for writing JoT tests is Jolie, which provides constructs that support technology agnosticism and the definition of terse test behaviours.
我们提出了微服务架构(MSA)的测试框架 JoT,它基于微服务的核心原则--技术不可知论。JoT 的主要优势在于减少了以下方面的工作量:a)测试使用不同技术栈的服务的 MSA;b)编写涉及多个服务的测试;c)在不同部署配置下或更改部分组件后重复使用同一 MSA 的测试。在 JoT 中,测试是一种协调器,既可以消费被测 MSA,也可以向被测 MSA 提供操作。编写 JoT 测试的语言是 Jolie,它提供了支持技术无关性和简洁测试行为定义的结构。
{"title":"JoT: A Jolie framework for testing microservices","authors":"Saverio Giallorenzo ,&nbsp;Fabrizio Montesi ,&nbsp;Marco Peressotti ,&nbsp;Florian Rademacher ,&nbsp;Narongrit Unwerawattana","doi":"10.1016/j.scico.2024.103215","DOIUrl":"10.1016/j.scico.2024.103215","url":null,"abstract":"<div><div>We present JoT, a testing framework for Microservice Architectures (MSAs) based on technology agnosticism, a core principle of microservices. The main advantage of JoT is that it reduces the amount of work for a) testing for MSAs whose services use different technology stacks, b) writing tests that involve multiple services, and c) reusing tests of the same MSA under different deployment configurations or after changing some of its components. In JoT, tests are orchestrators that can both consume or offer operations from/to the MSA under test. The language for writing JoT tests is Jolie, which provides constructs that support technology agnosticism and the definition of terse test behaviours.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103215"},"PeriodicalIF":1.5,"publicationDate":"2024-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142441135","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
An exploratory study on automatic identification of assumptions in the development of deep learning frameworks 关于自动识别深度学习框架开发中的假设的探索性研究
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-03 DOI: 10.1016/j.scico.2024.103218
Chen Yang , Peng Liang , Zinan Ma

Context

Stakeholders constantly make assumptions in the development of deep learning (DL) frameworks. These assumptions are related to various types of software artifacts (e.g., requirements, design decisions, and technical debt) and can turn out to be invalid, leading to system failures. Existing approaches and tools for assumption management usually depend on manual identification of assumptions. However, assumptions are scattered in various sources (e.g., code comments, commits, pull requests, and issues) of DL framework development, and manually identifying assumptions has high costs (e.g., time and resources).

Objective

The objective of the study is to evaluate different classification models for the purpose of identification with respect to assumptions from the point of view of developers and users in the context of DL framework projects (i.e., issues, pull requests, and commits) on GitHub.

Method

First, we constructed a new and largest dataset (i.e., the AssuEval dataset) of assumptions collected from the TensorFlow and Keras repositories on GitHub. Then we explored the performance of seven non-transformers based models (e.g., Support Vector Machine, Classification and Regression Trees), the ALBERT model, and three decoder-only models (i.e., ChatGPT, Claude, and Gemini) for identifying assumptions on the AssuEval dataset.

Results

The study results show that ALBERT achieves the best performance (f1-score: 0.9584) for identifying assumptions on the AssuEval dataset, which is much better than the other models (the 2nd best f1-score is 0.8858, achieved by the Claude 3.5 Sonnet model). Though ChatGPT, Claude, and Gemini are popular models, we do not recommend using them to identify assumptions in DL framework development because of their low performance. Fine-tuning ChatGPT, Claude, Gemini, or other language models (e.g., Llama3, Falcon, and BLOOM) specifically for assumptions might improve their performance for assumption identification.

Conclusions

This study provides researchers with the largest dataset of assumptions for further research (e.g., assumption classification, evaluation, and reasoning) and helps researchers and practitioners better understand assumptions and how to manage them in their projects (e.g., selection of classification models for identifying assumptions).
背景利益相关者在开发深度学习(DL)框架的过程中不断做出假设。这些假设与各种类型的软件工件(如需求、设计决策和技术债务)相关,可能会被证明是无效的,从而导致系统故障。现有的假设管理方法和工具通常依赖于人工识别假设。然而,假设分散在 DL 框架开发的各种来源(如代码注释、提交、拉取请求和问题)中,手动识别假设的成本很高(如时间和资源)、方法首先,我们构建了一个新的、最大的数据集(即 AssuEval 数据集),其中包含从 GitHub 上的 TensorFlow 和 Keras 存储库中收集的假设。然后,我们探索了七个基于非变换器的模型(如支持向量机、分类树和回归树)、ALBERT 模型和三个纯解码器模型(即 ChatGPT、Claude、Gemma)的性能、研究结果表明,ALBERT 在 AssuEval 数据集上识别假设的性能最好(f1 分数:0.9584),远远优于其他模型(第二好的 f1 分数是 0.8858,由 Claude 3.5 Sonnet 模型实现)。虽然 ChatGPT、Claude 和 Gemini 是流行的模型,但由于它们的性能较低,我们不建议在 DL 框架开发中使用它们来识别假设。针对假设对 ChatGPT、Claude、Gemini 或其他语言模型(如 Llama3、Falcon 和 BLOOM)进行微调,可能会提高它们在假设识别方面的性能。 结论这项研究为研究人员提供了最大的假设数据集,以用于进一步研究(如假设分类、评估和推理),并帮助研究人员和从业人员更好地理解假设以及如何在项目中管理假设(如选择用于识别假设的分类模型)。
{"title":"An exploratory study on automatic identification of assumptions in the development of deep learning frameworks","authors":"Chen Yang ,&nbsp;Peng Liang ,&nbsp;Zinan Ma","doi":"10.1016/j.scico.2024.103218","DOIUrl":"10.1016/j.scico.2024.103218","url":null,"abstract":"<div><h3>Context</h3><div>Stakeholders constantly make assumptions in the development of deep learning (DL) frameworks. These assumptions are related to various types of software artifacts (e.g., requirements, design decisions, and technical debt) and can turn out to be invalid, leading to system failures. Existing approaches and tools for assumption management usually depend on manual identification of assumptions. However, assumptions are scattered in various sources (e.g., code comments, commits, pull requests, and issues) of DL framework development, and manually identifying assumptions has high costs (e.g., time and resources).</div></div><div><h3>Objective</h3><div>The objective of the study is to evaluate different classification models for the purpose of identification with respect to assumptions from the point of view of developers and users in the context of DL framework projects (i.e., issues, pull requests, and commits) on GitHub.</div></div><div><h3>Method</h3><div>First, we constructed a new and largest dataset (i.e., the AssuEval dataset) of assumptions collected from the TensorFlow and Keras repositories on GitHub. Then we explored the performance of seven non-transformers based models (e.g., Support Vector Machine, Classification and Regression Trees), the ALBERT model, and three decoder-only models (i.e., ChatGPT, Claude, and Gemini) for identifying assumptions on the AssuEval dataset.</div></div><div><h3>Results</h3><div>The study results show that ALBERT achieves the best performance (f1-score: 0.9584) for identifying assumptions on the AssuEval dataset, which is much better than the other models (the 2nd best f1-score is 0.8858, achieved by the Claude 3.5 Sonnet model). Though ChatGPT, Claude, and Gemini are popular models, we do not recommend using them to identify assumptions in DL framework development because of their low performance. Fine-tuning ChatGPT, Claude, Gemini, or other language models (e.g., Llama3, Falcon, and BLOOM) specifically for assumptions might improve their performance for assumption identification.</div></div><div><h3>Conclusions</h3><div>This study provides researchers with the largest dataset of assumptions for further research (e.g., assumption classification, evaluation, and reasoning) and helps researchers and practitioners better understand assumptions and how to manage them in their projects (e.g., selection of classification models for identifying assumptions).</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103218"},"PeriodicalIF":1.5,"publicationDate":"2024-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142424071","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Ranking co-change candidates suggested by FLeCCS using programmer sensitivity 利用程序员敏感度对 FLeCCS 提出的共同变更候选方案进行排序
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-30 DOI: 10.1016/j.scico.2024.103216
Abid Afsan Hamid, Md. Fizul Haque, Manishankar Mondal
Identifying co-change candidates when making changes to a particular program entity is an important software engineering task which is known as change impact analysis. A number of techniques for detecting co-change candidates currently exist. Most of these techniques work considering file level, class level, or method level granularity. FLeCCS is a recently introduced technique that suggests co-change candidates considering even fragment level granularity. FLeCCS ranks its co-change candidates considering file proximity. However, programmer sensitivity might be an important factor while ranking co-change candidates. Intuitively, it is more comfortable for a programmer to change her own code rather than changing someone else's code. Considering this fact, we investigate ranking co-change candidates suggested by FLeCCS considering programmer sensitivity.
In our research, we have two main contributions: (1) proposing a composite ranking mechanism considering three things - file proximity, code similarity, and programmer sensitivity and (2) an empirical evaluation of our proposed mechanism by comparing it with file proximity ranking and similarity extent ranking mechanisms on thousands of revisions of five subject systems. We compare the ranking mechanisms in ranking the co-change candidates suggested by FLeCCS. According to our investigation incorporating four measures (Precision At K, Recall At K, Mean Average Precision and Mean Reciprocal Rank), composite ranking mechanism significantly outperforms the other two existing ranking mechanisms. Our findings are supported by statistical significance tests. We believe that our Proposed Composite Ranking mechanism is not only applicable to FLeCCS but also to other co-change suggestion techniques.
在对特定程序实体进行更改时,识别共同更改候选对象是一项重要的软件工程任务,也就是所谓的更改影响分析。目前有许多检测候选共变的技术。这些技术大多考虑文件级、类级或方法级粒度。FLeCCS 是最近推出的一种技术,它甚至考虑到片段级粒度,提出共同变更候选方案。FLeCCS 会根据文件的接近程度对共同更改候选对象进行排序。不过,程序员的敏感性可能是共同更改候选文件排序的一个重要因素。从直觉上讲,程序员更愿意修改自己的代码,而不是修改别人的代码。考虑到这一事实,我们研究了在考虑程序员敏感性的情况下对 FLeCCS 建议的共同变更候选对象进行排序的问题。在我们的研究中,我们有两个主要贡献:(1) 提出了一种考虑文件邻近性、代码相似性和程序员敏感性这三个因素的复合排序机制;(2) 通过在五个主题系统的数千次修订中将我们提出的机制与文件邻近性排序机制和相似性程度排序机制进行比较,对我们提出的机制进行了实证评估。我们比较了 FLeCCS 提出的共同变更候选排序机制。根据我们采用四种衡量标准(K 值精度、K 值召回率、平均精度和平均互易等级)进行的调查,复合排序机制明显优于其他两种现有排序机制。我们的发现得到了统计显著性检验的支持。我们相信,我们提出的综合排名机制不仅适用于 FLeCCS,也适用于其他共变建议技术。
{"title":"Ranking co-change candidates suggested by FLeCCS using programmer sensitivity","authors":"Abid Afsan Hamid,&nbsp;Md. Fizul Haque,&nbsp;Manishankar Mondal","doi":"10.1016/j.scico.2024.103216","DOIUrl":"10.1016/j.scico.2024.103216","url":null,"abstract":"<div><div>Identifying co-change candidates when making changes to a particular program entity is an important software engineering task which is known as change impact analysis. A number of techniques for detecting co-change candidates currently exist. Most of these techniques work considering file level, class level, or method level granularity. FLeCCS is a recently introduced technique that suggests co-change candidates considering even fragment level granularity. FLeCCS ranks its co-change candidates considering file proximity. However, programmer sensitivity might be an important factor while ranking co-change candidates. Intuitively, it is more comfortable for a programmer to change her own code rather than changing someone else's code. Considering this fact, we investigate ranking co-change candidates suggested by FLeCCS considering programmer sensitivity.</div><div>In our research, we have two main contributions: (1) proposing a composite ranking mechanism considering three things - file proximity, code similarity, and programmer sensitivity and (2) an empirical evaluation of our proposed mechanism by comparing it with file proximity ranking and similarity extent ranking mechanisms on thousands of revisions of five subject systems. We compare the ranking mechanisms in ranking the co-change candidates suggested by FLeCCS. According to our investigation incorporating four measures (Precision At K, Recall At K, Mean Average Precision and Mean Reciprocal Rank), composite ranking mechanism significantly outperforms the other two existing ranking mechanisms. Our findings are supported by statistical significance tests. We believe that our Proposed Composite Ranking mechanism is not only applicable to FLeCCS but also to other co-change suggestion techniques.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103216"},"PeriodicalIF":1.5,"publicationDate":"2024-09-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142358918","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
FM fact label 调频事实标签
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-26 DOI: 10.1016/j.scico.2024.103214
Jose-Miguel Horcas , Jose A. Galindo , Lidia Fuentes , David Benavides
FM Fact Label is a tool for visualizing the characterizations of feature models based on their metadata, structural measures, and analytical metrics. Although there are various metrics available to characterize feature models, there is no standard method to visualize and identify unique properties of feature models. Unlike existing tools, FM Fact Label provides a standalone web-based platform for configurable and interactive visualization, enabling export to various formats. This contribution is significant because it supports the Universal Variability Language (UVL) and enhances the UVL ecosystem by offering a common representation of the results of existing analysis tools.
FM Fact Label 是一种基于元数据、结构度量和分析度量对特征模型特征进行可视化的工具。虽然有各种指标可用于描述特征模型,但没有标准方法来可视化和识别特征模型的独特属性。与现有工具不同,FM Fact Label 提供了一个独立的基于网络的平台,用于可配置的交互式可视化,并可导出为各种格式。这一贡献意义重大,因为它支持通用变异性语言(UVL),并通过提供现有分析工具结果的通用表示方法来增强 UVL 生态系统。
{"title":"FM fact label","authors":"Jose-Miguel Horcas ,&nbsp;Jose A. Galindo ,&nbsp;Lidia Fuentes ,&nbsp;David Benavides","doi":"10.1016/j.scico.2024.103214","DOIUrl":"10.1016/j.scico.2024.103214","url":null,"abstract":"<div><div><em>FM Fact Label</em> is a tool for visualizing the characterizations of feature models based on their metadata, structural measures, and analytical metrics. Although there are various metrics available to characterize feature models, there is no standard method to visualize and identify unique properties of feature models. Unlike existing tools, <em>FM Fact Label</em> provides a standalone web-based platform for configurable and interactive visualization, enabling export to various formats. This contribution is significant because it supports the Universal Variability Language (UVL) and enhances the UVL ecosystem by offering a common representation of the results of existing analysis tools.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103214"},"PeriodicalIF":1.5,"publicationDate":"2024-09-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142358917","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Science of Computer Programming
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1