首页 > 最新文献

Science of Computer Programming最新文献

英文 中文
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
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":"","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":null,"pages":null},"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
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
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":"","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":null,"pages":null},"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
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":"","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":null,"pages":null},"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

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":"","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":null,"pages":null},"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
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":"","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":null,"pages":null},"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
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":"","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":null,"pages":null},"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
A systematic literature review on dynamic testing of blockchain oriented software 面向区块链软件动态测试的系统性文献综述
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-26 DOI: 10.1016/j.scico.2024.103211
This Systematic Literature Review (SLR) provides a thorough analysis of the most pertinent research with regard to testing Blockchain oriented Software (BoS). Indeed, it is highly required to test and check the correctness of such kind of software systems before their deployment since they are immutable and cannot be modified once deployed. All the selected primary studies, published between 2017 and October 2022, make use of dynamic testing techniques in order to ensure the trustworthiness and the quality of BoS and to check functional and non-functional aspects such as security and performance. First of all, we study 53 research papers from various electronic databases and classify them according to several factors including (i) the accessibility of smart contract code, (ii) the adopted testing techniques and (iii) the supported vulnerabilities. Then, we emphasize works' benefits and drawbacks while providing a summary about the work done on test generation and selection in this field. At the end, we identify research challenges and potential research opportunities with the aim of giving research lines not yet explored.
本系统性文献综述(SLR)全面分析了与面向区块链的软件(BoS)测试有关的最相关研究。事实上,由于此类软件系统不可改变,一旦部署就无法修改,因此在部署前测试和检查其正确性是非常必要的。所有选定的主要研究都是在 2017 年至 2022 年 10 月间发表的,都使用了动态测试技术,以确保 BoS 的可信度和质量,并检查功能性和非功能性方面,如安全性和性能。首先,我们研究了来自各种电子数据库的 53 篇研究论文,并根据几个因素对它们进行了分类,包括(i)智能合约代码的可访问性、(ii)采用的测试技术和(iii)支持的漏洞。然后,我们强调了这些论文的优点和缺点,同时总结了该领域在测试生成和选择方面所做的工作。最后,我们确定了研究挑战和潜在的研究机会,旨在提供尚未探索的研究方向。
{"title":"A systematic literature review on dynamic testing of blockchain oriented software","authors":"","doi":"10.1016/j.scico.2024.103211","DOIUrl":"10.1016/j.scico.2024.103211","url":null,"abstract":"<div><div>This Systematic Literature Review (SLR) provides a thorough analysis of the most pertinent research with regard to testing Blockchain oriented Software (BoS). Indeed, it is highly required to test and check the correctness of such kind of software systems before their deployment since they are immutable and cannot be modified once deployed. All the selected primary studies, published between 2017 and October 2022, make use of dynamic testing techniques in order to ensure the trustworthiness and the quality of BoS and to check functional and non-functional aspects such as security and performance. First of all, we study <strong>53</strong> research papers from various electronic databases and classify them according to several factors including (i) the accessibility of smart contract code, (ii) the adopted testing techniques and (iii) the supported vulnerabilities. Then, we emphasize works' benefits and drawbacks while providing a summary about the work done on test generation and selection in this field. At the end, we identify research challenges and potential research opportunities with the aim of giving research lines not yet explored.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-09-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142323997","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
Maximizing reachability probabilities in rectangular automata with random events 在具有随机事件的矩形自动机中最大化到达概率
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-25 DOI: 10.1016/j.scico.2024.103213
This paper introduces two stochastic variants of rectangular automata. First, rectangular automata with random events (RAE) are introduced, which semantically embed random events. Second, in rectangular automata with random clocks (RAC), the dynamics of random events are explicitly modeled as stopwatches which are called random clocks. We show that RAE can be transformed into RAC maintaining time- and jump-bounded reachability. Both modeling variants incorporate time-induced nondeterminism on discrete behavior and nondeterminism in the dynamic behavior. The difference between RAE and RAC lies in the modeling of the random events: while RAE semantically ensure that random events are correctly handled via stochastic guards, in RAC it is the responsibility of the modeler to ensure, e.g., that random clocks are enabled and disabled such that the resulting random delay correctly models the desired random event. However, the advantage of RAC is that existing methods for nonstochastic rectangular automata can directly be applied to RAC to compute the reachable state space. We then propose an algorithm to maximize reachability probabilities for RAC with history-dependent prophetic scheduling. Specifically, we use a backward refinement approach to identify the maximum prophetic scheduler and prove the correctness of the proposed method. The feasibility of the presented approach is illustrated on a scalable model and the results computed with our tool RealySt are validated against the tool ProHVer.
本文介绍了矩形自动机的两种随机变体。首先,本文介绍了具有随机事件的矩形自动机(RAE),它在语义上嵌入了随机事件。其次,在具有随机时钟的矩形自动机(RAC)中,随机事件的动态被明确地建模为秒表,这些秒表被称为随机时钟。我们证明,RAE 可以转化为 RAC,并保持有时间和跳跃限制的可达性。这两种建模变体都包含离散行为的时间诱导非确定性和动态行为的非确定性。RAE 和 RAC 的区别在于随机事件的建模:RAE 在语义上确保通过随机保护正确处理随机事件,而在 RAC 中,建模者有责任确保(例如)启用和禁用随机时钟,从而使所产生的随机延迟正确模拟所需的随机事件。然而,RAC 的优势在于,现有的非随机矩形自动机方法可直接应用于 RAC,以计算可达状态空间。然后,我们提出了一种算法,用于最大化 RAC 的可达性概率,并采用与历史相关的预言调度。具体来说,我们使用后向细化方法来确定最大预言调度器,并证明了所提方法的正确性。我们在一个可扩展模型上说明了所提方法的可行性,并用我们的工具 RealySt 计算出的结果与工具 ProHVer 进行了验证。
{"title":"Maximizing reachability probabilities in rectangular automata with random events","authors":"","doi":"10.1016/j.scico.2024.103213","DOIUrl":"10.1016/j.scico.2024.103213","url":null,"abstract":"<div><div>This paper introduces two stochastic variants of rectangular automata. First, <em>rectangular automata with random events (RAE)</em> are introduced, which semantically embed random events. Second, in <em>rectangular automata with random clocks (RAC)</em>, the dynamics of random events are explicitly modeled as stopwatches which are called <em>random clocks</em>. We show that RAE can be transformed into RAC maintaining time- and jump-bounded reachability. Both modeling variants incorporate time-induced nondeterminism on discrete behavior and nondeterminism in the dynamic behavior. The difference between RAE and RAC lies in the modeling of the random events: while RAE semantically ensure that random events are correctly handled via stochastic guards, in RAC it is the responsibility of the modeler to ensure, e.g., that random clocks are enabled and disabled such that the resulting random delay correctly models the desired random event. However, the advantage of RAC is that existing methods for nonstochastic rectangular automata can directly be applied to RAC to compute the reachable state space. We then propose an algorithm to maximize reachability probabilities for RAC with history-dependent prophetic scheduling. Specifically, we use a backward refinement approach to identify the maximum prophetic scheduler and prove the correctness of the proposed method. The feasibility of the presented approach is illustrated on a scalable model and the results computed with our tool <span>RealySt</span> are validated against the tool <span>ProHVer</span>.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-09-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142424072","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
Baital: Sampling configurable systems with high t-wise coverage Baital:具有高 t-wise 覆盖率的可配置采样系统
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-23 DOI: 10.1016/j.scico.2024.103209
Testing of highly configurable systems is challenging due to an immense number of configurations and is usually performed on a small sample set. Its quality is often measured with t-wise coverage. We propose a tool Baital for sampling highly configurable systems with thousands of features capable of achieving high t-wise coverage. The effectiveness and scalability of the tool are based on two novel techniques: the adaptive weighted sampling and the approximation techniques for the t-wise coverage computation. Baital can easily handle sampling and computation for 6-wise coverage. The latest version supports multi-valued features.
由于配置数量巨大,对高度可配置系统进行测试极具挑战性,而且通常是在较小的样本集上进行测试。其质量通常用 t 值覆盖率来衡量。我们提出了一种工具 Baital,用于对具有数千种特征的高可配置系统进行采样,从而实现高 t-wise 覆盖率。该工具的有效性和可扩展性基于两种新技术:自适应加权采样和 t 值覆盖率计算近似技术。Baital 可以轻松处理 6 维覆盖率的采样和计算。最新版本支持多值特征。
{"title":"Baital: Sampling configurable systems with high t-wise coverage","authors":"","doi":"10.1016/j.scico.2024.103209","DOIUrl":"10.1016/j.scico.2024.103209","url":null,"abstract":"<div><div>Testing of highly configurable systems is challenging due to an immense number of configurations and is usually performed on a small sample set. Its quality is often measured with <em>t</em>-wise coverage. We propose a tool <span><math><mi>Baital</mi></math></span> for sampling highly configurable systems with thousands of features capable of achieving high <em>t</em>-wise coverage. The effectiveness and scalability of the tool are based on two novel techniques: the adaptive weighted sampling and the approximation techniques for the <em>t</em>-wise coverage computation. <span><math><mi>Baital</mi></math></span> can easily handle sampling and computation for 6-wise coverage. The latest version supports multi-valued features.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142319085","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
Vamos: Middleware for best-effort third-party monitoring Vamos:尽力而为的第三方监控中间件
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-23 DOI: 10.1016/j.scico.2024.103212
As the complexity and criticality of software increase every year, so does the importance of runtime monitoring. Third-party and best-effort monitoring are especially valuable, yet under-explored areas of runtime monitoring. In this context, third-party monitoring means monitoring with a limited knowledge of the monitored software (as it has been developed by a third party). Best-effort monitoring keeps pace with the monitored software at the cost of possibly imprecise verdicts when keeping up with the monitored software would not be feasible. Most existing monitoring frameworks do not support the combination of third-party and best-effort monitoring because they either require the full access to the monitored code or the ability to process all observable events, or both.
We present a middleware framework, Vamos, for the runtime monitoring of software. Vamos is explicitly designed to support third-party and best-effort scenarios. The design goals of Vamos are (i) efficiency (tracing events with low overhead), (ii) flexibility (the ability to monitor a variety of different event channels, and to connect to a wide range of monitors), and (iii) ease-of-use. To achieve its goals, Vamos combines aspects of event broker and event recognition systems with aspects of stream processing systems.
We implemented a prototype toolchain for Vamos and conducted a set of experiments demonstrating the usability of the scheme. The results indicate that Vamos enables writing useful yet efficient monitors, and simplifies key aspects of setting up a monitoring system from scratch.
随着软件复杂性和关键性的逐年增加,运行时监控的重要性也随之增加。第三方监控和尽力监控是运行时监控中特别有价值的领域,但尚未得到充分开发。在这里,第三方监控指的是在对被监控软件了解有限的情况下进行监控(因为该软件是由第三方开发的)。竭尽全力的监控能与被监控软件保持同步,但代价是在无法与被监控软件保持同步的情况下,可能做出不精确的判断。大多数现有的监控框架都不支持第三方监控和尽力监控的结合,因为它们要么要求完全访问被监控的代码,要么要求能够处理所有可观察到的事件,或者两者兼而有之。Vamos 在设计上明确支持第三方和尽力而为的方案。Vamos 的设计目标是:(i) 高效(以较低的开销跟踪事件);(ii) 灵活(能够监控各种不同的事件通道,并连接到各种监控器);(iii) 易于使用。为了实现其目标,Vamos 将事件代理和事件识别系统的各个方面与流处理系统的各个方面结合起来。结果表明,Vamos 能够编写有用而高效的监控器,并简化了从头开始建立监控系统的关键环节。
{"title":"Vamos: Middleware for best-effort third-party monitoring","authors":"","doi":"10.1016/j.scico.2024.103212","DOIUrl":"10.1016/j.scico.2024.103212","url":null,"abstract":"<div><div>As the complexity and criticality of software increase every year, so does the importance of runtime monitoring. Third-party and best-effort monitoring are especially valuable, yet under-explored areas of runtime monitoring. In this context, third-party monitoring means monitoring with a limited knowledge of the monitored software (as it has been developed by a third party). Best-effort monitoring keeps pace with the monitored software at the cost of possibly imprecise verdicts when keeping up with the monitored software would not be feasible. Most existing monitoring frameworks do not support the combination of third-party and best-effort monitoring because they either require the full access to the monitored code or the ability to process all observable events, or both.</div><div>We present a middleware framework, <span>Vamos</span>, for the runtime monitoring of software. <span>Vamos</span> is explicitly designed to support third-party and best-effort scenarios. The design goals of <span>Vamos</span> are (i) efficiency (tracing events with low overhead), (ii) flexibility (the ability to monitor a variety of different event channels, and to connect to a wide range of monitors), and (iii) ease-of-use. To achieve its goals, <span>Vamos</span> combines aspects of event broker and event recognition systems with aspects of stream processing systems.</div><div>We implemented a prototype toolchain for <span>Vamos</span> and conducted a set of experiments demonstrating the usability of the scheme. The results indicate that <span>Vamos</span> enables writing useful yet efficient monitors, and simplifies key aspects of setting up a monitoring system from scratch.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142326805","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