Ali Samanipour , Omid Bushehrian , Gregorio Robles
{"title":"MDAPW3: MDA-based development of blockchain-enabled decentralized applications","authors":"Ali Samanipour , Omid Bushehrian , Gregorio Robles","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":"239 ","pages":"Article 103185"},"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}
Saswata Paul , Chris McCarthy , Stacy Patterson , Carlos Varela
{"title":"Formal verification of timely knowledge propagation in airborne networks","authors":"Saswata Paul , Chris McCarthy , Stacy Patterson , Carlos Varela","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":"239 ","pages":"Article 103184"},"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}
Yukun Dong, Shuqi Wang, Lulu Zhang, Xiaoshan Liu, Shuai Liu
{"title":"Automatic detection of infeasible paths in large-scale program based on program summaries","authors":"Yukun Dong, Shuqi Wang, Lulu Zhang, Xiaoshan Liu, Shuai Liu","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":"239 ","pages":"Article 103183"},"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}
{"title":"MacroSwarm: A scala framework for swarm programming","authors":"Gianluca Aguzzi, Mirko Viroli","doi":"10.1016/j.scico.2024.103182","DOIUrl":"10.1016/j.scico.2024.103182","url":null,"abstract":"<div><p>Programming swarm behaviors is a challenging task, due to the need to express collective behaviors in terms of local interactions among simple agents. Even if several programming frameworks have been proposed, they are often based on low-level abstractions, which makes the development of swarm applications complex and error-prone. Thus, we present MacroSwarm, an aggregate programming framework for the development of swarm behaviors. With this framework, it is possible to define a large variety of swarm behaviors, starting from simple movements to more complex ones, such as aggregation, flocking, and collective decision-making. In this paper, we present the main features of the framework and some simple examples of its API usage.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"239 ","pages":"Article 103182"},"PeriodicalIF":1.5,"publicationDate":"2024-08-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141943438","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}
{"title":"Microservices simulator: An object-oriented framework for transactional causal consistency","authors":"Pedro Pereira, António Rito Silva","doi":"10.1016/j.scico.2024.103181","DOIUrl":"10.1016/j.scico.2024.103181","url":null,"abstract":"<div><p>The development of microservice systems is complex due to the impact consistency problems have on the business logic design. On the other hand, the implementation of a microservice requires extensive use of middleware technology, which delays the test and identification of the cases where consistency problems can occur. We introduce the <em>Microservices Simulator</em> object-oriented framework that supports the rapid prototyping of a microservice system designed according to the Transactional Causal Consistency model.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"239 ","pages":"Article 103181"},"PeriodicalIF":1.5,"publicationDate":"2024-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141943437","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}
{"title":"Preface for the special issue on SBFT'23: Search-Based and Fuzz Testing - Tools","authors":"Alessio Gambi (Guest Editor) , Sebastiano Panichella (Guest Editor)","doi":"10.1016/j.scico.2024.103180","DOIUrl":"10.1016/j.scico.2024.103180","url":null,"abstract":"","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"239 ","pages":"Article 103180"},"PeriodicalIF":1.5,"publicationDate":"2024-07-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142011710","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}
{"title":"Hybrid dynamical systems logic and its refinements","authors":"André Platzer","doi":"10.1016/j.scico.2024.103179","DOIUrl":"10.1016/j.scico.2024.103179","url":null,"abstract":"<div><p>Hybrid dynamical systems describe the mixed discrete dynamics and continuous dynamics of cyber-physical systems such as aircraft, cars, trains, and robots. To justify correctness properties of the safety-critical control algorithms for their physical models, <em>differential dynamic logic</em> (<figure><img></figure>) provides deductive specification and verification techniques implemented in the theorem prover <figure><img></figure>. The logic <figure><img></figure> is useful for proving, e.g., that all runs of a hybrid dynamical system <em>α</em> satisfy safety property <em>φ</em> (i.e., <figure><img></figure>), or that there is a run of the hybrid dynamical system <em>α</em> ultimately reaching the desired goal <em>φ</em> (i.e., <figure><img></figure>). Logical combinations of <figure><img></figure>'s operators naturally represent safety, liveness, stability and other properties. Variations of <figure><img></figure> serve additional purposes. <em>Differential refinement logic</em> (<figure><img></figure>) adds an operator <span><math><mi>α</mi><mo>≤</mo><mi>β</mi></math></span> expressing that hybrid system <em>α</em> refines hybrid system <em>β</em>, which is useful, e.g., for relating concrete system implementations <em>α</em> to their abstract verification models <em>β</em>. Just like <figure><img></figure>, <figure><img></figure> is a logic closed under all operators, which opens up systematic ways of simultaneously relating systems and their properties, of reducing system properties to system relations or, vice versa, reducing system relations to system properties. A second variant of <figure><img></figure>, <em>differential game logic</em> (<figure><img></figure>), adds the ability of referring to winning strategies of players in hybrid games, which is useful for establishing correctness properties where the actions of different agents may interfere either because they literally compete with one another or because they may interact accidentally. In the theorem prover <figure><img></figure>, <figure><img></figure> and its variations have been used for verifying ground robot obstacle avoidance, the Federal Aviation Administration's Next-Generation Airborne Collision Avoidance System ACAS X, and the Federal Railroad Administration's train control model.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"239 ","pages":"Article 103179"},"PeriodicalIF":1.5,"publicationDate":"2024-07-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324001023/pdfft?md5=34f140cc3ba2a330ad2477f9b1ee80cf&pid=1-s2.0-S0167642324001023-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141841477","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}
{"title":"Model independent refusal trace testing","authors":"Maciej Gazda, Robert M. Hierons","doi":"10.1016/j.scico.2024.103173","DOIUrl":"10.1016/j.scico.2024.103173","url":null,"abstract":"<div><p>Software Testing is normally one of the main forms of verification and validation used in software development but it is often manual and so expensive and error prone. One of the proposed solutions to this is to use model-based testing, in which testing is based on a model of how the system should behave. If the model has a formal semantics, then there is potential to automate systematic test generation. In this paper we consider the case where the semantics of the model is a set of refusal traces, also called failure traces. We show how the notions of fundamental refusal and fundamental refusal trace can be used to derive a normalised transition system, which we call an <em>observation transition system</em> (OTS), from the semantics. We then show how, if this OTS has finitely many states, and we are given a bound <em>m</em>, one can produce a corresponding complete test suite: one that is guaranteed to determine correctness as long as the number of states of the OTS defined by the semantics of the system under test has no more than <em>m</em> states. In practice, the choice of value for <em>m</em> might be based on domain knowledge or a cost-benefit analysis. As far as we are aware, this is the first work to show how a finite complete test suite can be derived when the semantics under consideration is a set of refusal traces.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"239 ","pages":"Article 103173"},"PeriodicalIF":1.5,"publicationDate":"2024-07-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324000960/pdfft?md5=424d76b3b101250fcecfac3f3f518da6&pid=1-s2.0-S0167642324000960-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141949521","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}
Eduardo Lourenço da Conceição , Ana Nunes Alonso , Rui Carlos Oliveira , José Pereira
{"title":"TADA: A Toolkit for Approximate Distributed Agreement","authors":"Eduardo Lourenço da Conceição , Ana Nunes Alonso , Rui Carlos Oliveira , José Pereira","doi":"10.1016/j.scico.2024.103175","DOIUrl":"10.1016/j.scico.2024.103175","url":null,"abstract":"<div><p>TADA is a unique toolkit designed to foster the use and implementation of approximate distributed agreement primitives. Developed in Java, TADA provides ready-to-use implementations of several approximate agreement algorithms, as well as the tools to enable programmers/researchers to easily implement further protocols: A template that enables new protocol implementations to be created by simply changing specific functions; and high-level abstractions for communication and concurrency control. As an example, the toolkit includes a ready-to-use implementation for clock synchronisation between distributed processes. Further use cases can include sensor input stabilisation and distributed machine learning, or other instances of distributed agreement where network synchrony cannot be assumed, byzantine fault tolerance may be required and a bounded divergence in decision values can be tolerated.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"238 ","pages":"Article 103175"},"PeriodicalIF":1.5,"publicationDate":"2024-07-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141960809","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}
{"title":"ScaRLib: Towards a hybrid toolchain for aggregate computing and many-agent reinforcement learning","authors":"D. Domini, F. Cavallari, G. Aguzzi, M. Viroli","doi":"10.1016/j.scico.2024.103176","DOIUrl":"10.1016/j.scico.2024.103176","url":null,"abstract":"<div><p>This article introduces ScaRLib, a Scala-based framework that aims to streamline the development cyber-physical swarms scenarios (i.e., systems of many interacting distributed devices that collectively accomplish system-wide tasks) by integrating macroprogramming and multi-agent reinforcement learning to design collective behavior. This framework serves as the starting point for a broader toolchain that will integrate these two approaches at multiple points to harness the capabilities of both, enabling the expression of complex and adaptive collective behavior.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"238 ","pages":"Article 103176"},"PeriodicalIF":1.5,"publicationDate":"2024-07-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141959980","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}