首页 > 最新文献

Science of Computer Programming最新文献

英文 中文
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
Mariam Lahami , Afef Jmal Maalej , Moez Krichen
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":"Mariam Lahami ,&nbsp;Afef Jmal Maalej ,&nbsp;Moez Krichen","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":"240 ","pages":"Article 103211"},"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
Joanna Delicaris , Anne Remke , Erika Ábrahám , Stefan Schupp , Jonas Stübbe
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":"Joanna Delicaris ,&nbsp;Anne Remke ,&nbsp;Erika Ábrahám ,&nbsp;Stefan Schupp ,&nbsp;Jonas Stübbe","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":"240 ","pages":"Article 103213"},"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
Eduard Baranov, Axel Legay
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":"Eduard Baranov,&nbsp;Axel Legay","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":"240 ","pages":"Article 103209"},"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
Marek Chalupa , Fabian Muehlboeck , Stefanie Muroya Lei , Thomas A. Henzinger
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":"Marek Chalupa ,&nbsp;Fabian Muehlboeck ,&nbsp;Stefanie Muroya Lei ,&nbsp;Thomas A. Henzinger","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":"240 ","pages":"Article 103212"},"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
The VariCity ecosystem: City visualization of object-oriented variability in Java and TypeScript VariCity 生态系统:Java 和 TypeScript 中面向对象可变性的城市可视化
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-20 DOI: 10.1016/j.scico.2024.103210
Philippe Collet, Johann Mortara, Yann Brault, Anne-Marie Dery-Pinna
In object-oriented variability-rich software systems, the implemented variability often relies on traditional mechanisms (i.e., inheritance, overloading, and design patterns). It is then not well-documented and buried in a single codebase, hampering its comprehension and maintenance. VariCity helps developers understand the implemented variability in Java and TypeScript using a 3D city metaphor in which classes are buildings shaped by the occurrences of variability implementations, while usage relationships form the city streets. Extensions of VariCity support IDE integration with navigation and spot zones with variability debt through quality metrics mapped on the city buildings.
在面向对象的可变性丰富的软件系统中,可变性的实现往往依赖于传统机制(即继承、重载和设计模式)。这些可变性没有完善的文档记录,被埋没在单一的代码库中,妨碍了对其的理解和维护。VariCity 使用三维城市隐喻帮助开发人员理解 Java 和 TypeScript 中实现的可变性,在这个隐喻中,类是由可变性实现的出现所形成的建筑物,而使用关系则形成了城市街道。VariCity 的扩展支持集成开发环境(IDE)与导航的集成,并通过映射在城市建筑上的质量指标,发现具有可变性债务的区域。
{"title":"The VariCity ecosystem: City visualization of object-oriented variability in Java and TypeScript","authors":"Philippe Collet,&nbsp;Johann Mortara,&nbsp;Yann Brault,&nbsp;Anne-Marie Dery-Pinna","doi":"10.1016/j.scico.2024.103210","DOIUrl":"10.1016/j.scico.2024.103210","url":null,"abstract":"<div><div>In object-oriented variability-rich software systems, the implemented variability often relies on traditional mechanisms (<em>i.e.</em>, inheritance, overloading, and design patterns). It is then not well-documented and buried in a single codebase, hampering its comprehension and maintenance. <em>VariCity</em> helps developers understand the implemented variability in Java and TypeScript using a 3D city metaphor in which classes are buildings shaped by the occurrences of variability implementations, while usage relationships form the city streets. Extensions of <em>VariCity</em> support IDE integration with navigation and spot zones with variability debt through quality metrics mapped on the city buildings.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103210"},"PeriodicalIF":1.5,"publicationDate":"2024-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142319082","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
Causal program dependence analysis 因果程序依赖性分析
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-09-12 DOI: 10.1016/j.scico.2024.103208
Seongmin Lee , Dave Binkley , Robert Feldt , Nicolas Gold , Shin Yoo

Discovering how program components affect one another plays a fundamental role in aiding engineers comprehend and maintain a software system. Despite the fact that the degree to which one program component depends upon another can vary in strength, traditional dependence analysis typically ignores such nuance. To account for this nuance in dependence-based analysis, we propose Causal Program Dependence Analysis (CPDA), a framework based on causal inference that captures the degree (or strength) of the dependence between program elements. For a given program, CPDA intervenes in the program execution to observe changes in value at selected points in the source code. It observes the association between program elements by constructing and executing modified versions of a program (requiring only light-weight parsing rather than sophisticated static analysis). CPDA applies causal inference to the observed changes to identify and estimate the strength of the dependence relations between program elements. We explore the advantages of CPDA's quantified dependence by presenting results for several applications. Our further qualitative evaluation demonstrates 1) that observing different levels of dependence facilitates grouping various functional aspects found in a program and 2) how focusing on the relative strength of the dependences for a particular program element provides a detailed context for that element. Furthermore, a case study that applies CPDA to debugging illustrates how it can improve engineer productivity.

在帮助工程师理解和维护软件系统的过程中,发现程序组件之间的相互影响起着至关重要的作用。尽管一个程序组件对另一个程序组件的依赖程度会有强弱之分,但传统的依赖性分析通常会忽略这种细微差别。为了在基于依赖性的分析中考虑到这种细微差别,我们提出了因果程序依赖性分析(CPDA),这是一种基于因果推理的框架,可以捕捉程序元素之间的依赖程度(或强度)。对于给定的程序,CPDA 会干预程序的执行,观察源代码中选定点的值变化。它通过构建和执行修改后的程序版本来观察程序元素之间的关联(只需轻量级的解析而非复杂的静态分析)。CPDA 对观察到的变化进行因果推理,以确定和估计程序元素之间依赖关系的强度。我们通过展示几种应用的结果来探讨 CPDA 量化依赖关系的优势。我们进一步的定性评估表明:1)观察不同程度的依赖关系有助于对程序中的各种功能方面进行分组;2)关注特定程序元素依赖关系的相对强度可为该元素提供详细的背景信息。此外,将 CPDA 应用于调试的案例研究说明了 CPDA 如何提高工程师的工作效率。
{"title":"Causal program dependence analysis","authors":"Seongmin Lee ,&nbsp;Dave Binkley ,&nbsp;Robert Feldt ,&nbsp;Nicolas Gold ,&nbsp;Shin Yoo","doi":"10.1016/j.scico.2024.103208","DOIUrl":"10.1016/j.scico.2024.103208","url":null,"abstract":"<div><p>Discovering how program components affect one another plays a fundamental role in aiding engineers comprehend and maintain a software system. Despite the fact that the degree to which one program component depends upon another can vary in strength, traditional dependence analysis typically ignores such nuance. To account for this nuance in dependence-based analysis, we propose Causal Program Dependence Analysis (CPDA), a framework based on causal inference that captures the degree (or strength) of the dependence between program elements. For a given program, CPDA intervenes in the program execution to observe changes in value at selected points in the source code. It observes the association between program elements by constructing and executing modified versions of a program (requiring only light-weight parsing rather than sophisticated static analysis). CPDA applies causal inference to the observed changes to identify and estimate the strength of the dependence relations between program elements. We explore the advantages of CPDA's quantified dependence by presenting results for several applications. Our further qualitative evaluation demonstrates 1) that observing different levels of dependence facilitates grouping various functional aspects found in a program and 2) how focusing on the relative strength of the dependences for a particular program element provides a detailed context for that element. Furthermore, a case study that applies CPDA to debugging illustrates how it can improve engineer productivity.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103208"},"PeriodicalIF":1.5,"publicationDate":"2024-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S016764232400131X/pdfft?md5=59869ae58db39102a7aea3d20ab99b35&pid=1-s2.0-S016764232400131X-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142240494","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
OCLVerifer: Automated verification of OCL contracts in requirements models OCLVerifer:自动验证需求模型中的 OCL 合约
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-30 DOI: 10.1016/j.scico.2024.103197
Peiye Yang , Li Zhang , Qin Li , Xiang Gao , Yilong Yang

Object Constraint Language (OCL) is one lightweight formal specification. Integrated within the Unified Modeling Language (UML) standard, it serves as a cornerstone in requirements modeling, enjoying widespread adoption across various domains. OCL can precisely define the pre- and post-condition of system operations and system invariants. While OCL provides a simple yet expressive syntax, it lacks clarity in mapping Object-Oriented (OO) concepts, such as object states, object links, and object attributes. This ambiguity makes it challenging for OO developers to identify errors in requirements. In this paper, we propose an approach named OCLVerifier, which can automatically detect the requirements errors of OCL, such as conflict, redundancy, and failure error. OCLVerifier first transforms OO contracts and detection patterns into SMT formulas and then proves them by using a SMT solver. Finally, the results are mapped to the original OCL contracts to display detailed error type and location information. To evaluate OCLVerifier, we conducted a comprehensive evaluation of four case studies. Experimental results indicate that OCLVerifier successfully identifies 65.5% of error cases, with each identified case offering accurate error location information. Compared with human experts, OCLVerifier can reduce evaluation time by 80.8% while enhancing repair accuracy by 18%. The results are satisfactory, and the proposed approach can be further extended to the software industry for requirements verification.

对象约束语言(OCL)是一种轻量级的正式规范。它集成在统一建模语言(UML)标准中,是需求建模的基石,在各个领域得到广泛应用。OCL 可以精确定义系统操作的前置和后置条件以及系统不变式。虽然 OCL 提供了简单而富有表现力的语法,但它在映射面向对象(OO)概念(如对象状态、对象链接和对象属性)方面缺乏清晰度。这种模糊性使 OO 开发人员很难识别需求中的错误。在本文中,我们提出了一种名为 OCLVerifier 的方法,它可以自动检测 OCL 的需求错误,如冲突、冗余和失败错误。OCLVerifier 首先将 OO 契约和检测模式转换为 SMT 公式,然后使用 SMT 求解器证明这些公式。最后,将结果映射到原始 OCL 合约,以显示详细的错误类型和位置信息。为了评估 OCLVerifier,我们对四个案例研究进行了综合评估。实验结果表明,OCLVerifier 成功识别了 65.5% 的错误案例,每个识别出的案例都提供了准确的错误定位信息。与人类专家相比,OCLVerifier 可以减少 80.8% 的评估时间,同时提高 18% 的修复准确率。结果令人满意,建议的方法可进一步推广到软件行业的需求验证中。
{"title":"OCLVerifer: Automated verification of OCL contracts in requirements models","authors":"Peiye Yang ,&nbsp;Li Zhang ,&nbsp;Qin Li ,&nbsp;Xiang Gao ,&nbsp;Yilong Yang","doi":"10.1016/j.scico.2024.103197","DOIUrl":"10.1016/j.scico.2024.103197","url":null,"abstract":"<div><p>Object Constraint Language (OCL) is one lightweight formal specification. Integrated within the Unified Modeling Language (UML) standard, it serves as a cornerstone in requirements modeling, enjoying widespread adoption across various domains. OCL can precisely define the pre- and post-condition of system operations and system invariants. While OCL provides a simple yet expressive syntax, it lacks clarity in mapping Object-Oriented (OO) concepts, such as object states, object links, and object attributes. This ambiguity makes it challenging for OO developers to identify errors in requirements. In this paper, we propose an approach named OCLVerifier, which can automatically detect the requirements errors of OCL, such as conflict, redundancy, and failure error. OCLVerifier first transforms OO contracts and detection patterns into SMT formulas and then proves them by using a SMT solver. Finally, the results are mapped to the original OCL contracts to display detailed error type and location information. To evaluate OCLVerifier, we conducted a comprehensive evaluation of four case studies. Experimental results indicate that OCLVerifier successfully identifies 65.5% of error cases, with each identified case offering accurate error location information. Compared with human experts, OCLVerifier can reduce evaluation time by 80.8% while enhancing repair accuracy by 18%. The results are satisfactory, and the proposed approach can be further extended to the software industry for requirements verification.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103197"},"PeriodicalIF":1.5,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142129158","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
Mi Superpoder es la Programación: A tool for teaching programming to children and youth Mi Superpoder es la Programación:儿童和青少年编程教学工具
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-30 DOI: 10.1016/j.scico.2024.103198
Erika J. Gutiérrez Beltrán, Juan C. Martínez Arias

Mi Superpoder es la Programación is a web tool designed to teach programming to children and young people. It focuses on developing logical thinking through interactive exercises that cover computer parts recognition, sequences, patterns, and flowcharts. The tool was developed to address the educational needs identified in the social project of the same name, where modern technologies and a serverless-based architecture were used to create an accessible and effective solution for teaching programming. Initial results indicate that students found the tool useful and demonstrated improvements in their understanding of computational logic. This analysis is framed within the global challenge of teaching programming to children and youth, demonstrating the potential of gamified tools across diverse educational contexts. Future plans include expanding the tool to incorporate more modules, allowing customization by teachers, and conducting broader evaluations in different educational environments.

Mi Superpoder es la Programación 是一个网络工具,旨在向儿童和青少年传授编程知识。它侧重于通过互动练习培养逻辑思维,练习内容包括计算机部件识别、序列、模式和流程图。该工具的开发是为了满足同名社会项目中确定的教育需求,在该项目中,现代技术和基于无服务器的架构被用来创建一个方便有效的编程教学解决方案。初步结果表明,学生们发现该工具非常有用,而且对计算逻辑的理解也有所提高。这项分析是在向儿童和青少年教授编程这一全球性挑战的背景下进行的,展示了游戏化工具在不同教育背景下的潜力。未来的计划包括扩展该工具,纳入更多模块,允许教师定制,并在不同的教育环境中进行更广泛的评估。
{"title":"Mi Superpoder es la Programación: A tool for teaching programming to children and youth","authors":"Erika J. Gutiérrez Beltrán,&nbsp;Juan C. Martínez Arias","doi":"10.1016/j.scico.2024.103198","DOIUrl":"10.1016/j.scico.2024.103198","url":null,"abstract":"<div><p><em>Mi Superpoder es la Programación</em> is a web tool designed to teach programming to children and young people. It focuses on developing logical thinking through interactive exercises that cover computer parts recognition, sequences, patterns, and flowcharts. The tool was developed to address the educational needs identified in the social project of the same name, where modern technologies and a serverless-based architecture were used to create an accessible and effective solution for teaching programming. Initial results indicate that students found the tool useful and demonstrated improvements in their understanding of computational logic. This analysis is framed within the global challenge of teaching programming to children and youth, demonstrating the potential of gamified tools across diverse educational contexts. Future plans include expanding the tool to incorporate more modules, allowing customization by teachers, and conducting broader evaluations in different educational environments.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103198"},"PeriodicalIF":1.5,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324001217/pdfft?md5=9edac08065bab5aa8ad4f527da569819&pid=1-s2.0-S0167642324001217-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142129046","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
Report to the readership 向读者报告
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-30 DOI: 10.1016/j.scico.2024.103199
{"title":"Report to the readership","authors":"","doi":"10.1016/j.scico.2024.103199","DOIUrl":"10.1016/j.scico.2024.103199","url":null,"abstract":"","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103199"},"PeriodicalIF":1.5,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142173558","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
Specification of paraconsistent transition systems, revisited 准一致过渡系统的规范,再论
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-28 DOI: 10.1016/j.scico.2024.103196
Juliana Cunha , Alexandre Madeira , Luís Soares Barbosa

The need for more flexible and robust models to reason about systems in the presence of conflicting information is becoming more and more relevant in different contexts. This has prompted the introduction of paraconsistent transition systems, where transitions are characterized by two pairs of weights: one representing the evidence that the transition effectively occurs and the other its absence. Such a pair of weights can express scenarios of vagueness and inconsistency. This paper establishes a foundation for a compositional and structured specification approach of paraconsistent transition systems, framed as paraconsistent institution. The proposed methodology follows the stepwise implementation process outlined by Sannella and Tarlecki.

在不同的情况下,人们越来越需要更灵活、更稳健的模型来推理存在冲突信息的系统。这就促使我们引入了准一致转换系统,在这种系统中,转换由两对权重表征:一对权重代表转换有效发生的证据,另一对权重代表转换不存在的证据。这对权重可以表达模糊和不一致的情况。本文为准一致转换系统的组合和结构化规范方法奠定了基础,并将其框定为准一致机构。本文提出的方法遵循 Sannella 和 Tarlecki 概述的逐步实施过程。
{"title":"Specification of paraconsistent transition systems, revisited","authors":"Juliana Cunha ,&nbsp;Alexandre Madeira ,&nbsp;Luís Soares Barbosa","doi":"10.1016/j.scico.2024.103196","DOIUrl":"10.1016/j.scico.2024.103196","url":null,"abstract":"<div><p>The need for more flexible and robust models to reason about systems in the presence of conflicting information is becoming more and more relevant in different contexts. This has prompted the introduction of paraconsistent transition systems, where transitions are characterized by two pairs of weights: one representing the evidence that the transition effectively occurs and the other its absence. Such a pair of weights can express scenarios of <em>vagueness</em> and <em>inconsistency</em>. This paper establishes a foundation for a compositional and structured specification approach of paraconsistent transition systems, framed as <em>paraconsistent institution</em>. The proposed methodology follows the stepwise implementation process outlined by Sannella and Tarlecki.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"240 ","pages":"Article 103196"},"PeriodicalIF":1.5,"publicationDate":"2024-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324001199/pdfft?md5=76e01dc367ec7a7fdb4b6d2cc9ab943c&pid=1-s2.0-S0167642324001199-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142121683","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