首页 > 最新文献

Science of Computer Programming最新文献

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

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

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

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

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":"","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":null,"pages":null},"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
A hybrid approach to extract conceptual diagram from software requirements 从软件需求中提取概念图的混合方法
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-23 DOI: 10.1016/j.scico.2024.103186

Employing rules for the automatic extraction of conceptual diagrams from software requirements has been in practice for some time. However, considering only rules for extraction makes the system complex to handle. Moreover, the rules are predominantly based on the syntactic structure such as Part of Speech tags along with Dependency Grammar of sentences and rarely on semantics. In this paper, we propose to use a probabilistic approach in configuration with the rule-based technique and the Word embeddings to preserve the semantics of the sentence. Hence, reduces the complexity of the extraction procedure. Further, we advocate the use of a divide-and-conquer policy of extraction instead of extracting classes for one entire use case description. We extract the class diagram from small use cases and then merge it to obtain the class diagram. As generated class diagram corresponding to small use cases can be utilized in another similar software design, thus, it increases the scalability and decreases the extraction time. The proposed hybrid approach integrates the knowledge from the experiences. Thus, the proposed approach achieved 90% as F1-score whereas the F1-Score for the existing methods ranged between 79-88%. The proposed hybrid approach also shows a 19.44% reduction in terms of the number of iterations performed to carry out extraction procedures for individual use cases. Hence, reduces the extraction procedure complexity.

采用规则从软件需求中自动提取概念图的做法已经有一段时间了。然而,仅考虑规则提取会使系统的处理变得复杂。此外,这些规则主要基于句法结构,如句子的语篇标记和依赖语法,而很少基于语义。在本文中,我们建议在基于规则的技术和词嵌入的配置中使用概率方法,以保留句子的语义。因此,可以降低提取过程的复杂性。此外,我们提倡使用分而治之的提取策略,而不是为整个用例描述提取类。我们从小型用例中提取类图,然后将其合并以获得类图。由于生成的类图与小用例相对应,可用于另一个类似的软件设计,因此提高了可扩展性,减少了提取时间。拟议的混合方法整合了经验知识。因此,拟议方法的 F1 分数达到了 90%,而现有方法的 F1 分数在 79-88% 之间。所提出的混合方法还减少了 19.44%的迭代次数,从而减少了对单个用例的提取程序。因此,降低了提取程序的复杂性。
{"title":"A hybrid approach to extract conceptual diagram from software requirements","authors":"","doi":"10.1016/j.scico.2024.103186","DOIUrl":"10.1016/j.scico.2024.103186","url":null,"abstract":"<div><p>Employing rules for the automatic extraction of conceptual diagrams from software requirements has been in practice for some time. However, considering only rules for extraction makes the system complex to handle. Moreover, the rules are predominantly based on the syntactic structure such as Part of Speech tags along with Dependency Grammar of sentences and rarely on semantics. In this paper, we propose to use a probabilistic approach in configuration with the rule-based technique and the Word embeddings to preserve the semantics of the sentence. Hence, reduces the complexity of the extraction procedure. Further, we advocate the use of a divide-and-conquer policy of extraction instead of extracting classes for one entire use case description. We extract the class diagram from small use cases and then merge it to obtain the class diagram. As generated class diagram corresponding to small use cases can be utilized in another similar software design, thus, it increases the scalability and decreases the extraction time. The proposed hybrid approach integrates the knowledge from the experiences. Thus, the proposed approach achieved 90% as F1-score whereas the F1-Score for the existing methods ranged between 79-88%. The proposed hybrid approach also shows a 19.44% reduction in terms of the number of iterations performed to carry out extraction procedures for individual use cases. Hence, reduces the extraction procedure complexity.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142089156","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
MDAPW3: MDA-based development of blockchain-enabled decentralized applications MDAPW3:基于 MDA 的区块链去中心化应用开发
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-20 DOI: 10.1016/j.scico.2024.103185

Web3.0 Decentralized Application (DApp) is a class of decentralized software in which at least the business logic of the software is implemented using blockchain-based smart contracts. Features such as transparency, decentralized execution environment, no need for a central authority, immutability of data from manipulation, as well as a native transaction-based payment system based on cryptographic tokens are the main advantages of Web3.0 DApps over conventional Web2.0 software in which the business logic and user data are centrally controlled by companies with no transparency. However, the development lifecycle of Web3.0 DApps involves many challenges due to the complexity of blockchain technology and smart contracts as well as the difficulties concerning with the integration of DApp on-chain and off-chain components. To alleviate these challenges, a Model Driven Architecture (MDA) approach for the development of Web3.0 DApps is proposed in this paper that streamlines the development of complex multi-lateral DApps and results in a product that is verifiable, traceable, low-cost, maintainable, less error-prone and in conformance with blockchain platform concepts. Opposed to previous studies in this area that applied MDA only for the development of smart contracts, our proposed MDA-based approach covers the full architecture of Web3.0 DApps: on-chain, off-chain and on-chain/off-chain communication patterns. The method application was demonstrated by implementing a land leasing Dapp where the requirement model (a BPMN choreography model) was transformed into CIM, PIM, and PSM instances successively, and finally, the code-base was generated based on the Ethereum platform technology stack. Epsilon Validation Language (EVL), Epsilon Object Language (EOL), and Epsilon Comparison Language (ECL) were used for the verification/validation of the model instances at each step. Furthermore, by evaluating the quality metrics of the proposed meta-models, we show that they have a better ontology coverage and are more reusable and understandable compared to previous meta-models.

Web3.0 去中心化应用程序(DApp)是一类去中心化软件,至少软件的业务逻辑是通过基于区块链的智能合约实现的。与传统的 Web2.0 软件相比,Web3.0 DApps 的主要优势在于透明、去中心化的执行环境、无需中央机构、数据不可篡改、基于加密代币的本地交易支付系统,而传统 Web2.0 软件的业务逻辑和用户数据由公司集中控制,不透明。然而,由于区块链技术和智能合约的复杂性,以及 DApp 链上和链下组件集成的困难,Web3.0 DApp 的开发生命周期面临许多挑战。为了缓解这些挑战,本文提出了一种用于 Web3.0 DApps 开发的模型驱动架构(MDA)方法,该方法简化了复杂的多边 DApps 的开发过程,使产品具有可验证、可追溯、低成本、可维护、不易出错以及符合区块链平台概念等特点。与以往仅将 MDA 应用于智能合约开发的研究不同,我们提出的基于 MDA 的方法涵盖了 Web3.0 DApp 的完整架构:链上、链下和链上/链下通信模式。该方法的应用通过实现一个土地租赁 Dapp 进行了演示,其中需求模型(BPMN 编排模型)被先后转化为 CIM、PIM 和 PSM 实例,最后基于以太坊平台技术栈生成了代码库。每一步都使用 Epsilon Validation Language(EVL)、Epsilon Object Language(EOL)和 Epsilon Comparison Language(ECL)对模型实例进行验证/确认。此外,通过评估所提出的元模型的质量指标,我们发现与以前的元模型相比,它们具有更好的本体覆盖率、可重用性和可理解性。
{"title":"MDAPW3: MDA-based development of blockchain-enabled decentralized applications","authors":"","doi":"10.1016/j.scico.2024.103185","DOIUrl":"10.1016/j.scico.2024.103185","url":null,"abstract":"<div><p>Web3.0 Decentralized Application (DApp) is a class of decentralized software in which at least the business logic of the software is implemented using blockchain-based smart contracts. Features such as transparency, decentralized execution environment, no need for a central authority, immutability of data from manipulation, as well as a native transaction-based payment system based on cryptographic tokens are the main advantages of Web3.0 DApps over conventional Web2.0 software in which the business logic and user data are centrally controlled by companies with no transparency. However, the development lifecycle of Web3.0 DApps involves many challenges due to the complexity of blockchain technology and smart contracts as well as the difficulties concerning with the integration of DApp on-chain and off-chain components. To alleviate these challenges, a Model Driven Architecture (MDA) approach for the development of Web3.0 DApps is proposed in this paper that streamlines the development of complex multi-lateral DApps and results in a product that is verifiable, traceable, low-cost, maintainable, less error-prone and in conformance with blockchain platform concepts. Opposed to previous studies in this area that applied MDA only for the development of smart contracts, our proposed MDA-based approach covers the full architecture of Web3.0 DApps: on-chain, off-chain and on-chain/off-chain communication patterns. The method application was demonstrated by implementing a land leasing Dapp where the requirement model (a BPMN choreography model) was transformed into CIM, PIM, and PSM instances successively, and finally, the code-base was generated based on the Ethereum platform technology stack. Epsilon Validation Language (EVL), Epsilon Object Language (EOL), and Epsilon Comparison Language (ECL) were used for the verification/validation of the model instances at each step. Furthermore, by evaluating the quality metrics of the proposed meta-models, we show that they have a better ontology coverage and are more reusable and understandable compared to previous meta-models.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-08-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142048893","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
Formal verification of timely knowledge propagation in airborne networks 机载网络中及时知识传播的形式验证
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-20 DOI: 10.1016/j.scico.2024.103184

Ensuring timely coordination between autonomous aircraft is a challenging problem in decentralized air traffic management (ATM) applications for urban air mobility (UAM) scenarios. This paper presents an approach for formally guaranteeing timely progress in a Two-Phase Acknowledge distributed knowledge propagation protocol by probabilistically modeling the delays using the theory of the Multicopy Two-Hop Relay protocol and the M/M/1 queue system. The guarantee states a probabilistic upper bound to the time for progress as a function of the probabilities of the total transmission and processing delays following two specific distributions. The proof uses a general library of formal theories, that can be used for the rigorous mechanical verification of autonomous aircraft coordination protocols using the Athena proof checker and assistant.

在城市空中交通(UAM)场景的分散式空中交通管理(ATM)应用中,确保自主飞行器之间的及时协调是一个具有挑战性的问题。本文提出了一种方法,利用多副本双跳中继协议和 M/M/1 队列系统的理论对延迟进行概率建模,从而正式保证两相确认分布式知识传播协议的及时性。该保证指出了进展时间的概率上界,它是遵循两个特定分布的总传输和处理延迟概率的函数。该证明使用了一个通用的形式理论库,可用于使用雅典娜证明检查器和助手对自主飞行器协调协议进行严格的机械验证。
{"title":"Formal verification of timely knowledge propagation in airborne networks","authors":"","doi":"10.1016/j.scico.2024.103184","DOIUrl":"10.1016/j.scico.2024.103184","url":null,"abstract":"<div><p>Ensuring timely coordination between autonomous aircraft is a challenging problem in decentralized air traffic management (ATM) applications for urban air mobility (UAM) scenarios. This paper presents an approach for formally guaranteeing timely progress in a Two-Phase Acknowledge distributed knowledge propagation protocol by probabilistically modeling the delays using the theory of the Multicopy Two-Hop Relay protocol and the M/M/1 queue system. The guarantee states a probabilistic upper bound to the time for progress as a function of the probabilities of the total transmission and processing delays following two specific distributions. The proof uses a general library of formal theories, that can be used for the rigorous mechanical verification of autonomous aircraft coordination protocols using the Athena proof checker and assistant.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-08-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142040718","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
Automatic detection of infeasible paths in large-scale program based on program summaries 基于程序摘要自动检测大型程序中的不可行路径
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-08-02 DOI: 10.1016/j.scico.2024.103183

The existence of infeasible paths in a program reduces the coverage of test cases and causes a waste of valuable testing resources. Detecting infeasible paths allows for focusing testing resources on feasible paths. This paper introduces a method for detecting infeasible paths based on program summaries. Our proposed method partitions the program into sequential statements, conditional statements and loop statements, and automatically generates statement summaries and function summaries. It analyzes the summaries to extract the path constraints and determines the feasibility of paths. We implemented a detection tool named DTSIP based on this method, and conducted experiments using a set of benchmark programs and open source projects. The results confirm the effectiveness of our method in detecting infeasible paths. It can detect both intraprocedural and interprocedural infeasible paths, demonstrating its broad applicability. Our method overcomes challenges associated with analyzing complex paths, achieving efficient feasibility determination while reducing processing time.

程序中不可行路径的存在会降低测试用例的覆盖率,造成宝贵测试资源的浪费。检测不可行路径可以将测试资源集中在可行路径上。本文介绍了一种基于程序摘要检测不可行路径的方法。我们提出的方法将程序分为顺序语句、条件语句和循环语句,并自动生成语句摘要和函数摘要。它通过分析摘要来提取路径约束,并确定路径的可行性。我们基于这种方法实现了一个名为 DTSIP 的检测工具,并使用一组基准程序和开源项目进行了实验。实验结果证实了我们的方法在检测不可行路径方面的有效性。它既能检测程序内的不可行路径,也能检测程序间的不可行路径,证明了它的广泛适用性。我们的方法克服了与分析复杂路径相关的挑战,在减少处理时间的同时实现了高效的可行性判断。
{"title":"Automatic detection of infeasible paths in large-scale program based on program summaries","authors":"","doi":"10.1016/j.scico.2024.103183","DOIUrl":"10.1016/j.scico.2024.103183","url":null,"abstract":"<div><p>The existence of infeasible paths in a program reduces the coverage of test cases and causes a waste of valuable testing resources. Detecting infeasible paths allows for focusing testing resources on feasible paths. This paper introduces a method for detecting infeasible paths based on program summaries. Our proposed method partitions the program into sequential statements, conditional statements and loop statements, and automatically generates statement summaries and function summaries. It analyzes the summaries to extract the path constraints and determines the feasibility of paths. We implemented a detection tool named DTSIP based on this method, and conducted experiments using a set of benchmark programs and open source projects. The results confirm the effectiveness of our method in detecting infeasible paths. It can detect both intraprocedural and interprocedural infeasible paths, demonstrating its broad applicability. Our method overcomes challenges associated with analyzing complex paths, achieving efficient feasibility determination while reducing processing time.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":null,"pages":null},"PeriodicalIF":1.5,"publicationDate":"2024-08-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142011709","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
期刊
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