{"title":"iStar Goal Model to Z Formal Model Translation and Model Checking of CBTC Moving Block Interlocking System","authors":"Lokanna Kadakolmath, Umesh D. Ramu","doi":"10.1145/3633065","DOIUrl":"https://doi.org/10.1145/3633065","url":null,"abstract":"<p>The reliability and safety of complex software systems are provided by extracting safety requirements from regulations and operational environments and later specifying these requirements precisely. At the early stage, these extracted safety requirements are informal. Typically, they cope with non-functional requirements. Analysis of early requirements using traditional methods is inadequate because these methods only focus on the WHAT dimension of requirements engineering but do not address the WHY dimension of requirements engineering. In this article, we are using a goal-oriented modelling method called iStar to confront these issues. To ensure that the software system developed fulfils the requirements specified in the early-phase, it is necessary to integrate early-phase requirements with late-phase requirements. To accomplish this task, in this article, we use Z formal method to integrate early-phase requirements with late-phase requirements. This integration synergistically resolves the above issues. As a case study, we use the CBTC moving block interlocking system to illustrate the synergy of the iStar and Z combination on complex software systems. Finally, we verify the developed formal model against LTL safety properties using the ProZ model checking tool.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"44 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517746","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":"Introduction to the Special Collection from FASE 2021","authors":"Esther Guerra, Mariëlle Stoelinga","doi":"10.1145/3626206","DOIUrl":"https://doi.org/10.1145/3626206","url":null,"abstract":"As the microblogging service Twitter becomes an increasingly popular tool for politicians and general users to comment on and discuss politics, researchers increasingly turn to the relationship between tweets mentioning parties or candidates and their ...","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-09-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"135031707","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":"Rooted Divergence-Preserving Branching Bisimilarity is a Congruence for Guarded CCS","authors":"Quan Sun, David N. Jansen, Xinxin Liu, Wei Zhang","doi":"10.1145/3625564","DOIUrl":"https://doi.org/10.1145/3625564","url":null,"abstract":"Branching bisimilarity is a well-known equivalence relation for labelled transition systems. Based on this equivalence relation, with an additional simple rootedness condition, a congruence relation for CCS processes can be obtained. However, neither branching bisimilarity nor the corresponding congruence relation preserves divergence, and it is still a question whether, based on a divergence-preserving variant of branching bisimilarity, a divergence-preserving congruence relation for CCS processes can be obtained by introducing the same simple rootedness condition. In this paper we present a partial solution by showing that rooted divergence-preserving branching bisimilarity is preserved under the usual CCS operators including prefixing, summation, parallel composition, relabelling, restriction, and (weakly) guarded recursion.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-09-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"135246737","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}
James Baxter, Gustavo Carvalho, Ana Cavalcanti, Francisco Rodrigues Júnior
{"title":"RoboWorld: verification of robotic systems with environment in the loop","authors":"James Baxter, Gustavo Carvalho, Ana Cavalcanti, Francisco Rodrigues Júnior","doi":"10.1145/3625563","DOIUrl":"https://doi.org/10.1145/3625563","url":null,"abstract":"A robot affects and is affected by its environment, so that typically its behaviour depends on properties of that environment. For verification, we need to formalise those properties. Modelling the environment is very challenging, if not impossible, but we can capture assumptions. Here, we present RoboWorld, a domain-specific controlled natural language with a process algebraic semantics that can be used to define (a) operational requirements, and (b) environment interactions of a robot. RoboWorld is part of the RoboStar framework for verification of robotic systems. In this paper, we define RoboWorld’s syntax and hybrid semantics, and illustrate its use for capturing operational requirements, for automatic test generation, and for proof. We also present a tool that supports the writing of RoboWorld documents. Since RoboWorld is a controlled natural language, it complements the other RoboStar notations in being accessible to roboticists, while at the same time benefitting from a formal semantics to support rigorous verification (via testing and proof).","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"135537395","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":"Introduction to the Special Collection from iFM 2022","authors":"Rosemary Monahan, Maurice H. ter Beek","doi":"10.1145/3622995","DOIUrl":"https://doi.org/10.1145/3622995","url":null,"abstract":"This special collection arose from the 17th International Conference on integrated Formal Methods (iFM) held in beautiful Lugano, Switzerland, hosted by the Software Institute of USI Università della Svizzera italiana.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-09-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134957824","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}
Zhang Feng, Leping Zhang, Yongwang Zhao, Liu Yang, Sun Jun
{"title":"Refinement-Based Specification and Analysis of Multi-Core ARINC 653 Using Event-B","authors":"Zhang Feng, Leping Zhang, Yongwang Zhao, Liu Yang, Sun Jun","doi":"10.1145/3617183","DOIUrl":"https://doi.org/10.1145/3617183","url":null,"abstract":"ARINC 653 as the de facto standard of partitioning operating systems has been applied in many safety-critical domains. The multi-core version of ARINC 653, ARINC 653 Part1-4 (Version 4), provides support for services to be utilized with a module that contains multiple processor cores. Formal specification and analysis of this standard document could provide a rigorous specification and uncover concealed errors in the textual description of service requirements. This paper proposes a specification method for concurrency on a multi-core platform using Event-B and a refinement structure for the complicated ARINC 653 Part1-4, provides a comprehensive, stepwise refinement-based Event-B specification with seven refinement layers, and then performs formal proof and analysis in RODIN. We verify that the errors discovered in the single-core version standard (ARINC 653 Part1-3) also exist in the ARINC 653 Part1-4 during the formal specification and analysis.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":" ","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"42169495","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}
Amirfarhad Nilizadeh, Gary T. Leavens, C. Pasareanu, Yannic Noller
{"title":"JMLKelinci+: Detecting Semantic Bugs and Covering Branches with Valid Inputs using Coverage-Guided Fuzzing and Runtime Assertion Checking","authors":"Amirfarhad Nilizadeh, Gary T. Leavens, C. Pasareanu, Yannic Noller","doi":"10.1145/3607538","DOIUrl":"https://doi.org/10.1145/3607538","url":null,"abstract":"Testing to detect semantic bugs is essential, especially for critical systems. Coverage-guided fuzzing (CGF) and runtime assertion checking (RAC) are two well-known approaches for detecting semantic bugs. CGF aims to generate test inputs with high code coverage. However, while CGF tools can be equipped with sanitizers to detect a fixed set of semantic bugs, they can otherwise only detect bugs that lead to a crash. Thus, the first problem we address is how to help fuzzers detect previously unknown semantic bugs that do not lead to a crash. Moreover, a CGF tool may not necessarily cover all branches with valid inputs, although invalid inputs are useless for detecting semantic bugs. So, the second problem is how to guide a fuzzer to maximize coverage using only valid inputs. On the other hand, RAC monitors the expected behavior of a program dynamically and can only detect a semantic bug when a valid test input shows that the program does not satisfy its specification. Thus, the third problem is how to provide high-quality test inputs for a RAC that can trigger potential bugs. The combination of a CGF tool and RAC solves these problems and can cover branches with valid inputs and detect semantic bugs effectively. Our study uses RAC to guarantee that only valid inputs reach the program under test using the program’s specified preconditions and it also uses RAC to detect semantic bugs using specified postconditions. A prototype tool was developed for this study, named JMLKelinci+. Our results show that combining a CGF tool with RAC will lead to executing the program under test only with valid inputs and that this technique can effectively detect semantic bugs. Also, this idea improves the feedback given to a CGF tool, enabling it to cover all branches faster in programs with non-trivial preconditions.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"1 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-08-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"41602782","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}
Dara Ly, N. Kosmatov, F. Loulergue, Julien Signoles
{"title":"Sound Runtime Assertion Checking for Memory Properties via Program Transformation","authors":"Dara Ly, N. Kosmatov, F. Loulergue, Julien Signoles","doi":"10.1145/3605951","DOIUrl":"https://doi.org/10.1145/3605951","url":null,"abstract":"Runtime Assertion Checking (RAC) for expressive specification languages is a non-trivial verification task, that becomes even more complex for memory-related properties of imperative languages with dynamic memory allocation. It is important to ensure the soundness of RAC verdicts, in particular when RAC reports the absence of failures for execution traces. This paper presents a formalization of a program transformation technique for RAC of memory properties for a representative language with pointers and memory operations, including dynamic allocation and deallocation. The generated program instrumentation relies on an axiomatized observation memory model, which is essential to record and monitor memory-related properties. We prove the soundness of RAC verdicts with regard to the semantics of this language.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":" ","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"47744857","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":"Towards Verifying Cooperatively-Scheduled Runtimes using CSP","authors":"Jan Bækgaard Pedersen, Kevin Chalmers","doi":"https://dl.acm.org/doi/10.1145/3605942","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3605942","url":null,"abstract":"<p>In this paper we present the novel verification of synchronous channel communication and channel alternation (choice) by considering the environment within which our primitives are executing. Our work is in exploring development of a multi-threaded scheduler for a cooperatively scheduled process-oriented language, ProcessJ. We use CSP to produce formal specifications for the implementation of the various parts of the language runtime (scheduler, runtime components, and generated code). We use established CSP specifications that model channel communication and choice as well as the formal verification tool FDR to formally prove that the implementations are correct and behave as expected, when executed by our scheduler (the execution environment). Our approach is novel and not seen in similar research, because we consider the behaviour of the systems we examine under the restrictions imposed by an execution environment (e.g., a runtime system, a scheduler, an operating system, etc.) and show that even with such restrictions the channel communication and alternation work. More specifically, we show correctness when a system is executed by the ProcessJ cooperative scheduler. The main contributions of this work are in the models defined and method undertaken to verify cooperatively channel communication and choice.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"3 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517745","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":"Towards Verifying Cooperatively-Scheduled Runtimes using CSP","authors":"J. Pedersen, K. Chalmers","doi":"10.1145/3605942","DOIUrl":"https://doi.org/10.1145/3605942","url":null,"abstract":"In this paper we present the novel verification of synchronous channel communication and channel alternation (choice) by considering the environment within which our primitives are executing. Our work is in exploring development of a multi-threaded scheduler for a cooperatively scheduled process-oriented language, ProcessJ. We use CSP to produce formal specifications for the implementation of the various parts of the language runtime (scheduler, runtime components, and generated code). We use established CSP specifications that model channel communication and choice as well as the formal verification tool FDR to formally prove that the implementations are correct and behave as expected, when executed by our scheduler (the execution environment). Our approach is novel and not seen in similar research, because we consider the behaviour of the systems we examine under the restrictions imposed by an execution environment (e.g., a runtime system, a scheduler, an operating system, etc.) and show that even with such restrictions the channel communication and alternation work. More specifically, we show correctness when a system is executed by the ProcessJ cooperative scheduler. The main contributions of this work are in the models defined and method undertaken to verify cooperatively channel communication and choice.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":" ","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49136051","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}